msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt
msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt
msp430-programlama-notlari-uygulamalar-bilgiler - 320Volt
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