मैंने हाल ही में एक क्लाइंट के लिए एक पीसीबी डिजाइन किया है, हार्डवेयर और सॉफ्टवेयर के साथ सब कुछ ठीक है (एप्लिकेशन काम कर रहा है जैसा कि माना जाता है)। अब हमें माइक्रोकंट्रोलर के अंदर प्रोग्राम को अपडेट करने की आवश्यकता का सामना करना पड़ रहा है, लेकिन चूंकि ये पीसीबी दुनिया भर में विभिन्न स्थानों पर स्थापित हैं, इसलिए बूटलोडर को स्थापित करना और एप्लिकेशन द्वारा उपयोग किए गए समान यूएआरटी का उपयोग करना सही होगा।
बोर्ड विवरण
- AT32UC3L032
- एक UART पहले से ही बोर्ड और पीसी के बीच संचार करता था
- आवेदन के लिए 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
उपकरणों का इस्तेमाल
- विंडोज एक्स पी
- Atmel स्टूडियो 6.1
- AVRONE प्रोग्रामर
कई घंटों की खोज के बाद, मैंने Atmel सॉफ्टवेयर फ्रेमवर्क DFU, ASF 3.14.0.834 में प्रदान किया है। यह आशाजनक लग रहा था, मैं प्रदान किए गए उपकरणों का उपयोग करके इसे अपने बोर्ड पर स्थापित करने में सक्षम था:
- AVR32Studio 2.6.0
- program_at32uc3l-uart-isp-1.0.1.cmd (ASF के साथ स्क्रिप्ट प्रदान की गई)
- फ्लिप 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.
मैंने UART से ऑसिलोस्कोप आरएक्स और TX के साथ परीक्षण किया है, डेटा बोर्ड में जा रहा है लेकिन पीसी को एक 27kHz वर्ग तरंग प्राप्त हो रही है (UART से डेटा नहीं हो सकता है क्योंकि कोई स्टॉप बिट या कुछ भी नहीं है, आवृत्ति भी शायद इसके लिए समान नहीं है 115200bps)।
अधिक शोध के बाद, मैंने इन मूल्यों को प्राप्त करने के लिए कॉन्फ़िगर किया है Word1
और Word2
फ़ाइल में at32uc3l-uart-isp_cfg-1.0.1.dat
:
- वर्ड 1: 0xE11E0024
- वर्ड 2: 0x494F81AA
PA01
आईएसपी में प्रवेश करने के लिए विकल्प के रूप में पिन का उपयोग करने के लिए ।
इसके अलावा, Atmel स्टूडियो 6.1 में DFU के स्रोत को लोड किया और देखा कि वे एक ही सीरियल पोर्ट कॉन्फ़िगरेशन का उपयोग नहीं कर रहे थे, इसलिए मेरे आवेदन के लिए उसी के साथ बदल गया। इसके अलावा DFU के मुख्य के अंदर कुछ एल ई डी टॉगल जोड़ा गया।
बोर्ड में बूटलोडर को अपडेट करने के बाद, कोई एल ई डी नहीं बदलता है, वही टाइमआउट, समान स्क्वायर वेव।
क्या मैं कुछ भूल रहा हूँ?