Hat Arduino interne Hardwareuhr?
Ja, Arduino hat eine interne Hardwareuhr. Arduino Uno Boards haben zwei Microcontroller -Chips an Bord. Beide Mikrocontroller -Chips haben eine interne Uhr von 8 MHz. ATMEGA16U2 wird für die serielle Kommunikation zwischen Arduino Board und Computer verwendet, während ATMEGA328P der Hauptcontroller des Arduino -Boards ist, der für das Logikgebäude verwendet wird.
Interne Hardware -Uhr -Quelle
Arduino hat zwei Quellen für interne Hardwareuhren, wie oben beschrieben. Beide werden verwendet, um zwei separate Mikrocontroller zu fahren.
1. ATMEGA328P Uhr
Der Arduino UNO ATMEGA328P -Controller verwendet normalerweise einen externen Kristalloszillator für seine Uhr, die 16 MHz ist, aber es hat auch einen internen Uhrengenerator von 8 MHz. Wir können den internen Oszillator des Mikrocontroller als Quelle des 8 -MHz -Taktsignals konfigurieren.
ATMEGA328P wird mit einem RC -Oszillator mit einem 8 -MHz -Taktsignal geliefert. Sein Sicherungs -CKDIV8 wird nach 8 -MHz -Frequenz programmiert, was zu einem 1 führt.0MHz Systemuhr. Diese Standard -Taktquelle bietet Benutzern die Freiheit, die ihre gewünschte Uhr mit jeder Programmierschnittstelle entwerfen kann. Der Maximalwert wird für die Startzeit des ATMEGA328P -Mikrocontroller festgelegt.
Standardmäßig sind die folgenden Taktkonfigurationen in ATMEGA328P -Mikrocontroller und eine externe Taktquelle können ebenfalls angehängt werden:
Kalibriert interner RC -Oszillator
Interner RC -Oszillator bietet einen Mikrocontroller 8.0MHz Uhr. Diese Taktquelle hängt von der Temperatur- und Spannungsniveaus ab, was bedeutet. Um diese Uhr für Mikrocontroller auszuwählen, werden CKEL -Sicherungen im Allgemeinen programmiert. Wenn wir seine Einstellungen auswählen, funktioniert die Uhr ohne externe Quelle, wenn der Frequenzbereich nach dem Programmieren von CKEL -Sicherungen wie folgt erreicht werden kann:
Frequenzbereich (MHz) | Cksel3… 0 |
7.3-8.1 | 0010 |
128 kHz interner Oszillator
128 kHz ist auch eine Standarduhr für ATMEGA328 Microcontroller. Es handelt. Um diese Uhr auszuwählen, müssen wir den Wert von CKEL -Sicherungen einstellen "0011". Der folgende Frequenzbereich kann durch CKEL -Sicherungen erhalten werden:
Frequenzbereich (KHz) | Cksel3… 0 |
128 kHz | 0011 |
Externe Uhrquelle
ATMEGA328P ist so konzipiert, dass wir zur Erhöhung seiner Anweisungsgeschwindigkeit eine externe Uhrquelle von 16 MHz-20 MHz wie Keramikresonator anbringen können, wie in Arduino Uno verwendet.
Um den Mikrocontroller mit externen Taktquellen zu fahren, stehen für einen Oszillator XTAL1 und XTAL2 zwei Pins zur. Arduino Uno verwendet diese beiden ATMEGA328p.
Stifte 9 und 10 werden verwendet, um die beiden Stifte des externen Oszillators zu verbinden. Die folgende Tabelle zeigt die PIN -Konfiguration für die externe Uhrquelle:
Pin 9 | XTAL | Externer Oszillator | Schließen Sie Pin 9 des Mikrocontrollers an einen Stift des externen Oszillators an |
Pin 10 | XTAL | Extern Oszillator | Schließen Sie den Pin 10 des Mikrocontrollers mit dem zweiten Stift des externen Oszillators an |
2. ATMEGA16U2 Uhr
Arduino Uno verwendet ATMEGA16U2 als Mikrocontroller für die serielle Kommunikation zwischen Arduino und Computer. Dieser Mikrocontroller fungiert als USB -TTL -Wandler. Wie ATMEGA328P ist dieser Mikrocontroller auch mit einem 8 -MHz -internen RC -Oszillator und einer Systemuhr von 1 MHz ausgestattet. Die Startzeit wird auf den Maximalwert gesetzt. Alle diese Einstellungen helfen den Benutzern, es mit einer beliebigen Programmierschnittstelle zu programmieren und ihre erforderliche Uhrenquelle zu entwerfen oder einen externen Oszillator anzubringen, um die Effizienz des Mikrocontrollers zu erhöhen.
Standardmäßig werden die folgenden Taktkonfigurationen in ATMEGA16U2 -Mikrocontroller geliefert, und eine externe Taktquelle kann ebenfalls angebracht werden:
Kalibriert interner RC -Oszillator
ATMEGA16U2 hat einen eingebauten RC-Oszillator, der Arduino bis zu 8 MHz Uhr geben kann. Es ist auch temperaturabhängig, sodass Variation von Wärme und Spannung die Mikrocontroller -Leistung beeinflussen kann. Diese Uhr kann durch Programmieren interner Cksel -Sicherungen ausgewählt werden. Während des Zurücksetzens des OSCCAL -Registers erreicht der Standardwert und erfordert keine externe Taktquelle, wenn sie bei Standardwert 8 MHz des Oszillators ausgewählt wird. Im Folgenden finden Sie die Betriebsmodi für den kalibrierten internen Oszillator:
Frequenzbereich (MHz) | Cksel3… 0 |
7.3-8.1 | 0010 |
Pll
PLL wird verwendet, um einen hohen Frequenzbereich speziell für die serielle USB -Kommunikation zwischen Arduino und Computer zu erzeugen. Es kann bis zu 48 MHz Frequenz erzeugen. PLL erhält eine niedrige Frequenz der Eingabe von seinem Xtal -Stift oder eine andere externe Taktquelle, wie in Arduino UNO -Kristalloszillator.
Externe Uhrquelle
Auf die gleiche Weise wie im ATMEGA328P -Mikrocontroller können wir auch eine externe Uhr mit ATMEGA16U2 konfigurieren. Bei Verwendung einer externen Uhrenquelle sollte plötzliche Änderungen der Taktfrequenz für den reibungslosen Betrieb von MCU vermieden werden. Im Arduino UNO -Kristalloszillator wird als externer Uhr für den Mikrocontroller verwendet. Der Kristalloszillator ist aufgrund von kostengünstigen und hohen Spannung und Frequenztoleranz effizienter als sein Konkurrent -Keramikresonator. CKEL -Sicherungen müssen programmiert werden, um einen externen Oszillator auszuführen.
Die externe Uhrquelle kann in der folgenden Konfiguration verbunden werden:
Pin 1 | XTAL1 | Externer Oszillator | Eingabe in den Oszillatorverstärker und die interne Uhr |
Pin 2 | XTAL2/PC0 | Externer Oszillator | Ausgang vom Oszillator, wenn durch Sicherung aktiviert ist, kann auch als E/A -Pin verwendet werden |
Abschluss
Arduino -Boards sind in Bezug auf Taktquellen sehr flexibel. Arduino hat zwei Mikrocontroller an Bord, die ATMEGA328 und ATMEGA16U2 sind. Beide Mikrocontroller sind mit einem internen 8 -MHz. Hier diskutierten wir, wie Arduino -Mikrocontroller mit ihrem internen Uhroszillator verwendet werden können, und hob die mögliche Möglichkeit, eine externe Uhr hinzuzufügen.