12 votos

No se puede obtener trabajando en un PCB personalizado con AT32UC3L del gestor de arranque

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?


1voto

electricviolin Puntos 51

Tal vez intente usar un programador AVR y el IDE de Arduino si eso es posible. Sé que funciona bien con los microcontroladores de la serie a.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X