Fusibles modificados en ATtiny85, ahora la firma del dispositivo no es válida

1

Cambié los bits del fusible del reloj en mi ATtiny85. Ahora no puedo mostrarle nada ni cambiar el fusible. Me sale el error:

avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes!  Invalid device signature.
             Double check connections and try again, or use -F to override
             this check.

El comando de la línea de comandos que usé para cambiar el fusible inicialmente fue:

avrdude -p attiny85 -P com8     -c stk500v1    -b 19200 -U lfuse:w:0x62:m -U flash:w:main.hex

Ahora entiendo que configuré el fusible del reloj para una señal de reloj oscilante, no para un cristal. Leí aquí que puedo suministrar la señal de reloj necesaria desde un stk500 . Mi Arduino UNO funciona como programador (y en los argumentos de la línea de comandos, en realidad le digo a avrdude que es un stk500). ¿Cómo conecto / configuro UNO y ATtiny para suministrar la señal de reloj necesaria?

EDIT

No estoy tratando de usar la programación paralela de alto voltaje. Solo quiero proporcionar la señal del reloj externo que el AVR ahora espera para poder programarla como normal.

Tengo un segundo Arduino e intenté enviar una onda cuadrada de 16 MHz al pin 2 (CLK1) del ATtiny85, usando el código en esta página . Sin embargo, cuando intenté programar el AVR con ambos Arduinos conectados (tanto el reloj como el programador), obtuve el mismo error que antes. ¿Alguna idea de lo que está mal?

    
pregunta JellicleCat

3 respuestas

2

Los chicos de los foros de Arduino me ayudaron. Al parecer, mi código no estaba creando PWM. De lo contrario el concepto es sólido. Aquí está su respuesta y todos mis pasos.

    
respondido por el JellicleCat
1

En realidad, si el comando que ingresaste es realmente lo que usaste, entonces no configuraste el fusible para una fuente de reloj externa de ningún tipo. El byte de fusible bajo de 0x62 es la configuración de fusible predeterminada para el dispositivo ATtiny85 que usa el oscilador interno de 8MHz. Puede verificar esto fácilmente en la hoja de datos o en este sitio web, que es una excelente herramienta para descubrir los fusibles correctos:

enlace

Normalmente definirías la frecuencia de MCU en MAKEFILE, pero no estoy seguro de cómo funciona eso con Arduino. Entonces, no necesitaría especificar la velocidad en baudios (-b 19200) ya que esto sería resuelto por el programador y AVRDUDE.

Si realmente ya no puede comunicarse con el dispositivo, es posible que tenga que usar un HVSP para restablecer los fusibles a los valores predeterminados. He construido uno para este propósito ... no es tan difícil si sabes algo sobre los dispositivos AVR. Aquí hay un sitio web que detalla algunos de los pasos:

enlace

    
respondido por el Kurt E. Clothier
0

Mirando la sección de fusibles de la hoja de datos, estos fusibles pueden interesarle:

  • CKOUT : genera el reloj del dispositivo en el pin CLKO. Esto debería ser perfecto para suministrar al dispositivo dañado un reloj del Arduino en funcionamiento. Si aún hay problemas, intente proporcionar un reloj más lento (por ejemplo, 1 MHz)

  • RSTDISBL y SPIEN: te recomiendo que nunca toques estos fusibles; de lo contrario, necesitarás una programación en serie de alto voltaje para recuperar (ha estado allí)

respondido por el Vorac

Lea otras preguntas en las etiquetas