Czy Arduino ma wewnętrzny zegar sprzętowy

Czy Arduino ma wewnętrzny zegar sprzętowy
Arduino to platforma oparta na mikrokontrolerze zaprojektowana do wykonywania różnych instrukcji zgodnie z wymaganiami projektu. Aby zsynchronizować całą tę operację, zegar jest używany z mikrokontrolerów. Zegar jest jak bicie serca tablic Arduino wymaganych do generowania impulsów zegara. Te pulsy zegara synchronizują wszystkie operacje wewnętrzne i sprzętowe. Mikrokontrolery są polegane na zegarach. Zegar określa, jak wydajny i szybki jest mikrokontroler do wykonywania instrukcji. Teraz wyróżnimy źródła zegara używane w tablicach Arduino.

Czy Arduino ma wewnętrzny zegar sprzętowy

Tak, Arduino ma wewnętrzny zegar sprzętowy. Arduino Uno płyty mają dwa mikrokontrolery na pokładzie jeden to atmega328p, a drugi to atmega16u2. Oba te układy mikrokontrolera mają wewnętrzny zegar 8 MHz. ATMEGA16U2 jest używany do komunikacji szeregowej między Arduino i komputerem, podczas gdy ATMEGA328P jest głównym kontrolerem na płycie Arduino używanej do budowania logiki.

Wewnętrzne źródło zegara sprzętowego

Arduino ma dwa źródła dla wewnętrznych zegarów sprzętowych, jak opisano powyżej. Oba są używane do prowadzenia dwóch oddzielnych mikrokontrolerów.

  • ATMEGA328P Źródło zegara
  • Źródło zegara ATMEGA16U2

1. Zegar ATMEGA328P

Kontroler Arduino UNO ATMEGA328P zwykle używa zewnętrznego oscylatora kryształów dla swojego zegara, który wynosi 16 MHz, ale ma również wewnętrzny generator zegara 8 MHz. Możemy skonfigurować wewnętrzny oscylator mikrokontrolera jako źródło sygnału zegara 8 MHz.

ATMEGA328P jest wyposażony w oscylator RC o sygnał zegara 8 MHz. Jego bezpiecznik CKDIV8 jest programowany zgodnie z częstotliwością 8 MHz, co powoduje 1.Zegar systemowy 0mHz. To domyślne źródło zegara daje swobodę użytkownikom, którzy mogą zaprojektować pożądany zegar za pomocą dowolnego interfejsu programowania. Maksymalna wartość jest ustalana dla czasu uruchamiania mikrokontrolera ATMEGA328P.

Domyślnie następujące konfiguracje zegara występują w mikrokontrolerze ATMEGA328P i można również dołączyć zewnętrzne źródło zegara:

  • Skalibrowany wewnętrzny oscylator RC
  • Wewnętrzny oscylator 128 kHz
  • Zewnętrzne źródło zegara

Skalibrowany wewnętrzny oscylator RC

Wewnętrzny oscylator RC zapewnia mikrokontroler 8.Zegar 0 MHz. To źródło zegara zależy od poziomów temperatury i napięcia, co oznacza niewielka zmiana w tych warunkach, może wpływać na wydajność mikrokontrolera. Aby wybrać ten zegar dla mikrokontrolera ogólnie programy są programowane. Jeśli wybierzemy, jego Zegar ustawienia będzie działał bez żadnego zewnętrznego źródła następującego zakresu częstotliwości, można osiągnąć poprzez programowanie bezpieczników CKSEL jako:

Zakres częstotliwości (MHz) Cksel3… 0
7.3-8.1 0010

Wewnętrzny oscylator 128 kHz

128 kHz jest również domyślnym zegar dla mikrokontrolera ATMEGA328. Jest to oscylator o niskiej mocy i nie jest przeznaczony do wymagań o wysokiej dokładności, jego częstotliwość jest optymalna dla temperatury 3V i 25 stopni C. Aby wybrać ten zegar, musimy ustawić wartość bezpieczników CKSEL „0011”. Następujący zakres częstotliwości można uzyskać za pomocą bezpieczników CKSEL:

Zakres częstotliwości (kHz) Cksel3… 0
128KHz 0011

Zewnętrzne źródło zegara

ATMEGA328P został zaprojektowany w taki sposób, że aby zwiększyć jego prędkość wykonywania instrukcji, możemy dołączyć zewnętrzne źródło zegara 16mHz-20mHz, takie jak rezonator ceramiczny, stosowany w Arduino Uno.

Aby napędzać mikrokontroler za pomocą zewnętrznych źródeł zegara, mamy dwa piny dostępne dla oscylatora XTAL1 i XTAL2. Arduino Uno używa tych dwóch pinów ATMEGA328P do podłączenia zewnętrznego rezonatora ceramicznego w celu uzyskania wymagań częstotliwościowych, ponieważ to źródło zegara jest bardziej wydajne niż wewnętrzny zegar 8 MHz.

