B

I2C uygulaması

Başlatan boris63, 01 Haziran 2012, 21:41:23

boris63

Arkadaşlar;
ITG 3200 den gyro verisi okumam gerekiyor.
entegre I2C ile haberleşiyor. I2C ile ilgili örnek uygulamanız var ise paylaşırsanız sevinirim.
İyi çalışmalar

ete

I2C bir protokoldür biliyorsunuz. BAsic de kullanımı ise basit olarak aşağıdaki şekildedir.

        I2CWRITE SDA,SCL,%10100000,Addr,[E_ByteOut]  ' Bir adet byte yollanması veya yazılması
        Pause 10   

Burada SDA data hattını, SCL ise CLK hattını gösteriyor. %10100000 olarak gösterilen değer ,her bir I2C cihazının bir numarası yada cihaz adresi bulunur. Bu değer cihaz numarasını göstermektedir. Genelde aynı sınıfa dahil elemanlarda aynı numara kullanılır.  Addr ise artık cihazın içi ile alakalı bir değerdir. Örnek verecek olursak bir eproma yazacaksanız oraya yazılacak adresi verirsiniz. Başka bir cihaz ise kontrol edilecek register adresini verirsiniz. Ardından ise yazılacak değeri yada değerleri köşeli parantez içinde vermeniz gerekiyor.

Okuma işleminde yine benzer şekilde,

  I2CREAD SDA,SCL,%10100000,Addr,[E_ByteIn]   şeklinde bir komut kullanılır. yine cihaz adresi ile okunacak register adresi peş peşe verildikten sonra okunan değeri köşeli parantez içindeki değişken veya değişkenlere aktarılır.

Ete

Hattuşa

slm arkadaşlar;
I2C ile bir sensörden data alıyorum. gerçi Hbusin ve Hbusout komutlarını kullanıyorum tabi ki buda I2C iletişim. sorunum şu ki devreme birden fazla sensör bağlamak istediğimde bunu nasıl yapabilirim. yani işlemcimin SDA ve SCL pinlerini I2C için kullanıyoruz birden fazla sensör için bunu nasıl bağlamamız lazım ki kullanabilelim.

ete

Normalde I2C hattına birden fazla aynı haberleşmeyi kullanan cihaz bağlanabililr. Farklı cihazlarda cihaz kodu kiminle haberleşmek istediğini belirler. Ama birden fazla bir birinin aynı sensör var ise sensör data sheet'ine bakman gerekiyor. Orada mutlaka ayrıca bir adresleme bilgisi olacaktır.

Ete

Hattuşa

ete hocam datasheetinden bişey anlamadım yalnız picprojede tesadüf benzer bir sorunu olan arkadaş cd4052 den bahsetmiş, yani böylesi bir multiplex ile mesela cd4051 ile 8 adet sensörü takıp kullanabilirim diye düşünüyorum yani 2 tane cd4051 kullanıp SDA ve SCL pinlerini birleştirip hangi sensörü kullanmak istiyorsak ilgili çıkışları aktif ederek okuma yapmayı düşünüyorum. mantıklımıdır sizce?

ete

Teorik olarak mantıklı elbette. Geçmişte benzer şeyler denemiş sorun yaşamamıştım.
Dene ve gör diyorum.

Ete

Powered by EzPortal