Tôi đã thiết kế PCB cho một khách hàng gần đây, mọi thứ đều ổn với phần cứng và phần mềm (ứng dụng đang hoạt động như mong muốn). Bây giờ chúng tôi đang phải đối mặt với sự cần thiết phải cập nhật chương trình bên trong vi điều khiển, nhưng vì các PCB này được cài đặt ở những nơi khác nhau trên thế giới, sẽ rất hoàn hảo để cài đặt bộ tải khởi động và sử dụng cùng một UART như ứng dụng đã sử dụng.
Mô tả bảng
- AT32UC3L032
- Một UART đã được sử dụng để liên lạc giữa bo mạch và PC
- Cặp đôi I / O cho ứng dụng
- Cặp đèn LED nhà nước
PINS và cấu hình có liên quan
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
Công cụ được sử dụng
- Windows XP
- Xưởng Atmel 6.1
- Lập trình viên
Sau nhiều giờ tìm kiếm, tôi đã tìm thấy DFU Khung phần mềm Atmel, được cung cấp trong ASF 3.14.0.834. Điều đó có vẻ hứa hẹn, tôi đã có thể cài đặt nó trên bảng của mình bằng các công cụ được cung cấp:
- AVR32Studio 2.6.0
- chương trình_at32uc3l-uart-isp-1.0.1.cmd (tập lệnh được cung cấp với ASF)
- Lật 3.4.7 (lô)
Lúc đầu, tôi đã sử dụng .bin
và .dat
cung cấp ASF, được cài đặt bằng tập lệnh. Hiện đang cố gắng tải lên ứng dụng bằng lệnh batchisp:
batchisp.exe -device at32uc3l032 -hardware RS232 -port COM1 -baudrate 115200 -operation erase f memory flash blankcheck loadbuffer myapp.hex program verify
Nhưng luôn luôn nhận được:
Device selection.................... PASS
Hardware selection.................. PASS
Opening port........................ PASS
Synchronzing target................. FAIL Timeout error.
Tôi đã thử nghiệm với máy hiện sóng RX và TX từ UART, dữ liệu sẽ được đưa lên nhưng PC đang nhận được sóng vuông 27kHz (không thể là dữ liệu từ UART vì không có bit stop hay bất cứ thứ gì, tần số có lẽ không giống nhau đối với 115200bps).
Sau khi nghiên cứu thêm, tôi đã cấu hình Word1
và Word2
trong tệp at32uc3l-uart-isp_cfg-1.0.1.dat
để nhận các giá trị sau:
- Word1: 0xE11E0024
- Word2: 0x494F81AA
Để sử dụng pin PA01
làm tùy chọn để nhập vào ISP.
Ngoài ra, đã tải nguồn DFU trong Atmel Studio 6.1 và nhận thấy họ không sử dụng cùng một cấu hình cổng nối tiếp, vì vậy đã thay đổi giống như ứng dụng của tôi. Cũng đã thêm một số đèn LED chuyển đổi bên trong chính của DFU.
Sau khi cập nhật bộ tải khởi động trong bảng, không có đèn LED thay đổi, cùng thời gian chờ, cùng một sóng vuông.
Tui bỏ lỡ điều gì vậy?