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.