Jak radzić sobie z wieloma rezystorami podciągającymi w modułach

9

Myślałem o stworzeniu modułów dla płytki rozwojowej, które zrobiłem kilka dni temu, które będą zawierały interfejsy spi / i2c.

Problem polega na tym, że nie włączyłem rezystorów podciągających do pinów MCU na płycie głównej i myślałem o dodaniu ich do modułów, aby były bardziej „ogólne”, aby każdy użytkownik mógł z nich korzystać bez konieczności dodawania dodatkowych rezystorów w płyta prototypowa.

Ale potem stanąłem przed kolejnym problemem. Jeśli dodam rezystory podciągające w dodatkowych modułach i podłączę na przykład dwa lub więcej modułów do tej samej magistrali, dostanę te rezystory równolegle, aby opór spadł i nie spełnił swojej funkcji.

Ale jeśli dodam rezystory podciągające do płyty głównej, będę mieć te piny w MCU zawsze jako aktywne niskie.

Główne pytanie brzmi:

Jak podłączyć wiele modułów do tej samej magistrali, mając na każdym z nich rezystory podciągające, ale nie ustawiać ich równolegle, gdy masz więcej niż jeden moduł? Czy to jest możliwe?

A może najlepszym rozwiązaniem jest włączenie rezystorów podciągających w MCU i nie obejmuje ich modułów?

Dzięki.-

Sein Oxygen
źródło
Utwórz osobny moduł, który będzie zawierał tylko rezystory podciągające :)
Alexandr Zarubkin

Odpowiedzi:

14

Zakładam, że całkowita długość każdego z twoich autobusów jest mniejsza niż 1 metr, co jest typowe dla zwykłego I 2 C i SPI. Również pojemność magistrali mieści się w zakresie specyfikacji.

Powinien być tylko jeden (1) zestaw rezystorów podciągających. W rezultacie najlepsze miejsce dla nich znajduje się na głównej płycie kontrolera. Nie nakładaj pull-up na moduły.

Jeśli chcesz mieć pull-up w niektórych przypadkach, a nie mieć ich w innych przypadkach.

  • Nie wypełniaj rezystorów podciągających, kiedy ich nie potrzebujesz.
  • Zaprojektuj główną płytę kontrolera w taki sposób, aby podciągnięcia były podłączone do linii sygnałowych za pomocą zworek. Usuń bloki zwarcia, gdy nie potrzebujesz podciągania.

edytuj: Szczerze mówiąc, myślę, że błędem jest to, że Sparkfun umieszcza pull-upy na modułach slave I 2 C. Niestety, nie każdy, kto kupuje moduły, zdaje sobie sprawę, że nadmierne podciąganie może stanowić problem. Byłoby lepiej, gdyby płyty kontrolne (zamiast płyt peryferyjnych slave) miały podciągnięcia ze zworkami lutowanymi. Och ... Zaczekaj ... Arduino nie nosi (opcjonalnie) podciągnięć (choć może powinno). A więc chodźmy wszędzie podciągnięcia. Łatwiejsze początkowe doświadczenie po wyjęciu z pudełka. Ale dodaj kilka modułów podrzędnych, a magistrala przestanie działać.

aktualizacja (maj 2015):
- Powiązana dyskusja w komentarzach w innym wątku.
- W swoich ostatnich modułach SparkFun zaczął dodawać mostki lutownicze między Vcc a rezystorami podciągającymi I 2 C ( przykład ). Umożliwia to łatwiejsze odłączanie podciągnięć.

aktualizacja (grudzień 2015):
Podobne pytania dotyczące rozwiązywania problemów I 2 C z wieloma modułami pojawiają się na forach dyskusyjnych. Próba rozszerzonej ogólnej odpowiedzi.

Nick Alexeev
źródło
Tak, faktycznie moja sprawa była na przykład. Na przykład wszystkie moduły RTC sprzedawane w niektórych sklepach zawierają rezystory podciągające, więc ... jak radzić sobie z tymi modułami w takim przypadku. Właśnie dlatego pogrubiłem główne pytanie. :)
Sein Oxygen
1
@SeinOxygen Jeśli masz moduły z rezystorami podciągającymi, a także kontroler z własnymi podciągnięciami, wówczas wszystkie te rezystory pojawią się równolegle i będą miały sztywniejsze podciąganie (mniejszy opór). Załóżmy, że masz w sumie 3x (trzy) rezystory 2,2 kΩ jako podciągnięcia. Całkowita rezystancja podciągania wynosi 733 Ω. To narusza specyfikację I2C. Co robić? Usuń dodatkowe podciągnięcia z modułów (być może nie powinny one tam być).
Nick Alexeev
@SeinOxygen Więcej na temat wartości podciągania I2C w tym wątku .
Nick Alexeev
4

Jedną z opcji jest użycie pakietów rezystorów SIL lub DIL i dopasowanie ich do gniazd w każdym module. Budując system z wieloma modułami, wyjmij je z każdego modułu oprócz ostatniego. Oszczędza to trochę miejsca na desce nad zworkami.

Odmiany tego tematu mogą obejmować przełączniki FET do podłączania lub odłączania rezystorów, kontrolowanych przez pojedynczą zworkę lub zapasowy pin na złączu (tak, że jeśli podłączony jest inny moduł, rezystory są automatycznie odłączane)

Brian Drummond
źródło