Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

1-Wire, DS18B20, zasilanie pasożytnicze - nie działa

R_On_! 04 Maj 2010 09:56 4581 16
  • #1 04 Maj 2010 09:56
    R_On_!
    Poziom 10  

    Zacząłem, bawić się termometrami na interfejsie 1-Wire. Temat z tymi termometrami był poruszany wielokrotnie, jednak nie znalazłem odpowiedzi na nurtujące mnie pytanie. Dotyczy ono trybu pracy termometru tzw. pasożytnicze zasilanie, do którego wymagany jest silny pull-up. Niestety nie działa on tak jakbym sobie tego życzył tzn. nie działa w ogóle - termometr (a raczej LCD) wyświetla cały czas temperaturę 85 °C (błąd przetwornika, spowodowanym prawdopodobnie przez niedobór prądu). Silny pull-up zrobiłem za pomocą tranzystora BC546, na kolektor podałem zasilanie, i emiter podłączony do linii1-wire. Niestety nie działa. Gdy termometry zasilam z zewnętrznego źródła, wszystko jest OK. 1-Wire, DS18B20, zasilanie pasożytnicze - nie działa Może źle skonstruowany jest ten silny pull-up ?
    Z góry dziękuję za jakiekolwiek sugestie :D

    Dodano po 3 [minuty]:

    Dodam, że termometr jest podłączony w ten sposób: DQ do linii 1-Wire, a VCC i GND zwarte ze sobą.

    0 16
  • #2 04 Maj 2010 09:56
    soft.sc
    Poziom 16  

    Czujnik powinien być DS18B20PAR, zwykły nie jest do tego przystosowany.
    A swoją drogą takie rozwiązanie jest dziwne w tym miejcu. Powinien być tranzystor pnp sterowany minusem.

    0
  • #3 04 Maj 2010 10:07
    R_On_!
    Poziom 10  

    W nocie katalogowej DS18B20 jest wyraźnie napisane, że termometr działa w trybie pasożytniczym i z external. Tam zastosowany był tranzystor mosfet jako silny pull, może to, że mam zwykłego BC546 nie działa ? Co to tranzystora to zastosowałem akurat taki bo był pod ręką.

    0
  • #4 04 Maj 2010 10:38
    yokoon
    Poziom 28  

    R_On_! napisał:
    Zacząłem, bawić się termometrami na interfejsie 1-Wire. Temat z tymi termometrami był poruszany wielokrotnie, jednak nie znalazłem odpowiedzi na nurtujące mnie pytanie. Dotyczy ono trybu pracy termometru tzw. pasożytnicze zasilanie, do którego wymagany jest silny pull-up. Niestety nie działa on tak jakbym sobie tego życzył tzn. nie działa w ogóle - termometr (a raczej LCD) wyświetla cały czas temperaturę 85 °C (błąd przetwornika, spowodowanym prawdopodobnie przez niedobór prądu). Silny pull-up zrobiłem za pomocą tranzystora BC546, na kolektor podałem zasilanie, i emiter podłączony do linii1-wire. Niestety nie działa. Gdy termometry zasilam z zewnętrznego źródła, wszystko jest OK. 1-Wire, DS18B20, zasilanie pasożytnicze - nie działa Może źle skonstruowany jest ten silny pull-up ?
    Z góry dziękuję za jakiekolwiek sugestie :D



    Dodano po 3 [minuty]:

    Dodam, że termometr jest podłączony w ten sposób: DQ do linii 1-Wire, a VCC i GND zwarte ze sobą.

    0
  • Pomocny post
    #5 04 Maj 2010 10:43
    tmf
    Moderator Mikrokontrolery Projektowanie

    Wiesz, to nie działa tak, że włożysz byle jaki tranzystor i już... Jak ten NPN ma zadziałać? Pomyśl. Jeśli napięcie na lini danych 1-wire wzrośnie do 5V, to jaki potencjał ma baza tego tranzystora względem emitera i w związku z tym jaki masz prąd bazy? Podpowiedź - zero.
    Wsadź tam PNP, a najlepiej MOSFETa tak jak zalecają.

    0
  • #6 04 Maj 2010 11:48
    R_On_!
    Poziom 10  

    Do sterowania tym tranzystorem wykorzystuje osobny pin portu D. okazało sie ze na płytce PCB miałem poprowadzone z innego portu. Sprawa się sama wyjaśniła ;) Ja wiem, że jak włożę byle jaki tranzystor to mogą być problemy.
    Dziękuję wszystkim za pomoc.

    0
  • #7 04 Maj 2010 15:46
    asembler
    Poziom 32  

    A moze trzeba zaczekac 750mS w stanie wskazującym na jeden aby dokonczyla sie koneresja temperatury w czujniku. W przeciwnym przypadku otrzymujes sie tenperature 85 stopni. Z drugiej strony to co to za procesor bo zwykle to nie potrzeba zadbych tranzystorów do realizacji 1-wire

    0
  • #8 04 Maj 2010 16:05
    R_On_!
    Poziom 10  

    Całość robię na Atmega 16 i przewiduje 10 czujników, bez tranzystora działającego jako silny pull-up nie da rady. Ten tranzystor jest potrzebny gdy termometr pracuje bez zewnętrznego zasilania w tzw. Parasite Powered. Część czujnikow bedzie zasilana dodatkowo a część nie. PO wyeliminowaniu blędu na PCB wszystko ładnie śmiga.

    0
  • #9 04 Maj 2010 16:15
    asembler
    Poziom 32  

    Ja mam podpietych 16 czujników do atmegi 8 długosc kabli przekracza spokojnie 100m a nie przedstawialem atmedze zadnego tranzystora.

    0
  • #10 04 Maj 2010 16:26
    R_On_!
    Poziom 10  

    No wzorowałem się na datasheet od termometru DS18b20. Do termometru masz dodatkowe zasilanie czy tylko DQ do linii 1-Wire, a VCC i GND zwarte ze sobą ?

    0
  • #11 04 Maj 2010 16:37
    asembler
    Poziom 32  

    Czujniki sąpodłaczane za pomocą 2 drutów. A dodatkowo trzecia nózke DS traktuje jako odczyt czujnika zdarzenia, gdyz jest taka mozliwosc opisana w PDF DS18B20 co umozliwilo w prosty sposób wykorzystywanie tego termometru jako czujnika temperatury i czujnika alarmowego np otwarcia drzwi /okna itp.

    0
  • #12 02 Mar 2012 19:06
    Peter89
    Poziom 9  

    Witam,
    Pozwoliłem sobie odświeżywszy temat. Mam problem z podprowadzeniem zasilania pasożytniczego do wiatromierza pod 1-wire. A problem polega na tym iż wykorzystałem do budowy wiatromierza gotowy projekt znaleziony w internecie z tym że, ja ze swojego adaptera 1-wire (adapter pod rs232) mam wyprowadzone 3 przewody (masa, linie danych, i zasilanie 5v), a do wiatromierza dochodzą dwa przewody. Próbowałem zrobić pull up z wykorzystaniem rezystora 4,7k, ale nie pomogło. Schemat wiatromierza do pobrania poniżej.

    0
  • #13 02 Mar 2012 19:12
    piotrva
    Moderator na urlopie...

    Niestety konieczne są zmiany w programie - podczas pomiaru procesor powinien zapewniać na linii DQ tzw. strong-pull-up, czyli po prostu wystawić na linii stan wysoki w trybie pracy pinu jako wyjście. Potem pin powinien znów stać się wejściem w celu kontynuowania transmisji.

    0
  • #14 02 Mar 2012 19:27
    Peter89
    Poziom 9  

    A nie mógłbym teraz podpiąć jakoś zasilania pod ten wiatromierz, tak by nie korzystać z zasilania pasożytniczego?

    0
  • #15 02 Mar 2012 19:27
    excray
    Poziom 39  

    W prostych projektach zasilanie załatwiałem bez silnego pull-upu w poniższy sposób:
    1-Wire, DS18B20, zasilanie pasożytnicze - nie działa
    Kondensator jest rzędu 47uF. DQ jest podciągnięte do +5V prze opornik 2k2. Trzeba tylko pamiętać żeby po starcie zasilania i po konwersji poczekać chwilkę z kolejną konwersją na naładowanie się kondensatora.

    0
  • #16 02 Mar 2012 20:05
    piotrva
    Moderator na urlopie...

    Tak czy siak trzeba zmienić program...
    Można po prostu zgodnie z datasheetem podłączyć do odpowiednich nóg układu DS18B20 zasilanie +5V i GND (uwaga na rysunki - jeden jest podpisany BOTTOM VIEW - widok od dołu - wielu początkujących myli to i myśli że to widok od góry, co kończy się puszczeniem DS18B20 z dymem)

    0
  • #17 03 Mar 2012 02:23
    Peter89
    Poziom 9  

    Ale cały czas mówicie o ds18b20, a ja w wiatromierzu mam ds2450 i ds2423. Jak sprawdzić czy już przypadkiem nie spaliłem tych układów?

    0
  Szukaj w 5mln produktów