AVR mikrokontroller (Atmel 8) jadaside USART-i seadistamine

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Mikrokontroller on juhtimisseade, mis sisaldab mitmeid välisseadmeid, nagu RAM, ROM TAIMERID, jadaandmeside jne., mis on vajalikud mõne eelnevalt määratletud ülesande täitmiseks. Tänapäeval täiustatud tüüpi mikrokontrollerid neid kasutatakse paljudes rakendustes vastavalt nende võimele ja otstarbekusele soovitud ülesannete täitmiseks ja need kontrollerid hõlmavad ka neid 8051, AVR ja PIC mikrokontroller . Selles artiklis tutvume AVR-i täiustatud mikrokontrolleri ja selle programmeerimisega .

AVR mikrokontroller

AVR on teatud tüüpi juhtimisseade, mille tootis Atmel Corporation 1996. aastal. AVR ei tähenda midagi, see on lihtsalt nimi. AVR mikrokontrollerid koosnevad Harvardi arhitektuurist ja seetõttu töötab seade väga kiiresti, vähendades arvu masinataseme juhiseid (RISC). AVR mikrokontrollerid koosnevad teiste mikrokontrolleritega võrreldes eripäradest, näiteks 6-unerežiimid, sisseehitatud ADC, sisemine ostsillaator ja jadandmeside jne. AVR mikrokontrollerid on erinevate toimingute tegemiseks saadaval erinevates konfiguratsioonides 8-bitine, 16-bitine ja 32-bitine.




AVR mikrokontroller

AVR mikrokontroller

USART-andmeside AVR mikrokontrolleris

USART tähistab universaalset sünkroonset ja asünkroonset vastuvõtjat ja saatjat. See on kahe protokolli jadaühendus. Seda protokolli kasutatakse andmete edastamiseks ja vastuvõtmiseks bitti haaval ühe traadi kellaimpulsside suhtes. The AVR mikrokontroller on kaks tihvti: TXD ja RXD, mida kasutatakse spetsiaalselt andmete jada edastamiseks ja vastuvõtmiseks. Iga AVR mikrokontroller koosneb oma funktsioonidega USART-protokollist.



USART-side AVR-mikrokontrolleris

USART-side AVR-mikrokontrolleris

AVR USARTi peamised omadused

  • USART-protokoll toetab täisdupleksprotokolli.
  • See loob kõrge eraldusvõimega edastuskiiruse.
  • See toetab seeriaandmebittide edastamist vahemikus 5 kuni 9 ja see koosneb kahest stoppbitist.

USART-i PIN-koodi konfiguratsioon

