¿Arduino tiene reloj de hardware interno?

¿Arduino tiene reloj de hardware interno?
Arduino es una plataforma basada en microcontroladores diseñada para ejecutar diferentes instrucciones de acuerdo con los requisitos del proyecto. Para sincronizar toda esta operación se utiliza un reloj con microcontroladores. El reloj es como el latido de los tableros Arduino necesarios para generar pulsos de reloj. Estos pulsos de reloj sincronizan todas las operaciones internas y de hardware. Los microcontroladores dependen del reloj. El reloj determina cuán eficiente y rápido es un microcontrolador para ejecutar instrucciones. Ahora resaltaremos las fuentes de reloj utilizadas dentro de los tableros Arduino.

¿Arduino tiene reloj de hardware interno?

Sí, Arduino tiene un reloj de hardware interno. Los tableros Arduino Uno tienen dos chips de microcontrolador a bordo uno es ATMEGA328P y el segundo es ATMEGA16U2. Ambos chips de microcontroladores tienen un reloj interno de 8MHz. ATMEGA16U2 se utiliza para la comunicación en serie entre la placa y la computadora Arduino, mientras que ATMEGA328P es el controlador principal en la placa Arduino utilizada para la construcción lógica.

Fuente de reloj de hardware interno

Arduino tiene dos fuentes para relojes de hardware internos como se describe anteriormente. Ambos se utilizan para conducir dos microcontroladores separados.

  • Fuente de reloj ATMEGA328P
  • ATMEGA16U2 Fuente del reloj

1. ATMEGA328P Reloj

El controlador Arduino Uno ATMEGA328P normalmente utiliza un oscilador de cristal externo para su reloj que es de 16MHz, pero también tiene un generador de reloj interno de 8MHz. Podemos configurar el oscilador interno del microcontrolador como fuente de señal de reloj de 8MHz.

ATMEGA328P viene con un oscilador RC que tiene una señal de reloj de 8MHz. Su fusible CKDIV8 se programa de acuerdo con la frecuencia de 8MHz, lo que da como resultado un 1.Reloj del sistema de 0 MHz. Esta fuente de reloj predeterminada brinda libertad a los usuarios que pueden diseñar su reloj deseado con cualquier interfaz de programación. El valor máximo se establece para el tiempo de inicio del microcontrolador ATMEGA328P.

De manera predeterminada, las siguientes configuraciones del reloj vienen en el microcontrolador ATMEGA328P y también se puede conectar una fuente de reloj externa:

  • Oscilador RC interno calibrado
  • Oscilador interno de 128 kHz
  • Fuente de reloj externa

Oscilador RC interno calibrado

El oscilador RC interno proporciona un microcontrolador 8.Reloj de 0 mhz. Esta fuente de reloj depende de la temperatura y los niveles de voltaje, lo que significa que un ligero cambio en estas condiciones puede afectar el rendimiento del microcontrolador. Para seleccionar este reloj para el microcontrolador, generalmente se programan los fusibles CKSEL. Si seleccionamos, su reloj de configuración funcionará sin que se pueda lograr un rango de frecuencia de la fuente externa al programar los fusibles de CKSEL como:

Rango de frecuencia (MHz) Cksel3 ... 0
7.3-8.1 0010

Oscilador interno de 128 kHz

128 kHz también es un reloj predeterminado para el microcontrolador ATMEGA328. Es un oscilador de baja potencia y no está diseñado para requisitos de alta precisión, su frecuencia es óptima para 3V y 25 grados C de temperatura. Para seleccionar este reloj, tenemos que establecer el valor de los fusibles de cksel a "0011". El siguiente rango de frecuencia se puede obtener mediante fusibles CKSEL:

Rango de frecuencia (kHz) Cksel3 ... 0
128 kHz 0011

Fuente de reloj externa

ATMEGA328P está diseñado de tal manera que para aumentar su velocidad de ejecución de instrucciones, podemos unir una fuente de reloj externa de 16MHz-20MHz, como el resonador de cerámica, como se usa en Arduino Uno.

