msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt
msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt
msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Şekil 70 - Master ve Slave Cihazların I2C Hattına Bağlanması<br />
Yukarıdaki resimde görüldüğü gibi Slalve yani ikincil cihazlar SDA ve SCL hattına paralel olarak<br />
bağlanmışlardır. Bazı mikrodenetleyicilerde pinler içeriden pull-up veya pull-down<br />
yapılabilmektedirler. Bu şekilde herhanbi bir direnç kullanmaksızın master ve slave arası<br />
haberleşme doğrudan kablo bağlanarak sağlanabilir. Eğer kullanılan mikrodenetleyici<br />
içerisinde dahili pull-up dirençleri bulunmuyorsa SDA ve SCL hatlarını 10k lık birer adet<br />
dirençle +5v / +3v3 a çekmek zorunludur. (MCU ya ve pin töleranslarına göre değişiklik<br />
gösterebilir)<br />
Bizim örneğimizde dahili pull-up dirençleri kullanılmıştır.<br />
8.5-) Start Durumu<br />
I2C donanımındaki START Detect birimi, USISRL saklayıcınsa 0 yüklendiği zaman otomatik<br />
olarak START Condition oluşumunu sağlamaktadır. Bunun için aşağıdaki adımlar uygulanabilir.<br />
USISRL = 0 yapılmalıdır.<br />
USICTL0 saklayıcısından USIGE = 1 ve USIOE = 1 yapılmalıdır.<br />
USICTL0 saklayıcısından USIGE = 0 yapılarak kilit(latch) devre dışı bırakılmalıdır.<br />
8.6-) Stop Durumu<br />
USISRL = 0xFF yapılmalıdır.<br />
USICTL0 saklayıcısından USIGE = 1 yapılmalıdır.<br />
USICTL0 saklayıcısından USIGE = 0 ve USIOE = 0 yapılarak kilit ve çıkış devre dışı<br />
bırakılmalıdır.<br />
8.7-) Kesmeler<br />
USI Modülü için yanlızca bir adet kesme vektörü bulunmaktadır. I2C birimi için atanmış 2<br />
farklı kesme bayrağı(USIIFG ve USISTTIFG) bu vektör içerisinde kontrol edilebilir. Her kesme<br />
bayrağının kendine ait aktif etme(enable) biti bulunmaktadır. Kesmeler aktif edilir ve GIE = 1<br />
yapılırsa kesme anında program o kesmeye ait vektöre dallanacaktır.<br />
USICNT = 0 olduğunda USIIFG bayrağı set edilir. Eğer USIIFGCC = 0 ise USICNT saklayıcısına 0<br />
dan büyük bir değer yazılması anında USIIFG bayrağı da temizlenir.<br />
Bir START Durumu tespit edildiğinde ise USISTTIFG = 1 olur. Bu bayrak yazılımla<br />
temizlenmelidir.<br />
MSP430 Programlama Sayfa 77