¿Es obligatorio usar el oscilador ext en el diseño del circuito arduino?

3

Estoy diseñando un circuito para arduino. Usaré Atmega328p , y conectaré algunos encabezados masculinos para el acceso de pin y 6 encabezados masculinos para la programación (MOSI, MISO, SCK, RST, Vcc, GND). Por eso es obligatorio utilizar ext oscilador. Sé que la MCU también puede funcionar con el oscilador int, pero no estoy seguro de que, al programarlo a través de USBasp , funcionará o no. Escuché en algún lugar que, mientras se programa, se requiere el uso de USBasp ext osciallator. Entonces, ¿se requiere o no un oscilador ext.?

    
pregunta user46573544

2 respuestas

2

La fuente de reloj predeterminada para el atmega328p es el oscilador RC interno a 8MHz con el fusible CKDIV8 programado. Consulte la página 28 aquí .

Absolutamente puede programar la parte usando el oscilador RC interno. Después de que toda la parte se envía con esta configuración por defecto. Suponiendo que desea programar la parte utilizando el IDE arduino y que todo se comporte como se espera, deberá cambiar algunas configuraciones en su archivo arduino boards.txt para que se seleccione la fuente de reloj interna (como usted sabe, las tablas arduino que usan el atmega328 se envía con un oscilador externo y el archivo boards.txt por defecto le indica a la parte que use el oscilador externo) y luego quema el cargador de arranque. En boards.txt tendrás que modificar los fusibles para seleccionar la fuente de reloj adecuada. Una solución fácil es modificar la configuración de la placa, ya que esa placa usa el mismo chip. Copie / pegue todas las configuraciones de uno para que tenga una nueva entrada en el tablero (llámela suUno o algo así) en el archivo. La placa Uno tiene las siguientes configuraciones:

uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.build.f_cpu=16000000L

Querrás modificar eso para:

yourUno.bootloader.low_fuses=0xe2
yourUno.bootloader.high_fuses=0xda
yourUno.build.f_cpu=8000000L

Esto debería seleccionar el RC interno de 8MHz como su fuente de reloj. Tenga en cuenta que, según los comentarios a continuación, hay otras formas de hacerlo si está de acuerdo con un reloj de 1 MHz.

    
respondido por el Doov
2

Sólo se requiere un oscilador externo durante la programación si los fusibles están programados para requerir uno durante la operación normal. Sin embargo, no hay ningún requisito para que sea un cristal; es posible inyectar un reloj al menos 3 veces más rápido que el reloj de programación a través de XTAL1 si se requiere uno. Consulte la sección "Programación de la memoria", la subsección "Descarga en serie" de la hoja de datos de ATmega328P para obtener más información.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas