11.01.2015 Views

msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt

msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt

msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!