Tengo un proyecto que creo que sería el más adecuado para un ATMega328P. Sin embargo, en cada proyecto simple que he visto, las personas siempre conectan un oscilador externo de 16MHz. Por lo que puedo ver, debería tener un oscilador interno de 8MHz. Mi proyecto no requiere mucha potencia de procesamiento, ni el tiempo debe ser muy preciso (aparte de un UART e I2C). También tengo un programador, así que no necesito preocuparme por los gestores de arranque.
¿Hay alguna razón para que use un oscilador externo?
fuente
Como está utilizando un UART, sería aconsejable un oscilador de cristal. Si no fuera por eso, podría usar el oscilador interno. Algunas MCU tienen osciladores internos ajustados de fábrica, que pueden ser adecuados para la operación UART.
fuente
"No sensible al tiempo". UART es muy sensible al tiempo. Obtendrá basura completa si no se sincroniza adecuadamente.
Opción 1: usar un cristal normal. Cambie el fusible de selección de reloj adecuadamente. La selección de cristal depende de qué baudios desea usar / qué tan rápido desea que vaya esto. Hay "cristales mágicos" que le darán un 0% de error para las tasas estándar (si se fabrican perfectamente). Consulte las tablas en la Sección 20 [USART0] para obtener más información (ha leído la hoja de datos ... ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Opción 2: puede calibrar el oscilador interno utilizando un cristal de 32 kHz si la potencia es un problema. Con 32khz puede obtener corrientes uA en modo de suspensión (las he reducido a ~ 2uA). Sin embargo, debe configurar una rutina de calibración que implica iniciar / detener los temporizadores y alternar el temporizador 2 al modo asíncrono.
El código 328P puede diferir ... esta función actualmente funciona en 48/88 (con las definiciones apropiadas de F_CPU / baudios. Es un poco feo / no refactorizado por completo, pero he aprendido mejor que perder el tiempo con cosas que funcionan cuando estás en una fecha límite. Busque en el foro AVRFreaks "tune 32khz crystal" algo así. Esto es solo una muestra de lo que se va a meter ... No necesariamente lo que va a funcionar.
fuente
También debe tenerse en cuenta que un cristal tarda mucho en iniciarse. En realidad, eso se debe a su precisión: solo toma energía de una banda de frecuencia muy estrecha. Esto puede ser una carga para las cosas que funcionan con batería, donde se activa el mcu por un tiempo muy corto de vez en cuando: esperar un ms a plena potencia para que el cristal se inicie es una pérdida neta. Los resonadores cerámicos son más precisos que el oscilador RC interno pero menos que un cristal, y comienzan en consecuencia.
Por supuesto, un atmega de 16MHz bebe mucho más jugo y necesita un voltaje más alto que uno de 8MHz, pero hay disponibles cristales de 8MHz (o más bajos, hasta 32kHz); Esta mera elección también puede ser un ahorro de energía.
fuente
Si no necesita mucho tiempo o precisión, no hay necesidad de un oscilador externo. Al desmontar algunas impresoras antiguas, veo muchos IC pero no un solo oscilador a bordo.
fuente
Supongo que ya has visto esta nota de aplicación: AVR053: Calibración del oscilador RC interno .
Supongo que, y la nota de la aplicación del comentario de @drxzcl anterior, debería ser capaz de decidir teóricamente qué es lo correcto.
fuente