AVR Mikrodenetleyici (Atmel 8) Seri Haberleşme USART Yapılandırması

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Mikrodenetleyici, RAM, ROM ZAMANLAYICILAR gibi bir dizi çevre birimi içeren bir kontrol cihazıdır. seri veri iletişimi , vb., önceden tanımlanmış bazı görevleri gerçekleştirmek için gerekli. Şu günlerde, gelişmiş mikro denetleyiciler İstenen bazı görevleri yerine getirme kabiliyetlerine ve fizibilitelerine göre çok çeşitli uygulamalarda kullanılır ve bu kontrolörler şunları içerir 8051, AVR ve PIC mikro denetleyici . Bu yazıda, gelişmiş AVR ailesi mikrodenetleyicisi ve programlaması hakkında bilgi edineceğiz. .

AVR Mikrodenetleyici

AVR, 1996 yılında Atmel Corporation tarafından üretilen bir tür kontrol cihazıdır. AVR hiçbir şeyi ifade etmez, sadece bir isimdir. AVR mikrodenetleyiciler Harvard mimarisinden oluşur ve bu nedenle cihaz, daha az sayıda makine seviyesi talimatıyla (RISC) çok hızlı çalışır. AVR mikro denetleyicileri, 6 uyku modları, dahili ADC, dahili osilatör ve seri veri iletişimi gibi diğer mikro denetleyicilere kıyasla özel özelliklerden oluşur. AVR mikro denetleyicileri Çeşitli işlemleri gerçekleştirmek için 8 bit, 16 bit ve 32 bitlik farklı konfigürasyonlarda mevcuttur.




AVR Mikrodenetleyici

AVR Mikrodenetleyici

AVR Mikrodenetleyicide USART Seri Veri İletişimi

USART, evrensel senkron ve asenkron alıcı ve verici anlamına gelir. İki protokolün seri iletişimidir. Bu protokol, tek bir teldeki saat darbelerine göre verileri bit bit olarak iletmek ve almak için kullanılır. AVR mikrodenetleyici Verileri seri olarak iletmek ve almak için özel olarak kullanılan TXD ve RXD olmak üzere iki pime sahiptir. Herhangi bir AVR mikro denetleyicisi, kendi özelliklerine sahip USART protokolünden oluşur.



AVR Mikrodenetleyicide USART İletişimi

AVR Mikrodenetleyicide USART İletişimi

AVR USART'ın Ana Özellikleri

  • USART protokolü, tam çift yönlü protokolü destekler.
  • Yüksek çözünürlüklü baud hızı üretir.
  • Seri veri bitlerinin 5'ten 9'a aktarılmasını destekler ve iki durdurma bitinden oluşur.

USART Pin Yapılandırması

