Eu tenho um projeto que acho que seria mais adequado para um ATMega328P. No entanto, em todos os projetos simples que eu já vi, as pessoas sempre conectam um oscilador externo de 16 MHz. Pelo que posso ver, ele deve ter um oscilador interno de 8MHz. Meu projeto não exige muito poder de processamento, nem o tempo precisa ser muito preciso (exceto para um UART e I2C). Eu também tenho um programador, então não preciso me preocupar com os gerenciadores de inicialização.
Existe alguma razão para eu usar um oscilador externo?
fonte
Como você está usando um UART, é recomendável um oscilador de cristal. Se não fosse por isso, você poderia usar o oscilador interno. Alguns MCUs possuem osciladores internos de fábrica, que podem ser adequados para a operação UART.
fonte
"Não é sensível ao tempo". O UART é muito sensível ao tempo. Você obterá o lixo completo se não for sincronizado adequadamente.
Opção 1: Use um cristal normal. Mude o fusível de seleção do relógio adequadamente. A seleção de cristais depende de qual transmissão você deseja usar / com que rapidez você deseja que isso ocorra. Existem "cristais mágicos" que fornecerão 0% de erro nas taxas padrão (se forem fabricadas perfeitamente). Consulte as tabelas na Seção 20 [USART0] para obter mais informações (você leu a ficha técnica .... certo ???) :).
Opção 2: Você pode calibrar o oscilador interno usando um cristal de 32khz, se a energia for uma preocupação. Com 32khz, você pode obter correntes uA no modo de suspensão (eu as reduzi para ~ 2uA). É necessário configurar uma rotina de calibração, que envolve iniciar / parar os cronômetros e alternar o timer2 para o modo assíncrono.
O código 328P pode diferir ... essa função atualmente funciona em 48/88 (com definições de F_CPU / baud apropriadas. É um pouco feio / não é refatorado completamente, mas eu aprendi melhor do que mexer com coisas que funcionam quando você está Pesquise no fórum da AVRFreaks por "sintonizar cristal de 32khz", algo assim: este é apenas um gostinho do que você entrará ... Não necessariamente o que vai funcionar.
fonte
Note-se também que um cristal demora muito tempo para começar. Na verdade, isso é devido à sua precisão: ele apenas usa energia de uma banda de frequência muito estreita. Isso pode ser um fardo para coisas operadas por bateria, nas quais você acorda o mcu por um período muito curto de vez em quando: esperar alguns ms com consumo total de energia para o cristal iniciar é uma perda líquida. Os ressonadores de cerâmica são mais precisos que o oscilador RC interno, mas menos que um cristal e iniciam de acordo.
É claro que um atmega de 16 MHz bebe muito mais suco e precisa de uma voltagem mais alta que uma de 8 MHz, mas os cristais de 8 MHz (ou menos, até 32 kHz) estão disponíveis; essa mera escolha também pode ser uma economia de energia.
fonte
Se você não precisa de muito ou tempo preciso, não há necessidade de um oscilador externo. Ao desmontar algumas impressoras antigas, vejo muitos ICs, mas não um único oscilador a bordo.
fonte
Acho que você já viu esta nota de aplicativo: AVR053: Calibração do oscilador RC interno .
Eu acho que, e a nota do aplicativo do comentário de @drxzcl acima, você deve ser capaz de decidir teoricamente o que é certo.
fonte