Modüllerdeki çoklu çekme dirençleri ile nasıl baş edilir


9

Birkaç gün önce yaptığım geliştirme kurulu için spi / i2c arayüzlerini içerecek bir modül yapmayı düşünüyordum.

Sorun şu ki, ana karttaki MCU pinlerine pull-up dirençleri dahil etmedim ve onları daha "genel" hale getirmek için modüllere eklemeyi düşünüyordum, böylece her kullanıcı ekstra direnç eklemeye gerek kalmadan bunları kullanabilirdi. prototip kurulu.

Ama sonra bir sonraki sorunla karşılaştım. Ek modüllere çekme dirençlerini eklersem ve örneğin iki veya daha fazla modülü aynı veriyoluna bağlarsam, dirençleri paralel olarak alırım, böylece direnç düşer ve işlevlerini yerine getirmez.

Ancak, çekme dirençlerini ana karta eklersem, MCU'daki pimleri her zaman aktif olarak düşük tutarım.

Yani ana soru:

Aynı veriyoluna her birinde çekme dirençlerine sahip olan birden fazla modül nasıl bağlanır, ancak birden fazla modülünüz olduğunda bunları paralel hale getirmezsiniz? Mümkün mü?

Ya da buradaki en iyi çözüm, MCU'daki çekme dirençlerini etkinleştirmek ve bunları modüllere dahil etmemek mi?

Teşekkürler.-


Sadece çekme dirençleri içeren ayrı bir modül oluşturun :)
Alexandr Zarubkin 15:19

Yanıtlar:


14

Her bir otobüsünüzün toplam uzunluğunun 1 metrenin altında olduğunu varsayalım, bu da düz I 2 C ve SPI için tipiktir . Ayrıca, veri yolu kapasitansı spesifikasyon dahilindedir.

Sadece bir (1) set çekme direnci olmalıdır. Sonuç olarak, onlar için en iyi yer ana denetleyici anakartındadır. Pull-up'ları modüllerin üzerine koymayın.

Bazı durumlarda pull-up yapmak ve diğer durumlarda onları almak istemiyorsanız.

  • Gerdirme dirençlerini ihtiyacınız olmadığında doldurmayın.
  • Ana kontrol panosunu, pull-up'lar sinyal hatlarına köprüler üzerinden bağlanacak şekilde tasarlayın. Pull-up'lara ihtiyacınız olmadığında kısa devre bloklarını çıkarın.

edit: Açıkçası, Ben Sparkfun ben 2 pull-up koyar bir hata olduğunu düşünüyorum C köle modülleri . Ne yazık ki, modül satın alan herkes aşırı çekmenin bir sorun olabileceğini fark etmiyor. Kontrolör kartlarında (köle çevre kartları yerine) lehim jumper'lı pull-up olması daha iyi olurdu. Oh ... Bekle ... Arduino (isteğe bağlı) pull-up'ları taşımıyor (belki de olsa). Yani, her yerde pull-up çekelim. İlk kullanıma hazır deneyim daha kolay. Ancak birkaç köle modülü ekleyin ve otobüs durur.

update (Mayıs 2015):
- Başka bir ileti dizisindeki yorumlarda ilgili tartışma.
- Son modüllerinde SparkFun, Vcc ve I 2 C pull-up dirençleri arasında lehim blob jumperları eklemeye başladı ( örnek ). Bu, pull-up'ların daha kolay ayrılmasını sağlar.

update (Ara 2015): Birden fazla modülle
I 2 C sorun giderme hakkında benzer sorular mesaj panellerinde ortaya çıkıyor. Genişletilmiş bir genel müdahaleye çalışın.


Evet aslında benim durumum bir örnek. Örneğin, bazı mağazalarda satılan tüm rtc modülleri pull-up resitorlarını içerir, bu durumda ... bu durumda bu modüllerle nasıl başa çıkılacağı. Bu yüzden ana soruyu cesurca işaretledim. :)
Oksijen Sein

1
@SeinOxygen Pull-up dirençli modülleriniz ve ayrıca kendi pull-up'ları olan denetleyiciniz varsa, tüm bu dirençler paralel olarak görünecek ve daha sert bir çekme (daha küçük direnç) gösterecektir. Varsayalım, toplam 3x (üç) 2.2kΩ direnç var. Toplam çekme direnci 733Ω'dur. Bu I2C spesifikasyonlarını ihlal ediyor. Ne yapalım? Ekstra pull-up'ları modüllerden çıkarın (belki de ilk etapta orada olmamalıydılar).
Nick Alexeev

@SeinOxygen Bu iş parçacığında I2C pull-up değerleri hakkında daha fazla bilgi .
Nick Alexeev

4

Bir seçenek, SIL veya DIL direnç paketlerini kullanmak ve her bir modül üzerindeki soketlere takmaktır. Birden fazla modül içeren bir sistem kurarken, son modül hariç her modülden dışarı çekin. Bu, jumperların üzerine biraz tahta alanı kazandırır.

Bu temadaki varyasyonlar, tek bir jumper tarafından kontrol edilen dirençleri bağlamak veya çıkarmak için FET anahtarları veya konektördeki yedek bir pimi içerebilir (böylece başka bir modül takılırsa dirençler otomatik olarak kesilir)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.