AVR Microcontroller (Atmel 8) Konfigurasi USART Komunikasi Bersiri

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Mikrokontroler adalah alat kawalan yang mengandungi sejumlah periferal seperti RAM, ROM TIMER, komunikasi data bersiri , dll., yang diperlukan untuk melakukan beberapa tugas yang telah ditentukan. Pada masa kini, jenis mikrokontroler maju digunakan dalam berbagai aplikasi sesuai kemampuan dan kelayakan mereka untuk melakukan beberapa tugas yang diinginkan dan pengawal ini termasuk 8051, mikrokontroler AVR dan PIC . Dalam artikel ini, kita akan belajar mengenai mikrokontroler keluarga AVR lanjutan dan pengaturcaraannya .

Mikrokontroler AVR

AVR adalah sejenis alat kawalan yang dikeluarkan oleh Atmel Corporation pada tahun 1996. AVR tidak bermaksud apa-apa, itu hanyalah nama. AVR mikrokontroler terdiri daripada seni bina Harvard , dan oleh itu, peranti berjalan sangat pantas dengan bilangan petunjuk tahap mesin (RISC) yang berkurang. Mikrokontroler AVR terdiri daripada ciri khas berbanding dengan mikrokontroler lain seperti mod 6-tidur, ADC terbina dalam, pengayun dalaman dan komunikasi data bersiri, dll. Pengawal mikro AVR terdapat dalam konfigurasi yang berbeza iaitu 8-bit, 16-bit, dan 32-bit untuk melakukan pelbagai operasi.




Mikrokontroler AVR

Mikrokontroler AVR

Komunikasi Data Bersiri USART dalam Mikrokontroler AVR

USART bermaksud penerima dan pemancar segerak dan tak segerak sejagat. Ini adalah komunikasi bersiri dari dua protokol. Protokol ini digunakan untuk menghantar dan menerima data sedikit demi sedikit berkenaan dengan denyutan jam pada satu wayar. The Pengawal mikro AVR mempunyai dua pin: TXD dan RXD, yang digunakan khas untuk menghantar dan menerima data secara bersiri. Mana-mana mikrokontroler AVR terdiri daripada protokol USART dengan ciri tersendiri.



Komunikasi USART dalam AVR Microcontroller

Komunikasi USART dalam AVR Microcontroller

Ciri-ciri Utama AVR USART

  • Protokol USART menyokong protokol dupleks penuh.
  • Ia menghasilkan kadar baud resolusi tinggi.
  • Ia menyokong penghantaran bit data bersiri dari 5 hingga 9 dan terdiri daripada dua bit berhenti.

Konfigurasi Pin USART

USART AVR terdiri daripada tiga Pin:


  • RXD: Pin penerima USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: Pin pemancar USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: Pin jam USART (PIN ATMega8 6 ATMega16 / 32 Pin 1)

Kaedah Operasi

Protokol mikro AVR protokol USART beroperasi dalam tiga mod iaitu:

  • Mod Biasa Asinkron
  • Mod Kelajuan Berganda Asinkron
  • Mod segerak
Kaedah Operasi

Kaedah Operasi

Mod Biasa Asinkron

Dalam mod komunikasi ini, data dihantar dan diterima sedikit demi sedikit tanpa denyutan jam mengikut kadar baud yang telah ditetapkan oleh daftar UBBR.

Mod Kelajuan Berganda Asinkron

Dalam mod komunikasi ini, data yang dipindahkan pada kadar baud dua kali lipat ditetapkan oleh daftar UBBR dan menetapkan bit U2X dalam daftar UCSRA. Ini adalah mod berkelajuan tinggi untuk komunikasi segerak untuk penghantaran dan penerimaan data dengan cepat. Sistem ini digunakan di mana tetapan kadar baud yang tepat dan jam sistem diperlukan.

Mod segerak

Dalam sistem ini, penghantaran dan penerimaan data berkenaan dengan nadi jam ditetapkan UMSEL = 1 dalam daftar UCSRC.

Konfigurasi USART Dalam mikrokontroler AVR

USART boleh dikonfigurasikan menggunakan lima daftar seperti tiga daftar kawalan , satu daftar data dan daftar pemilihan kadar baud, seperti UDR, UCSRA, UCSRB, UCSRC dan UBRR.

7 Langkah Menyusun Program

Langkah 1: Kira dan Tetapkan Baud Rate

Kadar baud USART / UART ditetapkan oleh pendaftar UBRR. Daftar ini digunakan untuk menghasilkan penghantaran data pada kecepatan tertentu. UBRR adalah daftar 16-bit. Oleh kerana AVR adalah mikrokontroler 8-bit dan ukuran pendaftarannya adalah 8-bit. Oleh itu, di sini daftar UBRR 16-bit terdiri daripada dua daftar 8-bit seperti UBRR (H), UBRR (L).

