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

[ATMega8]DS18b20-silne zakłócenia na magistrali 1wire

usiex 18 Gru 2008 13:57 11394 35
  • #1 5873182
    usiex
    Poziom 16  
    Witam
    Mam następujący problem z zakłóceniami pochodżacymi od silników 3 fazowych hydrofor piec.Zakłócają mi prace szyny w ten sposób że na wskazaniach wyskakuje 85 lub temperatura skacze na różne wartośći.Czujniki mam 3 oddalone najdalszy około 7m.Rezystor podciągający 1 wire dałem już 1k.zasilanie do procesora odfitrowałem i zblokowałem kondensatorami.Kabel mam użyty jeden czujnik na kablu telefonicznym a pozostałe dwa na skrętce.Czy ktoś może przerabiał podobny problem?Co można jeszcze zrobić w tej sprawie bo jest tragicznie.
    Pozdrawiam

    Poprawiłem tytuł-regulamin p.11.1
    [zumek]
  • #2 5873276
    marek-c
    Poziom 19  
    Napisz jeszcze jak masz zasilanie. To 1k jest niedobrze. Co do błędów to wczoraj wywaliłem ds18 - uszkodzony, pokazuje temperaturę ale powyżej 30`C.

    Moim zdaniem to nie zakłócenia (zbyt słabe) a coś nie tak z połączeniami i zasilaniem.
    Tzn. jak jest parasite (zwarte na czujniku zewnętrzne nóżki czyli - i +)to musisz na czas konwersji załączyć 5V dla czujnika.
  • #3 5873363
    usiex
    Poziom 16  
    Witam
    Czujniki mam podpięte na trzech żyłach _ + DQ .DQ podciągnięte przez 1k do plus.Jak silnik od hydroforu czy pieca sie niezałacza jest wszystko ok.Dopiero jak sie załacza lub wyłacza świruje.Czyjniki zamieniłem już wszystkie na inne sztuki,więc zostaje tylko zakłócenie od silników.Reset do procka podciągnięty i kondenstaor dolutowany do resetu i zaraz do nózek procka.Już pomysły zaczynają sie kończyć
  • #4 5873375
    marek-c
    Poziom 19  
    A sprubój jeszcze z parasite: na czas konwersji port do którego podpięte dq ustawiasz na wyjście i stan wysoki.

    Marek
  • #5 5873389
    mirekk36
    Poziom 42  
    Oczywiście filtrowanie zasilania to ważna sprawa i trzeba to dobrze zrobić , rezystor podciągający też chyba nie powinien być mniejszy niż ok 4,7K.

    Pomimo to wiadomo, że i tak czasami mogą wystąpić jakieś zakłócenia. Co można zrobić od strony programu w takim przypadku? (o ile oczywiście nie są to bardzo częste zakłócenia) - np co jakiś większy interwał czasu dokonywać odczytu wybranego czujnika DS18B20 ale nie jeden raz a np 2 lub 3 razy (w króciutkich odstępach czasu). Porównać wyniki, i jeśli ich średnia nie wykracza poza żaden z 2-3 wyników to wtedy dopiero wyświetlić temperaturę (tę średnią). Dzięki temu będziesz miał programową korekcję błędów
  • #6 5873397
    usiex
    Poziom 16  
    A czy w takiej konfiguracji jak mam może niedziałać?Wieczorem bede testował te dwa rozwiązania.Czy jest możliwość zrobienia tego uśrednianai w bascomie?Jestem początkującym więc może jakieś przykładziki ktoś posiada?
    Dzięki za info
  • #7 5873404
    mirekk36
    Poziom 42  
    poza tym piszesz, że kondensator dolutowany przy nogach zasilających procka - ale jaki? i dlaczego tylko jeden hmmm?

    powinny być 2 - jeden ceramiczny 100nF a drugi elektrolityczny ok 47 - 100 uF.

    takie same pary kondensatorów warto dać blisko nogi wyjściowej stabilizatora 7805 ale także blisko nogi wejściowej z tym, że tam nieco większy elektrolit.

    Jakie masz zasilanie? trafko + mostek gretza? - to jeszcze koniecznie kondensatorki ceramiczne równolegle do diod w mostku
  • #8 5873434
    usiex
    Poziom 16  
    Witam
    Zasilam z przetwornicy impulsowej 12v takiej jak np do laptopa.Zaraz przed i za stabilizatorem mam kondensatory 1000u i po 100nf.Przy nogach procka mam 100nf.i na resecie mam 100nf i 2,2u równolegle.
  • #9 5873459
    mirekk36
    Poziom 42  
    A czy procek steruje bezpośrednio czymś co pobiera choć ciut więcej prądu - np jakimiś diodami LED itp? jeśli tak to na prawdę - dodaj jeszcze równolegle do tego 100nF przy nogach procka jeszcze jakiś ze 22-47uF elektrolit. Bo to, że jest 1000uF (zresztą całkiem niepotrzebnie taki duży jeśli nie ma innych modułów na płytce które potrafią też sporo zjadać) - to nie wstarczy.

    Jeśli masz oscyla to weź sobie procka - z takim filtrowaniem jak masz - steruj nim kilkoma diodami LED, które będą brały powiedzmy po 10mA i sprawdź sondą co się dzieje na nodze zasilającej procka gdy te diody będą szybko migały (programowo oczywiście) (będzie niespodzianka). Sam się kiedyś na tym przejechałem. Wtedy dołożenie jakiegoś elektrolita przy nogach proca - ładnie niweluje ten efekt.

    Natomiast - hmmm może się mylę (choć raczej nie), ale czy to nie jakiś dziwoląg - że na resecie dałeś jakiekolwiek kondensatory ????? toż tam powinien być tylko jakiś jeden rezystor ok 10K, który podciąga reset do VCC i to wszystko
  • #10 5873462
    kulmar
    Poziom 31  
    usiex napisał:
    Witam
    Mam następujący problem z zakłóceniami pochodżacymi od silników 3 fazowych hydrofor piec.Zakłócają mi prace szyny w ten sposób że na wskazaniach wyskakuje 85 lub temperatura skacze na różne wartośći.Czujniki mam 3 oddalone najdalszy około 7m.Rezystor podciągający 1 wire dałem już 1k.zasilanie do procesora odfitrowałem i zblokowałem kondensatorami.Kabel mam użyty jeden czujnik na kablu telefonicznym a pozostałe dwa na skrętce.Czy ktoś może przerabiał podobny problem?Co można jeszcze zrobić w tej sprawie bo jest tragicznie.
    Pozdrawiam


    Jesli to magistrala 1-wire, to można spróbować linię zaekranować - przewód jednożyłowy w ekranie (np. od słuchawek).

    Pozdrawiam
    Mariusz
  • #11 5873505
    usiex
    Poziom 16  
    Witam do kolegi mirek 36 Po pracy dołoże to elko na nogi procka.Co do resetu to kondensatory są wpiete do nóżki reset i do masy także nic niepowinny przeszkadzać.Może jeszcze spróbuje zaekranować to 1 wire tylko że mam tam dodatkowo zasilanie dane na czujniki czyli już nie 1wire.
    A czy ten przewód telefoniczny niemożebyć problemem?
    Poeksperymentuje wieczorem z waszymi uwagami i dam znac co i jak.
    Pozdrowionka dla wszystkich chętnych w udzieleniu pomocy
  • #13 5873584
    usiex
    Poziom 16  
    Witam
    Czyli plus minus do czujnika normalnie a szyne DQ w ekranie i ekran do masy oraz między mase a plus 100nf.Czy to tak ma być?
    Pozdrawiam
  • #14 5873600
    kulmar
    Poziom 31  
    usiex napisał:
    Witam
    Czyli plus minus do czujnika normalnie a szyne DQ w ekranie i ekran do masy oraz między mase a plus 100nf.Czy to tak ma być?
    Pozdrawiam


    Tak. Ale to 100nF na zasilaniu jak najbliżej czujnika - żeby indukcyjność i rezystancja szeregowa kabla nie miała wpływu na zasilanie układu.

    Pozdrawiam
    Mariusz
  • #15 5873602
    MarasK
    Poziom 18  
    Miałem identyczne objawy jak kolega. Po pewnym czasie (raczej losowym) czujnik przestawał poprawnie pokazywać temperaturę.

    Jedynym rozwiązaniem było odcinanie mu zasilania na 2s (ja zasiliłem go bezpośrednio z nogi proca - pozwala na to obciążalność portów ATMegi). Po zastosowaniu takiego rozwiązania - jak ręką odjął.
  • #16 5873615
    usiex
    Poziom 16  
    Witam
    Do kolegi MarasK Witam nierozumiem zabardzo odcinanie zasilania na 2 sekundy czyli pomiar robisz co 2 sekundy?Mógłbyś coś bardziej rozwinąć temat co i jak?
    Pozdrawiam
  • #17 5873823
    mirekk36
    Poziom 42  
    ;) a ja jednak "przyczepię" się do tego twojego resetu bo mi spać to nie daje, zresztą przy tej okazji zgłębiłem temat chyba do końca i doszedłem do tego co zaleca sam "stwórca" AVR'ków czyli ATMEL

    [ATMega8]DS18b20-silne zakłócenia na magistrali 1wire

    żeby nie było, że zmyślam to poniżej podaję źródło:

    http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

    może się to przyda.

    bo tak sobie myślę choć może się mylę, że wymyślamy tu coraz większe ekranowania przewodów, odłączania zasilania do czujników - a czy nie okaże się na końcu, że poprawne filtrowanie, reset i nie żałowanie kondensatorów 100nF wszędzie gdzie się powinno je dać - nie przyniesie oczekiwanego rezultatu w połączeniu jeszcze z programową korekcją tak na wszelki słuczaj
  • #18 5873849
    usiex
    Poziom 16  
    Witam
    Reset mam dokładnie tak ak na obrazku tylko mam dwa kondensatory równolegle.Próbowałem z jednym 100n i osobno 2,2uf efekt ten sam.
  • #19 5874202
    Dar.El
    Poziom 41  
    Witam
    Myślę że problem należy rozwiązać u źródła, czyli coś z hydroforami jest nie tak. Na stycznikach załączających silniki trójfazowe powinny być założone jakieś gasiki, z tym że problem może Cię przerosnąć, więc potrzebna jest pomoc zawodowego elektryka.
  • #20 5874244
    MarasK
    Poziom 18  
    usiex napisał:
    Witam
    Do kolegi MarasK Witam nierozumiem zabardzo odcinanie zasilania na 2 sekundy czyli pomiar robisz co 2 sekundy?Mógłbyś coś bardziej rozwinąć temat co i jak?
    Pozdrawiam


    Nie - sprawdzam co 1s temperaturkę i jeśli pomiędzy kolejnymi odczytami wartość zmieni się o więcej niż 5 stopni (wystarczyłoby 2st w zupełności, ale u mnie odczyty zmieniały się 0->85->0 itp) to odcinam na 2s zasilanie czujnika.

    Pomogło :)
  • #21 5874451
    K_o_n_r_a_d
    Poziom 23  
    A ja chciałbym, żebyś pokazał schemat z uwzględnieniem innych elementów (triaki, przekaźniki itp.) i kod programu.
    Czy na pewno czas konwersji temperatury jest wystarczający?
    Czy sprawdzasz sumy kontrolne?

    usiex napisał:
    A czy ten przewód telefoniczny niemożebyć problemem?

    Testowałem te czujniki na przewodzie telefonicznym, na 30m, w silnych zakłóceniach (właśnie przy silnikach) i nie było problemu (linia danych do zasilania przez rezystor 4,7k). Oczywiście sumy kontrolne to koniecznośc w takich sytuacjach.
  • #22 5874964
    usiex
    Poziom 16  
    Witam
    Jest to zwykły termometr.żadnych przekaźników czy triaków.O co chodzi z tymi sumami kontrolnymi przecież przy pomiarze one niesą brane pod uwage.One są brane przy pierwszym uruchomieniu termometru.
    Teraz niewiem czy to leci od zasilania czy po 1 wire??
    Pozdrawiam
  • #23 5875176
    kulmar
    Poziom 31  
    usiex napisał:
    Teraz niewiem czy to leci od zasilania czy po 1 wire??


    I tu i tu. Jeśli (jak zrozumiałem) czujnik jest odległy od płytki procesora o kilka metrów, to ma doprowadzone zasilanie przez przewód, który ma swoją rezystancję i co ważniejsze pasożytniczą indukcyjność. Więc zasilanie czujnika należy zablokować kondensatorem, możliwie blisko samego układu (tak jak się to robi w przypadku układów cyfrowych na płytce drukowanej). A linia sygnałowa typu 1-wire prawdopodobnie jest zakłócana przez silniki i należy ją dodatkowo ekranować.

    Pozdrawiam
    Mariusz
  • #24 5875423
    K_o_n_r_a_d
    Poziom 23  
    usiex napisał:
    Jest to zwykły termometr.żadnych przekaźników czy triaków.O co chodzi z tymi sumami kontrolnymi przecież przy pomiarze one niesą brane pod uwage.One są brane przy pierwszym uruchomieniu termometru.
    Nie napisałeś ile czasu dajesz na konwersję, ani nie pokazałeś kodu. Czujnik dokładnie tak się zachowuje jeśli dasz mu za mało czasu na konwersję temperatury. Nie chodzi mi o czas pomiędzy pomiarami, ale o czas od wydania komendy konwersji do odczytu. Przy precyzji 12bitowej potrzeba 750ms. Masz tyle?
    Przy każdym odczycie możesz odczytać sumy kontrolne. Jesli się zgadzają to można przyjąć, że transmisja jest bezbłędna i to należy robić zawsze.

    Jeszcze nie dodałem wyżej - zawsze podłączałem czujniki na 3 przewodach. Jeśli chodzi o przewód telefoniczny może mieć to znaczenie.
  • #25 5876074
    usiex
    Poziom 16  
    Witam
    Dołożyłem po 100nf narazie do dwóch czujników a trzeci narazie jest odpięty i wygląda że się poprawiło.Jutro zamontuje trzeci czujnik i dołoże do niego kondensator i podziele się obserwacjami.
    Na obecną chwile dziękuje za pomoc.
    Kod wydaje się byc ok bo jak sie nic niewłączało to wszystko działało ok.Czas konwersji mam 750ms.
    Pozdrawiam
  • #26 5884058
    asembler
    Poziom 32  
    Jak juz ktoś poruszył temat bez sprawdzania sum kontrolnych bedziesz walczył co chwilę z tymi czujnikami i nie dojdziesz ładu.
  • #27 5887244
    owurac
    Poziom 15  
    Cytat:
    Kabel mam użyty jeden czujnik na kablu telefonicznym a pozostałe dwa na skrętce


    Wskazuje to, że twoje 1-wire nie jest magistralą a gwiazdą. 1-wire powinno mieć topologię linii z masterem na końcu.
  • #28 5887572
    marek-c
    Poziom 19  
    owurac napisał:
    Cytat:
    Kabel mam użyty jeden czujnik na kablu telefonicznym a pozostałe dwa na skrętce


    Wskazuje to, że twoje 1-wire nie jest magistralą a gwiazdą. 1-wire powinno mieć topologię linii z masterem na końcu.


    To znaczy? Można prosić o wyjaśnienie? A może prawa Kirchoffa nie obowiązują w technice cyfrowej?

    Marek
  • #29 5887769
    owurac
    Poziom 15  
    Co co znaczy? Wyraziłem się chyba dosyć jasno: magistrala a nie gwiazda. Proste.

    Nie wiem czemu uważasz że prawa Kirchoffa mogą nie obowiązywać w technice cyfrowej. Oczywiście że obowiązują. Należy jednak pamiętać, że w pewnych sytuacjach do poprawnej analizy transmisji kablem telefonicznym konieczne może być opisanie go jako układu o zmiennych rozłożonych. Nieprawda kolego?
  • #30 5892027
    marek-c
    Poziom 19  
    owurac napisał:
    Co co znaczy? Wyraziłem się chyba dosyć jasno: magistrala a nie gwiazda. Proste.

    Nie wiem czemu uważasz że prawa Kirchoffa mogą nie obowiązywać w technice cyfrowej. Oczywiście że obowiązują. Należy jednak pamiętać, że w pewnych sytuacjach do poprawnej analizy transmisji kablem telefonicznym konieczne może być opisanie go jako układu o zmiennych rozłożonych. Nieprawda kolego?


    To chyba nie te częstotliwości...
REKLAMA