Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

I2c Hattı okuma

Başlatan alisoy, 03 Ocak 2012, 20:42:20

alisoy

Merhabalar


15 bitlik bir i2c hattını nasıl pic e okutabiliriz ? Ack biti yok. Direk gelen verileri pic alıp yorumlanmasını istemekteyim...Nasıl yapabilirim ?

Kabil ATICI

Bu kodu kendin yazabilirsin.
yapman gereken;
başlama durumu
(varsa çip adresleme için alete veri gönderilmesi)
verilerin alınması (burada 2 bayt alan ayırman gerekir, gelen veriyi 8 bitlik iki bayta ayır)
sonlandırma durumu.

iki tane bacak ata. SCL ve SDA burada SCL sürekli çıkış konumunda olacak.
ilk anda SDA çıkış olarak ata
SDA ve SCL lojik 1 çıkışı ata.
SCL lojik 1'de iken SDA lojik 1'den lojik 0'a çek. Başlama durumu.
eğer çip adresi varsa bunu SDA gerekli biti gönder ve SCL hattını değiştir şeklinde çalışarak veriyi gönder.  (bu bazı çiplerde kullanılmıyor)

Okumak için
SDA hattını giriş yapıyorsun.
SCL hattı

1-0-1-0-1-0-1-0-1-0-1 (toplamda alınacak veri kadar yapılıyor 1 olarak)
SDA hatı burada 1-0 geçişine veri okunuyor ve bu bit bu işle ilgili veri içini atılıyor. (registerde bit kaydırma komutu ile)
ilk sekiz bit alındıktan sonra ikinci sekiz bit okunuyor. (yada yedi)
sonra bu okumadan çıkmak için SDA çıkış atanıyor,
SCL lojik 1 iken SDA Hattı 0-1 geçişi yapılıyor.
Bunun için i2c haberleşmesinin yapılacağı aletin veri kağıtlarını incelenmesi gerekiyor. (bu  8 bit için kod örnekleri galiba internette var bunların üzerinden kendi istediğin kodu geliştirebilirsin.).

Tabi burada SCL'nin 1 ve 0 kalma sürelerinin iyi ayarlanması gerekir çok hızlı olursa i2c hatalı veri akışı veya hiç iletişim olmama durumu olabilir.


ambar7