AT32UC3L দিয়ে কাস্টম পিসিবিতে বুটলোডার কাজ করতে অক্ষম


12

আমি সম্প্রতি একটি ক্লায়েন্টের জন্য একটি পিসিবি ডিজাইন করেছি, হার্ডওয়্যার এবং সফ্টওয়্যার দিয়ে সবকিছু ঠিক আছে (অ্যাপ্লিকেশনটি যেমনটি মনে করা হচ্ছে তেমন কাজ করছে)। এখন আমরা মাইক্রোকন্ট্রোলারের ভিতরে প্রোগ্রাম আপডেট করার প্রয়োজনের মুখোমুখি, তবে যেহেতু এই পিসিবিগুলি বিশ্বজুড়ে বিভিন্ন স্থানে ইনস্টল করা হয়েছে তাই এটি একটি বুটলোডার ইনস্টল করা এবং অ্যাপ্লিকেশন দ্বারা ব্যবহৃত একই ইউআরটি ব্যবহার করা উপযুক্ত।

বোর্ড বিবরণ

  • AT32UC3L032
  • একটি ইউআরটি ইতিমধ্যে বোর্ড এবং পিসির মধ্যে যোগাযোগ করতে ব্যবহৃত হয়েছিল
  • আবেদনের জন্য দম্পতি I / Os
  • স্টেট এলইডি যুগল

প্রাসঙ্গিক পিনস এবং কনফিগার করুন

PA01 # Used for entering ISP with high level

PA20 # Used for application and ISP UART
PA21 # Used for application and ISP UART

#define COM_USART               (&AVR32_USART2)
#define COM_USART_RX_PIN        AVR32_USART2_RXD_0_0_PIN
#define COM_USART_RX_FUNCTION   AVR32_USART2_RXD_0_0_FUNCTION
#define COM_USART_TX_PIN        AVR32_USART2_TXD_0_0_PIN
#define COM_USART_TX_FUNCTION   AVR32_USART2_TXD_0_0_FUNCTION
#define COM_USART_IRQ           AVR32_USART2_IRQ
#define COM_USART_BAUDRATE      115200

সরঞ্জাম ব্যবহৃত

  • উইন্ডোজ এক্সপি
  • আতেল স্টুডিও 6.1
  • AVRONE প্রোগ্রামার

বেশ কয়েক ঘন্টা অনুসন্ধানের পরে, আমি এএসএফ 3.14.0.834 এ সরবরাহ করা আতেল সফ্টওয়্যার ফ্রেমওয়ার্ক ডিএফইউ পেয়েছি। এটি আশাব্যঞ্জক লাগছিল, আমি সরবরাহিত সরঞ্জামগুলি ব্যবহার করে এটি আমার বোর্ডে ইনস্টল করতে সক্ষম হয়েছি:

  • এভিআর 32 স্টুডিও 2.6.0
  • program_at32uc3l-uart-isp-1.0.1.cmd (এএসএফের সাথে সরবরাহ করা স্ক্রিপ্ট)
  • ফ্লিপ করুন 3.4.7 (ব্যাচিস্প)

প্রথমে, আমি এএসএফ ব্যবহার করেছি .binএবং .datসরবরাহ করেছি, স্ক্রিপ্টটি ব্যবহার করে ইনস্টল করেছি। এখন ব্যাচিস্প কমান্ডটি ব্যবহার করে অ্যাপ্লিকেশন আপলোড করার চেষ্টা করা হচ্ছে:

batchisp.exe -device at32uc3l032 -hardware RS232 -port COM1 -baudrate 115200 -operation erase f memory flash blankcheck loadbuffer myapp.hex program verify

তবে সর্বদা পাওয়া:

Device selection.................... PASS
Hardware selection.................. PASS
Opening port........................ PASS
Synchronzing target................. FAIL    Timeout error.

আমি ইউআরটি থেকে অসিলোস্কোপ আরএক্স এবং টিএক্স দিয়ে পরীক্ষা করেছি, ডেটা বোর্ডে যাচ্ছে কিন্তু পিসি একটি 27kHz বর্গাকার তরঙ্গ গ্রহণ করছে (কোনও স্টপ বিট বা কিছু নেই বলে ইউআরটি থেকে ডেটা হতে পারে না, সম্ভবত ফ্রিকোয়েন্সিও একই নয়) 115200bps)।

