¿Tengo que usar un reloj externo para la programación de ATmega ISP después de cambiar los bits de fusible?

3

Después de programar un microcontrolador ATmega a través de la interfaz ISP (SPI) y cambiar los bits de fusible relacionados con el reloj , me gustaría reprogramarlo de nuevo. ¿Tendré que conectarlo a un reloj externo ahora para hacerlo, o siempre podré programarlo cronometrando solo a través de la línea SCLK de SPI, sin reloj externo (como en la imagen de abajo)?

(en la imagen de abajo, el programador es una Raspberry Pi)

    
pregunta akavel

2 respuestas

1

Hmh, encontré una respuesta a otra pregunta similar :

  

Usted no necesita ningún circuito de cristal para programar un AVR en blanco fuera de línea (ya que se está ejecutando desde el oscilador interno), pero si intenta reprogramar un chip fusionado para un cristal externo, necesitará un cristal y un condensador de carga comparables en el circuito (a menos que use un modo de programación de alto voltaje).

por ahora entiendo que la respuesta es que no puedo usar el simple circuito anterior después de cambiar los bits de fusible, tengo que extenderlo con un reloj que coincida con la configuración de los bits de fusible.

    
respondido por el akavel
1

Depende de lo que configuró los bits de fusible de la fuente del reloj. La configuración predeterminada generalmente es ejecutar un oscilador interno de 8MHz dividido a 1MHz; otras configuraciones incluyen reloj externo (generalmente en el pin XTAL1) y varios modos de cristal (con un resonador de cristal en XTAL1 y XTAL2). En cada uno de estos modos, se admiten velocidades de reloj hasta CC, por lo que el chip se congelará de manera efectiva si no recibe una entrada de reloj. Sin embargo, en el modo de oscilador XTAL2 es esencialmente una amplificación invertida de la entrada XTAL1 solo para que el resonador oscile, y por lo tanto, simplemente puede introducir un reloj en XTAL1 en todos los casos. Simplemente se ignorará si se utiliza el oscilador interno.

Las dos combinaciones que causan problemas son:

  1. Si actualmente no está programando el chip, y se ejecuta desde el oscilador interno, podría configurar el pin XTAL1 como salida. Si también lo está conduciendo externamente, este conflicto puede freír los buffers de E / S.
  2. La velocidad del reloj en el AVR debe ser más rápida que el reloj SPI. Esto puede significar que la entrada XTAL1 debe ser considerablemente más rápida (por ejemplo, hasta 3 * 512 veces en un ATmega644).
respondido por el Yann Vernier

Lea otras preguntas en las etiquetas