AVR Microcontroller (Atmel 8) Seriell kommunikation USART-konfiguration

Prova Vårt Instrument För Att Eliminera Problem





Microcontroller är en kontrollenhet som innehåller ett antal kringutrustning som RAM, ROM TIMERS, seriell datakommunikation , etc., som krävs för att utföra vissa fördefinierade uppgifter. Nu för tiden, avancerad typ av mikrokontroller används i en mängd olika applikationer enligt deras förmåga och genomförbarhet för att utföra vissa önskade uppgifter och dessa styrenheter inkluderar 8051, AVR och PIC mikrokontroller . I den här artikeln ska vi lära oss mer om avancerad AVR-familjens mikrokontroller och dess programmering .

AVR-mikrokontroller

AVR är en typ av styrenhet som tillverkades av Atmel Corporation 1996. AVR står inte för någonting, det är bara ett namn. AVR mikrokontroller består av Harvard-arkitekturen och därför kör enheten mycket snabbt med ett reducerat antal instruktioner på maskinnivå (RISC). AVR-mikrokontroller består av specialfunktioner jämfört med andra mikrokontroller som 6-vilolägen, inbyggd ADC, intern oscillator och seriell datakommunikation etc. AVR-mikrokontroller finns i olika konfigurationer av 8-bitars, 16-bitars och 32-bitars för att utföra olika operationer.




AVR-mikrokontroller

AVR-mikrokontroller

USART seriell datakommunikation i AVR Microcontroller

USART står för universell synkron och asynkron mottagare och sändare. Det är en seriekommunikation av två protokoll. Detta protokoll används för att sända och ta emot data bit för bit med avseende på klockpulser på en enda tråd. De AVR-mikrokontroller har två stift: TXD och RXD, som används speciellt för att sända och ta emot data seriellt. Alla AVR-mikrokontroller består av USART-protokoll med sina egna funktioner.



USART-kommunikation i AVR-mikrokontroller

USART-kommunikation i AVR-mikrokontroller

De viktigaste funktionerna i AVR USART

  • USART-protokollet stöder full-duplex-protokollet.
  • Den genererar högupplöst överföringshastighet.
  • Den stöder sändning av seriella databitar från 5 till 9 och den består av två stoppbitar.

USART-stiftkonfiguration

