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.

  1. Aygıtın kendi uydu adresi alınmalıdır.
  2. Genel çağrı alınmalı TWGCE biti bir (1) konumunda olmalıdır
  3. 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!!

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.