Har Arduino intern maskinvareklokke

Har Arduino intern maskinvareklokke
Arduino er en mikrokontrollerbasert plattform designet for å utføre forskjellige instruksjoner i henhold til prosjektkrav. For å synkronisere all denne operasjonen brukes en klokke med mikrokontrollere. Klokke er som hjerterytmen til Arduino -brett som kreves for å generere klokkepulser. Disse klokkepulsene synkroniserer alle interne og maskinvareoperasjoner. Mikrokontrollere er avhengige av klokken. Klokken avgjør hvor effektiv og rask en mikrokontroller er å utføre instruksjoner. Nå vil vi fremheve klokkekilder som brukes inne i Arduino -tavler.

Har Arduino intern maskinvareklokke

Ja, Arduino har en intern maskinvareklokke. Arduino Uno -brett har to mikrokontrollerchips ombord en er atmega328p og den andre er atmega16u2. Begge disse mikrokontrollerbrikkene har en intern klokke på 8MHz. ATMEGA16U2 brukes til seriell kommunikasjon mellom Arduino -brett og datamaskin mens ATMEGA328P er hovedkontrolleren på Arduino Board brukt til logikkbygging.

Intern maskinvareklokke kilde

Arduino har to kilder for interne maskinvareklokker som beskrevet ovenfor. Begge brukes til å kjøre to separate mikrokontrollere.

  • ATMEGA328P klokkekilde
  • ATMEGA16U2 Klokkekilde

1. ATMEGA328P klokke

Arduino UNO ATMEGA328P -kontrolleren bruker normalt en ekstern krystalloscillator for sin klokke som er 16MHz, men den har også en intern klokkegenerator på 8MHz. Vi kan konfigurere mikrokontrollerens interne oscillator som en kilde til 8MHz klokkesignal.

ATMEGA328P kommer med en RC -oscillator som har et 8MHz klokkesignal. Sikringen Ckdiv8 er programmert i henhold til 8MHz frekvens, noe som resulterer i en 1.0MHz systemklokke. Denne standardklokkekilden gir brukere som kan designe deres ønskede klokke med ethvert programmeringsgrensesnitt. Maksimal verdi er angitt for oppstartstid for atmega328p mikrokontroller.

Som standard kommer det å følge klokkekonfigurasjoner i ATmega328p mikrokontroller, og en ekstern klokkekilde kan også festes:

  • Kalibrert intern RC -oscillator
  • 128kHz intern oscillator
  • Ekstern klokkekilde

Kalibrert intern RC -oscillator

Intern RC -oscillator gir en mikrokontroller 8.0MHz klokke. Denne klokkekilden er avhengig av temperatur- og spenningsnivåer som betyr svak endring i disse forholdene kan påvirke mikrokontrollerens ytelse. For å velge denne klokken for mikrokontroller er CkSel sikringer programmert. Hvis vi velger innstillingene hans, vil klokken fungere uten noen ekstern kilde som følger frekvensområdet, kan oppnås ved å programmeres CkSel sikringer som:

Frekvensområde (MHz) CkSel3… 0
7.3-8.1 0010

128kHz intern oscillator

128kHz er også en standardklokke for ATMEGA328 mikrokontroller. Det er en oscillator med lav effekt og ikke designet for høye nøyaktighetskrav. Hyppigheten er optimal for 3V og 25 graders temperatur. For å velge denne klokken, må vi angi verdien av CkSel sikringer til "0011". Følgende frekvensområde kan oppnås ved CkSel sikringer:

Frekvensområde (KHz) CkSel3… 0
128kHz 0011

Ekstern klokkekilde

ATMEGA328P er designet på en slik måte at for å øke instruksjonsutførelseshastigheten kan vi feste en ekstern klokkekilde på 16MHz-20MHz som keramisk resonator som brukt i Arduino Uno.

