AVR Microcontroller (Atmel 8) Seriell kommunikasjon USART-konfigurasjon

Prøv Instrumentet Vårt For Å Eliminere Problemer





Microcontroller er en kontrollenhet som inneholder et antall eksterne enheter som RAM, ROM TIMERS, seriell datakommunikasjon osv. som kreves for å utføre noen forhåndsdefinerte oppgaver. Nå for tiden, avansert type mikrokontrollere brukes i et bredt spekter av applikasjoner i henhold til deres evne og gjennomførbarhet til å utføre noen ønskede oppgaver, og disse kontrollerne inkluderer 8051, AVR og PIC mikrokontroller . I denne artikkelen skal vi lære om avansert AVR-familie mikrokontroller og dens programmering .

AVR mikrokontroller

AVR er en type kontrollenhet produsert av Atmel Corporation i 1996. AVR står ikke for noe, det er bare et navn. AVR mikrokontrollere består av Harvard-arkitekturen , og derfor kjører enheten veldig raskt med et redusert antall instruksjoner på maskinnivå (RISC). AVR-mikrokontrollere består av spesielle funksjoner sammenlignet med andre mikrokontroller som 6-hvilemodus, innebygd ADC, intern oscillator og seriell datakommunikasjon, etc. AVR-mikrokontrollere er tilgjengelige i forskjellige konfigurasjoner av 8-biters, 16-biters og 32-biters for å utføre forskjellige operasjoner.




AVR mikrokontroller

AVR mikrokontroller

USART seriell datakommunikasjon i AVR-mikrokontroller

USART står for universal synkron og asynkron mottaker og sender. Det er en seriekommunikasjon av to protokoller. Denne protokollen brukes til å overføre og motta data bit for bit med hensyn til klokkepulser på en enkelt ledning. De AVR-mikrokontroller har to pinner: TXD og RXD, som er spesielt brukt for å overføre og motta data serielt. Enhver AVR-mikrokontroller består av USART-protokoll med egne funksjoner.



USART-kommunikasjon i AVR-mikrokontroller

USART-kommunikasjon i AVR-mikrokontroller

Hovedfunksjonene i AVR USART

  • USART-protokollen støtter full-dupleks-protokollen.
  • Den genererer høy oppløsnings baudrate.
  • Den støtter overføring av serielle databiter fra 5 til 9, og den består av to stoppbiter.

USART Pin-konfigurasjon