Piny 9 i 10 są używane do podłączenia dwóch pinów zewnętrznego oscylatora. Poniższa tabela pokazuje konfigurację PIN dla zewnętrznego zegara źródła:

Pin 9 XTAL Oscylator zewnętrzny Podłącz pin 9 mikrokontrolera do jednego pinu zewnętrznego oscylatora
Pin 10 XTAL Zewnętrzny

Oscylator

Podłącz pin 10 mikrokontrolera do drugiego pinu zewnętrznego oscylatora

2. ATMEGA16U2 CLOCK

Arduino Uno używa ATMEGA16U2 jako mikrokontrolera do seryjnej komunikacji między Arduino a komputerem. Ten mikrokontroler działa jak konwerter USB do TTL. Podobnie jak ATMEGA328P Ten mikrokontroler jest również wyposażony w wewnętrzny oscylator RC 8 MHz i zegar systemowy 1 MHz. Czas uruchamiania jest ustawiony na maksymalną wartość. Wszystkie te ustawienia pomagają użytkownikom zaprogramować go za pomocą dowolnego interfejsu programowania i zaprojektowanie wymaganego źródła zegara lub dołączanie zewnętrznego oscylatora w celu zwiększenia wydajności mikrokontrolera.

Domyślnie następujące konfiguracje zegara występują w mikrokontrolerze ATMEGA16U2 i można również dołączyć źródło zegara zewnętrznego:

  • Skalibrowany wewnętrzny oscylator RC
  • Pll
  • Zewnętrzne źródło zegara

Skalibrowany wewnętrzny oscylator RC

ATMEGA16U2 ma wbudowany oscylator RC, który może dać Arduino do 8 MHz zegara. Jest również zależne od temperatury, więc zmienność ciepła i napięcia może wpływać na wydajność mikrokontrolera. Ten zegar można wybrać, programując wewnętrzne bezpieczniki CKSEL. Podczas resetowania rejestru Osccal osiąga swoją wartość domyślną i nie wymaga żadnego zewnętrznego źródła zegara po wybraniu wartości domyślnej 8 MHz oscylatora. Poniżej znajdują się tryby operacyjne skalibrowanego oscylatora wewnętrznego:

Zakres częstotliwości (MHz) Cksel3… 0
7.3-8.1 0010

Pll

PLL służy do generowania wysokiego zakresu częstotliwości specjalnie dla komunikacji szeregowej USB między Arduino a komputerem. Może generować do 48 MHz częstotliwości. PLL odbiera niską częstotliwość wejściową z pinu Xtal lub dowolne inne zewnętrzne źródło zegara, takie jak w Oscylator Kryształowych Arduino UNO, jest używane jako źródło zegara komunikacji szeregowej, które pomaga ATMEGA16U2 w konwersji USB do TTL TTL.

Zewnętrzne źródło zegara

W ten sam sposób, jak w mikrokontrolerze ATMEGA328P, możemy również skonfigurować zewnętrzny zegar z ATMEGA16U2. Podczas korzystania z zewnętrznego źródła zegara należy unikać nagłych zmian częstotliwości zegara w celu sprawnego działania MCU. W Arduino UNO Crystal Oscylator jest używany jako źródło zewnętrznego zegara do mikrokontrolera. Oscylator kryształów jest bardziej wydajny niż jego konkurencyjny rezonator ceramiczny ze względu na niski koszt i tolerancję na wysokie napięcie i częstotliwość. Bezpieczniki CKSEL należy zaprogramować w celu uruchomienia zewnętrznego oscylatora.

Zewnętrzne źródło zegara można podłączyć w poniższej konfiguracji:

Pin 1 XTAL1 Oscylator zewnętrzny Wejście do wzmacniacza oscylatora i zegara wewnętrznego
Pin 2 XTAL2/PC0 Oscylator zewnętrzny Wyjście z oscylatora, gdy jest włączone przez bezpiecznik, można również użyć jako pinu we/wy

Wniosek

Rady Arduino są bardzo elastyczne pod względem źródeł zegara. Arduino ma na pokładzie dwa mikrokontrolery, które to ATMEGA328 i ATMEGA16U2. Oba te mikrokontrolery są wyposażone w wewnętrzny zegar 8 MHz, ale aby uzyskać maksymalną wydajność i zwiększoną wydajność, używamy zewnętrznego zegara 16 MHz dla obu osobno. Tutaj omówiliśmy, w jaki sposób mikrokontrolery Arduino można używać z ich wewnętrznym oscylatorem zegara i podkreśliliśmy możliwy sposób dodania zegara zewnętrznego.