He diseñado un PCB para un cliente recientemente, todo está bien con el hardware y el software (aplicación está funcionando como se supone). Ahora nos enfrentamos a la necesidad de actualizar el programa en el interior del microcontrolador, pero ya que estas Pcb están instalados en diferentes lugares del mundo, sería perfecto para instalar un gestor de arranque y el uso de la misma UART como el usado por la aplicación.
Descripción de tabla
- AT32UC3L032
- Una UART ya se utiliza para la comunicación entre la junta y el PC
- Pareja de I/Os para la aplicación
- Par de LEDs de estado
Pertinentes de los PINES de configuración y
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
Herramientas utilizadas
- Windows XP
- Atmel Studio 6.1
- AVRONE programador
Después de muchas horas buscando, he encontrado el Atmel Framework de Software DFU, siempre en ASF 3.14.0.834. Que estaba buscando prometedor, fui capaz de instalarlo en mi tablero usando herramientas :
- AVR32Studio 2.6.0
- program_at32uc3l-uart-isp-1.0.1.cmd (la secuencia de comandos proporcionada con ASF)
- Flip 3.4.7 (batchisp)
En primer lugar, he utilizado .bin
y .dat
siempre con la ASF, instalado usando el script. Ahora tratando de aplicación de carga de uso de batchisp comando :
batchisp.exe -device at32uc3l032 -hardware RS232 -port COM1 -baudrate 115200 -operation erase f memory flash blankcheck loadbuffer myapp.hex program verify
Pero siempre consiguiendo :
Device selection.................... PASS
Hardware selection.................. PASS
Opening port........................ PASS
Synchronzing target................. FAIL Timeout error.
He probado con un osciloscopio RX y TX de la UART, datos que van a bordo, pero la PC está recibiendo un 27kHz de onda cuadrada (no pueden ser los datos de UART ya que no hay bit de parada o de cualquier cosa, también la frecuencia probablemente no es la misma para 115.200 bps).
Después de más investigación, he configurado Word1
y Word2
archivo at32uc3l-uart-isp_cfg-1.0.1.dat
para obtener estos valores :
- Word1 : 0xE11E0024
- Palabra 2 : 0x494F81AA
Para usar el pin PA01
como opción para entrar en el ISP.
También, se ha cargado la fuente de la DFU en Atmel Studio 6.1 y notó que no estaban usando la misma configuración del puerto serial, por lo que se cambió para el mismo que el de mi aplicación. También añadió algunos LEDs de alternancia en el interior de la principal de la DFU.
Después de actualizar el gestor de arranque en el tablero, no hay indicadores de los cambios, en el mismo tiempo de espera, la misma onda cuadrada.
Me estoy perdiendo algo?