আরও গবেষণার পরে, আমি এই মানগুলি পেতে কনফিগার করেছি Word1এবং Word2ফাইলটিতে at32uc3l-uart-isp_cfg-1.0.1.datরয়েছি:

  • শব্দ 1: 0xE11E0024
  • শব্দ 2: 0x494F81AA

PA01আইএসপি প্রবেশের বিকল্প হিসাবে পিন ব্যবহার করতে ।

এছাড়াও, এটমেল স্টুডিও 6.1 এ ডিএফইউর উত্সটি লোড করে তারা লক্ষ্য করেছে যে তারা একই সিরিয়াল পোর্ট কনফিগারেশন ব্যবহার করছে না, তাই আমার অ্যাপ্লিকেশনের মতো পরিবর্তিত হয়েছে। এছাড়াও ডিএফইউর মূল ভিতরে কিছু এলইডি টগল যুক্ত করেছে।

বোর্ডে বুটলোডার আপডেট করার পরে, কোনও এলইডি পরিবর্তন হয় না, একই সময়সীমা, একই বর্গাকার তরঙ্গ।

আমি কিছু অনুপস্থিত করছি?



1
অটমেলের টিকিট হিসাবে পোস্ট করা হয়েছে, দেখবে কে সত্যই আমাকে সহায়তা করতে পারে: ডি
আলেকজান্দ্রে লাভোয়ে

আপনি কোন পিনগুলি ব্যবহার করছেন (পিএএক্সএক্স / পিবিএক্সএক্স)। আমার ঠিক মনে নেই, তবে বুটলোডারটি প্রবেশের জন্য আপনাকে একটি পিন উচ্চ বা নিম্ন টানতে হবে বলে মনে করা হচ্ছে (দুটি কনফিগারেশনের শব্দের উপর নির্ভর করে)। আপনি কি নিশ্চিত করতে পারবেন যে আপনি কোনও বোতাম চাপছেন বা অনুরূপ?
টম এল।

@ টমল।, PA01 ব্যবহার করে (প্রশ্নে যুক্ত)। উভয় উচ্চ / নিম্ন ... একই ফলাফল দিয়ে চেষ্টা করা। এমনকি যদি এই পিনটি JTAG এর সাথে ব্যবহার করা হয় তবে সমস্যা তৈরি করা উচিত নয়।
আলেকজান্দ্রে লাভোয়ে

এবং আপনি ইউআরটির জন্য কোন পিনগুলি ব্যবহার করছেন?
টম এল

1
এইচএম ঠিক আছে, তাই এখানে অস্বাভাবিক কিছু নেই। আপনি ট্রামপোলিন কোডটি পরীক্ষা করতে পারেন এবং যদি অ্যাপ্লিকেশনটি সঠিকভাবে ফ্ল্যাশ শুরুর ঠিকানার সাথে সংযুক্ত থাকে (আপনার এটি লিঙ্কার। ম্যাপ ফাইলটিতে দেখতে হবে)। আপনি কি আপনার লিঙ্কার যুক্তি পোস্ট করতে পারেন?
টম এল।

উত্তর:


1

যদি সম্ভব হয় তবে এভিআর প্রোগ্রামার এবং আরডুইনো আইডিই ব্যবহার করে দেখুন। আমি জানি এটি এটি সিরিজের মাইক্রোকন্ট্রোলারদের সাথে ভাল কাজ করে।


0

যথাযথ ট্রামপোলিন কোড ব্যতীত JTAG ব্যবহার করা এটিএমটিএল দ্বারা চালিত বুটলয়েডর ওভাররাইট করে। সুতরাং JTAG- র মাধ্যমে প্রথম প্রোগ্রামিংয়ের পরে আপনি সম্ভবত বেশিরভাগের জন্যই ভালমুলক মুছে ফেলেন।

এছাড়াও বুটলোডারকে JTAG প্রোগ্রামারটির কোন ডিফল্ট সেটিংস সাধারণত স্ক্রু আপ করে তা কাজ করতে দেয় এমন ফিউজগুলি সেট করতে হবে।

এটি মেরামত করার জন্য আপনাকে জেটিএইচ দ্বারা চূড়ায় বুটলয়েডারের পিছনে (আনপ্রেগমেন্টযুক্ত এখনও চিপ থেকে নেওয়া) প্রোগ্রাম করতে হবে এবং ফিউজগুলি সঠিকভাবে সেট করতে হবে।

আমি অনেক আগে JOT ব্যবহার বন্ধ করে দিয়েছিলাম যেমন BOOTLOADER + FLIP অনেক বেশি আরামদায়ক এবং দ্রুত। আপনি বিন / এলফের পরিবর্তে হেক্স ব্যবহার করছেন তা নিশ্চিত করুন এবং রিসেট শর্ত শেষ হওয়ার পরে বুটলয়েডার শর্তটি এখনও সত্য।

এইভাবে আমি আরএস 232 এ এফএলআইপি ব্যবহার করি:

avr32-objcopy -O ihex AT32UC3L064.elf AT32UC3L064.hex
Batchisp -device AT32UC3L064 -hardware RS232 -port COM1 -baudrate 115200 -operation onfail abort memory flash erase f blankcheck loadbuffer AT32UC3L064.hex program start reset 0

যেখানে avr32-objcopyএভিআর স্টুডিও লোন ফোল্ডার এবং এফএলআইপি থেকে এসেছে Batchisp। আপনার প্রকল্পের সাথে মেলে আপনার কেবল ফাইলের নাম এবং এভিআর চিপ আইডি এবং সিওএম পরিবর্তন করতে হবে।

আপনার যদি এটির প্রয়োজন হয় তবে আপনি ইউএসবিও ব্যবহার করতে পারেন:

avr32-objcopy -O ihex cpp_trampoline.elf AT32UC3A3256.hex
Batchisp -device AT32UC3A3256 -hardware USB -operation onfail abort memory flash erase f blankcheck loadbuffer AT32UC3A3256.hex program start reset 0

ট্রাম্পোলাইনটি অবশ্যই লিঙ্কারে (প্রকল্পের বৈশিষ্ট্যগুলিতে) সক্ষম করা আবশ্যক: আমার কনফিগারেশনটি দেখতে কেমন:

linker: -nostartfiles -Wl,--gc-sections -Wl,-e,_trampoline -mpart=uc3l032 -Wl,--gc-sections --direct-data --rodata-writable

আমি এখনও এভিআর 32 স্টুডিও ২.7.০ ব্যবহার করছি যেহেতু নতুন সংস্করণগুলি হর্স বিষ্ঠা তাই তাদের মধ্যে কনফিগারেশনটি আলাদা হতে পারে।

[সম্পাদনা 1] অতিরিক্ত তথ্য

জন্য UC3L0AVR32_PIN_PA20 কিছু হয় রেসিন জেনেরিক ক্লক (32KHz হওয়া উচিত কিন্তু এটি চিপ থেকে চিপ বেশ অনেক prescalers সঙ্গে ক্রমাঙ্কন ছাড়া পরিবর্তিত হয়) চিপটি থেকে যতক্ষণ না তার উদ্দেশ্য পরিবর্তিত হয় GPIO তাই অন্য কিছু বা ~ 27KHz ঘড়ি সঙ্গে কিছুই করার আছে USART । বিটিডব্লিউ clock ঘড়িটি 3.3V দ্বারা চালিত এবং চিপ 1.98V কোর ভাল জন্য ভাজা থাকলেও উত্পন্ন করে ....

AVR32_PIN_PA11রিলিজ রিসেটের আগে বুটলোডার শর্তটি শূন্যে সেট আপ হয়ে থাকে (যদি না আপনি নিজের ফার্মওয়্যারটিতে নিজের ডিএফইউ শর্তাদি / কমান্ডগুলি প্রয়োগ না করেন ) সুতরাং একটি সম্ভাবনা এমন একটি আরসি তৈরি করছে যা আপনি কম রাজ্যে বিচ্ছিন্ন করে দিন, এবং এটি চার্জ দেওয়ার আগে পুনরায় সেট করুন ... অথবা কিছু এফএলআইপি / এফএলওপি গেট বা জাম্পার ব্যবহার করুন ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.