Para conducir el microcontrolador utilizando fuentes de reloj externas, tenemos dos pines disponibles para un oscilador Xtal1 y Xtal2. Arduino Uno usa estos dos pines de ATMEGA328P para conectar un resonador de cerámica externo para su requisito de frecuencia, ya que esta fuente de reloj es más eficiente que el reloj interno de 8MHz.

Los pines 9 y 10 se utilizan para conectar los dos pines del oscilador externo. La siguiente tabla muestra la configuración del pin para la fuente del reloj externo:

Pin 9 Xtal Oscilador externo Conecte el pin 9 del microcontrolador a un pin del oscilador externo
Pin 10 Xtal Externo

Oscilador

Conecte el pin 10 del microcontrolador al segundo pin del oscilador externo

2. ATMEGA16U2 Reloj

Arduino Uno usa ATMEGA16U2 como microcontrolador para la comunicación en serie entre Arduino y la computadora. Este microcontrolador actúa como un USB para el convertidor TTL. Al igual que ATMEGA328P, este microcontrolador también viene con un oscilador RC interno de 8MHz y un reloj del sistema de 1MHz. El tiempo de inicio se establece en el valor máximo. Todas estas configuraciones ayudan a los usuarios a programarlo con cualquier interfaz de programación y diseñar su fuente de reloj requerida o adjuntar un oscilador externo para aumentar la eficiencia del microcontrolador.

De forma predeterminada, las siguientes configuraciones del reloj vienen en el microcontrolador ATMEGA16U2 y también se puede conectar una fuente de reloj externa:

  • Oscilador RC interno calibrado
  • PLL
  • Fuente de reloj externa

Oscilador RC interno calibrado

ATMEGA16U2 tiene un oscilador RC incorporado que puede dar a Arduino hasta 8MHz de reloj. También depende de la temperatura, por lo que la variación en el calor y el voltaje puede afectar el rendimiento del microcontrolador. Este reloj se puede seleccionar programando fusibles internos de CKSEL. Durante el registro Osccal de reinicio alcanza su valor predeterminado y no requiere ninguna fuente de reloj externa cuando se selecciona en el valor predeterminado de 8MHz del oscilador. Los siguientes son los modos de funcionamiento para el oscilador interno calibrado:

Rango de frecuencia (MHz) Cksel3 ... 0
7.3-8.1 0010

PLL

PLL se utiliza para generar una alta gama de frecuencia especialmente para la comunicación en serie USB entre Arduino y la computadora. Puede generar hasta 48MHz de frecuencia. PLL recibe una frecuencia baja de entrada de su pin XTal, o cualquier otra fuente de reloj externa como en el oscilador de cristal Arduino Uno se usa como fuente de reloj para la comunicación en serie que ayuda a ATMEGA16U2 para la conversión de USB a TTL.

Fuente de reloj externa

De la misma manera que en el microcontrolador ATMEGA328P también podemos configurar un reloj externo con ATMEGA16U2. Cuando se usa una fuente de reloj externa, se deben evitar cambios repentinos en la frecuencia del reloj para el funcionamiento suave de MCU. En Arduino Uno, el oscilador de cristal se usa como fuente de reloj externo para microcontrolador. El oscilador de cristal es más eficiente que su resonador de cerámica de la competencia debido a la tolerancia de bajo costo y alto voltaje y frecuencia. Los fusibles de CKSEL deben programarse para ejecutar un oscilador externo.

La fuente de reloj externa se puede conectar en la configuración a continuación:

Pin 1 Xtal1 Oscilador externo Entrada al amplificador del oscilador y reloj interno
Pin 2 Xtal2/PC0 Oscilador externo Salida del oscilador cuando está habilitado por fusible, se puede usar como pin de E/S también

Conclusión

Los tableros Arduino son muy flexibles en términos de fuentes de reloj. Arduino tiene dos microcontroladores a bordo que son ATMEGA328 y ATMEGA16U2. Ambos microcontroladores vienen con un reloj interno de 8MHz, pero para obtener la máxima salida y un mayor rendimiento, utilizamos un reloj externo de 16MHz para ambos por separado. Aquí discutimos cómo se pueden usar los microcontroladores Arduino con su oscilador de reloj interno y destacamos la posible forma de agregar un reloj externo.