Nuvoton N76E003 Microdenetleyicisinde UART haberleşme – Seri Haberleşme

UART açılımı Universal Asynchronous Receiver/Transmitter olan haberleşme protokolüdür. Mikrodenetleyici ünitelerinde faydalı donanımsal bir özelliktir. Bir mikrodenetleyici data alma ve bunu işleyip geri gönderme ihtiyacı duyduğunda farklı tip haberleşme protokolleri mevcuttur. Örneğin;SPI veya I2C gibi… UART, haberleşme protokolleri  arasında en kolay ve ortak olan opsiyondur. UART haberleşme protokolünün en önemli haberleşme avantajı; datanın cihazlar arasındaki gönderimi ve alımı için sadece iki hat yeterlidir. Bu yazıda Nuvoton’un N76E003, 8051 mimarisine sahip mikrodenetleyicisinde seri haberleşme protokolünü ele alacağız. UART haberleşme protokolü asenkron çalıştığı için clock ihtiyacı duyulmaz.

UART Haberleşmenin Temelleri

iki UART çevre birimi arasında data alış- verişi aynı frekansta başlar. Alıcı UART, başlangıç bitini aldığı zaman, diğer gelen bitleri, belirli Baud Rate olarak bilinen spesifik frekansta almaya başlar. Baud rate, UART haberleşme protokolü için önemlidir. Veri transferinin hızı bits per second (bps) ile belirtilmektedir. Veri alış-verişi aynı Baud Rate’de olması gerekmektedir. En popüler Baud Rate hızları; 4800, 9600 ve 115200 bps’dir.  Baud Rate hızımız, 9600 bps seçilmişse , UART haberleşme protokolünde saniyede 9600 bit veri alış-verişinin olacağını belirtmektedir.

Donanımsal İhtiyaçlar ve Kurulumu

Projelerde, bilgisayar ile mikrodenetleyici modülü arasında iletişimi,  USB’den UART’a TTL dönüştürücü sağlamaktadır.

Nu-Link Programmer’a, N76E003 mikrodenetleyicinin programlaması için  ihtiyacımız olacaktır.

N76E003 Üzerinde UART Pinleri

N76E003 üzerinde toplam 20 pinden, 4 pini UART seri haberleşme protokolüne aittir. Aşağıdaki görsel kırmızı içine alınanlar( Rx) ve maviye alınanlar ise (Tx) aittir. Haberleşme için UART0 için 2 ve 3 numaralı pinler, UART1  için 8 ve 18 pinler kullanılmaktadır.

N76E003 ‘de  iki adet UART1 ve UART0 olmak üzere otomatik adres tespiti ve frame hatası tespiti olan gelişmiş full-duplex UART mevcuttur. Bu iki UART registerlar ile kullanılmaktadır. N76E003’de ikişer adet Rx ve Tx pinleri mevcuttur. Yazılımda ilk iş hangi UART’ın kullanılması gerekiyorsa seçiminin yapılmasıdır. Bu yazıda UART0’nın kullanımından bahsedilecektir. UART1 aynı konfügrasyonlara sahiptir ama farklı registerlar ile işlem yapılmaktadır. I/0 pinleri Rx ve Tx olarak kullanılmak amaçlı giriş ve çıkış olarak ayarlanmaktadır. Receive pini  mikrodenetleyicide  P0.7 olarak giriş olarak ayarlanıyor. P0.6 pini ise transmitter olarak çıkış olarak ayarlanıyor.

Nuvoton N76E003 UART Haberleşme İçin Programlanması

UART0’ın 9600 Baud Rate’de kurulumu aşağıdaki fonksiyon ile yapılır.

Yukarıdaki fonksiyon common.c dosyasında tanımlıdır. Timer3 ile UART0 konfigürasyon yapılır.  Bu fonksiyon içeriği aşağıdaki gibidir.

P07_Input_Mode yerine, P07_Quasi_Mode yazılmıştır. Bu nedenle,  UART Receive fonksiyonu çalışmayacaktır. Printf fonksiyonu kullanmak için TI’nın set edilmesi gerekmektedir.

UART receive kullanılması için Receive_Data_From_UART0();  fonksiyonu mevcuttur. Common.c kütüphanesinde bu fonksiyonun içeriği aşağıdaki gibidir.

Seri haberleşme data alma ve gönderme için serial terminal kullanılmaldır. Çalışmamızda serial terminal olarak Tera Term kullanılabilir.

Tera Term

Terminale “sayi girin” yazmaktayız UART aracılığıyla ardından “1” basıldığında “komhedos.com” yazdırmaktayız. Bunla ilgili kaynak kodu aşağıdaki gibidir.

Yukarıdaki kaynak kodunu derledikden ettikten sonra lojik analizör ile UART hattının  analiz etmek istediğimizde;

Bu yazı hakkında ne düşünüyorsun ?
  • Müthiş 
  • Gereksiz 
  • Faydalı 
  • Normal 
Sidar ATABEY

About Sidar ATABEY

Elektrik-Elektronik Mühendisi. Makine Mühendisliğinde yan dal programını tamamladı. 1 sene boyunca Erasmus Programı kapsamında Polonya Silesian University of Technology'de eğitim gördü.

View all posts by Sidar ATABEY →

3 Comments on “Nuvoton N76E003 Microdenetleyicisinde UART haberleşme – Seri Haberleşme”

  1. Sidar Bey,
    Öncelikle bu güzel çalışma için teşekkür ederiz.
    Elinize sağlık.
    Bu ve bunun gibi çalışmalarınızda başarılar dileriz.

Comments are closed.