¿Cómo programar ATmega con fusibles configurados a 32.768 kHz de reloj?

1

He estado programando mis ATmega328P usando un programador USBasp por un tiempo. Para mi nuevo proyecto, quería usar un oscilador de 32.768 kHz como un reloj externo, así que programé el ATmega a los fusibles apropiados. Lamentablemente, a partir de este momento, no puedo comunicarme con el chip en absoluto, avrdude me dice que el objetivo no responde (error rc = -1). Después de algunas investigaciones, encontré algunos consejos que me dicen que conecte el oscilador (y los condensadores) a las entradas XTAL del chip y luego programe el chip. Lo intenté, en vano. Tenga en cuenta que también usé el interruptor -B 2000 de avrdude, que ralentiza la programación lo máximo posible, a 500Hz, por lo que la velocidad de programación no debería ser un problema.

En un intento desesperado por rescatar el chip, probé con Arduino como ISP, pero los resultados fueron muy similares.

Preguntas:

  1. ¿Cómo rescatar a este ATmega en particular? ¿Es el programador de alto voltaje la única forma de salir de esto? No tengo una, así que otras opciones son bienvenidas.

  2. Para el futuro: ¿cómo debo programar los fusibles de reloj lento para evitar este problema? No tiene sentido para mí: si el programador no trabaja con estos fusibles, ¿por qué hay una configuración de fusible en primer lugar?

pregunta akrasuski1

2 respuestas

0

Está bien, tengo esto.

Fue mucho más estúpido de lo que pensaba, estoy usando una placa de programación hecha por mí misma. Ya que soy bastante barato, el mismo se usa para ATmega de 28 pines y ATtiny de 8 pines; tienen MISO, MOSI y SCK en el mismo lugar (si cambio el chip dos pines hacia arriba), y los otros pines ( RESET, GND y VCC) no entran en conflicto entre sí. La cuestión es que había modificado mi tablero para adaptarlo a ATtiny recientemente, y esta es la primera vez que programé un ATmega desde entonces. Resulta que, en mi tablero, el RESET de ATtiny entra en conflicto con la entrada del oscilador de ATmega, por lo que mi oscilador, incluso si estaba conectado, estaba en corto al RESET, por lo que no pudo producir una señal significativa.

Después de desoldar esa conexión, todo funciona bien. Supongo que solo añadiré un puente para la programación de ATtiny y eso es todo.

    
respondido por el akrasuski1
1

Incluso cuando se fusiona para usar un cristal, el ATmega328P aceptará una señal de reloj inyectada en XTAL1 cuando sea programada por el ISP. El USBasp no proporciona tal señal, por lo que deberá configurar otro circuito para generar una señal de reloj lo suficientemente rápida para la programación.

El programador debería trabajar con un reloj tan lento, suponiendo que el programador también use un reloj lento. Verifique que el cristal funcione normalmente.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas