1wire pullup na '51 / avr dla duzej liczby DS1820

Witam musze "na wczoraj" poprawic/zmodyfikowac urzadzenie, ktore zawiera

89s8252 oraz stado termometrow 1wire ds1820, na jednej magistrali. Pojawiaja sie problemy bo nagle z 8szt DS1820 zrobilo sie 24szt, i choc dziala wykrywanie ds-ow, to juz pomiar temperatury dziala tylko na kilku, reszta zwraca 0st lub -0.5st zawsze. Zmniejszenie opornika podciagajacego magistrale 1wire (z 2.2k do 1k i mniej) powoduje poprawe (w pewnych granicach) ale nadal do dzialajacych 24szt nie moge dojsc. O strong pull-upach dla 1wire prarasite power sie naczytalem, ale ja mam zasilanie osobne (kazdy ds dostaje 5v, mase i magistrale). W dodatku nie chcialbym przekopywac softu urzadzenia i pisac od nowa (z zalaczaniem dodatkowego tranzystora do pull-upa) bo wykorzystane sa procedurki bascoma (1wiresearchnext itp). Czy wpada wam do glowy jakies proste wyjscie z tej sytuacji? moze cos zle robie ? moze 24szt 1wire powinno chodzic bez problemu na jednym drucie?

Rozwazam zmiane procka z '51 na atmega16 - Bo jesli sie nie myle to '51 ma tylko tranzystor do masy, i rezystancyjny pull-up do plusa, a avr maja w konfiguracji wyjsciowej tranzystory na gorze i na dole, moze to by rozwiazalo moje problemy?

Reply to
BartekK
Loading thread data ...

BartekK snipped-for-privacy@drut.org pisze:

Nie sądzę.

Jak długi drut? Dodano dallasów, czy drutu też?

Reply to
Patryk Sielski

Patryk Sielski napisał(a):

testowane bylo na 10m drutu + 8 dallasow, teraz jest 25m drutu i 24 dallasy co 1m (mniejwiecej)

Reply to
BartekK

BartekK napisał:

  1. Przed testami czyta się uważnie dokumentację.
  2. Dla zadanego przypadku testy przeprowadza się na 50m drutu i 50 przetwornikach. Choć bardziej właściwe byłoby 200m drutu.
  3. Każdy przetwornik ma podłączony kondensator do linii nadawczej, jeśli akurat nie przesyła danych.
  4. 24m to już całkiem spora pojemność i indukyjność.
  5. Czy BASCOM wykrywa ponad 16 urządzeń 1-wire na jednej linni?

Ad1. Musztarda po obiedzie, ale na podwieczorek jeszcze się nada. Ad2. j.w. ale podwieczorka już nie ma. :-( Ad3. Może pomoże przyjrzenie się funkcji B4? Ad4. Warto użyć jakichś dodatkowych buforów. Ad5. Zdaje się, że faktycznie obsługuje maksymalnie 8 sztuk na jednej linni.

Nigdy nie dawałem więcej jak 4 przetworniki na jednej linni i nie zamierzam tego robić, więc temat mnie nie interesuje. Ale, drążąc go na stronach producenta, być może coś uzyskasz.

pzdr Artur

Reply to
Artur

Artur napisał(a):

czego? ds1820? robilem wczesniej na nich, nie bylo problemu, ale na avr/ pc z ds2480b interfejsem

robiac urzadzenie mialem za zadanie mierzyc 8 temperatur - bylo ok, teraz albo musze zrobic nowe urzadzenie, albo przerobic to.

Jest podlaczony kondensator, ale przez diode. W dodatku - jest on zasilany przez druga diode z +5v, wiec jest caly czas naladowany. Wiec dioda "od strony magistrali" nie bedzie sie otwierala. W stanie niskim przedstawia soba rezystancje ~100omow, wiec nie moge przeginac z pull-upem.

skretka cat5

wykrywa 24szt, nie mierzy temperatury (odczytuje same 1 albo same 0) na magistrali, im dalej od procka to mniej dziala czujnikow

Reply to
BartekK

BartekK napisał:

Także, ogólnie 1-wire. Chyba nie przewidują 24m drutu.

Zrób 3 takie same, ale weź 6x tyle kasy. ;-)

25pF*24sztuki +300pF drutu + 30pF płytka + 10pF pin 8952 =~1nF, a oporniczek 4k7 i czasy rzędu 15us.

Uhum, dla linni symetrycznych.

I z niczym to Ci się nie kojarzy?

pzdr Artur

Reply to
Artur

Artur napisał(a):

wlasnie przewiduje, wrecz nawet do 750m ;) (ale to teoria) liczylem wszystko i powinno dzialac... a nie dziala ;(

to sie liczy inaczej promien sieci = 24m waga sieci = 24m + 24urzadzenia + procek= 49 czyli w normie - bo wg pdf maxima do 1wire - do 200m to jest krotka/srednia siec.

chyba lepsza skretka (ktora ma bodajze 100 albo 300 omow ? niz koncentryk 75omow ? ds1820 odpowiada 150 lub 300 omom obciazenia falowego magistrali (w trakcie transmisji).

kojarzy mi sie, nawet juz wiem gdzie byl blad, zle bylo wstawione opoznienie, po odczycie ktoregos czujnika nie bylo 1wreset, przez co wyrzucal on caly czas busy (0) na magistrale, zaklucajac inne transmisje.

Reply to
BartekK

BartekK napisał:

A co ja będę gdybał. Akurat mam skrętkę BL1583, więc mogę sprawdzić, czy rzeczywiście w każdych warunkach odczyt będzie bezproblemowy.

pzdr Artur

Reply to
Artur

Faktycznie należałoby.

25 m to działa na kablu od suszarki do włosów.
Reply to
Slawomir Sidor

Artur napisał:

Nooo.... Na ATmega16 8MHz działa. Ale czasami zdarza się odczyt temperatury 85,0stC. Z kwarcem 16MHz mniej więcej połowa odczytów była zła, tzn. Zgłaszanie braku czujnika, błąd CRC, 0,0stC, 85,0stC. Z kwarcem 2MHz nie zaobserwowałem błędów.

Warunki testów.

5 sztuk DS18B20 - dwa umieszczone przy procku, dwa umieszczone na końcu 25m skrętki, ostatni dowiązany poprzez 2metry zwykłego przewodu. Wszystkie pracowawały w trybie "parasite power". Rezystor podciągający 4k7 - timingi zgodne z sugestiami producenta. Jako symulator 20 sztuk DS18B20 użyty został kondensator 470pF przyłączony na końcu linni.

Metody wprowadzania zakłóceń. Żarówka halogenowa 500W Zapalniczka piezo. Cewka 30cm zasilana szpilkami 1kV/0,03mA Stycznik średniej mocy. Mikrofalówka 800W z wyjętym izolatorem :-) Nadajnik radiowy 433MHz 20mW Wszystkie elementy zakłócające znajdował się w odległości 10-15cm od skrętki.

Wnioski Do użytku domowego nadaje się. Do sprzedania może się nadawać pod warunkiem rozbicia czujników na kilka linni równoległych, dodaniu elementów przeciwzakłócających, itp.

Dodatkowo sprawdziłem jakość transmisji przez zwykły przewód dwużyłowy. Przez szpulkę 100m nie przeszło.

pzdr Artur

Reply to
Artur

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.