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

Wybór: PCF z podtrzymaniem bateryjnym czy RTC w Atmega do zegarka?

autoservice 16 Lip 2006 20:12 6542 15
REKLAMA
  • #1 2825595
    autoservice
    Poziom 20  
    Posty: 516
    Pomógł: 7
    Ocena: 16
    Witam
    Chodzi o prosty zegarek bez wodotrysków, zastosowac pcf z awaryjnym podtrzymaniem bateryjnym czy moze rtc w atmega przy uzyciu timera i kwarcu zegarkowego, ale boje sie ze jesli atmega sie przypadkowo zresetuje lub recznie to zegarek mi sie zresetuje, a zapisywanie co minute do eepromu to troche lipa....czy moze zmienne po resecie pozostane nie tkniete....?!?
    dziekuje,pzdr.
  • REKLAMA
  • #2 2825682
    1004kw
    Poziom 15  
    Posty: 142
    Pomógł: 6
    Ocena: 11
    Witam... Jesli mge cos dodac od siebie... W eepromie zapisalbym wartosci czasow do zalaczen urzadzenia w trybie dziennym lub tygodniowym (bo system ma miec podtrzymanie zasilania) oraz wartosci czasow czynnego dzialania. Wowczas mozna poniekad uniezaleznic system od przypadkowych resetow (nawet jesli nastapilby podczas zadzialalnia urzadzen sterowanych). Przykladowo po kazdym resecie (pamietajac, ze system posiada podtrzymanie zasialania) nastepowaloby odczytanie aktualnej wartosci czasu i sprawdzenie, czy w danej chwili urzadzenia wyjsciowe powinny byc wysterowane czy nie oraz okreslenie ew. przez jak dlugo powinny byc jeszcze zadzialane... To tak w wielkim skrocie. W sumie to tylko przykladowy pomysl na rozwiazanie tej kwestii...
  • REKLAMA
  • #3 2825827
    autoservice
    Poziom 20  
    Posty: 516
    Pomógł: 7
    Ocena: 16
    witam
    ale to nie ma niczym sterowac tylko wyswietlac zegarek na lcd, nic wiecej, wersja z pcf bedzie miec bateryjke wiec procek moze robic co chce a czas w pcf nie zniknie...natomiast bez pcf (zegar na timerze w atmedze) no to zmienne czasu sa w procku i jesli nastapi reset to chyba sie zresetuja i trza bedzie ustawiac zegar od nowa :( jesli by co minute czas zapisywac w eeprom to na rok bedzie 500tys zapisow co opada definitywnie...ale wpadlo mi tez do glowy zastosowanie pamieci sram, wtedy reset nie grozny (jesli nie nastapi w momencie zapisu, bo stracimy minute czasu) i/lub dolozyc do sram bateryjke i mamy takze uniezaleznienie od chwilowego zaniku zasilania...
    pzdr.
  • #4 2825987
    1004kw
    Poziom 15  
    Posty: 142
    Pomógł: 6
    Ocena: 11
    Witam ponownie... No tak, zapedzilem sie troche z tym wszystkim... Osobiscie zastosowalbym zegar RTC zewnetrzny z podtrzymaniem bateryjnym wbudowanym...
  • #5 2826508
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 617
    Podobni jak przedmówca zastosował bym PCF'a, dodatkowo zyskujemy trochę pamięci EEPROM, no i mamy gotowy budzik :D i chyba mimo wszystko obsługa jest mniej kłopotliwa.
    A tworzenie wszystkiego od 0 na przerwaniach hmm... sam wybrał bym PCF'a.
  • #6 2827423
    1004kw
    Poziom 15  
    Posty: 142
    Pomógł: 6
    Ocena: 11
    Witam... Moim zdaniem to kwestia gustu i mozliwosci finansowych...
  • #7 2828180
    autoservice
    Poziom 20  
    Posty: 516
    Pomógł: 7
    Ocena: 16
    ..wlasnie kwestia finansow tu wchodzi w gre, pcf to dodatkowy koszt oraz wieksza plytka.... to jak z tymi zmiennymi? da sie je jakos ulokowac aby sie nie zerowaly przy resecie? chyba w sram'ie sie nie resetuja z tego co pamietam...
    pzdr.
  • REKLAMA
  • #8 2828860
    matgaw
    Poziom 15  
    Posty: 198
    Pomógł: 4
    Ocena: 3
    Zresetują. Zresztą nie rozumiem Twojego problemu... zarówno PCF jak i ATmega muszą być podtrzymywane czymś żeby nie utraciły czasu... więc skoro możesz baterią podtrzymywać PCFa, to jaki problem z podtrzymywaniem ATmegi?
  • #9 2829690
    autoservice
    Poziom 20  
    Posty: 516
    Pomógł: 7
    Ocena: 16
    ..w tym problem ze wystarczy ze atmega sie sama z siebie chocby 1 raz resetnie ( chocby od zaklocen) i zegarek pozamiatany, trzeba ustawiac od nowa...bo przeciez zmienne sie zresetuja po resecie.bateryjka nie chroni nas od przypadkowego resetu. wiec dlatego wymyslilem aby podlaczyc pamiec sram z bateryjka, tansza niz pcf i przy resecie dane z niej nie uciekna...
    nie wiem po co w ogole atmel wymyslil ten RTC skoro on taki lipny...jeden reset i wszystko sie rypie...
    pzdr.
  • #11 2830819
    autoservice
    Poziom 20  
    Posty: 516
    Pomógł: 7
    Ocena: 16
    ..bardzo trudno uodpronic uklad na reset np od zaklocen, zwlaszcza avr'ki ;)... wystarczy jeden przypadkowy reset na miesiac i musimy ustawiac zegarek co miesiac :(..ale wpadlem na inny pomysl, wystarczy zapisywac do eeprom aktualny czas co 1h, w razie resetu w najgroszym przypadku stracimy 60min dokladnosci...na 10lat daje nam to 80k zapisow ;)..ale gdzies mi sie obilo o uszy ze tylko rejestry in/out i robocze sa ustawiane na 0x00 przy resecie, pamiec sram jest nie ruszana...podobno..
    pzdr.
  • #12 2841125
    omen_s
    Poziom 19  
    Posty: 424
    Pomógł: 4
    Ocena: 9
    Jeśli się nie myle to np. w bascomie można wyłączyć żeby podczas resetu nie czyściło sram i ramu.

    Wg. specyfikacji atmegi wewnętrzną pamięć eeprom możesz zapisać 100000 razy, więc przy zapisie co 1h starczy to na jakieś 11 lat, a co potem ? no chyba że zegarek nie wytrzyma tak długo ;)
  • #13 2841281
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    omen_s napisał:
    Jeśli się nie myle to np. w bascomie można wyłączyć żeby podczas resetu nie czyściło sram i ramu.

    Nie wydaje mi się. A znam trochę BASCOM-a.
    Nie byłoby potrzeby stosowania podtrzymywania bateryjnego i całą ta dyskusja byłaby bez sensu.

    omen_s napisał:

    Wg. specyfikacji atmegi wewnętrzną pamięć eeprom możesz zapisać 100000 razy, więc przy zapisie co 1h starczy to na jakieś 11 lat, a co potem ? no chyba że zegarek nie wytrzyma tak długo ;)

    W takim przypadku, przy 3 resetach dziennie, mamy zegar który spóźnia się od 1 do 3 h dziennie.
    Czyli w miesiącu to średnio 30-90 godzin. :)

    Po co się w takim przypadku męczyć ??? Jak sobie ktoś narysuje kredką, na ścianie dwie wskazówki, otrzyma NIEZAWODNY zegar o podobnej , a nawet lepszej dokładności. Lepszej, bo przynajmniej 2 razy dziennie ma dokładny czas :)
  • #14 2841402
    omen_s
    Poziom 19  
    Posty: 424
    Pomógł: 4
    Ocena: 9
    Poszukałem troche w pomocy do bascom avr i znalazłem dyrektywę $NORAMCLEAR.
    Opis : Normalnie pamięć SRAM jest kasowana podczas inicjalizacji. Gdy zawartość pamięci nie powinna być kasowana (zapisywana zerami), można użyć tej dyrektywy.

    To chyba dotyczy resetu, czy tak ?
  • REKLAMA
  • #15 2841462
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    Racja :) ale wydaje mi się że raczej chodzi o reset programowy itp.
    Bo chyba nikt nie będzie resetował zegara przyciskiem RESET ?
    Chodzi tu raczej o spadki napięć, reset spowodowany zakłóceniami itd.
    Przy spadku napięcia nie pomoże żadna opcja. A może się mylę ?
  • #16 2841567
    omen_s
    Poziom 19  
    Posty: 424
    Pomógł: 4
    Ocena: 9
    Co do spadku napięć to zależy w jakich granicach, zobacz temat zwykły ATMEGA8 na 3.0V ??

    Sam za jakiś czas zaczne budowę zegarka z kalendarzem na atmega8 z pcf i lcd 2x16 i chyba będę to zasilać ładowarką od nokii która ma 3,7V 335mA, tylko nie mam pewności czy ten pcf będzie działał ;)

    A co do samego atmegi to wydaje mi się że jest sposób na większą dokładność niż 1h przy resecie.
    Mamy trafo zasilające, przed mostkiem prostowniczym podłączamy diodę prostowniczą plusem do trafa, za nią rezystor i tym sterujemy tranzystorem który podpinamy do jakiegoś pinu uP który podciągamy np do plusa. Za mostkiem prostowniczym dajemy jakiś większy kondensator, normalnie na pinie wtedy będzie stan niski a jak wystąpi chwilowy zanik zasilania to na pinie uP pojawi się stan wysoki, a napięcie z kondensatora powinno wystarczyć na szybki zapis pamięci eeprom.

    Ale to i tak nie dorówna pcf bo tam tylko raz ustawiamy zegarek dajemy baterie i możemy odczytywać do woli kiedy tylko chcemy ;)

    Pozdrawiam

Podsumowanie tematu

✨ Dyskusja dotyczy wyboru między zastosowaniem zewnętrznego układu RTC PCF z podtrzymaniem bateryjnym a wykorzystaniem wewnętrznego RTC w mikrokontrolerze Atmega do prostego zegarka wyświetlanego na LCD. Główne obawy dotyczą utraty czasu po przypadkowym resecie Atmegi, gdyż zmienne czasu przechowywane w SRAM lub rejestrach ulegają wyczyszczeniu, co wymagałoby ponownej konfiguracji zegara. Propozycje obejmują zapisywanie czasu do EEPROM co określony interwał (np. co godzinę), co jednak ogranicza żywotność pamięci (ok. 100000 cykli zapisu). Alternatywnie rozważano zastosowanie pamięci SRAM z podtrzymaniem bateryjnym, co pozwoliłoby zachować dane po resecie, ale zwiększa koszty i złożoność. Wskazano, że PCF z wbudowanym podtrzymaniem bateryjnym jest wygodniejszy i bardziej niezawodny, oferując dodatkowo pamięć EEPROM i funkcje takie jak budzik. Dyskutowano także o możliwości wyłączenia kasowania SRAM przy resecie programowym (np. w Bascom AVR za pomocą dyrektywy $NORAMCLEAR), jednak resety spowodowane zakłóceniami lub spadkami napięcia nadal mogą powodować utratę danych. Podkreślono, że zarówno PCF, jak i Atmega wymagają podtrzymania zasilania, a PCF jest bardziej stabilnym rozwiązaniem do pomiaru czasu bez konieczności ciągłego zapisywania do EEPROM. Wskazano również na trudności w całkowitym zabezpieczeniu Atmegi przed resetami wywołanymi zakłóceniami.
Wygenerowane przez model językowy.
REKLAMA