Arduino tem relógio de hardware interno
Sim, Arduino tem um relógio de hardware interno. As placas de Arduino UNO têm dois chips de microcontrolador a bordo um é atmaga328p e o segundo é atmaga16u2. Ambos os chips de microcontrolador têm um relógio interno de 8MHz. ATMEGA16U2 é usada para comunicação serial entre a placa Arduino e o computador, enquanto o ATMEGA328P é o principal controlador da placa Arduino usada para construção lógica.
Fonte interna do relógio de hardware
Arduino tem duas fontes para relógios internos de hardware, conforme descrito acima. Ambos são usados para dirigir dois microcontroladores separados.
1. Relógio ATMEGA328P
O controlador Arduino UNO ATMEGA328P normalmente usa um oscilador de cristal externo para o seu relógio, que é de 16 MHz, mas também possui um gerador de relógio interno de 8MHz. Podemos configurar o oscilador interno do microcontrolador como fonte de sinal de relógio de 8MHz.
ATMEGA328P vem com um oscilador RC com um sinal de relógio de 8MHz. Seu fusível ckdiv8 é programado de acordo com a frequência de 8MHz, o que resulta em 1.Relógio do sistema 0MHz. Esta fonte de relógio padrão oferece liberdade aos usuários que podem projetar o relógio desejado com qualquer interface de programação. O valor máximo é definido para o tempo de inicialização do microcontrolador ATMEGA328P.
Por padrão, as configurações seguintes do relógio são fornecidas no microcontrolador ATMEGA328P e uma fonte de relógio externa também pode ser anexada:
Oscilador interno calibrado
Oscilador RC interno fornece um microcontrolador 8.0MHz Clock. Esta fonte do relógio depende da temperatura e dos níveis de tensão, o que significa que uma pequena mudança nessas condições pode afetar o desempenho do microcontrolador. Para selecionar este relógio para o microcontrolador, geralmente os fusíveis CKSEL são programados. Se selecionarmos o relógio dele, o relógio funcionará sem qualquer fonte externa após a faixa de frequência, poderá ser alcançada programando fusíveis CKSEL como:
Faixa de frequência (MHz) | Cksel3… 0 |
7.3-8.1 | 0010 |
Oscilador interno de 128kHz
128KHz também é um relógio padrão para o microcontrolador ATMEGA328. É um oscilador de baixa potência e não é projetado para requisitos de alta precisão, sua frequência é ideal para a temperatura de 3V e 25 graus C. Para selecionar este relógio, temos que definir o valor de fusíveis CKSEL para "0011". A faixa de frequência a seguir pode ser obtida por fusíveis CKSEL:
Faixa de frequência (KHZ) | Cksel3… 0 |
128kHz | 0011 |
Fonte externa do relógio
ATMEGA328P foi projetada de tal maneira que para aumentar sua velocidade de execução de instruções, podemos anexar uma fonte de relógio externa de 16MHz-20MHz, como o ressonador de cerâmica, usado em Arduino Uno.
Para dirigir o microcontrolador usando fontes de relógio externas, temos dois pinos disponíveis para um oscilador xttal1 e xttal2. O Arduino Uno usa esses dois pinos do ATMEGA328P para conectar um ressonador de cerâmica externo por seu requisito de frequência, pois essa fonte de relógio é mais eficiente que o relógio interno de 8 MHz.
Os pinos 9 e 10 são usados para conectar os dois pinos do oscilador externo. A tabela a seguir mostra a configuração do pino para fonte externa do relógio:
Pino 9 | XTAL | Oscilador externo | Conecte o pino 9 do microcontrolador a um pino do oscilador externo |
Pino 10 | XTAL | Externo Oscilador | Conecte o pino 10 do microcontrolador ao segundo pino do oscilador externo |
2. Relógio ATMEGA16U2
Arduino Uno usa o ATMEGA16U2 como microcontrolador para comunicação serial entre Arduino e computador. Este microcontrolador atua como um conversor USB para TTL. Como o ATMEGA328P, este microcontrolador também vem com um oscilador RC interno de 8MHz e um relógio do sistema de 1MHz. O tempo de inicialização está definido como valor máximo. Todas essas configurações ajudam os usuários a programá -lo com qualquer interface de programação e projetar sua fonte de relógio necessária ou conectar um oscilador externo para aumentar a eficiência do microcontrolador.
Por padrão, as configurações seguintes do relógio são fornecidas no microcontrolador ATMEGA16U2 e uma fonte de relógio externa também pode ser anexada:
Oscilador interno calibrado
ATMEGA16U2 tem um oscilador RC embutido que pode dar ao Arduino até 8MHz de relógio. Também depende da temperatura, portanto, a variação de calor e tensão pode afetar o desempenho do microcontrolador. Este relógio pode ser selecionado pela programação de fusíveis CKSEL internos. Durante a redefinição, o registro Osccal atinge seu valor padrão e não requer nenhuma fonte de relógio externo quando selecionado com o valor padrão de 8MHz do oscilador. A seguir, estão os modos de operação para osciladores internos calibrados:
Faixa de frequência (MHz) | Cksel3… 0 |
7.3-8.1 | 0010 |
Pll
O PLL é usado para gerar uma alta faixa de frequência, especialmente para comunicação serial USB entre Arduino e computador. Pode gerar até 48MHz de frequência. O PLL recebe a baixa frequência de entrada de seu pino XTAL ou qualquer outra fonte de relógio externa, como no Arduino Uno Crystal Ocralator.
Fonte externa do relógio
Da mesma maneira que no microcontrolador ATMEGA328P, também podemos configurar um relógio externo com atatega16u2. Ao usar uma fonte de relógio externa, as mudanças repentinas na frequência do relógio devem ser evitadas para operação suave do MCU. No Arduino Uno Crystal Ocralator é usado como fonte de relógio externo para microcontrolador. O oscilador de cristal é mais eficiente do que seu ressonador de cerâmica concorrente devido a baixo custo e alta tensão e tolerância à frequência. Os fusíveis CKSEL devem ser programados para executar um oscilador externo.
A fonte externa do relógio pode ser conectada abaixo da configuração:
Pino 1 | XTAL1 | Oscilador externo | Entrada para o amplificador do oscilador e relógio interno |
Pino 2 | XTAL2/PC0 | Oscilador externo | A saída do oscilador quando ativada pelo fusível pode ser usada como pino de E/S também |
Conclusão
As placas Arduino são muito flexíveis em termos de fontes de relógio. Arduino tem dois microcontroladores a bordo que são atmaga328 e atatega16u2. Ambos os microcontroladores vêm com um relógio interno de 8 MHz, mas para obter a produção máxima e o aumento do desempenho, usamos um relógio externo de 16MHz para ambos separadamente. Aqui discutimos como os microcontroladores Arduino podem ser usados com o oscilador interno do relógio e destacamos a maneira possível de adicionar um relógio externo.