ATNEL tech-forum
https://forum.atnel.pl/

RTC (DS3231) + atmega644PU + nixie - zegar staje[ROZWIAZANY]
https://forum.atnel.pl/topic17304.html
Strona 1 z 1

Autor:  m_wojcik74 [ 11 sty 2017, o 14:38 ]
Tytuł:  RTC (DS3231) + atmega644PU + nixie - zegar staje[ROZWIAZANY]

Dzień dobry,
jestem w fazie testów zegarka na lampach nixie, jednakże napotkałem problem. Zegarek chodzi przez kilka godzin a później staje, tzn. sam układ RTC liczy czas bo po resecie atmegi jest aktualna godzina oraz widzę że jest sygnał generujący przerwanie 1Hz. Ale wygląda na to że atmega nie wysyła żądania o podanie godziny. Jeśli chodzi o schemat, to nie wiem czy jest sens zamieszczać, tym bardziej że zegar chodzi przez kilka godzin, mi wygląda to raczej na jakiś błąd programowy. Od razu zaznaczam że atmega siedzi w płytce uruchomieniowej więc z filtracją zasilania powinno byc wszystko okej.

Podłączony jest też wyswietlacz lcd, tak tylko w celu debugowania. Biblioteki co I2C oraz lcd z bluebooka.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  majster [ 11 sty 2017, o 23:09 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Zapodaj schemat.

Wysłane z mojego Kruger&Matz DRIVE 4 przy użyciu Tapatalka

Autor:  m_wojcik74 [ 12 sty 2017, o 10:19 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Zamieszczam poniżej schemat połączeń zewnętrznego układu czyli to co posklejałem ja, oraz schemat płytki uruchomieniowej do której włożona jest atmega, gdyby ktoś miał wątpliwości czy filtracja itd jest zachowana. Na schemacie który rysowałem, nie zamieszczałem kondensatorów i reszty z płytki uruchomieniowej.

W celach testowych, w funkcji głównej programu umieściłem zmiane stanu na porcie w celu podpięcia w diody czyli z każdym przejściem pętli dioda zmieni swój stan, oraz to samo zrobiłem w "if'ie" od przerwania co sekundę. Układ zostawiłem na noc. Jak się okazało, rano nic nie miga, a godzina stoi w miejscu. PWM do generatora wysokiego napięcia chodził bo nixie świeciły, przerwanie do multipleksowania również, bo wyświetlacz działał normalnie. Program się zawiesił (pętla główna się nei wykonywała w ogóle), i zawiesza się cyklicznie co kilka godzin.
Jako że płytke uruchomieniową zasilam z USB, a przetwornice wysokiego napięcia z 12V, wypiąłem z sieci zasilacz 12V, bo sprawdzałem czy może przetwornica generuje takie zakłócenia że atmega wariuje, jednak bez zasilania 12V układ też się zawiesza. Jestem przekonany że to jest jakiś błąd w programie, tym bardziej że gdy nie podpiąłem jeszcze nixie (testowałem sam układ RTC), na samym wyświetlaczu LCD układ liczył normalnie kilka dni i nic sie nie działo.

Aha układ RTC to DS3132 taki na gotowej płytce drukowanej z allegro wraz z pamiecia eeprom za 7PLN.

ObrazekObrazekObrazek

Autor:  anshar [ 12 sty 2017, o 10:35 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Odłącz tą "neonówkę od sekund" od nóżki SQW układu DS3231 i przetestuj czy dalej będzie to samo.

Autor:  m_wojcik74 [ 12 sty 2017, o 16:13 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

anshar napisał(a):
Odłącz tą "neonówkę od sekund" od nóżki SQW układu DS3231 i przetestuj czy dalej będzie to samo.


Niestety bez skutku, w dalszym ciągu zegarek się zatrzymuje :/

Autor:  Piotrek_P [ 12 sty 2017, o 16:19 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

A gdzie kolega ma rezystory podciągające linie I2C?
Dobra, źle przeczytałem. Napisałeś że to gotowy moduł.

A testowałeś ten zegarek przez dłuższy czas na zwykłym wyświetlaczu np. 2x16?

Autor:  m_wojcik74 [ 12 sty 2017, o 16:29 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Piotrek_P napisał(a):
A gdzie kolega ma rezystory podciągające linie I2C?


Nie dam sobie ręki obciąć bo płytka jest wielowartwowa, ale wydaje mi się że tutaj (na czerwono):
Obrazek

Na schemacie zaznaczylem symbolicznie moduł RTC, nie chciałem przerysowywać całości, gdyż tak na prawde nie wiem czy producent moduły zastosował wszystko to co producent DS3231 w nocie zalecił.

------------------------ [ Dodano po: 2 minutach ]

Piotrek_P napisał(a):
A testowałeś ten zegarek przez dłuższy czas na zwykłym wyświetlaczu np. 2x16?


Tak, pisałem o tym w wiadomości wyżej:

Cytuj:
Jestem przekonany że to jest jakiś błąd w programie, tym bardziej że gdy nie podpiąłem jeszcze nixie (testowałem sam układ RTC), na samym wyświetlaczu LCD układ liczył normalnie kilka dni i nic sie nie działo.

Autor:  SP2LUB [ 12 sty 2017, o 20:55 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Widzę że u Ciebie błąd może tkwić w zasilaniu. Zwróć uwagę na błąd jaki wkradł się producentowi tego modułu DS3231. Otóż zasilając te moduły napięciem 5V musisz wywalić rezystor 200ohm który podaje to napięcie dalej przez diodę do baterii podtrzymującej zegar. To jest absolutnie zbędne i myślę że właśnie to powoduje u Ciebie że zegar się zatrzymuje. Zwróć na to uwagę bo to może nawet doprowadzić do uszkodzenia scalaka.

Obrazek

Autor:  P3ndz3l3k [ 12 sty 2017, o 21:27 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Kolego a sprawdź debugerem (Mirkowym) jedno diodowym czy działa prawidłowo wykrywanie przychodzącego przerwania z RTC.
Na samym początku przed odczytem z RTC zapal diodę i na koniec ją zgaś.
Czy będzie błyskać zgodnie z sygnałem SQW z RTC.


Pozdrawiam Paweł.

Autor:  m_wojcik74 [ 12 sty 2017, o 21:38 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

SP2LUB napisał(a):
Widzę że u Ciebie błąd może tkwić w zasilaniu. Zwróć uwagę na błąd jaki wkradł się producentowi tego modułu DS3231. Otóż zasilając te moduły napięciem 5V musisz wywalić rezystor 200ohm który podaje to napięcie dalej przez diodę do baterii podtrzymującej zegar. To jest absolutnie zbędne i myślę że właśnie to powoduje u Ciebie że zegar się zatrzymuje. Zwróć na to uwagę bo to może nawet doprowadzić do uszkodzenia scalaka.

Obrazek



Z tego co widzę to ta ścieżka leci tylko i wyłącznie do baterii. Owszem zgodzę się, jest w takim układzie zbędna, zwłaszcza że bateria jest 3V (hm... że ona jeszcze żyje). No ale mimo wszystko, układ rtc którym zasilana jest bateria mierzy czas poprawnie. To atmega się zawiesza.
Jeśli jednak kolega ma rację, bo wiem że różne cuda potrafią się dziać, wyciągnę baterię z układu, w sumie będzie to szybsze niż odlutowywanie tego rezystora i zostawie układ na noc. Jutro rano przedstawie tu rezultaty.

------------------------ [ Dodano po: 14 minutach ]

P3ndz3l3k napisał(a):
Kolego a sprawdź debugerem (Mirkowym) jedno diodowym czy działa prawidłowo wykrywanie przychodzącego przerwania z RTC.
Na samym początku przed odczytem z RTC zapal diodę i na koniec ją zgaś.
Czy będzie błyskać zgodnie z sygnałem SQW z RTC.


Pozdrawiam Paweł.


W tym ifie co sprawdza flagę dałem włączenie diody, a na końcu ifa wyłączenie diody. W efekcie błyska w trakcie wykonywania się tego ifa (wiekszosc czasu zajmuje wyswietlanie na lcd, dlatego cokolwiek widać). Na drugą diodę obok dałem sygnał SQW z rtc. W efekcie, gdy zbocze sygnału z RTC opada (dioda z zapalonej, gaśnie) mignie druga dioda ta którą steruje w ifie. Wg mnie działa to dobrze, wszystko jest równo.

Autor:  SP2LUB [ 12 sty 2017, o 21:52 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Nie wystarczy wyciągnięcie baterii !! Zwróć uwagę że ten układ ma zupełnie odrębny obwód zasilania backup. Odrębny to znaczy nie może być połączony z UCC.
Natomiast co do zawieszania się Atmegi to pomyśl czy to nie z powodu błędów na I2C? Jeżeli układ zegara dostanie "świra", może spowodować że transmisja po magistrali i2C zaczyna dziczeć... To powszechnie znany błąd i zapewne znajdziesz wiele opisów wady tego modułu. Po prostu producent też nie potrafi czytać noty katalogowej :)

Autor:  m_wojcik74 [ 12 sty 2017, o 22:06 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

SP2LUB napisał(a):
Nie wystarczy wyciągnięcie baterii !! Zwróć uwagę że ten układ ma zupełnie odrębny obwód zasilania backup. Odrębny to znaczy nie może być połączony z UCC.
Natomiast co do zawieszania się Atmegi to pomyśl czy to nie z powodu błędów na I2C? Jeżeli układ zegara dostanie "świra", może spowodować że transmisja po magistrali i2C zaczyna dziczeć... To powszechnie znany błąd i zapewne znajdziesz wiele opisów wady tego modułu. Po prostu producent też nie potrafi czytać noty katalogowej :)


Ahhh... Faktycznie, tam gdzie ma być zasilanie bateryjne, będzie wówczas Vcc. Teraz to zauważyłem. Co ciekawe, kolega może mieć rację, z tym że atmega się zawiesza bo I2C się sypie, otóż gdy odłączyłem układ RTC przy włączonej atmedze w celu odlutowania rezystora, to ona właśnie się zawiesiła.
W każdym razie, rezystor odlutowany, bateria wyciągnięta, układ zostawiam na noc.

Autor:  SP2LUB [ 12 sty 2017, o 22:13 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Jak już wywaliłeś ten rezystor, to baterię możesz spokojnie zostawić w gnieździe. Ja bazując na tych modułach wypuściłem dwa takie zegarki zasilane 5V i pracują bez przerwy i bez zastrzeżeń. Wydaje się że producent chciał nieco przedobrzyć.. Powodzenia :)

Autor:  m_wojcik74 [ 13 sty 2017, o 07:08 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Niestety, nie pomogło, jest godzina 7:08 a na moim zegarku 23.17 i się nie zmieniła od wczoraj

Autor:  SP2LUB [ 13 sty 2017, o 07:24 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Dziwne. Widziałem że podejrzewasz błąd programowy, ale pisałeś w jednym z postów że układ pracuje bez zatrzymań na samym LCD.

"Jestem przekonany że to jest jakiś błąd w programie, tym bardziej że gdy nie podpiąłem jeszcze nixie ("testowałem sam układ RTC), na samym wyświetlaczu LCD układ liczył normalnie kilka dni i nic sie nie działo."

W związku z tym ja raczej skłaniał bym się w kierunku jakiegoś problemu sprzętowego... a z czego czerpiesz 5V? wiem że z USB ale w czym to USB?

Autor:  m_wojcik74 [ 13 sty 2017, o 07:31 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

SP2LUB napisał(a):
Dziwne. Widziałem że podejrzewasz błąd programowy, ale pisałeś w jednym z postów że układ pracuje bez zatrzymań na samym LCD.


Pracuje na samym lcd, ale pod warunkiem że wyrzucę z programu wszystko co związane z nixie, czyli multiplex, PWM i funkcje wyboru właściwej cyferki. Gdy wyłączyłem zasilanie 12V, a więc nixie nie chodziły lecz program działał tak jakby miał je obsługiwać to i tak się to zatrzymywało mimo że układ chodził na samym lcd. Chciałem w ten sposób wyeliminować zakłócenia powodowane przez tą prymitywną przetwornicę wysokiego napięcia do nixie.

Podsumowując zegarek działał poprawnie kilka dni, ale gdy podłączony był sam wyświetlacz LCD, a program ograniczał się to odczytania czasu z RTC oraz wyświetlenia go na LCD.

SP2LUB napisał(a):
W związku z tym ja raczej skłaniał bym się w kierunku jakiegoś problemu sprzętowego... a z czego czerpiesz 5V? wiem że z USB ale w czym to USB?


Z programatora, a programator zasiany z laptopa - zegarek staje. Ładowarka do telefonu z wejściem USB - zegarek staje. :/

Autor:  SP2LUB [ 13 sty 2017, o 07:42 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

OK :) no to jest temat do rozważań podczas piątkowych obowiązków w pracy ;)

Autor:  avrfun [ 13 sty 2017, o 07:43 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Witaj!
Jakie częstotliwości PWM wykorzystujesz do generowania wysokiego napięcia i jaki zakres napięć otrzymujesz z przetwornicy wg Twojego schematu? MOSFET to IRF730A?
Pozdrawiam

Autor:  m_wojcik74 [ 13 sty 2017, o 07:49 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

avrfun napisał(a):
Witaj!
Jakie częstotliwości PWM wykorzystujesz do generowania wysokiego napięcia i jaki zakres napięć otrzymujesz z przetwornicy wg Twojego schematu? MOSFET to IRF730A?
Pozdrawiam


Wg oscyloskopu PWM pracuje na częstotliwości 31.1kHz, a zakres napięć hmmm trudno powiedzieć tutaj o zakresie, w chwili obecnej na kondensatorze tym wysokonapięciowym est 153V. Tak, MOSFET to IRF730A.

Autor:  avrfun [ 13 sty 2017, o 07:54 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Cytuj:
Wg oscyloskopu PWM pracuje na częstotliwości 31.1kHz, a zakres napięć hmmm trudno powiedzieć tutaj o zakresie, w chwili obecnej na kondensatorze tym wysokonapięciowym est 153V. Tak, MOSFET to IRF730A.

Dziękuję

Autor:  m_wojcik74 [ 14 sty 2017, o 13:08 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Wydaje mi się że znalazłem rozwiązanie, zegarek chodzi już ponad 5h bez zawiechy. Błąd okazał się jednak programowy i kolega SP2LUB natchnął mnie tym zdaniem:

SP2LUB napisał(a):
Natomiast co do zawieszania się Atmegi to pomyśl czy to nie z powodu błędów na I2C? Jeżeli układ zegara dostanie "świra", może spowodować że transmisja po magistrali i2C zaczyna dziczeć...


Dla potomnych:
Wystąpił konflikt na tych liniach:
Obrazek

ponieważ w programie zerowałem cały port, przygotowując cyferkę do multipleksowania:
Obrazek

wybranie tylko linii na których są anody/katody zamiast całego portu pomogło:
Obrazek


Dziękuję wszystkim za chęć pomocy, a koledze SP2LUB, najbardziej, bo nie dość że poinformował mnie o tym rezystorze w zasilaniu bateryjnym to nakierował mnie na właściwy tor myślenia.

Autor:  SP2LUB [ 14 sty 2017, o 15:09 ]
Tytuł:  Re: RTC (DS3231) + atmega644PU + nixie - zegar staje

Super :) cieszę się że rozgryzłeś problem.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/