AVR Microcontroller (Atmel 8) Seriel kommunikation USART-konfiguration

Prøv Vores Instrument Til At Fjerne Problemer





Microcontroller er en kontrolenhed, der indeholder et antal perifere enheder som RAM, ROM TIMERS, seriel datakommunikation osv., som kræves for at udføre nogle foruddefinerede opgaver. I dag, avanceret type mikrokontrollere bruges i en lang række applikationer efter deres evne og gennemførlighed til at udføre nogle ønskede opgaver, og disse controllere inkluderer 8051, AVR og PIC mikrokontroller . I denne artikel vil vi lære om avanceret AVR-familie-microcontroller og dens programmering .

AVR Microcontroller

AVR er en type kontrolenhed, der er produceret af Atmel Corporation i 1996. AVR står ikke for noget, det er bare et navn. AVR mikrokontrollere består af Harvard-arkitekturen og derfor kører enheden meget hurtigt med et reduceret antal instruktioner på maskinniveau (RISC). AVR-mikrocontrollerne består af specielle funktioner sammenlignet med andre mikrocontroller såsom 6-sleep-tilstande, indbygget ADC, intern oscillator og seriel datakommunikation osv. AVR mikrokontroller fås i forskellige konfigurationer af 8-bit, 16-bit og 32-bit til at udføre forskellige operationer.




AVR Microcontroller

AVR Microcontroller

USART seriel datakommunikation i AVR-mikrocontroller

USART står for universal synkron og asynkron modtager og sender. Det er en seriel kommunikation af to protokoller. Denne protokol bruges til transmission og modtagelse af data bit for bit i forhold til urimpulser på en enkelt ledning. Det AVR-mikrocontroller har to ben: TXD og RXD, som specielt bruges til transmission og modtagelse af data serielt. Enhver AVR-mikrocontroller består af USART-protokol med sine egne funktioner.



USART-kommunikation i AVR-mikrocontroller

USART-kommunikation i AVR-mikrocontroller

De vigtigste funktioner i AVR USART

  • USART-protokollen understøtter full-duplex-protokollen.
  • Det genererer høj opløsning baudrate.
  • Den understøtter transmission af serielle databits fra 5 til 9, og den består af to stopbits.

USART Pin-konfiguration

USART of AVR består af tre pins:


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

Driftsformer

AVR-mikrocontrolleren i USART-protokollen fungerer i tre tilstande, som er:

  • Asynkron normal tilstand
  • Asynkron tilstand med dobbelt hastighed
  • Synkron tilstand
Driftsformer

Driftsformer

Asynkron normal tilstand

I denne kommunikationsmetode transmitteres og modtages dataene bit for bit uden urimpulser af den foruddefinerede baudhastighed, der er indstillet af UBBR-registret.

Asynkron tilstand med dobbelt hastighed

I denne kommunikationsmetode indstilles de data, der overføres med dobbelt baudhastighed af UBBR-registret og indstiller U2X-bits i UCSRA-registeret. Dette er en højhastighedstilstand til synkron kommunikation til transmission og modtagelse af data hurtigt. Dette system bruges, hvor nøjagtige baudhastighedsindstillinger og systemur kræves.

Synkron tilstand

I dette system indstilles transmission og modtagelse af data med hensyn til urimpuls UMSEL = 1 i UCSRC-registeret.

USART-konfiguration i AVR-mikrocontroller

USART kan konfigureres ved hjælp af fem registre som f.eks tre kontrolregistre , et dataregister og baud-rate-selekteringsregister, såsom UDR, UCSRA, UCSRB, UCSRC og UBRR.

7 trin til komponering af programmet

Trin 1: Beregn og indstil baudrate

Baudhastigheden for USART / UART indstilles af UBRR-registratoren. Dette register bruges til at generere datatransmission ved den specifikke hastighed. UBRR er et 16-bit register. Da AVR er en 8-bit mikrokontroller, og dens ethvert registerstørrelse er 8-bit. Derfor består 16-bit UBRR-registeret af to 8-bit-registre, såsom UBRR (H), UBRR (L).