AVR-i USART koosneb kolmest tihvtist:


  • RXD: USART-vastuvõtja tihvt (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: saatja PIN-kood USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART kella tihvt (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Töörežiimid

USART-protokolli AVR mikrokontroller töötab kolmes režiimis, mis on:

  • Asünkroonne tavaline režiim
  • Asünkroonne topeltkiiruse režiim
  • Sünkroonrežiim
Töörežiimid

Töörežiimid

Asünkroonne tavaline režiim

Selles suhtlusrežiimis edastatakse ja võetakse andmeid vastu bitikiudude kaupa ilma kellaimpulssideta UBBR-registri määratud ettemääratud edastuskiirusega.

Asünkroonne topeltkiiruse režiim

Selles suhtlusrežiimis määrab kahekordse edastuskiirusega edastatud andmed UBBR register ja määrab U2X bitid UCSRA registris. See on kiire sünkroonse side režiim andmete kiireks edastamiseks ja vastuvõtmiseks. Seda süsteemi kasutatakse seal, kus on vaja täpseid baudikiiruse sätteid ja süsteemi kella.

Sünkroonrežiim

Selles süsteemis on andmete edastamine ja vastuvõtmine kella impulsi suhtes UCSRC registris seatud UMSEL = 1.

USART-i seadistamine AVR-mikrokontrolleris

USART-i saab konfigureerida viie registri abil, näiteks kolm kontrollregistrit , üks andmeregister ja baudikiiruse valimise register, näiteks UDR, UCSRA, UCSRB, UCSRC ja UBRR.

7 sammu programmi koostamiseks

Samm 1: Arvutage ja määrake edastuskiirus

USART / UART-i kiiruse määrab UBRR-i registripidaja. Seda registrit kasutatakse andmete edastamiseks kindla kiirusega. UBRR on 16-bitine register. Kuna AVR on 8-bitine mikrokontroller ja selle mis tahes registri suurus on 8-bitine. Seega koosneb siin 16-bitine UBRR register kahest 8-bitisest registrist nagu UBRR (H), UBRR (L).

Boodi kiiruse valem on

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

UBRR registri valem on

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

AVR-mikrokontrolleri sagedus on 16MHz = 16000000 Oletame, et baudikiirus on 19200Bps, siis

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

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

UBRR = 51,099

Lõpuks leidke ülekandekiirus

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

2. samm: Andmerežiimi valik

Andmeedastusrežiim, algus- ja lõpetamisbitt ning tähemärgi suuruse määrab juht- ja olekuregister UCSRC.

Andmerežiimi valik

Andmerežiimi valik

3. samm: Andmeedastusrežiimi valik

Sünkroonse ja asünkroonse režiimi valib juhtimise olekuregistri UMSEL-bitt. Kui anname UMSEL = 0, siis töötab USART asünkroonses režiimis, muidu töötab sünkroonrežiimis.

Andmeedastusrežiimi valik

Andmeedastusrežiimi valik

4. samm: Start Bit ja Stop Bit

Stardi- ja stoppbitid on viis andmete jada saatmiseks ja vastuvõtmiseks. Üldiselt koosneb igasugune andmekuulsus ühest stat-bitist ja ühest stop-bitist, kuid AVR mikrokontrolleril on andmete töötlemiseks üks algus- ja kaks stop-bitti. Lisapeatusbitt võib olla kasulik, et lisada veidi täiendavat vastuvõtu töötlemisaega. See on eriti kasulik suurte andmeedastuskiiruste korral, samas kui andmeedastuskiirus on väga suur, nii et me ei saa korralikke andmeid. Seega saame töötlemisaega pikendada, kasutades nõuetekohaste andmete saamiseks kahte stopbitit.

Start Bit ja Stop Bit

Start Bit ja Stop Bit

Stoppbitite arvu valib UCSRC - juhtimise oleku register - USBS-bit. USBS = 0 ühe stoppbiti jaoks ja USBS = 1 kahe stoppbiti jaoks.

5. samm: Määrake märgi suurus

Nagu ka põhilised mikrokontrollerid andmete (8-bitiste) baitide saatmine ja vastuvõtmine korraga, olgu siis AVR-mikrokontrolleris, saame igas kaadris valida UCSRC-registri UCSZ-bitiga andmekaadri vormingu.

Andmeraami vorming

Andmeraami vorming

6. samm: Salvestage vastuvõetud andmed

AVR mikrokontroller koosneb UDR puhverregistrist andmete edastamiseks ja vastuvõtmiseks. UDR on 16-bitine puhverregister, kus andmete vastuvõtmiseks (RXB) kasutatakse 8-bitiseid andmeid ja andmete edastamiseks (TXB) teisi bitti. Andmepuhvriregistri edastamine on UDR-i registri sihtpunkt selle asukohas olevate kirjalike andmete jaoks. Andmepuhvriregistri vastuvõtmine tagastab UDR-registri sisu.

7. samm: Saatja ja vastuvõtja lubamine

Edastatud ja vastuvõetud andmeid lubavad mikrokontrolleri RXC ja TXC tihvtid, mille määrab mikrokontrolleri UCSRA register. See mikrokontrolleri poolt andmetele määratud lipubitt lõpeb vastuvõtmise ja edastamisega (TXC = RXC = 1).

Topeltsagedus

Saame kahekordistada AVR-i USART-ühenduse edastuskiirust mikrokontroller 16 bitilt 8 bitini efektiivselt U2X-bitiga UCSRA registris. See bitt mõjutab ainult asünkroonset toimimist. Kui saame selle biti seada (U2X = 1), vähendab see edastuskiirust 16-bitiselt 8-bitisele, kahekordistades sünkroonse side edastuskiirust.

See on AVR mikrokontrolleri täiustatud funktsioon andmete kiireks töötlemiseks.

USART programm

Iga mikrokontroller on eelnevalt määratletud konkreetse IDE-ga ja selle IDE põhjal mikrokontrollerid on programmeeritud sisseehitatud C-ga või assamblee keel. AVR mikrokontrolleri programmeerimise töötab välja AVR stuudio. Lisaks, kui soovite lisateavet sammud mikrokontrolleril põhinevate projektide ehitamiseks või üksikasjalikku teavet selle teema kohta, võite meiega ühendust võtta, kommenteerides allpool.