AVR Microcontroller (Atmel 8) Serial Communication USART Configuration

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Ang Microcontroller ay isang control device na naglalaman ng isang bilang ng mga peripheral tulad ng RAM, ROM TIMERS, komunikasyon sa serial data , at iba pa, na kinakailangan upang maisagawa ang ilang mga paunang natukoy na gawain. Ngayon, advanced na uri ng mga microcontroller ay ginagamit sa isang iba't ibang mga application ayon sa kanilang kakayahan at posibilidad na gumanap ng ilang mga nais na gawain at isama ang mga Controller 8051, AVR at PIC microcontroller . Sa artikulong ito, matututunan natin ang tungkol sa advanced AVR family microcontroller at ang programa nito .

AVR Microcontroller

Ang AVR ay isang uri ng aparato sa pagkontrol na ginawa ng Atmel Corporation noong 1996. Ang AVR ay hindi naninindigan para sa anumang bagay, ito ay isang pangalan lamang. Ang AVR binubuo ang mga microcontroller ng arkitektura ng Harvard , at samakatuwid, ang aparato ay tumatakbo nang napakabilis na may isang pinababang bilang ng mga tagubilin sa antas ng makina (RISC). Ang mga AVR microcontroller ay binubuo ng mga espesyal na tampok kumpara sa iba pang microcontroller tulad ng 6-sleep mode, inbuilt ADC, internal oscillator at serial data na komunikasyon, atbp. Mga microcontroller ng AVR ay magagamit sa iba't ibang mga pagsasaayos ng 8-bit, 16-bit, at 32-bit upang maisagawa ang iba't ibang mga operasyon.




AVR Microcontroller

AVR Microcontroller

USART Serial Data Communication sa AVR Microcontroller

Ang USART ay nangangahulugang para sa unibersal na kasabay at asynchronous na tagatanggap at transmiter. Ito ay isang serial na komunikasyon ng dalawang mga protokol. Ginagamit ang protokol na ito para sa paglilipat at pagtanggap ng data ng paunti-unting patungkol sa mga pulso ng orasan sa isang solong kawad. Ang AVR microcontroller ay may dalawang mga pin: TXD at RXD, na kung saan ay espesyal na ginagamit para sa paglilipat at pagtanggap ng data nang seryal. Ang anumang AVR microcontroller ay binubuo ng USART protocol na may sariling mga tampok.



USART Komunikasyon sa AVR Microcontroller

USART Komunikasyon sa AVR Microcontroller

Ang Pangunahing Mga Tampok ng AVR USART

  • Sinusuportahan ng USART protocol ang full-duplex protocol.
  • Bumubuo ito ng mataas na resolusyon na rate ng baud.
  • Sinusuportahan nito ang paglilipat ng mga serial data bits mula 5 hanggang 9 at binubuo ito ng dalawang paghinto.

Pag-configure ng USART Pin

