Saya telah merancang PCB untuk klien baru-baru ini, semuanya baik-baik saja dengan perangkat keras dan perangkat lunak (aplikasi berfungsi sebagaimana mestinya). Sekarang kita menghadapi kebutuhan untuk memperbarui program di dalam mikrokontroler, tetapi karena PCB ini dipasang di berbagai tempat di dunia, itu akan sempurna untuk menginstal bootloader dan menggunakan UART yang sama seperti yang digunakan oleh aplikasi.
Deskripsi dewan
- AT32UC3L032
- Satu UART sudah digunakan untuk berkomunikasi antara board dan PC
- Pasangan I / Os untuk aplikasi
- Beberapa LED negara
PIN dan konfigurasi yang relevan
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
Alat yang digunakan
- Windows XP
- Atmel Studio 6.1
- Programmer AVRONE
Setelah mencari selama berjam-jam, saya menemukan Atmel Software Framework DFU, yang disediakan di ASF 3.14.0.834. Itu tampak menjanjikan, saya bisa menginstalnya di papan saya menggunakan alat yang disediakan:
- AVR32Studio 2.6.0
- program_at32uc3l-uart-isp-1.0.1.cmd (disediakan skrip dengan ASF)
- Balik 3.4.7 (batch)
Pada awalnya, saya menggunakan .bin
dan .dat
menyediakan ASF, diinstal menggunakan skrip. Sekarang mencoba mengunggah aplikasi menggunakan perintah batchisp:
batchisp.exe -device at32uc3l032 -hardware RS232 -port COM1 -baudrate 115200 -operation erase f memory flash blankcheck loadbuffer myapp.hex program verify
Tapi selalu mendapatkan:
Device selection.................... PASS
Hardware selection.................. PASS
Opening port........................ PASS
Synchronzing target................. FAIL Timeout error.
Saya sudah menguji dengan osiloskop RX dan TX dari UART, data akan naik tetapi PC menerima gelombang persegi 27kHz (tidak dapat data dari UART karena tidak ada halte atau apapun, frekuensi juga mungkin tidak sama untuk 115200bps).
Setelah penelitian lebih lanjut, saya telah mengkonfigurasi Word1
dan Word2
dalam file at32uc3l-uart-isp_cfg-1.0.1.dat
untuk mendapatkan nilai-nilai ini:
- Word1: 0xE11E0024
- Word2: 0x494F81AA
Untuk menggunakan pin PA01
sebagai opsi untuk masuk ke ISP.
Selain itu, memuat sumber DFU di Atmel Studio 6.1 dan memperhatikan bahwa mereka tidak menggunakan konfigurasi port serial yang sama, jadi diubah sama seperti aplikasi saya. Juga menambahkan beberapa LED untuk beralih di dalam utama DFU.
Setelah memperbarui bootloader di board, tidak ada LED yang berubah, batas waktu yang sama, gelombang persegi yang sama.
Apakah saya melewatkan sesuatu?