raspberry pi + ds18b20 = problem

Witam Problem taki. RasPi ma czytac temperature z 3 czujnikow DS. Ustrojstwo zmontowalem wedlug przepisu i pieknie zadzialalo. Dzialalo dzielnie przez jakies 2 -3 godziny po czym zaczelo generowac jakies cyfrowe bzdury. Czujniki sa na dlugich kablach. Mysle, ze jeden z nich ma ok 20m reszta to po ok 10 i 5m. Ale dzialalo. I przestalo. Adresy czujnikow w /sys/bus... zaczynaja sie od 10 czasami od zera i generalnie sa to smieci. Bywa ze system w ogole nie widzi zadnych czujnikow. Googgle przegooglalem dokladnie i na moj problem nie znalazlem lekarstwa. Podobno mozna zmniejszyc wartosc rezystora podciagajacego, wykonalem probe dolutowujac do 4k7 jeszcze 27k rownologle. Bez poprawy. Po rozmontowaniu ustrojstwa i desperackim mierzeniu czekogolwiek zauwazylem, ze jeden z czujnikow na podejrzanie mala rezystancje pomiedzy 3v3 i Data - wychodzi mi ok. 800 ohm. Usunalem go z ukladu ale pozostale dwa nadal nie dzialaja prawidlowo. Test z innym czwartym czujnikiem DS podpietym bezposrednio do plytki wypada pozytywnie - czyli "hardware+software" jest ok. Wynika z tego, ze to problem kabli ale ludzie pisza, ze to ma dzialac i basta. Zreszta dzialalo przez 2 godziny. Zastosowane kable to skretka cat 5e oraz kabel telefoniczny 6 zylowy - to jest ten najdluzszy. Ma ktos pomysl co tu mozna jeszcze zrobic?

Reply to
tomekp
Loading thread data ...

W dniu piątek, 12 lutego 2016 08:46:53 UTC+1 użytkownik tomekp napisał:

Sprawdz czy gdzieś zwarcia nie masz.

U mnie jakieś 10 szt ds-ów różnej maści działa od paru lat na drutach o długości dobrych 80-100m i poza okazjonalnymi problemami kiedy sie robi zwarcie w tych ds-ach które mam za oknem raczej calosc dziala ok.

Ale u siebie miedzy maliną a ds-ami mam usb-ftdi-serial. Wszystko u mnie wisi na jednym dwużyłowym kablu.

Jesli u siebie masz te ds-y na osobnych kablach i osobnych gpio to bym szukal problemów z zasilaniem, malina nie byla projektowana do robienia na niej rzeczy które potrzebują więcej zasilania więc to może być to...

Odpinaj te interfejsy i testuj pojedynczo. Niestety diagnostyka ds-ów to w warunkach domowych dosyć trudna sprawa...

Reply to
sczygiel

ja nigdy nie mogłem tego ustabilizować więc dołożyłem DS2482 i wszystkie problemy się skończyły...

c.

Reply to
cezar

DSy sa na oddzielnych kablach ktore schodza sie przy plytce podlaczonej do Pi i trafiaja na jeden port Pi, ten domyslny.

Tez mam przeczucie, ze to problem z zasilaniem. Przychodza mi do glowy 2 pomysly:

  1. Jeszcze bardziej obnizyc wartosc rezystora podciagajacego. Z tym , ze nie wiem gdzie jest granica rozsadku. 2k czy moze 1k jeszcze nie zaszkodzi?
  2. Puscic do DS np. 5V albo nawet 12V i bezposrednio przy czujniku zredukowac do 3.3V (dioda zenera czy stabilizatorem). Opornik zostawic jeden przy porcie Pi. Testowal ktos takie rozwiazanie? Ma sens?

No wiem, wczoraj upieklem juz jeden port bo w trakcie manipulacji oderwal mi sie kabelek z napieciem 9V i byl laskaw wycelowac w port Pi

Reply to
tomekp

No wolalbym uniknac dodatkowych komplikacji hardwaru. Zreszta porty i2c mam juz zajete. Ale dzieki za konstruktywna porade

Reply to
tomekp

nic nie stoi na przeszkodzie zebys miał kilka urządzeń ma i2c

Reply to
cezar

W dniu piątek, 12 lutego 2016 11:57:44 UTC+1 użytkownik tomekp napisał:

To masz tu źle. U mnie jest jeden długi kabel i na nim podpiete czujniki na maks 1m odczepach. Z tego co kojarze w tym interfejsie ważne jest aby nie tworzyć architektury gwiazdy.

Nie jestem pewien ale zaczal bym od tego aby zmienic architekture na po prostu jeden odcinek kabla. Nawet jak będzie musiał częsciowo wracać tą samą drogą...

Obniżaj, w granicach rozsądku nie będzie katastrofy. Ale IMHO takie rozwiązanie to kiepskie może być...

1-wire oidp jest dosyć czułe na timingi sygnalow. Jak tam sie dzieją jakieś cyrki w samej malinie i CPU nie nadąża albo sygnały nie są odpowiednio czyste to będzie tak jak masz...

