AT90CAN128 Fallos aleatorios

0

Tengo la siguiente situación.

Un AT90CAN128 conectado a una pantalla LCD, varios botones, sensores, LED y motores. En la pantalla LCD se muestran los valores de los sensores y un menú que puede utilizar con un codificador rotatorio. El menú solo tiene algunas cadenas que se encuentran en la memoria flash.

Los fallos de funcionamiento pueden ser desde el uso de un botón que permite reiniciar, reinicios aleatorios o 1 o más caracteres en el menú se intercambian con otros caracteres. Por ejemplo, debería mostrarse "Nivel", pero en su lugar muestra "& evel".

Está en todos los controladores, 10 en este momento, pero las fallas varían según el controlador y también la cantidad de memoria de programa que se usa.

El AT90CAN128 está funcionando a 16MHz con 3.3V y la Detección de Brounout habilitada a 2.7V. Pero no es el Brownout que lleva a reiniciar.

Lo que necesito ahora son algunos consejos sobre qué podría causar tal comportamiento?

    
pregunta Orti

2 respuestas

0

Mi respuesta inicial es que está usando la MCU fuera de las especificaciones, que debe ser corregida primero. No está diseñado para funcionar a 16MHz a una tensión de alimentación de 3.3V. Consulte la hoja de datos para encontrar la frecuencia máxima en función de la tabla de voltaje de suministro.

    
respondido por el Justme
0

Sé de una máquina de café que mostró los mismos síntomas, tiene una pantalla LCD de 16x2 caracteres. 1 o 2 símbolos incorrectos, incluso mezclados, en cada salida. Pensé que era un error de hardware o simplemente demasiado ruido en las señales de I2C. (Retiramos la máquina después de notar que la cantidad de café producido por pulsación de tecla se volvió tan inconsistente como el sabor).

Supongo que su pantalla LCD está conectada a través de I2C o SPI, por lo que el siguiente paso lógico sería usar un analizador lógico + voltímetro y verificar el bus.

  1. Medir SNR
  2. Compruebe si los 'errores léxicos' ocurren antes, durante o después de la transmisión
  3. Verifique la documentación de MCU; debería haber una forma de leer el 'motivo de restablecimiento' en el firmware para ver si se ha restablecido el error de recuperación
  4. Verifique los voltajes; 2.7V, ya que el límite de caída de tensión parece muy alto (la mayoría de las MCU 3V3 funcionan a 2.7V)
  5. Dependiendo de si el bus es I2C o no, tal vez se está hundiendo demasiada corriente; asegúrese de que la fuente de alimentación sea adecuada y que los resistores de línea I2C estén ajustados para su implementación
respondido por el markus-nm

Lea otras preguntas en las etiquetas