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

ATMega32A + DS3231 - DS3231 bardo niska dokładność

zark 26 Paź 2015 11:27 2652 13
  • #1 15097365
    zark
    Poziom 12  
    Problem dotyczy dokładności chodu RTC 3231. Kontroler jest na płytce stykowej zasilany z modułu zasilania dla tych płytek. Dodatkowo przy kontrolerze jest kondensator 100n + tantal 47u. DS3231 podłączony do szyny zasilania na płytce i TWI kontrolera (SCL,SDA). W takiej konfiguracji zegar spieszy kilkanaście sekund na dobę. Jeśli w miejscu podpięcia RTC do szyny zasialnia płytki stykowej dodam tantal 47u zegar zaczyna się spóźniać kilkanaście sekund na dobę. Czyli wahadło w drugą stronę.

    Inna ciekawostka to wpływ częstotliwości czytania RTC przez kontroler. Im częściej odczytuję czas tym zegar chodzi szybciej. Różnica jest w stosunku do ogólnej dokładności niewielka jakieś 1-2s na dobę pomiędzy 2 odczytami / sekundę a 1000 odczytów na sekundę.

    Czy ktoś ma pomysł o co tu chodzi? Jak zmusić ten RTC do pracy zgodnie z deklarowaną dokładnością?
  • #2 15098765
    slx
    Poziom 19  
    Ale to jest gotowy moduł, czy sam układ? Przydałoby się zdjęcie i/lub dokładny schemat.
    Czy jest podłączony zgodnie z dokumentacją? Konkretnie chodzi o piny 5-12 - czy są podłączone do masy?
    Co było wzorcem czasu do porównania?
  • #3 15099860
    zark
    Poziom 12  
    Jest to gotowy moduł.

    http://electropark.pl/rtc-zegary-czasu-rzeczy...dul-rtc-ds3231-zegar-czasu-rzeczywistego.html

    Na płytce jest jeden kondensator odsprzęgający zasilanie i dwa rezystory podciągające linie SCL, SDA oraz bateria LiIon do podtrzymania zasilania. Laminat jest wielowarstwowy z czarną solder maską więc trudno stwierdzić które nóżki scalaka są podłączone do masy. Zakładam, że producent modułu zastosował się do zaleceń z noty katalogowej.

    Porównania dokonuję z zegarem DCF77. Zegar przez całą dobę sygnalizuje synchronizację z wzorcem radiowym z Frankfurtu.

    Cały zestaw testowy leży na biurku. W pobliżu znajduje się ruter WiFi, switch GBE oraz kilka zasilaczy impulsowych + czasami telefon komórkowy. Próbowałem zmieniać pozycję modułu RTC i zauważyłem ogromne wahania dokładności. Raz mocno przyspiesz innym razem mocno zwalnia. Zaczynam podejrzewać, że praca oscylatora jest zakłócana albo przez wpływ pola elektromagnetycznego na kwarc albo zakłócenia elektryczne na lini zasilania indukowane w przewodach łączących moduł z szyną zasilania płytki stykowej. Możliwe, że jedno I drugie. Dodanie tantala zmieniło sytuację więc coś jest na rzeczy.

    Ostatnio zostawiłem moduł na noc odłączony. Pracował na własnej baterii i tym razem mocno spieszył. W pobliżu leżał włączony telefon komórkowy. Spróbuję ten moduł zaekranowć i zobaczymy. Kwarc w scalaku prawdopodobnie nie ma ekranowania. W nocie aplikacyjnej pisze żeby nie prowadzić żadnych ścieżek, szczególnie sygnałowych pod scalakiem.
  • #4 15099878
    tmf
    VIP Zasłużony dla elektroda
    zark napisał:

    Cały zestaw testowy leży na biurku. W pobliżu znajduje się ruter WiFi, switch GBE oraz kilka zasilaczy impulsowych + czasami telefon komórkowy. Próbowałem zmieniać pozycję modułu RTC i zauważyłem ogromne wahania dokładności. Raz mocno przyspiesz innym razem mocno zwalnia. Zaczynam podejrzewać, że praca oscylatora jest zakłócana albo przez wpływ pola elektromagnetycznego na kwarc albo zakłócenia elektryczne na lini zasilania indukowane w przewodach łączących moduł z szyną zasilania płytki stykowej. Możliwe, że jedno I drugie. Dodanie tantala zmieniło sytuację więc coś jest na rzeczy.

    Ostatnio zostawiłem moduł na noc odłączony. Pracował na własnej baterii i tym razem mocno spieszył. W pobliżu leżał włączony telefon komórkowy. Spróbuję ten moduł zaekranowć i zobaczymy. Kwarc w scalaku prawdopodobnie nie ma ekranowania. W nocie aplikacyjnej pisze żeby nie prowadzić żadnych ścieżek, szczególnie sygnałowych pod scalakiem.


    \No to sam sobie odpowiedziałeś. Ze względu na niski pobór prądu, generator kwarcowy sechuje się dużą impedancją, a co za tym idzie dużą wrażliwością na zakłócenia. Tego typu urządzenie nie będzie poprawnie pracowało w bliskości źródeł zakłócających. Ekraniowanie/przeprojektowanie płytki zapewne pomoże. Lub też wykorzystanie RTC z ATMega32.
  • #5 15100046
    zark
    Poziom 12  
    Jeżeli ekanowanie pomoże to O.K. Ale jężeli zakłócenia idą po zasilaniu to nie wiem co jeszcze mogę zrobić. Przy scalaku jest 100n ceramiczny, dodatkowo dodałem 47u tantal, w szereg z zasilaniem dałem dławik 1 mH.

    Swoją drogą jeżeli ekranowanie jest konieczne to dlaczego producent nie zamknął tego w metalowej obudowie tak jak generatory kwarcowe? Dlaczego producenci modułów naruszają zalecenia z noty katalogowej? Oto przykład:

    http://www.play-zone.ch/en/combo-breakout-mit-ds3231-temperatur-zeit-24c32-memory.html

    Wyraźnie widać ścieżkę sygnałową prowadzoną pod scalakiem!

    Wygląda na to, że te moduły są tylko do zabawy/nauki programowania a naprawdę stabilny RTC trzeba zrobić samemu kupując scalak i projektując własną PCB.
  • #6 15100205
    tmf
    VIP Zasłużony dla elektroda
    zark napisał:
    J
    Wygląda na to, że te moduły są tylko do zabawy/nauki programowania a naprawdę stabilny RTC trzeba zrobić samemu kupując scalak i projektując własną PCB.


    Znowu sam sobie odpowiedziałeś :) Moduły służą tylko do szybkiego przetestowania koncepcji. Przecież nikt nie wkłada takich modułów do finalnego urządzenia...
    Co do ekranowania - nie zawsze jest potrzebne. Wszystko jest zależne od warunków w jakich przewidujesz wykorzystać dane urządzenie.
  • #7 15100875
    zark
    Poziom 12  
    Buduję kolejny zegar. Całość będzie zamknięta w metalowej obudowie. Jako zasilacz przetwornica AC/DC NFM05-12 Mean Well. Wyświetlacze LED sterowane w multipleksie. Sterowanie kontroler ATmega32A. Zakłóceń więc nie zabraknie.

    Aktualnie zaekranowałem moduł i testuję. Jeśli ekranowanie okaże się skuteczne trzeba będzie poszukać tego scalaka w sklepach i zrobić własną płytkę. Przy okazji ekranowania można też dodatkowo zaizolować go termicznie.

    Sięgnąłem po DS3231 po tym jak zrobiłem własny moduł RTC na PCF8563T. Te same problemy plus kiepska stabilność termiczna. DS3231 ma kompensację temperaturową ale podejrzewam, że podobną stabilność można osiągnąć zamykając PCF8563 + kwarc w puszce ekranującej i wypełnić to pianką. Można jeszcze dodać jakiś element grzejny + termistor i kontrolować to poprzez ADC kontrolera.
  • #8 15102315
    zark
    Poziom 12  
    Niestety tego się obawiałem. Ekranowanie nic nie dało. Odchyłki chodu identyczne jak wcześniej. Zaczynam podejrzewać scalak. Może jest uszkodzony mechanicznie. W nocie katalogowej zwracają uwagę na delikatne obchodzenie się z nim. Nie można stosować ultradźwiękowych myjek na liniach montażowych. Chińczycy mogą to mieć gdzieś. Istnieje też możliwość, że to chiński zamiennik lub odpad produkcyjny kupiony okazyjnie od producenta. Cena gotowego modułu jest znacznie niższa niż cena samego scalaka u maxim'a. Układ ma oznaczenie DS3231N podczas gdy nota wspomina o układach DS3231S / DS3231SN.
  • #9 15102382
    tmf
    VIP Zasłużony dla elektroda
    Tak przy okazji, skoro masz MCU z wbudowanym RTC to po co ci zewnętrzny RTC? Odchyłki i tak trzeba będzie kompensować np. przez DCF77. A kwarce zegarkowe zwykle nie grzeszą dokładnością. Próbowałeś podregulować trymerem?
  • #10 15102701
    michalko12
    Specjalista - Mikrokontrolery
    zark napisał:
    Istnieje też możliwość, że to chiński zamiennik lub odpad produkcyjny kupiony okazyjnie od producenta.

    Ja bym jednak tą opcję obstawiał. Za dużo tego na ebayu za psie centy. Takie układy nie mogą kosztować mało, zwłaszcza jeśli producentem jest maxim. Zastanówcie się, jak może coś kosztować poniżej 1$ Link ( z dodatkową pamięcią i z przesyłką gratis) jeśli w takim MOUSERze przy ilości 1000szt sam ten układ kosztuje prawie 5 euro netto.
  • #11 15102752
    zark
    Poziom 12  
    tmf napisał:
    Tak przy okazji, skoro masz MCU z wbudowanym RTC to po co ci zewnętrzny RTC? Odchyłki i tak trzeba będzie kompensować np. przez DCF77. A kwarce zegarkowe zwykle nie grzeszą dokładnością. Próbowałeś podregulować trymerem?


    Tego kwarca nie da się stroić. Na wejściu i wyjściu oscylatora (TOSC1, TOSC2) są kondensatory 36pF. DCF odpada. Tam gdzie docelowo będzie stał zegar brak sygnału DCF. Zresztą dokładność +/-2ppm mi wystarcza. Ponadto zewnętrzny RTC upraszcza projekt. Używam wielu przerwań i chciałem process zliczania sekund wyprowadzić poza kontroler.

    Dodano po 18 [minuty]:

    michalko12 napisał:
    Ja bym jednak tą opcję obstawiał. Za dużo tego na ebayu za psie centy. Takie układy nie mogą kosztować mało, zwłaszcza jeśli producentem jest maxim. Zastanówcie się, jak może coś kosztować poniżej 1$ Link ( z dodatkową pamięcią i z przesyłką gratis) jeśli w takim MOUSERze przy ilości 1000szt sam ten układ kosztuje prawie 5 euro netto.


    Tym bardziej, że ten moduł za 1$ ma na pokładzie DS3231SN. Wersja przemysłowa o rozszerzonym zakresie temperatur.
  • #12 15232016
    zbynio_k
    Poziom 10  
    witam,
    kolego zark > zapoznałeś się z datasheet'em ??
    np. które piny nie mogą 'wisieć' w powietrzu ??

    BTW - nie wierzę, że ekranowanie nie izoluje od w.cz. nawet od tych GHz
    chyba źle ekranujesz
  • #13 15232230
    Konto nie istnieje
    Konto nie istnieje  
  • #14 15240160
    zark
    Poziom 12  
    zbynio_k napisał:

    kolego zark > zapoznałeś się z datasheet'em ??
    np. które piny nie mogą 'wisieć' w powietrzu ??


    Oczywiście. Od tego zaczynam pracę z każdym układem. Dodatkowo zapoznałem się z Application Notes producenta dla tego scalaka. W oparciu o te dane zaprojektowałem własną płytkę. Kupiłem scalak w pewnym źródle i teraz chodzi bardzo dokładnie.

    zbynio_k napisał:

    BTW - nie wierzę, że ekranowanie nie izoluje od w.cz. nawet od tych GHz
    chyba źle ekranujesz


    To nie jest kwestia wiary tylko praw fizyki. Masz rację prawidłowo wykonany ekran jest zawsze skuteczny. Problem w tym, że pracę tego układu destabilizowały zakłócenia idące po zasilaniu a nie pole elektromagnetyczne. Dlatego ekran nie poprawiał sytuacji. Ponadto problemem był scalak, odpad produkcyjny kupowany przez chińskich producentów tych modułów lub chiński zamiennik.

    Dodano po 1 [godziny] 27 [minuty]:

    Piotrus_999 napisał:

    Zastosuj oscylator ocxo i bedzie git.


    DS3231 jest w zupełności wystarczający. Kupiłem pełnowartościowy scalak i chodzi precyzyjnie. Oscylator TCXO i RTC mam w jednym scalaku. Ponadto ten TCXO można stroić z rozdzielczością 0.1ppm wpisując korektę do rejestru Aging offset. Cyfrowa kalibracja z poziomu kontrolera. Dodatkowy bonus wbudowany termometr 10bit.

    Piotrus_999 napisał:

    Twoj chip to na pewno jakis złom. Dla 1 szt w farnelu kosztuje 11 funtów.


    Dokładnie. Maxim produkuje DS3232S i SN, a ten ma napis DS3231N. Przekopałem internet i nigdzie nie znalazłem specyfikacji dla wersji N. Ponadto napis jest inną czcionką i ma inny sposób sygnalizacji pinu 1. Wygląda to na odpad produkcyjny sprzedawany po cenie złomu producentom modułów za 1$. Te moduły, głównie pod Arduino, służą wyłącznie do celów edukacyjnych więc dokładność chodu nie jest istotna z punktu widzenia producenta.
REKLAMA