Ma sens. Ale dalej na liniii danych timingi mogą sie rozjeżdzać. Spróbuj, będziesz mądrzejszy :)

Malina jest tania, najwyżej wymienisz na nowa. Za to będziesz mądrzejszy. :)

Jak masz wolne USB to dokup za 15-20PLN interfejs ftdi i tyle.

No i ogólnie nie twórz własnych wymysłów jak nie masz ochoty sie edukować, jak chcesz aby dobrze działało to zrób jak robią wszyscy.

Reply to
sczygiel

Ustrojstwo

Pasożytniczo czy z zasilaniem? Jeśli pasożytniczo to wszelkie problemy są związane z brakiem prawdziwego strong pullup w odpowiednim czasie po convert T i zastępowaniem go rezystorem dużo poniżej 4.7k. Drugi częsty problem na długich kablach to niedostpsowanie slotów czasowych do długości kabla, często też duża jego własna pojemność.

Reply to
Marek

W dniu 2016-02-12 o 11:58, tomekp pisze:

Na Raspberry jest bezpiecznik polimerowy. Sprawdź na początku jaki jest na nim spadek napięcia. Ja miałem chyba 0,4 -0,5 V gdy włączyłem Raspbmc, który trochę przetaktowuje podobno procka i przez to zwiększa pobór mocy. Albo daj bezpiecznik na większy prąd albo go zewrzyj drutem jeśli masz spadek większy niż 0,2 V

Zdaje się że możesz te DSy zasilić zewnętrznie. Doprowadź mu te 3,3 V i dodaj jakiś koncensator 1 uF między Vcc a GND

Reply to
Mario

Heh, walczylem z tym problemem caly weekend i w koncu problem rozwiazalem. Dziekuje wszystkim za porady i sugestie.

A wiec najpierw chcialem wyeliminowac problem zasilania na dlugich kablach. Znazlem w googlach informacje ze DSa mozna karmic 5V niezaleznie od tego, ze na lini danych jest podciaganie do 3v3. Zatem, tak zrobilem, zostawilem opornik miedzy 3v3 portu Pi i linia danych, natomiast zasilanie DSa podlaczyem bezposrednio do wydajnego zasilacza

5v. Bledy byly nadal ale jakies zjadliwsze, przynajmniej system widzial wszystkie uklady. Mimo wszystko zalamka, wiec po wypaleniu paru petow, zlapalem lutownice zeby caly ten interes rozmontowac i zapomieniec na jakis czas o temacie. Wylutowujac DSa cos mi syknelo jakby grot do wody wlozyc...oooo se pomyslalem... Bylem na tyle zapobiegliwy, ze DSy z przewodami polaczylem stosujac kawaleczki plytki uniwersalnej gdzie sciezki sa bardzo blisko siebie. Wiec se mysle - woda mi sie skondensowala na tych mikroskopijnych przerwach miedzy sciezkami. Szybko powylutowywalem wszystkie 3 czujniki z tych kawaleczkow plytek i przewody polutowalem bezposrednio do nozek DSow. I eureka. Wszystko zabanglalo. Pozostal mi jeszcze jeden DS ktory mial dzialac na najkrotszym kablu w ukladzie. Pewny sukcesu dolutowalem i tego egzemplarza. Odpalam system a tam kupa. Ta sama historia z debilnymi adresami i znikanie czujnikow. Odlutowalem ten czwarty DS - wszystko znowu dziala. I tak kilka razy poprawialem luty, zmienialem miejscami, bez skutu. Czwarty DS uparl sie ze nie bedzie dzialac i juz. W koncu skrocilem kabel tego 4 DSa do minimum, czyli odcialem jakies 2 metry. I zadzialalo. Dziala juz z 5 godzin wiec chyba juz sie nie rozjedzie. Poprzednia sytuacja z naglym zaprzestaniem widzenia ukladow byla zdecydowanie spowodowana zawilgoceniem plytek do ktorych byl wlutowany czujnik. Ku przestrodze - nigdy tak nie robcie, zlutowac na ryja i bedzie dzialac. Mimo wszystko chyba osiągnolem granice funkcjonowania 1-wire w mojej architekturze rozgwiazdy. Te 2 metry kabelka to bylo byc albo nie byc calego systemu.

Pozdrawiam i dziekuje wszystkim za zainteresowanie tematem i wartosciowe porady

tomekp

Reply to
tomek

W dniu piątek, 12 lutego 2016 11:23:19 UTC+1 użytkownik snipped-for-privacy@gmail.com napisał:

a opisz blizej jak to sie robi, przejsciówka jaka itp. Jesli ci sie chce :)

b.

Reply to
Budyń

W dniu niedziela, 14 lutego 2016 22:03:10 UTC+1 użytkownik tomek napisał:

Trza bylo czytać co napisalem na samej górze, już trzy dni temu byś miał rozwiązanie :)

Reply to
sczygiel

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.