For å drive mikrokontrolleren ved hjelp av eksterne klokkekilder har vi to pinner tilgjengelig for en oscillator xtal1 og xtal2. Arduino Uno bruker disse to pinnene med atmega328p for å koble til en ekstern keramisk resonator for frekvensbehovet, da denne klokkekilden er mer effektiv enn intern 8MHz klokke.

Pinner 9 og 10 brukes til å koble de to pinnene til den ytre oscillatoren. Følgende tabell viser PIN -konfigurasjon for ekstern klokkekilde:

Pin 9 Xtal Ekstern oscillator Koble pinne 9 av mikrokontroller til en pinne av den eksterne oscillatoren
PIN 10 Xtal Utvendig

Oscillator

Koble pinne 10 av mikrokontroller til den andre tappen av den eksterne oscillatoren

2. ATmega16u2 klokke

Arduino Uno bruker ATmega16u2 som en mikrokontroller for seriell kommunikasjon mellom Arduino og datamaskin. Denne mikrokontrolleren fungerer som en USB til TTL -omformer. I likhet med ATMEGA328P kommer denne mikrokontrolleren også med en 8MHz intern RC -oscillator og en systemklokke på 1MHz. Oppstartstiden er satt til maksimal verdi. Alle disse innstillingene hjelper brukere til å programmere det med et hvilket.

Som standard kommer det å følge klokkekonfigurasjoner i ATMEGA16U2 mikrokontroller, og en ekstern klokkekilde kan også festes:

  • Kalibrert intern RC -oscillator
  • Pll
  • Ekstern klokkekilde

Kalibrert intern RC -oscillator

ATMEGA16U2 har en innebygd RC-oscillator som kan gi Arduino opp til 8MHz klokke. Det er også temperaturavhengig, så variasjon i varme og spenning kan påvirke mikrokontrollerens ytelse. Denne klokken kan velges ved å programmere interne CkSel sikringer. Under tilbakestilling når Osccal -registeret når standardverdien, og det krever ingen ekstern klokkekilde når den er valgt ved standard 8MHz -verdi av oscillatoren. Følgende er driftsmodusene for kalibrert intern oscillator:

Frekvensområde (MHz) CkSel3… 0
7.3-8.1 0010

Pll

PLL brukes til å generere et høyt frekvensområde spesielt for USB -seriell kommunikasjon mellom Arduino og datamaskin. Det kan generere opptil 48 MHz frekvens. PLL mottar input Lavfrekvens fra sin xTal PIN -kode, eller en hvilken som helst annen ekstern klokkekilde som i Arduino UNO Crystal Oscillator brukes som en klokkekilde for seriell kommunikasjon som hjelper ATMEGA16U2 for USB til TTL -konvertering.

Ekstern klokkekilde

På samme måte som i ATmega328p mikrokontroller kan vi også konfigurere en ekstern klokke med atmega16u2. Når du bruker en ekstern klokkekilde, bør plutselige endringer i klokkefrekvens unngås for jevn drift av MCU. I Arduino UNO brukes krystalloscillator som kilde til ekstern klokke for mikrokontroller. Krystalloscillator er mer effektiv enn sin konkurrent keramiske resonator på grunn av lave kostnader og høyspenning og frekvenstoleranse. CkSel sikringer må programmeres til å kjøre en ekstern oscillator.

Ekstern klokkekilde kan kobles til under konfigurasjonen:

PIN 1 Xtal1 Ekstern oscillator Inngang til oscillatorforsterker og intern klokke
PIN 2 Xtal2/PC0 Ekstern oscillator Utgang fra oscillator når det er aktivert av sikring, kan brukes som I/O også

Konklusjon

Arduino -tavler er veldig fleksible når det gjelder klokkekilder. Arduino har to mikrokontrollere om bord som er atmega328 og atmega16u2. Begge disse mikrokontrollerne har en intern 8MHz klokke, men for å få maksimal ytelse og økt ytelse bruker vi en ekstern klokke på 16MHz for begge separat. Her diskuterte vi hvordan Arduino mikrokontrollere kan brukes med sin interne klokkescillator og fremhevet den mulige måten å legge til en ekstern klokke.