Formlen for baudrate er

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

UBRR-registerets formel er

UBRR = Mørk / (16 * (BAUD-1))

Frekvensen af ​​AVR-mikrocontrolleren er 16MHz = 16000000 Lad os antage baudhastigheden som 19200Bps, så

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

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

UBRR = 51.099

Til sidst finder baudrate

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

Trin 2: Valg af datatilstand

Datatransmissionstilstand, startbit og stopbit og tegnstørrelsen indstilles af kontrol- og statusregistret UCSRC.

Valg af datatilstand

Valg af datatilstand

Trin 3: Valg af datatransmissionstilstand

Den synkrone og asynkrone tilstand vælges af UMSEL-biten i kontrolstatusregistret. Hvis vi giver UMSEL = 0, fungerer USART i asynkron tilstand, ellers fungerer det i synkron tilstand.

Valg af datatransmissionstilstand

Valg af datatransmissionstilstand

Trin 4: Start bit og stop bit

Startbit og stopbit er en måde at sende og modtage data serielt på. Generelt består enhver datafame af en statbit og en stopbit, men AVR-mikrocontrolleren har en startbit og to stopbit til behandling af dataene. Den ekstra stopbit kan være nyttig til at tilføje lidt ekstra modtagebehandlingstid. Det er især nyttigt til høje dataoverførselshastigheder, hvorimod dataoverførselshastigheden er meget høj, så vi får ikke ordentlige data. Således kan vi øge behandlingstiden ved at bruge to stopbit til at få de korrekte data.

Start bit og stop bit

Start bit og stop bit

Antallet af stopbits vælges af USBS-biten i UCSRC - kontrolstatusregistret. USBS = 0, for en stopbit og USBS = 1, for to stopbit.

Trin 5: Indstil tegnstørrelse

Som i tilfældet med grundlæggende mikrokontrollere afsendelse og modtagelse af databyte (8-bit) ad gangen, hvad enten det er i en AVR-mikrocontroller, kan vi vælge et datarammeformat i hver ramme af UCSZ-biten i UCSRC-registeret.

Datarammeformat

Datarammeformat

Trin 6: Gem de modtagne data

AVR-mikrocontrolleren består af et UDR-bufferregister til transmission og modtagelse af data. UDR er et 16-bit bufferregister, hvor 8-bit bruges til modtagelse (RXB) af dataene, og andre bits bruges til transmission af data (TXB). Transmission af databufferregister vil være destinationen til UDR-registret for de skriftlige data på dets placering. Modtagelse af databufferregister returnerer indholdet af UDR-registret.

Trin 7: Aktivering af sender og modtager

De transmitterede og modtagne data vil være tilladt af RXC- og TXC-stifterne på mikrokontrolleren, som er indstillet af UCSRA-registret for mikrokontrolleren. Denne flagbit, der er indstillet af mikrokontrolleren til dataene, afsluttes ved modtagelse og transmission (TXC = RXC = 1).

Dobbelt baudrate

Vi kan fordoble overførselshastigheden for USART-kommunikationen med AVR mikrocontroller fra 16 bit til 8-bit effektivt af U2X-bit i UCSRA-registeret. Denne bit påvirker kun asynkron drift. Hvis vi kan indstille denne bit (U2X = 1), reducerer den baudhastigheden fra 16-bit til 8-bit, hvilket effektivt fordobler overførselshastigheden til synkron kommunikation.

Dette er en avanceret funktion i AVR-mikrocontrolleren til hurtig behandling af dataene.

USART-program

Hver mikrocontroller er foruddefineret med en bestemt IDE, og baseret på denne IDE, mikrokontrollere er programmeret med indlejret C eller monteringssprog. AVR-mikrocontrollerprogrammeringen er udviklet af AVR-studiet. Desuden, hvis du ønsker yderligere oplysninger om trin til opbygning af mikrocontroller-baserede projekter eller detaljerede oplysninger om dette emne, kan du kontakte os ved at kommentere nedenfor.