I2C sevice tanımama problemi

fide

Meraklı ve "nasıl" sorusunu seven biri
Katılım
8 Eylül 2021
Mesajlar
2,582
Bir arkadaşımın devresini dizdim.
Devre üzerinde RP2040, TOF sensör ve imu var. Tof 2V8, imu ise 1V8 ile çalışıyor. İki cihaz da i2c ile rp2040'a bağlı. I2C hattı gerilimleri farklı olduğu için BSS138 ve adını hatırlayamadığım mosfet ile level converter var.
Sıkıntım şu:
I2C scan yaptığım zaman imu sensör her zaman 0x68 adresini görüyor ama TOF sensor bazen 0x29 olarak tanınıyor bazen tanınmıyor.
Tof sensore 2V8 gerilim geliyor. Ada ve scl pinlere kadar data geliyor. 2 ayrı kart dizdim. 2 devrede de bazen tanınıyor bazen tanınmıyor.


IMG_20250909_170302.jpg

Tof sensör sol ortada sarı kare olarak görünen, imu ise alt ortada kare çip.
Sizce sıkıntı ne olabilir?
 
Level shifter kararlığı yeterince sağlayamıyor olabilir mi? Voltajın 3.3V'tan 2.8'e düştüğünü düşünüyorum pull up dirençleri uygun mu acaba?
 
Level converter iki mosfetle yapılıyor.
Screenshot_2025-09-16-15-05-15-574_com.android.chrome-edit.jpg
 
Hocam clock hızını düşürüp deneye biliriniz ilk, sonrasında skop ile hat sinyalinin düşme ve yükselme sürelerini karşılaştırın bu süre veri sayfasına uygun mu . pcb iyi bi temizliğe ihtiyacı var gibi duruyor resimden . Kartın beslemelerini kontol edin çalışma sırasında çökme falan oluyor mu . TOF sensör temzilerken yine dikkat edin bozulabilir. rp2040 clocklarını doğrunu kontrol edin onda kayma yaşanıyor olabilir.
 
Hocam imkan varsa 2V8 tarafında bulunan pull-up dirençlerini biraz daha düşürme ihtimaliniz var mı? 3k3 ya da 2k2 gibi.
 
Olayı benzer ama değerler farklı şekilde çözdüm.
2V8 tarafındaki 4K7 direnci 10K yaptım. iki devre de çalıştı. Şimdilik gönderdim ama sonrasında sıkıntı çıkarsa direnç değerleri ile oynamaya gidicem.
Öneriler için teşekkür ederim.
 
Yeterince hızlı hat çekilmiyor diye düşündüm ve o yüzden dirençleri düşürme fikrinde bulundum ama sanırım sorun tam tersiymiş hat çok hızlı çekildiği için ya da akımı fazla geldiği için çalışmıyordu galiba neyse sorunun çözüldüğüne sevindim.
 
Sorun bence sensör üzerindeki mosfetler hattı 0 seviyesine çekmeye zorlanması. Direnç değeri yükselince iş daha kolay oluyor.
 
Son düzenleme:
normalde 4k7 pull up 400 khz hızlar için yeterli gelmiyor. 2k2 gibi daha düşük değerler lazım 3.3 volt tarafında.

devrede toplam 4 adet level converter olması gerekiyor. bunların uçları da 3.3 tarafında rp2040'da birleşecek.
mosfetin 400 khz gibi hızlarda yetişememe durumu olmaz. ama bunu bir skop ile kolaylıkla test edebilirsin. önce 100khz ile sck pininin 2.7 volt
kısmında daha sonra 400 khz ile aynı noktadan skop ile ölçüm alırsan hemen kendini belli eder.

aslında skobun iki kanalını kullanım birinci kanal 3.3 ikinci kanal 2.7 volt hattı üzerinde olursa hem gecikmeleri hem de kara dalganın ne kadar bozulduğunu görebilirsin.
 

Çevrimiçi personel

Forum istatistikleri

Konular
8,278
Mesajlar
135,864
Üyeler
3,287
Son üye
Leon74

Son kaynaklar

Son profil mesajları

erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Back
Top