Formula kadar baud adalah

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

Formula daftar UBRR adalah

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

Kekerapan mikrokontroler AVR adalah 16MHz = 16000000 Mari kita anggap kadar baud sebagai 19200Bps, maka

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

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

UBRR = 51.099

Akhirnya cari kadar baud

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

Langkah 2: Pemilihan Mod Data

Mod penghantaran data, bit permulaan dan bit berhenti dan ukuran watak ditetapkan oleh kawalan dan status status UCSRC.

Pemilihan Mod Data

Pemilihan Mod Data

Langkah 3: Pemilihan Mod Penghantaran Data

Mod segerak dan tak segerak dipilih oleh bit UMSEL dari daftar status kawalan. Sekiranya kita memberikan UMSEL = 0, maka USART beroperasi dalam mod tak segerak, sebaliknya beroperasi dalam mod segerak.

Pemilihan Mod Penghantaran Data

Pemilihan Mod Penghantaran Data

Langkah 4: Mulakan Bit dan Hentikan Bit

Bit permulaan dan bit berhenti adalah cara untuk menghantar dan menerima data secara bersiri. Secara amnya kemasyhuran data terdiri dari satu bit stat dan satu bit berhenti, tetapi mikrokontroler AVR mempunyai satu bit permulaan dan dua bit berhenti untuk memproses data. Bit berhenti tambahan boleh berguna untuk menambahkan sedikit masa pemprosesan penerimaan tambahan. Ia sangat berguna untuk kadar pemindahan data yang tinggi, sedangkan kecepatan pemindahan data sangat tinggi, jadi kami tidak mendapat data yang tepat. Oleh itu, kita dapat meningkatkan masa pemprosesan dengan menggunakan dua bit berhenti untuk mendapatkan data yang tepat.

Mulakan Bit dan Hentikan Bit

Mulakan Bit dan Hentikan Bit

Jumlah bit berhenti dipilih oleh bit USBS UCSRC - daftar status kawalan. USBS = 0, untuk satu bit berhenti, dan USBS = 1, untuk dua bit berhenti.

Langkah 5: Tetapkan Ukuran Watak

Seperti halnya dengan mikrokontroler asas menghantar dan menerima bait data (8-bit) dalam satu masa, sama ada dalam mikrokontroler AVR, kita dapat memilih format bingkai data dalam setiap bingkai dengan bit UCSZ dari daftar UCSRC.

Format Rangka Data

Format Rangka Data

Langkah 6: Simpan Data yang Diterima

Mikrokontroler AVR terdiri dari daftar penyangga UDR untuk menghantar dan menerima data. UDR adalah daftar penyangga 16-bit di mana 8-bit digunakan untuk menerima (RXB) data dan bit lain digunakan untuk menghantar data (TXB). Menghantar daftar penyangga data akan menjadi destinasi ke daftar UDR untuk data bertulis di lokasinya. Menerima daftar penyangga data akan mengembalikan kandungan daftar UDR.

Langkah7: Pemancar dan Pemboleh Terima

Data yang dihantar dan diterima akan dibenarkan oleh pin RXC dan TXC mikrokontroler yang ditetapkan oleh daftar mikrokontroler UCSRA. Bit bendera ini yang ditetapkan oleh mikrokontroler untuk data diselesaikan dengan menerima dan menghantar (TXC = RXC = 1).

Gandakan Kadar Baud

Kami boleh menggandakan kadar pemindahan komunikasi USART AVR mikrokontroler dari 16 bit hingga 8-bit berkesan oleh bit U2X dalam daftar UCSRA. Bit ini hanya mempengaruhi operasi tidak segerak. Sekiranya kita dapat menetapkan bit ini (U2X = 1), ia akan mengurangkan kadar baud dari 16-bit menjadi 8-bit dengan berkesan menggandakan kadar pemindahan untuk komunikasi segerak.

Ini adalah ciri canggih mikrokontroler AVR untuk memproses data dengan pantas.

Program USART

Setiap mikrokontroler ditentukan dengan IDE tertentu, dan berdasarkan IDE ini, mikrokontroler diprogramkan dengan C tertanam atau bahasa perhimpunan. Pengaturcaraan mikrokontroler AVR dikembangkan oleh studio AVR. Selanjutnya, Sekiranya anda mahukan maklumat tambahan mengenai langkah membina projek berasaskan mikrokontroler , atau maklumat terperinci mengenai topik ini, anda boleh menghubungi kami dengan memberi komen di bawah.