USART of AVR üç Pinden oluşur:


  • RXD: USART alıcı pimi (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: USART verici pimi (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART saat pimi (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Operasyon modları

USART protokolünün AVR mikro denetleyicisi üç modda çalışır:

  • Eşzamansız Normal Mod
  • Eşzamansız Çift Hız Modu
  • Senkron Mod
Operasyon modları

Operasyon modları

Eşzamansız Normal Mod

Bu iletişim modunda, veriler UBBR yazmacı tarafından ayarlanan önceden tanımlanmış baud hızına göre saat darbeleri olmadan bit bit gönderilir ve alınır.

Eşzamansız Çift Hız Modu

Bu iletişim modunda, baud hızının iki katı hızda aktarılan veriler UBBR kaydı tarafından ayarlanır ve UCSRA kaydında U2X bitleri ayarlanır. Bu, verilerin hızlı bir şekilde iletilmesi ve alınması için senkron iletişim için yüksek hızlı bir moddur. Bu sistem, doğru baud hızı ayarlarının ve sistem saatinin gerekli olduğu yerlerde kullanılır.

Senkron Mod

Bu sistemde, saat darbesine göre verilerin iletilmesi ve alınması UCSRC kaydında UMSEL = 1 olarak ayarlanmıştır.

AVR mikro denetleyicisinde USART Yapılandırması

USART, aşağıdaki gibi beş kayıt kullanılarak yapılandırılabilir: üç kontrol kaydı , UDR, UCSRA, UCSRB, UCSRC ve UBRR gibi bir veri kaydı ve baud hızı seçim kaydı.

Programı Oluşturmak için 7 Adım

Aşama 1: Baud Hızını Hesaplayın ve Ayarlayın

USART / UART'ın baud hızı, UBRR kayıt şirketi tarafından belirlenir. Bu kayıt, belirli hızda veri iletimi oluşturmak için kullanılır. UBRR, 16 bitlik bir kayıttır. AVR, 8 bitlik bir mikro denetleyici olduğundan ve herhangi bir kayıt boyutu 8 bit olduğundan. Bu nedenle, burada 16 bitlik UBRR kaydı, UBRR (H), UBRR (L) gibi iki 8 bitlik kayıtlardan oluşur.

Baud hızının formülü şu şekildedir:

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

UBRR kaydının formülü şöyledir:

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

AVR mikrodenetleyicisinin frekansı 16MHz = 16000000'dür Baud hızını 19200Bps olarak kabul edelim, o zaman

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

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

UBRR = 51.099

Sonunda baud hızını bulun

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

Adım 2: Veri Modu Seçimi

Veri aktarım modu, başlatma biti ve durdurma biti ve karakter boyutu, kontrol ve durum kaydı UCSRC tarafından belirlenir.

Veri Modu Seçimi

Veri Modu Seçimi

Aşama 3: Veri İletim Modu Seçimi

Senkron ve asenkron mod, kontrol durumu yazmacının UMSEL biti tarafından seçilir. UMSEL = 0 verirsek, USART asenkron modda çalışır, aksi takdirde senkron modda çalışır.

Veri İletim Modu Seçimi

Veri İletim Modu Seçimi

Adım4: Başlatma Biti ve Durdurma Biti

Başlangıç ​​biti ve durdurma bitleri, verileri seri olarak göndermek ve almak için bir yoldur. Genellikle herhangi bir veri şöhreti, bir stat biti ve bir durdurma bitinden oluşur, ancak AVR mikro denetleyicisinin verileri işlemek için bir başlangıç ​​biti ve iki durdurma biti vardır. Ekstra durdurma biti, biraz fazladan alma işleme süresi eklemek için yararlı olabilir. Veri aktarım hızı çok yüksekken, özellikle yüksek veri aktarım hızları için kullanışlıdır, bu nedenle doğru verileri alamıyoruz. Böylece, uygun verileri elde etmek için iki durdurma biti kullanarak işlem süresini artırabiliriz.

Başlatma Biti ve Durdurma Biti

Başlatma Biti ve Durdurma Biti

Durdurma bitlerinin sayısı, UCSRC'nin USBS biti - kontrol durumu kaydı tarafından seçilir. USBS = 0, bir durdurma biti için ve USBS = 1, iki durdurma biti için.

Adım 5: Karakter Boyutunu Ayarlayın

Durumda olduğu gibi temel mikro denetleyiciler İster bir AVR mikro denetleyicide olsun, bir seferde veri baytını (8 bit) göndermek ve almak, UCSRC kaydının UCSZ biti ile her çerçevede bir veri çerçevesi formatı seçebiliriz.

Veri Çerçevesi Formatı

Veri Çerçevesi Formatı

Adım6: Alınan Verileri Saklayın

AVR mikro denetleyici, veri iletmek ve almak için bir UDR ara bellek yazmacından oluşur. UDR, verileri almak (RXB) için 8 bitin kullanıldığı ve verilerin (TXB) iletilmesi için diğer bitlerin kullanıldığı 16 bitlik bir arabellek kaydıdır. Gönderilen veri tamponu yazmacı, bulunduğu yere yazılan veriler için UDR yazmacına varış yeri olacaktır. Veri tamponu yazmacının alınması, UDR yazmacının içeriğini geri getirecektir.

Adım7: Verici ve Alıcı Etkinleştirme

İletilen ve alınan verilere, mikro denetleyicinin UCSRA kaydı tarafından ayarlanan mikro denetleyicinin RXC ve TXC pinleri tarafından izin verilecektir. Mikrodenetleyici tarafından veri için ayarlanan bu bayrak biti alma ve iletme (TXC = RXC = 1) ile tamamlanır.

Baud Hızını İkiye Katlayın

AVR'nin USART iletişiminin aktarım hızını ikiye katlayabiliriz 16 bitten 8 bit'e kadar mikro denetleyici UCSRA yazmacındaki U2X –bit ile etkin. Bu bit, yalnızca zaman uyumsuz işlemi etkiler. Bu biti (U2X = 1) ayarlayabilirsek, baud hızını 16 bitten 8 bit'e düşürecek ve senkron iletişim için aktarım hızını etkili bir şekilde ikiye katlayacaktır.

Bu, verilerin hızlı işlenmesi için AVR mikro denetleyicisinin gelişmiş bir özelliğidir.

USART Programı

Her mikro denetleyici, belirli bir IDE ile önceden tanımlanmıştır ve bu IDE'ye dayanmaktadır, mikro denetleyiciler gömülü C ile programlanmıştır veya assembly dili. AVR mikro denetleyici programlaması, AVR stüdyosu tarafından geliştirilmiştir. Ayrıca, hakkında ek bilgi istiyorsanız mikrodenetleyici tabanlı projeler oluşturma adımları , veya bu konu ile ilgili detaylı bilgi için aşağıya yorum yaparak bizimle iletişime geçebilirsiniz.