Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: sımışka - 22 Ekim 2020, 16:40:50

Başlık: STM32F103 I2C Sorunu
Gönderen: sımışka - 22 Ekim 2020, 16:40:50
Merhaba,

SHT20 sensörü ile i2c üzerinden nem ve sıcaklık okuyorum, hal lib ile.
Sensörü sök tak yaptığımda bir daha çalışmıyor. Reset atmam veya kodu tekrar yüklemem gerekiyor. Neden olabilir acaba ?
Kullandığım Kodlar, hal trasmit ve receive fonksiyonları. Aralarda yeterince bekleme süresi koyuyorum.
Başlık: Ynt: STM32F103 I2C Sorunu
Gönderen: Murat Mert - 22 Ekim 2020, 22:19:34
Devre çalışırken mi sök tak yapıyorsunuz?
Başlık: Ynt: STM32F103 I2C Sorunu
Gönderen: sımışka - 24 Ekim 2020, 11:51:25
Evet devre çalışırken sensörü söküp taktığımda oluşuyor bu durum
Başlık: Ynt: STM32F103 I2C Sorunu
Gönderen: ahuramazda - 24 Ekim 2020, 12:08:26
normal olanı çalışmaması zaten.

sensörü söküp taktığınızda sensöre ait olan init fonsiyonuna dallanmıyor programınız. işlemciyi resetlediğinizde olması gerektiği gibi init fonksiyonuna dallanıyor ve sisteminiz beklediğiniz gibi çalışıyor.
Başlık: Ynt: STM32F103 I2C Sorunu
Gönderen: JOKERAS - 24 Ekim 2020, 18:42:41
Hata kontrolleri yapılmadan I2C Donanımı Devreden çıkınca,I2C fonksiyonunu çağırdığınız da hata olur.
Bir yapıda kontrol edilen Donanımlar varsa, en başta olası hata durumları kontrol edilmeli.
Bir Donanımın Hata durumlarını tespit etmek Donanımı çalıştırmaktan daha zor ve meşakketlidir.
Çünkü Hata ne şekilde zuhur edeceği bilinmeyen rastgele bir durumdur.

Kodunuzda Device adresini gönderdiğiniz yerde ACK'yı Polling yaptıran bir Kod yazın.
Bu kod bloke çalışan bir kod olmalı.Yada Counter,yada Time Out sayıp Sistemi Başa aldırmak,Reset Etmek.
Bu mantık sadece Device'ın olup olmadığını kontrol eder.

I2C device'ı çalışırken söktüğünüz anda,Cihazın Latch tipi,Ram tipi Registerleri O durumu muhafaza eder.
tabii bu,her I2C device'ı için geçerli değil.Cihaz bir EEprom ise sorun olmaz ama bir Saat ise sorun olur.
I2C'nin iç Donanımına bağlı.
Başlık: Ynt: STM32F103 I2C Sorunu
Gönderen: Murat Mert - 28 Ekim 2020, 11:02:47
Alıntı yapılan: sımışka - 24 Ekim 2020, 11:51:25Evet devre çalışırken sensörü söküp taktığımda oluşuyor bu durum

Sensör için başta yaptığınız initleri tekrar yapmanız lazım yada reset atmanız. Çalışırken sökmenizi pek tavsiye etmem.