USART of AVR består av tre stift:


  • RXD: USART-mottagarstift (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: USART-sändarstift (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART klockstift (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Driftlägen

AVR-mikrokontrollern enligt USART-protokollet fungerar i tre lägen som är:

  • Asynkront normalt läge
  • Asynkront dubbelhastighetsläge
  • Synkron läge
Driftlägen

Driftlägen

Asynkront normalt läge

I detta kommunikationssätt sänds och mottas data bit för bit utan klockpulser med den fördefinierade baudhastigheten inställd av UBBR-registret.

Asynkront dubbelhastighetsläge

I detta kommunikationssätt ställs de data som överförs med dubbel baudhastighet in av UBBR-registret och sätter U2X-bitar i UCSRA-registret. Detta är ett höghastighetsläge för synkron kommunikation för att snabbt överföra och ta emot data. Detta system används där exakt baudhastighetsinställningar och systemklocka krävs.

Synkron läge

I detta system är sändning och mottagning av data med avseende på klockpuls inställd UMSEL = 1 i UCSRC-registret.

USART-konfiguration i AVR-mikrokontroller

USART kan konfigureras med hjälp av fem register, t.ex. tre kontrollregister , ett dataregister och register för överföringshastighetsval, såsom UDR, UCSRA, UCSRB, UCSRC och UBRR.

7 steg för att komponera programmet

Steg 1: Beräkna och ställ in överföringshastigheten

Överföringshastigheten för USART / UART ställs in av UBRR-registraren. Detta register används för att generera dataöverföringen vid den specifika hastigheten. UBRR är ett 16-bitarsregister. Eftersom AVR är en 8-bitars mikrokontroller och dess registerstorlek är 8-bit. Därför består här 16-bitars UBRR-registret av två 8-bitarsregister såsom UBRR (H), UBRR (L).

Baudhastighetens formel är

BAUD = Dark / (16 * (UBBR + 1))

UBRR-registrets formel är

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

Frekvensen för AVR-mikrokontrollern är 16MHz = 16000000 Låt oss anta baudhastigheten som 19200Bps, sedan

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

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

UBRR = 51.099

Så småningom hitta överföringshastigheten

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

Steg 2: Val av dataläge

Dataöverföringsläget, startbit och stoppbit och teckenstorleken ställs in av kontroll- och statusregistret UCSRC.

Val av dataläge

Val av dataläge

Steg 3: Val av dataöverföringsläge

Det synkrona och asynkrona läget väljs av UMSEL-biten i kontrollstatusregistret. Om vi ​​ger UMSEL = 0, fungerar USART i asynkront läge, annars fungerar det i synkront läge.

Val av dataöverföringsläge

Val av dataöverföringsläge

Steg 4: Start Bit och Stop Bit

Startbiten och stoppbitarna är ett sätt att skicka och ta emot data seriellt. I allmänhet består all datafam av en statbit och en stoppbit, men AVR-mikrokontrollern har en startbit och två stoppbitar för bearbetning av data. Den extra stoppbiten kan vara användbar för att lägga till lite extra behandlingstid för mottagning. Det är särskilt användbart för höga dataöverföringshastigheter, medan dataöverföringshastigheten är mycket hög, så vi får inte ordentlig data. Således kan vi öka behandlingstiden genom att använda två stoppbitar för att få rätt data.

Start Bit och Stop Bit

Start Bit och Stop Bit

Antalet stoppbitar väljs av USBS-biten i UCSRC - kontrollstatusregistret. USBS = 0, för en stoppbit och USBS = 1, för två stoppbitar.

Steg 5: Ställ in teckenstorleken

Som i fallet med grundläggande mikrokontroller sändning och mottagning av databiten (8 bitar) åt gången, oavsett om det finns en AVR-mikrokontroller, kan vi välja ett dataramformat i varje ram av UCSZ-biten i UCSRC-registret.

Dataramformat

Dataramformat

Steg 6: Lagra mottagen data

AVR-mikrokontrollern består av ett UDR-buffertregister för överföring och mottagning av data. UDR är ett 16-bitars buffertregister där 8-bitar används för mottagning (RXB) av data och andra bitar används för överföring av data (TXB). Överföring av databuffertregister kommer att vara destinationen till UDR-registret för de skriftliga uppgifterna på dess plats. Mottagande av databuffertregister returnerar innehållet i UDR-registret.

Steg 7: Sändare och mottagare aktiveras

Överförda och mottagna data kommer att tillåtas av RXC- och TXC-stiften på mikrokontrollern som ställs in av UCSRA-registret för mikrokontrollern. Denna flaggbit inställd av mikrokontrollern för data kompletteras genom mottagning och sändning (TXC = RXC = 1).

Fördubba baudhastigheten

Vi kan fördubbla överföringshastigheten för USART-kommunikationen för AVR mikrokontroller från 16 bitar till 8 bitar effektivt av U2X –bit i UCSRA-registret. Denna bit påverkar endast asynkron drift. Om vi ​​kan ställa in den här biten (U2X = 1) kommer den att minska baudhastigheten från 16-bit till 8-bit och effektivt fördubbla överföringshastigheten för synkron kommunikation.

Detta är en avancerad funktion hos AVR-mikrokontrollern för snabb bearbetning av data.

USART-programmet

Varje mikrokontroller är fördefinierad med en specifik IDE, och baserat på denna IDE, mikrokontroller är programmerade med inbäddad C eller monteringsspråk. AVR-mikroprogrammeringsprogrammeringen är utvecklad av AVR-studion. Dessutom, Om du vill ha ytterligare information om steg för att bygga mikrokontrollerbaserade projekt , eller detaljerad information om detta ämne, kan du kontakta oss genom att kommentera nedan.