Ayuda para cambiar la fuente del reloj del ATMega328 a un reloj externo

2

Quiero cambiar los bits de fusible del ATMega328 para que funcionen con un reloj externo (función / generador de señales) en lugar del cristal. La velocidad del reloj será de 8MHz. He intentado durante meses y todos mis intentos fracasaron porque bloqueé los chips debido a conexiones incorrectas o malentendidos de los bits.

Entiendo la parte en la que necesitamos configurar el CKSEL a 0000 (Reloj externo)

También entiendo cómo utilizamos avrdude y conectamos la entrada del reloj (generador de funciones) al XTAL1

Mi comando sería algo como esto:

avrdude -c avrispmk2 -p atmega328p -P COM6 -U lfuse:w:0xe0:m -U hfuse:w:0xde:m -U efuse:w:0xff:m

He comprado un ISP avrispmk2 y creo que en este momento tengo las conexiones adecuadas en la placa base.

Mi pregunta es, después de quemar el fusible de chips, ¿qué tipo de modificaciones necesito hacer en el archivo boards.txt?

¿Debo incluir los bits de fusible o algo adicional en boards.txt?

atmega328p.name=Mynewarduino
atmega328p.upload.protocol=avrispmkII
atmega328p.upload.maximum_size=32256
atmega328p.build.mcu= atmega328p
atmega328p.build.f_cpu=8000000L // clock speed is 8mhz now
atmega328p.build.core=arduino
atmega328p.build.variant=standard

¿Qué otra cosa debería estar en el archivo boards.txt personalizado?

Lo he intentado durante meses y agradecería cualquier respuesta o comentario. ¿Podría explicarme los pasos que puedo seguir sin arruinar otro chip?

Si entiendo el procedimiento correctamente, ¿son estos los pasos?

  1. Realice las conexiones adecuadas con ATmega328 y la placa Arduino sin chip, conéctese con el ISP (mkii)

  2. Queme los fusibles con la avrdude según los bits de los fusibles, mientras que el generador de señales está conectado a XTAL1 como 8MHz

  3. En boards.txt, cambie la F_CPU a 8000000L (o necesita crear una nueva entrada boards.txt?)

  4. Luego, cargue el boceto de parpadeo con Arduino IDE (¿necesito cargar usando el programador?)

Si me falta algún paso, apreciaría escucharlo.

    
pregunta aso

1 respuesta

1

Copie la entrada existente, cambiando el prefijo utilizado; cada entrada debe tener un identificador único, y el menú muestra los distintos valores de <identifier>.name para cada entrada. Solo cambie las variables que importan para el nuevo chip, en este caso el valor f_cpu .

Si no usa un gestor de arranque, cambie el parámetro maximum_size al tamaño completo del flash en el chip, es decir, 32768, y no olvide desprogramar el fusible BOOTRST. De lo contrario, establezca el valor para complementar los fusibles BOOTSZ y el tamaño del cargador de arranque compilado.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas