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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

8.2-) I2C Slave Modu<br />

I2C birimini Slave modunda kullanabilmek için ise USIMST = 0 yapılmalıdır. Eğer USIIFG = 1<br />

veya USISTTIFG = 1 veya USICNT = 0 ise Master SCL üretse de, Slave kısmında herhangi bir<br />

alım veya kesmeye gitme işlemi yapılmayacaktır.<br />

8.3-) I2C Transmitter<br />

Bu kısım USI modülünde herhangi bir birim/donanım değildir. Haberleşme protokolünün bir<br />

parçasıdır. Temel olarak karşı tarafa SDA hattından veri aktarmak için yapılması gereken<br />

adımlar bu kısımda anlatılmaktadır.<br />

USISRL saklayıcısına gönderilmek istenen 8 bitlik veri yüklenir.<br />

USIOE aktif edilir.<br />

USICNT saklayıcısına 8 değerini yüklediğimiz zaman USISRL saklayıcısına yüklenen veri<br />

yani karşı tarafa gönderilmek istenen veri karşı tarafa aktarılacaktır.<br />

Veri tamamen gönderildiğinde USIIFG = 1 olur ve SCL pinindeki pals üretimi durur.<br />

Karşı taraftan 1 bitlik onay(ACK) ya da Ret(NACK) bildirimini alabilmek için USIOE = 0<br />

ve USICNT = 1 yapılmalıdır.<br />

USICNT = 1 yapıldığı zaman otomatik olarak USIIFG = 0 olmaktadır.<br />

USIIFG tekrar 1 olduğunda karşı taraftan onay biti gelmiş demektir. USISRL<br />

saklayıcısının ilk biti kontrol edilerek haberleşme devam ettirilir veya sonlandırılır.<br />

8.4-) I2C Reveiver<br />

I2C Transmitter başlığında bahsedildiği üzere I2C Receiver kısmı da haberleşme protokolünün<br />

bir parçasıdır. Yani yazılımda izlenmesi gereken adımları anlatmaktadır.<br />

USIOE = 0 yapılarak I2C veri hattından(SDA) gelen verinin alınması sağlanır.<br />

Master kısmından 8 bitlik veri geleceği için Slave tarafında da USICNT = 8 yapılarak<br />

gelen verinin 8 bit olarak alınması sağlanır.<br />

USINCNT = 8 yapıldığı zaman otomatik olarak USIIFG temizlenmektedir(USI Interrupt<br />

Flag).<br />

8 bitlik veri alındığı zaman USICNT = 0 olmakta ve USIIFG = 1 olmaktadır. Bu adımda 8<br />

bitlik veri alınmış demektir.<br />

Alınan veri USISRL saklayıcısından okunabilir.<br />

Karşı tarafa 1 bitlik onay(ACK) ya da ret(NACK) bildirimi gönderebilmek için USIOE = 1<br />

yapılmalıdır.<br />

ACK için USISRL = 0, NACK için USISRL = 0xFF yapılmalıdır.<br />

1 bitlik veriyi karşı tarafa gönderebilmek için USICNT = 1 yapılmalıdır.<br />

Onay biti gönderildiğinde USIIFG tekrar 1 olmaktadır. Bu durumdan sonra Slave cihazın<br />

tekrar veri alabilmesi için donanım tekrar veri alacak şekilde ayarlanmalıdır.(İlk madde)<br />

MSP430 Programlama Sayfa 76

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

Saved successfully!

Ooh no, something went wrong!