Ang USART ng AVR ay binubuo ng tatlong Pins:


  • RXD: USART receiver pin (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: USART transmitter pin (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART clock pin (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Mga Paraan ng Pagpapatakbo

Ang AVR microcontroller ng USART protocol ay nagpapatakbo sa tatlong mga mode na:

  • Asynchronous Normal Mode
  • Hindi magkakasunod na Double Speed ​​Mode
  • Kasabay na Mode
Mga Paraan ng Pagpapatakbo

Mga Paraan ng Pagpapatakbo

Asynchronous Normal Mode

Sa mode na ito ng komunikasyon, ang data ay naililipat at natanggap nang paunti-unting walang mga pulso sa orasan ng paunang natukoy na rate ng baud na itinakda ng rehistro ng UBBR.

Hindi magkakasunod na Double Speed ​​Mode

Sa mode na ito ng komunikasyon, ang data na inilipat nang doble ang baud rate ay itinakda ng rehistro ng UBBR at itinakda ang mga U2X bit sa rehistro ng UCSRA. Ito ay isang high-speed mode para sa magkasabay na komunikasyon para sa mabilis na paglilipat at pagtanggap ng data. Ginagamit ang sistemang ito kung saan kinakailangan ang tumpak na mga setting ng rate ng baud at orasan ng system.

Kasabay na Mode

Sa sistemang ito, ang paglilipat at pagtanggap ng data na patungkol sa pulso ng orasan ay nakatakda sa UMSEL = 1 sa rehistro ng UCSRC.

Pag-configure ng USART Sa AVR microcontroller

Maaaring mai-configure ang USART gamit ang limang rehistro tulad ng tatlong control register , isang rehistro ng data at rehistro ng pagpipilian ng baud-rate-pagpili, tulad ng UDR, UCSRA, UCSRB, UCSRC at UBRR.

7 Mga Hakbang para sa Pagbubuo ng Program

Hakbang1: Kalkulahin at Itakda ang Baud Rate

Ang baud rate ng USART / UART ay itinakda ng registrar ng UBRR. Ginagamit ang rehistro na ito upang makabuo ng paghahatid ng data sa tiyak na bilis. Ang UBRR ay isang 16-bit na rehistro. Dahil ang AVR ay isang 8-bit microcontroller at ang anumang laki ng rehistro ay 8-bit. Samakatuwid, narito ang 16-bit na rehistro ng UBRR ay binubuo ng dalawang 8-bit na rehistro tulad ng UBRR (H), UBRR (L).

Ang pormula ng baud rate ay

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

Ang pormula ng rehistro ng UBRR ay

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

Ang dalas ng AVR microcontroller ay 16MHz = 16000000 Ipagpalagay natin ang rate ng baud bilang 19200Bps, pagkatapos

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

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

UBRR = 51.099

Sa paglaon hanapin ang baud rate

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

Hakbang2: Pagpili ng Data Mode

Ang mode ng paghahatid ng data, simulan ang bit at itigil ang bit at ang laki ng character ay itinakda ng control at pagrehistro sa status ng UCSRC.

Pagpili ng Data Mode

Pagpili ng Data Mode

Hakbang3: Pagpili ng Data Transmission Mode

Ang kasabay at asynchronous mode ay pinili ng UMSEL na piraso ng rehistro ng katayuan ng kontrol. Kung bibigyan namin ang UMSEL = 0, kung gayon ang USART ay nagpapatakbo sa asynchronous mode, kung hindi man ay tumatakbo sa kasabay na mode.

Pagpili ng Data Transmission Mode

Pagpili ng Data Transmission Mode

Hakbang4: Simulan ang Bit at Itigil ang Bit

Ang pagsisimula ng bit at paghinto ng mga piraso ay isang paraan para sa pagpapadala at pagtanggap ng data nang seryal. Pangkalahatan ang anumang katanyagan ng data ay binubuo ng isang stat bit at isang stop bit, ngunit ang AVR microcontroller ay may isang start bit at two stop bits para sa pagproseso ng data. Ang labis na paghinto ay maaaring maging kapaki-pakinabang para sa pagdaragdag ng kaunting dagdag na makatanggap ng oras sa pagpoproseso. Lalo na kapaki-pakinabang ito para sa mataas na mga rate ng paglipat ng data, samantalang ang bilis ng paglipat ng data ay napakataas, kaya't hindi kami nakakakuha ng wastong data. Kaya, maaari nating taasan ang oras ng pagproseso sa pamamagitan ng paggamit ng dalawang paghinto upang makuha ang wastong data.

Simulan ang Bit at Itigil ang Bit

Simulan ang Bit at Itigil ang Bit

Ang bilang ng mga stop bits ay napili ng USBS bit ng UCSRC - ang rehistro ng katayuan ng kontrol. Ang USBS = 0, para sa isang stop bit, at USBS = 1, para sa dalawang hintuan.

Hakbang5: Itakda ang Laki ng Character

Tulad ng kaso sa pangunahing mga microcontroller pagpapadala at pagtanggap ng byte ng data (8-bits) nang sabay-sabay, maging sa isang microcrtroller ng AVR, maaari kaming pumili ng isang format ng frame ng data sa bawat frame ng UCSZ na bit ng rehistro ng UCSRC.

Format ng Frame ng Data

Format ng Frame ng Data

Hakbang6: Iimbak ang Natanggap na Data

Ang AVR microcontroller ay binubuo ng isang rehistro ng buffer ng UDR para sa paglilipat at pagtanggap ng data. Ang UDR ay isang 16-bit buffer register kung saan ginagamit ang 8-bit para sa pagtanggap (RXB) ng data at iba pang mga bit na ginagamit para sa paglilipat ng data (TXB). Ang paglilipat ng rehistro ng buffer ng data ay magiging patutunguhan sa pagrehistro ng UDR para sa nakasulat na data sa lokasyon nito. Ang pagtanggap ng rehistro ng buffer ng data ay ibabalik ang nilalaman ng rehistro ng UDR.

Hakbang7: Pagpapagana ng Transmitter at Receiver

Ang naihatid at natanggap na data ay papayagan ng mga pin ng RXC at TXC ng microcontroller na itinatakda ng rehistro ng UCSRA ng microcontroller. Ang flag bit na ito na itinakda ng microcontroller para sa data ay nakumpleto sa pamamagitan ng pagtanggap at paglilipat (TXC = RXC = 1).

Doblehin ang Baud Rate

Maaari nating doblehin ang rate ng paglipat ng komunikasyon ng USART ng AVR microcontroller mula 16 bits hanggang 8-bit mabisa ng U2X –bit sa pagrehistro ng UCSRA. Ang mga bit effects na ito lamang sa asynchronous na operasyon. Kung maitatakda natin ang bit na ito (U2X = 1), babawasan nito ang rate ng baud mula sa 16-bit hanggang 8-bit na mabisang pagdoble ng rate ng paglipat para sa magkasabay na komunikasyon.

Ito ay isang advanced na tampok ng AVR microcontroller para sa mabilis na pagproseso ng data.

USART Program

Ang bawat microcontroller ay paunang natukoy na may isang tukoy na IDE, at batay sa IDE na ito, ang mga microcontroller ay na-program na may naka-embed na C o wika ng pagpupulong. Ang programa ng AVR microcontroller ay binuo ng AVR studio. Bukod dito, Kung nais mo ng karagdagang impormasyon tungkol sa mga hakbang upang makabuo ng mga proyekto na nakabatay sa microcontroller , o detalyadong impormasyon sa paksang ito, maaari kang makipag-ugnay sa amin sa pamamagitan ng pagbibigay ng puna sa ibaba.