USART of AVR består av tre pins:


  • RXD: USART mottakerstift (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: USART-senderstift (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART klokkestift (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Driftsmåter

AVR-mikrokontrolleren til USART-protokollen fungerer i tre moduser som er:

  • Asynkron normal modus
  • Asynkron modus for dobbel hastighet
  • Synkron modus
Driftsmåter

Driftsmåter

Asynkron normal modus

I denne kommunikasjonsmåten overføres og mottas data bit for bit uten klokkepulser av den forhåndsdefinerte baudhastigheten som er satt av UBBR-registeret.

Asynkron modus for dobbel hastighet

I denne kommunikasjonsmåten blir dataene som overføres med dobbelt baudhastighet satt av UBBR-registeret og satt U2X-biter i UCSRA-registeret. Dette er en høyhastighetsmodus for synkron kommunikasjon for overføring og mottak av data raskt. Dette systemet brukes der det kreves nøyaktige innstillinger for overføringshastighet og systemklokke.

Synkron modus

I dette systemet er overføring og mottak av data med hensyn til klokkepuls satt UMSEL = 1 i UCSRC-registeret.

USART-konfigurasjon i AVR-mikrokontroller

USART kan konfigureres ved hjelp av fem registre, for eksempel tre kontrollregistre , ett register og register for overføringshastighetsvalg, slik som UDR, UCSRA, UCSRB, UCSRC og UBRR.

7 trinn for å komponere programmet

Trinn 1: Beregn og sett baudrate

Overføringshastigheten til USART / UART er satt av UBRR-registraren. Dette registeret brukes til å generere dataoverføringen med den spesifikke hastigheten. UBRR er et 16-biters register. Siden AVR er en 8-biters mikrokontroller og hvilken som helst registerstørrelse er 8-bit. Derfor består 16-biters UBRR-registeret av to 8-biters registre som UBRR (H), UBRR (L).

Formelen for baud rate er

BAUD = Mørk / (16 * (UBBR + 1))

Formelen for UBRR-registeret er

UBRR = Dark / (16 * (BAUD-1))

Frekvensen til AVR-mikrokontrolleren er 16MHz = 16000000 La oss anta baudhastigheten som 19200Bps, så

UBRR = 16000000 / (16 * (19200-1))

UBRR = 16000000 / (16 * (19200-1))

UBRR = 51.099

Til slutt finner baud rate

BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230bps

Steg 2: Valg av datamodus

Dataoverføringsmodus, startbit og stoppbit og tegnstørrelsen er satt av kontroll- og statusregistret UCSRC.

Valg av datamodus

Valg av datamodus

Trinn 3: Valg av dataoverføringsmodus

Den synkrone og asynkrone modusen velges av UMSEL-biten i kontrollstatusregistret. Hvis vi gir UMSEL = 0, opererer USART i asynkron modus, ellers fungerer den i synkron modus.

Valg av dataoverføringsmodus

Valg av dataoverføringsmodus

Trinn 4: Start Bit og Stop Bit

Startbiten og stoppbittene er en måte å sende og motta data serielt på. Vanligvis består datafamilien av en statbit og en stoppbit, men AVR-mikrokontrolleren har en startbit og to stoppbiter for behandling av dataene. Den ekstra stopp-biten kan være nyttig for å legge til litt ekstra behandlingstid for mottak. Det er spesielt nyttig for høye dataoverføringshastigheter, mens dataoverføringshastigheten er veldig høy, så vi får ikke riktige data. Dermed kan vi øke behandlingstiden ved å bruke to stoppbiter for å få de riktige dataene.

Start Bit og Stop Bit

Start Bit og Stop Bit

Antall stoppbiter velges av USBS-biten til UCSRC - kontrollstatusregisteret. USBS = 0, for en stoppbit, og USBS = 1, for to stoppbiter.

Trinn 5: Angi tegnstørrelse

Som i tilfelle med grunnleggende mikrokontrollere sende og motta byte av data (8-bits) om gangen, enten i en AVR-mikrokontroller, kan vi velge et datarammeformat i hver ramme av UCSZ-biten i UCSRC-registeret.

Datarammeformat

Datarammeformat

Trinn 6: Lagre mottatte data

AVR-mikrokontrolleren består av et UDR-bufferregister for overføring og mottak av data. UDR er et 16-biters bufferregister hvor 8-bits brukes til å motta (RXB) dataene og andre bits brukes til å overføre dataene (TXB). Overføring av databufferregister vil være destinasjonen til UDR-registeret for de skriftlige dataene på stedet. Mottak av databufferregister vil returnere innholdet i UDR-registeret.

Trinn 7: Aktivering av sender og mottaker

De overførte og mottatte dataene vil være tillatt av RXC- og TXC-pinnene til mikrokontrolleren som er satt av UCSRA-registeret til mikrokontrolleren. Denne flaggbit satt av mikrokontrolleren for dataene fullføres ved mottak og sending (TXC = RXC = 1).

Dobbelt overføringshastighet

Vi kan doble overføringshastigheten for USART-kommunikasjonen til AVR mikrokontroller fra 16 bits til 8-bits effektivt av U2X –bit i UCSRA-registeret. Denne biten påvirker bare asynkron drift. Hvis vi kan stille denne biten (U2X = 1), vil den redusere baudhastigheten fra 16-bit til 8-bit, og effektivt doble overføringshastigheten for synkron kommunikasjon.

Dette er en avansert funksjon i AVR-mikrokontrolleren for rask behandling av dataene.

USART-program

Hver mikrokontroller er forhåndsdefinert med en spesifikk IDE, og basert på denne IDE, mikrokontrollere er programmert med innebygd C eller monteringsspråk. Programmeringen av AVR-mikrokontrolleren er utviklet av AVR-studioet. Videre, hvis du vil ha mer informasjon om trinn for å bygge mikrocontrollerbaserte prosjekter , eller detaljert informasjon om dette emnet, kan du kontakte oss ved å kommentere nedenfor.