Skocz do zawartości

I2C i OneWire - jakiej wartości dobrać rezystory pull-up?


Pomocna odpowiedź

Napisano

Cześć,

jeżeli mam na PCB dwa układy scalone i2c oraz czujnik z przewodem o długości 2 metrów - jakiej wartości dobrać pullupy dla i2c?

Podobna sytuacja z onewire - mam układ RTC onewire na PCB oraz czujnik ds18b20 z przewodem 20 metrów. Jak dobrać pullup?

Szczerze - kombinowanie z chybił-trafił to już za dużo - w przypadku onewire zbyt mała rezystancja to przestaje poprawnie działać komunikacja z RTC, gdy rezystancję zwiększam to znowu ds18b20 nie ma ochoty współpracować. Chyba, że lepiej rozbić na dwa osobne piny w mikrokontrolerze obsługę tych układów?

 

I2C na takiej długości może sprawiać problemy, możliwie że nawet nie zadziała. Nie wiem chyba że obniżysz zegar taktowania do 50...100kHz. Rezystory 4k7. 

Co do 1Wire, dobrym sposobem jest użycie dodatkowego tranzystora który podciąga szynę na czas konwersji/ładowania kondensatora wewnętrznego. A, jeszcze pytanie: 1Wire jest z zasilaniem pasożytniczym czy bezpośrednim? 

@_LM_ Sprawa wygląda tak, że umknęło mi kilka spraw pisząc posta, więc jest on częściowo nieaktualny - już wyjaśniam:

ds18b20 jest od dawna na osobnym pinie i układ działa.
RTC jest na drugim pinie.
Nic się nie gryzie ze sobą. Na github mi polecili, żeby rozbić na osobne piny w przypadku takiej długości przewodu.
1-wire zasilane bezpośrednio.

Układ z i2c - to pytanie teoretyczne na tę chwilę. Jestem na etapie projektu schematu. Stąd pytanie czy to zadziała.
Na i2c mam RTC PCF8563, MCP23008 oraz na przewodzie 2m czujnik MAX30102 - obawa o tego MAX'a.

 

  • 2 tygodnie później...
Dnia 25.02.2025 o 20:24, roz napisał:

@_LM_ Sprawa wygląda tak, że umknęło mi kilka spraw pisząc posta, więc jest on częściowo nieaktualny - już wyjaśniam:

ds18b20 jest od dawna na osobnym pinie i układ działa.
RTC jest na drugim pinie.
Nic się nie gryzie ze sobą. Na github mi polecili, żeby rozbić na osobne piny w przypadku takiej długości przewodu.
1-wire zasilane bezpośrednio.

Układ z i2c - to pytanie teoretyczne na tę chwilę. Jestem na etapie projektu schematu. Stąd pytanie czy to zadziała.
Na i2c mam RTC PCF8563, MCP23008 oraz na przewodzie 2m czujnik MAX30102 - obawa o tego MAX'a.

 

Dla I2C przy 2m przewodzie, zwykle pull-upy 4.7kΩ są standardem, ale jeśli masz jakieś zakłócenia, warto spróbować z 3.3kΩ. W przypadku DS18B20 z 20m przewodu, często zaleca się pull-up 4.7kΩ, ale możesz spróbować z 10kΩ, by zobaczyć, która wartość działa najlepiej. Co do oddzielnych pinów, to dobra opcja, zwłaszcza przy długich przewodach, bo unikniesz zakłóceń.

  • Lubię! 1
  • Nie zgadzam się! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...