logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

DS18B20: Błędy pomiaru temperatury przy zasilaniu pasożytniczym, brak high pullup

DosinskY 20 Wrz 2004 19:33 5969 15
  • #1 864622
    DosinskY
    Poziom 19  
    Posty: 332
    Pomógł: 24
    Ocena: 9
    Taka sprawa:

    Zasilalem termometr "pasożytniczo", ale dosyc nieuważnie przejrzałem Data Sheet od niego i nie zauwazylem, ze nalezy zapodawac high pullup na szyne przez mosfet, podczas konwersji temperatury i operacji na eepromie :( O dziwo na poczatku ds konwertowal prawidlowo i poprawnie mierzyl temp. ujemne i dodatnie, jednak z czasem zaczely pojawiac sie drobne bledy.... teraz deesik jakby sie przeskalowal i temperatura pokojawa dla niego jest ok -30 stopni! Temperatura po power-on jest taka jaka przewiduje data sheet - 85 stopni ale po konwersji...lipa. Przy zasilaniu ukladu "normalnie" (korzystajac z nogi Vdd) tez nici z poprawnej konwersji. Czy nie stosowanie high pullup podczas konwersji moglo byc przyczyna uszkodzenia scalaka? Czy moze przyczyna tkwi gdzie indziej?

    Dzieki
  • #2 864683
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    DosinskY napisał:
    Taka sprawa:

    Zasilalem termometr "pasożytniczo", ale dosyc nieuważnie przejrzałem Data Sheet od niego i nie zauwazylem, ze nalezy zapodawac high pullup na szyne przez mosfet, podczas konwersji temperatury i operacji na eepromie :( O dziwo na poczatku ds konwertowal prawidlowo i poprawnie mierzyl temp. ujemne i dodatnie, jednak z czasem zaczely pojawiac się drobne bledy.... teraz deesik jakby się przeskalowal i temperatura pokojawa dla niego jest ok -30 stopni! Temperatura po power-on jest taka jaka przewiduje data sheet - 85 stopni ale po konwersji...lipa. Przy zasilaniu ukladu "normalnie" (korzystajac z nogi Vdd) tez nici z poprawnej konwersji. Czy nie stosowanie high pullup podczas konwersji moglo byc przyczyna uszkodzenia scalaka? Czy moze przyczyna tkwi gdzie indziej?

    Dzieki


    Zaraz,zaraz.To znaczy że wogóle nie korzystałeś z zadnego tranzystora i podłączyłeś tylko 4k7 rezystor ?.Jeśli tak, to nie mogłeś w ten sposób zniszczyś DS-a.Korzystanie z pomocniczego zasilania szyny DATA przez tranzystor ,służy jedynie do skrócenia czasu konwersji temp. i operacji na EEPROM-ie przez DS-a i tylko na ten czas należy go "załączyć",a przed kolejnym odczytem/zapisem magistrali należy go bezwzględnie "wyłączyć" inaczej można stracić i procka i DS-a.

    Pzdr.
    Piotrek Sz.
  • #3 864695
    DosinskY
    Poziom 19  
    Posty: 332
    Pomógł: 24
    Ocena: 9
    Zrobilem dokladnie tak jak piszesz. Jedyny pullup to ten przez 4,7k. mosfeta nie moglem zalaczac i wylaczac bo go po prosu nie mialem :P Dziwne...nie wiem gdzie jest pies pogrzebany...nie robilem zadnych zmian w sofcie i nagle przestalo dzialac. to nie jest normalne.
  • #4 864747
    jacur
    Poziom 32  
    Posty: 1748
    Pomógł: 166
    Ocena: 295
    ja uzywam lini 2 przewodowej do dallasa i podpinałem tylko na rezystorku 4K7 do vcc i przez tranzystor tez i nie bylo zadnej zauwazalnej róznicy w odczycie temperatury z DS-a
    ale jesli masz innego ds-a to zamontuj w miejsce tamtego
  • #5 864845
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    DosinskY napisał:
    Zrobilem dokladnie tak jak piszesz. Jedyny pullup to ten przez 4,7k. mosfeta nie moglem zalaczac i wylaczac bo go po prosu nie mialem :P Dziwne...nie wiem gdzie jest pies pogrzebany...nie robilem zadnych zmian w sofcie i nagle przestalo dzialac. to nie jest normalne.


    Jeszcze jedno.Co zrobiłeś z końcówką VCC DS-a ?

    Pzdr.
    Piotrek Sz.
  • #6 865079
    DosinskY
    Poziom 19  
    Posty: 332
    Pomógł: 24
    Ocena: 9
    ....no kuncufke Vdd oczywiscie na mase ;)
    bede musial zobaczyc inna sztuke ds-a bo nie daje mi to spokoju przeciez on nie moze sie przekalibrowac!!!
  • #7 865836
    diodas
    Poziom 12  
    Posty: 36
    Pomógł: 1
    Ocena: 2
    Ja mialem podobna systuacje, nie byla to wina programu bo inne sztuki dzialaly ok. Najprawdopodobniej "cos" :wink: z nim sie stalo - to nanim prowadzilem pierwsze proby. Nalezalo do temperatury odczytanej z niego dodac jakies 14 stopni, ale dokladniego powodu tego stanu takze nie znam. Dopiaslem ile trzeba i sprzedalem sasiadowi jako termometr ;)
  • #8 949868
    firebond
    Poziom 12  
    Posty: 22
    Pomógł: 1
    Ocena: 3
    Problem dotyczy możliwości utraty zawartości EEPROM dla układów DS18B20, DS18S20, DS1822 (Rev. B7):
    1. Występuje bardzo rzadko i w specyficznych warunkach.
    2. Nie można dokładnie określić partii towaru narażonej na błąd.
    3. Utrata zawartości EEPROM-u powoduje stratę kalibracji i wartości rejestrów TH i TL
    4. Utrata zawartości może nastąpić tylko w trakcie narastania zasilania.
    5. Można programowo ograniczyć błąd utraty kalibracji do maks. +/-2 stopni.
    6. Można całkowicie wyeliminować potencjalny błąd poprzez zapamiętanie kalibracji w pamięci zewn.

    Z informacji podanych przez firmę Maxim wynika, że problem dotyczy niewielkiej statystycznie ilości układów. W trosce o dobro naszych klientów przekazujemy jednak szczegółową informację jak zmodyfikować
    oprogramowanie, aby całkowicie lub częsciowo wyeliminować potencjalne zagrożenie. W przypadku
    konieczności uzyskania dodatkowych wyja nień technicznych prosimy o kontakt z naszą firmą.

    Dodatkowe objaśnienia - jak rozpoznać wersję układu, tzw. Rev. B7 (na przykładzie układu DS18S20):
    ----------
    | DALLAS | -> producent
    | DS1820 | -> typ układu (DS18S20 kodowany jest skrótowo jako DS1820)
    | 0347B7 | -> partia towaru: rrttvv (rr - rok, tt - tydzień, vv -wersja (Revision))
    | 526AA | -> kod fabryki
    Załączniki:
    • AN247_DS18x20_EEPROM_Corruption_Issue.zip (14.21 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #9 949970
    DosinskY
    Poziom 19  
    Posty: 332
    Pomógł: 24
    Ocena: 9
    Tak sie jakos dziwnie sklada, ze mam rev.B7, czyli juz wszystko jasne 8O

    Dzieki za pomoc.
  • #11 1066891
    Marcin8051
    Poziom 19  
    Posty: 512
    Pomógł: 6
    Ocena: 13
    to mi się chyba ten scalak rozkalibrował dość nietypowo :). mierzy teperature od -64 do 64 gdzie zero to jest 128 :) i tak mniejwiecej reszta dobrze. co 0.5 stopnia. Czy da się jeszcze mu jakoś pomuc czy musze go poprostu uczcić minutą ciszy i zabrać się za następnego. Czym mogło być to spowodowane? linie mam tylko przez rezystor do plusa bez trazystora :)

    Jak czesto te scalaki się resetują czy ma ktoś jakieś doświadczenia?
  • #12 1067371
    DosinskY
    Poziom 19  
    Posty: 332
    Pomógł: 24
    Ocena: 9
    Ja pokolorowalem mu 1 noge na czarno ;) ......mysle ze moze mi sie jeszcze kiedys przydac np. do mierzenia ΔT (do tego z pewnoscia sie nada). Powzej jest do sciagniecia nota aplikacyjna, wyjasniajaca jak przywrocic "kalibracje". Tak szczerze, jezeli mialbym rozbudowywac uklad o dodatkowe pamieci eeprom, tylko po to zeby wykorzystac wadliwego scalaka, to wole wyjac z szawki sprawnego DS-a.

    pozdr
    ------------------------
    dopisane:
    Te przygody mozna przezyc tylko z rev. B7 (wg. producenta) wiec pozostaje nam tylko zaufac Maxim-owi i wierzyc ze inne beda hasać, hasać i hasać ;)
  • #13 1068275
    Marcin8051
    Poziom 19  
    Posty: 512
    Pomógł: 6
    Ocena: 13
    "wiec pozostaje nam tylko zaufac Maxim-owi i wierzyc ze inne beda hasać, hasać i hasać Wink" O jakim konkretnie układzie mówisz i czy się go gdzieś kupić bez problemów w internecie za rozsądną cene. Czy to tracenie kalibracji to tylko niektóre czy z czasem czeka to karzdy scalak? Da się to jakoś przetestować ?
  • #14 1175406
    dzej_dzej
    Poziom 2  
    Posty: 4
    Ocena: 1
    witam
    ja mialem podobny problam do czasu wymiany ds'a i narazie jest ok :)

    ale mam jeszcze jeden problem , po przekroczeniu 54 (okolo) stopni zaczyna wariowac tzn pokazuje np -30 a za chwile 128 i rozne takie
    zwiekszylem czasy oczekiwania na konwersje ale to nic nie pomoglo
    mam podlaczony na 2 przewodach czyli Vd z Masa i data do procka z pullupem 4,7k do + , kiedy zmienilem R na 2,2k zaczyna wariowac po 63 (okolo) stopniach ... :(

    macie jakis pomysl ??
  • #15 2213848
    machok2
    Poziom 11  
    Posty: 15
    Ocena: 2
    A czy jako sterowany pull-up nie można użyć zwykłego PNP zamiast MOSFETa ?
  • #16 2214674
    uzi18
    Poziom 24  
    Posty: 751
    Pomógł: 37
    Ocena: 82
    dzej_dzej : im wieksza temp. (np. >63) tym dluzej trwa konwersja temp. zwieksz opoznienie pomiedzy wyslaniem komendy konwersji a odczytem danych z DS'a ja zwiekszylem z 300ms do nawet 0,5 s. i jest od razu lepiej.
    Pozdrawiam
    Bart.

Podsumowanie tematu

✨ Dyskusja dotyczy problemów z pomiarem temperatury za pomocą czujnika DS18B20 zasilanego pasożytniczo bez zastosowania high pull-up na linii danych podczas konwersji temperatury i operacji na EEPROM-ie. Brak sterowanego pull-upa przez tranzystor MOSFET może powodować błędy pomiarowe i nieprawidłową kalibrację, choć sam brak tranzystora nie powinien uszkodzić układu. Użytkownicy zgłaszają przypadki przeskalowania pomiarów, np. temperatura pokojowa odczytywana jako około -30°C, oraz niestabilne odczyty przy wyższych temperaturach (powyżej 54-63°C). Wskazano, że problem może wynikać z utraty kalibracji EEPROM, szczególnie w wersji DS18B20 Rev. B7, co jest znanym defektem fabrycznym powodującym konieczność korekty odczytów lub wymiany układu. Zaleca się stosowanie sterowanego pull-upa (np. przez MOSFET lub PNP) dla poprawy stabilności i skrócenia czasu konwersji, a także zwiększenie czasu oczekiwania na zakończenie konwersji przy wyższych temperaturach. Możliwe jest programowe skorygowanie błędów kalibracji lub przechowywanie kalibracji w pamięci zewnętrznej. W przypadku problemów z kalibracją i stabilnością pomiarów rekomendowana jest wymiana uszkodzonego DS18B20 na nowy egzemplarz.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA