No se puede programar ATTiny85 fusionado para 32 kHz

2

Ahora, sé lo que estás pensando. Lo he estado pensando toda la noche también.

Sí, sé que con el diminuto fusible para un cristal de 32 kHz, necesitaré que el reloj SPI sea de 8 kHz o menos. Incluso eso, sin embargo, parece no estar funcionando.

Comencé con una placa de trabajo que tenía un cristal de 4 MHz y una fusión de dividir por 8. Primero utilicé un USBTiny para restablecer los fusibles a los valores predeterminados usando avrdude (62 DF FF). Luego, quité el cristal y sus condensadores de carga y puse un cristal de 32 kHz a 12.5 pF en su lugar. Luego utilicé el mismo USBTiny para configurar los fusibles en E6 DF FF. Y eso es todo lo que ella escribió.

Con un alcance, puedo ver los pines xtal y puedo ver 32 kHz. Así que sospecho que el reloj se está ejecutando.

Sabía que estaría agregando -B a la línea de comandos de avrdude. Antes de comenzar todo esto, experimenté con varios valores de -B y una lectura instantánea. Efectivamente, alterar -B hizo que la lectura del flash fuera más rápida o más lenta.

Pero he intentado agregar valores -B hasta 250 (que leí en esta página debería dar como resultado un Reloj SPI de 4 kHz). Nada. He intentado usar al menos 6 versiones diferentes del concepto AVR-as-ISP-but-slow-down con un Arduino Uno. Ninguno de ellos funciona. Todos ellos funcionan con una versión no modificada del dispositivo con el que comencé (con su cristal de 4 MHz y su fusión original), por lo que estoy seguro de que el cableado es correcto.

¿Qué otra cosa podría ser?

    
pregunta nsayer

1 respuesta

3

Lo descubrí.

Los cambios de fusible no borran el flash. El boceto anterior comenzó con el ajuste del preescalador del reloj del sistema en dividir por 8. El reloj prescaler sobrevive RESET.

La solución fue vincular temporalmente RESET baja. De esa manera tuve la oportunidad de conectar el programador y encenderlo sin que se realizara la configuración del prescaler. Subí un nuevo boceto sin el preescalado y ahora funciona.

    
respondido por el nsayer

Lea otras preguntas en las etiquetas