¿El pin de reinicio de Atmega328 no funciona después de volver a grabar el cargador de arranque Arduino?

2

Para un poco de fondo es posible que desee leer

ATmega328 con Optiboot no es compatible con Arduino?

Pero voy a resumir de todos modos. Tengo algunos chips Atmega328 que se enviaron con el cargador de arranque optiboot grabados que parecían dañados. Para que los chips funcionen, compré y usé un USBASP y volví a quemar el cargador de arranque. El proceso funciona bien y los chips se reinician y ejecutan el boceto intermitente sin problema, pero cuando jalo el pin de reinicio a tierra, parece que el chip no se reinicia y ejecuta el cargador Arduino. Mientras el pin de reinicio se mantiene en el suelo, el boceto dejará de ejecutarse y cuando se suelte, el boceto parpadeará comenzará sin demora.

Si se conecta el pin de reinicio a DTR de mi USB-TTL, el boceto dejará de ejecutarse al intentar cargar un boceto a través del IDE de Arduino y luego fallará la carga con un error no conectado. Usando el USBASP puedo volver a grabar el gestor de arranque y parece que se reinicia correctamente

El restablecimiento funcionó antes de volver a grabar el cargador de arranque. Los circuitos de restablecimiento que utilizo funcionan en los chips atmega168 que tengo.

Para los cargadores de arranque, he intentado destellar el chip para usar el reloj interno enlace y como un lilypad y duemilanove pero el pin de reinicio todavía no parece funcionar correctamente.

También utilicé el software que venía con USPASP y leí los bits Fuse & lock y los fusibles High / Low se ven bien, no estoy seguro de los bits extendidos y de bloqueo.

lee el chip; Bajo = E2, Alto = DA, Ext = FD, Bloqueo = CF

lee board.txt;

atmega328bb.bootloader.low_fuses = 0xE2
atmega328bb.bootloader.high_fuses = 0xDA
atmega328bb.bootloader.extended_fuses = 0x05
atmega328bb.bootloader.path = arduino: atmega
atmega328bb.bootloader.file = ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits = 0x3F
atmega328bb.bootloader.lock_bits = 0x0F

    
pregunta GR0B

2 respuestas

2

Hay un fusible en los AVR llamado RSTDISBL, que deshabilita la funcionalidad del pin de reinicio y le permite usarlo como un pin de E / S normal. Si programa este fusible, entonces los reinicios obviamente no funcionarán y no podrá programar el chip a través de ISP. Esto también significa que no puede desprogramar el fusible a través de métodos normales.

Si este es el caso, puede desprogramar este fusible a través de la Programación de alto voltaje. Si tiene un tablero AVR Dragon a mano, puede hacerlo fácilmente conectando los pines correctos en el encabezado HVSP a su chip. Sin embargo, tenga cuidado si está haciendo esto en el circuito, ya que las opciones de programación de alto voltaje usan 12 voltios, lo que puede freír el resto del circuito. Lo mejor es programarlo exclusivamente en el dragón a través de un zócalo ZIF o similar.

Aquí hay un video de Atmel sobre cómo desprogramar el fusible a través de la programación paralela de alto voltaje: enlace

    
respondido por el David Högberg
-1

Este es un problema de fusibles. El pin de reinicio probablemente esté apagado por una configuración incorrecta del fusible. Busque "calculadora de fusibles" de Google para obtener ayuda o consulte la hoja de datos.

    
respondido por el Brad

Lea otras preguntas en las etiquetas