Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: Analog - 10 Nisan 2018, 23:24:38

Başlık: I2C Bilgi
Gönderen: Analog - 10 Nisan 2018, 23:24:38
Herkese merhaba I2C hakkında kafama takılan bir soru var onları sormak isterim.

Mesela mpu-6050 ü zerinden

datasheet te
write
Master S AD+W    REGİSTERADRESS      DATA       P
Slave        ACK                  ACK      ACK

read
Master S AD+W      RA      S    AD+R      NACK  P
Slave          ACK    ACK  ACK      DATA


şeklinde verilmiş.

Benim takıldığım konu ACK daha dogrusu slave cıhazı bıze ACK yı nasıl göndericek ve bizim kodda ACK nın gelip gelmediğini check etmemiz lazım mı ? ( ACK nın bır register adresi var mı)
Başlık: Ynt: I2C Bilgi
Gönderen: OptimusPrime - 11 Nisan 2018, 08:19:48
Ack bitine sira geldiğinde master hatti surmeyi birakiyor. Eger slavenin ack göndermesi gerekiyorsa hatti aşşağı slave çekiyor. Master hatta 0 olduğunu gördüğünde slave in hala dinlemede olduğunu anlıyor.

Yazılımsal olarak i2c yapıyorsan masteri bir slavenin dinlediğinden emin olmak için bu biti gozleyebilirsin.

Modül kullanıyorsan zaten bu islem donanimsal olarak yapılacaktır. Bu durumda driver i sen yazıyorsan modülün status registerlarini okuman gerekir haberleşmenin sorunsuz olup olmadığını anlamak için. Eğer driveri hazır kullanıyorsan send gibi bir fonksiyonun geri dondurdugu değeri takip edip gönderdiğin datanin yerine ulaşıp ulasmadigini kontrol edebilirsin.