C ile AVR Programlama -52- TWI (I2C) Birimi Yazmaçları
Bu dersimizde ATmega328p mikrodenetleyicinin TWI biriminin yazmaçlarını tamamen açıklayacağız. Teknik veri kitapçığında mikrodenetleyicinin bu birimi hakkında uzun uzun bilgiler yer alsa da şu an pratik açıdan bizim için pek faydalı olmadığı için basit bir sistemi tafsilatlı anlatarak sizi yormak istemiyoruz. Üstelik AVR için yazılmış I2C kütüphanesini de inceleyeceğimiz için zamanımızı işin daha pratik yönüne ayırmamız gereklidir. Yine de yazmaçları açıklayarak sizin için yeterli bir kaynak haline getireceğiz. Atladığımız kısımları teknik veri sayfasından görebilirsiniz.
TWBR – TWI Bit Oranı Yazmacı
Bu yazmaç bit oranı üreteci için bölme faktörünü belirleyen yazmaçtır. Bit oranı üreteci SCL saat sinyalinin frekansını belirler. Buraya yazılacak değer ile bu değiştirilebilir. Bir diğer değiştirme etkeni ise ön derecelendiricidir.
TWSR – TWI Durum Yazmacı
Bit 3, 4, 5, 6, 7 * TWSn : TWI Durum Biti
TWS[7:3] bitleri TWI mantığının ve seri iletişim yolunun durumunu yansıtır. Değişik durum kodları sonra anlatılacaktır.
Bit 0,1 – TWOSn : TWI Ön Derecelendirici
Ön derecelendirici değer tablosu aşağıdaki gibidir.
TWS[1:0] | Ön Derecelendirici Değeri |
00 | 1 |
01 | 4 |
10 | 16 |
11 | 64 |
TWAR – TWI Uydu Adres Yazmacı
Bu yazmaç 7 bit uydu adresini (TWA0-6) bulundurur. Eğer cihazımızı uydu aygıt olarak yürütüyorsak buradaki baş 7 bite adres yazmamız gereklidir. Ana aygıtta kullanmaya gerek yoktur.
Bit 1, 2, 3, 4, 5, 6, 7 – TWAn : TWI (Uydu) Adresi
Bu yedi bitte uydu adresi bulundurulur.
Bit 0 – TWGCE : TWI Genel Çağrı Tanıma Etkinleştirme Biti
Bu bit bir (1) olduğunda TWI genel çağrıları tanıma işlemi etkinleştirilmiş olur.
TWDR – TWI Veri Yazmacı
Bit 0-7 : Bu sekiz bit gönderilecek ya da alınan bayt bilgisini saklar. Bütün veri alma ve gönderme işlemleri buradan yürütülür.
TWCR – TWI Denetim Yazmacı
Bit 7 – TWINT : TWI Kesme Bayrak Biti
Diğer birimlerde olduğu gibi TWI için de bir kesme yürütülür. Bu kesme hakkında bilgi edinmek için kesmeler konusuna bakabilirsiniz. Eğer TWIE biti de bir (1) konumundaysa kesme fonksiyonu yürütülür. Bu bayrak biti kesme fonksiyonu yürütülürken donanım tarafından otomatik sıfırlanmaz.
Bit 6 – TWEA : TWI Onaylama Etkin
TWEA biti onaylama sinyalini denetler. Eğer TWEA bir yapılırsa ACK sinyali TWI hattında üretilir. Bu sinyalin üretilmesi için aşağıdaki şartlar sağlanmalıdır.
- Aygıtın kendi uydu adresi alınmalıdır.
- Genel çağrı alınmalı TWGCE biti bir (1) konumunda olmalıdır
- Uydu alıcı veya Ana alıcı modunda veri baytı alınmalıdır.
Bu bite sıfır (0) yazılırsa aygıt geçici olarak bağlantı dışı bırakılabilir. TWEA bitine tekrar bir (1) yazmak ile adres tanıma devam ettirilir.
Bit 5 – TWSTA : TWI START Durum Biti
Eğer TWSTA bitine bir (1) yazılırsa iletim hattında aygıt ana aygıt görevi yapar. Donanım iletim hattını kontrol eder ve START durumunu başlatır. Eğer hat meşgul ise STOP durumunu denetler ve algıladıktan sonra çalıştırır. TWSTA yazılım tarafından sonra sıfırlanması gerekir.
Bit 4 – TWSTO : TWI STOP Durum Biti
TWSTO bitine ana aygıt modunda bir (1) yazmak STOP durumunu iletim hattı üzerinde gerçekleştirir. STOP durumu başlatıldıktan sonra donanım tarafından otomatik sıfırlanır.
Bit 3 – TWWC : TWI Yazma Çakışma Bayrağı
Yazma çakışması gerçekleştiğinde bu bayrak bir konumuna geçer. TWDR yazmacına tekrar bir yazma yapıldığında bu bit sıfırlanır.
Bit 2 – TWEN : TWI Etkinleştirme Biti
Bu bit TWI arayüzünü etkinleştirir. Bu bit bir (1) yapıldığında bağlı olduğu ayakları denetimi altına alır. Sıfır yapıldığında TWI birimi devre dışı bırakılır.
Bit 0 – TWIE : TWI Kesme Etkin
Eğer bu bit bir (1) yapılırsa TWI kesmesi etkinleştirilmiş olur.
TWAMR – TWI (Uydu) Adres Maske Yazmacı
Bit 1, 2, 3, 4, 5, 6, 7, – TWAMn : TWI (Uydu) Adresi
Bu yazmaç TWAR adres yazmacı ile karşılaştırılmak için kullanılır.
TWI iletişim biriminin yazmaçları bu kadardır. Sonraki derste I2C kütüphane fonksiyonlarını açıklayacağız.
Kaynaklar
Kapak Resmi : http://enacademic.com/pictures/enwiki/65/AVR_ATXMEGA_128A1.JPG
ATmega328P – Microchip Technology , http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf, Erişim Tarihi: 25.08.2018
UYARI!!
Bu sitede yayınlanan yazılar orjinal içerik olup faydalanılan kaynaklar belirtilmiştir. Yazarın izni olmaksızın tamamen alıntı yapılamaz, kopyalanamaz. Kaynak göstermek kaydıyla (Yazının adı, yazar adı ve link) kısmen alıntı yapılabilir.
Son Yorumlar