i2c hakkında garip problem

Başlatan görkem, 19 Haziran 2018, 22:19:49

görkem

Arkadaşlar merhaba,

 MPR121 dokunmatik modülü ile i2c ile haberleşiyorum.Bir kaç gündür haberleşmede sorun yokken şuanda işlemciyi resette tutup sda ve scl  hattına dokunarak işlemciyi startlayınca haberleşme sıkıntısız çalışıyor hattan elimi çektiğimde dahi haberleşmede sıkıntı olmuyor.İşlemciyi resetleyip direk startlayınca modül ile haberleşme sağlanamıyor.
 

fide

Pullup dirençlerini kontrol edin isterseniz.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

görkem

pullup dirençlerinden olsa elimi çektikten sonra haberleşmeye nasıl sorunsuz devam edebiliyor? kontrol ediyorum bu arada

görkem

Adafruit modülünde addr pinini 100k ile pulldown yapmışlar aşağıdaki resimdeki gibi



orjinal datasheet deki şemada addr 100k pulldown direnci koyulmamış




addr pinine dokunup işlemciyi startladığımda haberleşme gerçekleşiyor.ben dokunduğumda benim üzerimden gnd yi tamamlayıp haberleşme başlıyor olabilir mi?

addr pini pullup ,pulldown a göre farklı adresler alıyor 100k direnç gnd yi kaydırıyor mu ?
100k direnç ne amaçla kullanılır orada ?

görkem

Arkadaşlar fikri olan yok mu

100k direnci kaldırıpda denedim sonuç yine aynı

tekosis

Pullup değeriniz nedir? Farklı değerlerde dirençler ile deneme yaptınız mı?
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

görkem

Pull up dirençleri 10k ve tek tek söküp ölçtüm değerler normal.şuanda addr pinine parmağımla dokunduğumda modül init oluyor elimi çekincede haberleşme devam ediyor.Fakat parmağımla dokunmadığımda cihaz init olmuyor haberleşme hiç yok lojik analizör ile baktığımda haberleşme hiç görünmüyor

tekosis

2.2k 4.7k gibi değerleri bir denermisiniz?
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

görkem

Yarın deneyeceğim. 100n kapasitör koymuştum besleme bacaklarına en yakın yerine  gnd üzerinde parazit oluşması durumu da olabilir mi ?
Kart çift taraflı gnd kaplı, endüktif bir yük yok pil ile besleniyor ldo regülatör beslemesini sağlıyor 3.3v ile besleniyor

clonex

Alıntı yapılan: görkem - 21 Haziran 2018, 00:17:17Yarın deneyeceğim. 100n kapasitör koymuştum besleme bacaklarına en yakın yerine  gnd üzerinde parazit oluşması durumu da olabilir mi ?
Kart çift taraflı gnd kaplı, endüktif bir yük yok pil ile besleniyor ldo regülatör beslemesini sağlıyor 3.3v ile besleniyor

Hocam dijital devrelerin entegreleri voltaj dalgalanmasından sürekli etkileniyor, onun için gürültüsünü engellemek için gnd bacağına en az 0.1uF kullanmak can kurtarıcı olabiliyor.

Ben çok anormallikler yaşamaıştım yaptığım devrede oda 0.1uF atmadığımdan kaynaklıydı.

Onuda bir göz at istiyorsan.

görkem

#10
problemin kaynağını buldum. Stm32f103 işlemcisi ile haberleştiriyordum. İşlemci hızı 72 MHz di APB1 36 MHz hızında çalışıyordu.işlemci hızını 16MHz APB1 in hızını 2 Mhz e çekince sorun düzeldi.  i2c hattı 100khz ile haberleşiyor neden çalışma frekansını düşürünce sıkıntısız çalışıyor ?

@clonex takmadığım kapasitör kalmadı pcb her iki yüzeyide gnd kaplı problem hızdan kaynaklanmış ama nedenini anlayamadım diğer sensörlerde böyle bir problem olmamıştı hiç.

clonex

Alıntı yapılan: görkem - 21 Haziran 2018, 16:58:40problemin kaynağını buldum. Stm32f103 işlemcisi ile haberleştiriyordum. İşlemci hızı 72 MHz di APB1 36 MHz hızında çalışıyordu.işlemci hızını 16MHz APB1 in hızını 2 Mhz e çekince sorun düzeldi.  i2c hattı 100khz ile haberleşiyor neden çalışma frekansını düşürünce sıkıntısız çalışıyor ?

@clonex takmadığım kapasitör kalmadı pcb her iki yüzeyide gnd kaplı problem hızdan kaynaklanmış ama nedenini anlayamadım diğer sensörlerde böyle bir problem olmamıştı hiç.

Anladım Hocam, sorunu çözdüğünüze sevindim.

görkem

@clonex sorunu çözdüm fakat içim rahat etmedi işlemcide neden böyle bişey var onun mantığını anlayamadım.

Sitemizde bu konu hakkında yorum yapabilcek yetkinlikte olan arkadaşlar var yorumlarınızı bekliyorum.