Son zamanlarda bir istemci için bir PCB tasarladım, her şey donanım ve yazılım ile iyi durumda (uygulama olması gerektiği gibi çalışıyor). Şimdi mikrodenetleyici içindeki programı güncelleme ihtiyacıyla karşı karşıyayız, ancak bu PCB'ler dünyanın farklı yerlerine kurulduğundan, bir önyükleyici yüklemek ve uygulama tarafından kullanılanla aynı UART'ı kullanmak mükemmel olurdu.
Yönetim Kurulu açıklaması
- AT32UC3L032
- Bir UART zaten kart ve PC arasında iletişim kurmak için kullanıldı
- Uygulama için birkaç I / O'
- Birkaç durum LED'i
İlgili PIN'ler ve yapılandırma
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
Kullanılan aletler
- Windows XP
- Atmel Studio 6.1
- AVRONE programcısı
Saatlerce arama yaptıktan sonra, ASF 3.14.0.834'te sağlanan Atmel Software Framework DFU'yu buldum. Bu umut verici görünüyordu, sağlanan araçları kullanarak tahtaya yükleyebildim:
- AVR32Studio 2.6.0
- program_at32uc3l-uart-isp-1.0.1.cmd (ASF ile birlikte sağlanan komut dosyası)
- 3.4.7 Flip (toplu iş)
İlk başta, kullanılan .bin
ve .dat
komut dosyası kullanarak yüklü, ASF ile sağlanır. Şimdi batchisp komutunu kullanarak uygulamayı yüklemeye çalışıyorum:
batchisp.exe -device at32uc3l032 -hardware RS232 -port COM1 -baudrate 115200 -operation erase f memory flash blankcheck loadbuffer myapp.hex program verify
Ama her zaman:
Device selection.................... PASS
Hardware selection.................. PASS
Opening port........................ PASS
Synchronzing target................. FAIL Timeout error.
Ben UART osiloskop RX ve TX ile test ettik, veri tahtaya gidiyor ama PC 27 kHz kare dalga alıyor (durma biti veya herhangi bir şey olmadığı için UART veri olamaz, ayrıca frekans muhtemelen aynı değildir 115200bps).
Daha fazla araştırmadan sonra, bu değerleri almak için dosya Word1
ve yapılandırmayı yaptım :Word2
at32uc3l-uart-isp_cfg-1.0.1.dat
- Kelime1: 0xE11E0024
- Word2: 0x494F81AA
İSS'ye PA01
girmek için raptiyeyi seçenek olarak kullanmak için.
Ayrıca, Atmel Studio 6.1'de DFU kaynağını yükledi ve aynı seri bağlantı noktası yapılandırmasını kullanmadıklarını fark ettim, bu yüzden uygulamamla aynı şekilde değişti. Ayrıca DFU'nun ana içine bazı LED'ler arasında geçiş yaptı.
Karttaki önyükleyiciyi güncelledikten sonra hiçbir LED değişmez, aynı zaman aşımı, aynı kare dalga.
Bir şey mi kaçırıyorum?