Zegarek na mikrokontrolerze

Jul 22, 2006 11 Replies

Witam



Korzystając z wakacji zacząłem się bawić AVRkami. Aktualnie kombinuję z timerami, i dziwne rzeczy mi wychodzą: dostaję nie tę częstotliwość którą powiniennem. Attiny12, zegar wewnętrzny 1,2MHz, ustawiłem bity kalibracyjne w OSCCAL wg wartości sczytanych z chipa Timer ma zegar CK/8 Powiniennem mieć f=1200000/256/8/2=292,96Hz



256 - pojemność licznika timera
8 - dzielnik częstotliwości timera
2 - nie wiem czeu ale musi byc :/ A pomiar dobrej klasy miernikiem częstotliwości = 296Hz

Czy ta rozbieżność wynika z niedokładności wewnętrznego generatora? Czy po zastosowaniu kwarcu możnaby zrobić dokładny zegarek?


U¿ytkownik "scx" snipped-for-privacy@TO.wp.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@4ax.com...

Na kwarcu nie zrobisz dokladnego zegarka. Rozbieznosci sa rzedu 4s na dobe, z tego co pamietam z wykladow. Czyli raz na tydzien, moze miesiac musialbys go ustawiac. Proponuje zastosowac DS1338, pozwala podlaczyc baterie i dziala, nawet po odlaczeniu od procka zasilania. Pozdrawiam

Micha³ S³owik

U¿ytkownik "scx" snipped-for-privacy@TO.wp.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@4ax.com...

Ró¿nica wynosi ok 1% i mo¿e wynikaæ z niedok³adno¶ci oscylatora. Musisz siê tak¿e przyjrzeæ jak masz obs³ugiwane przerwanie i czy nie s± tracone jakie¶ cykle, nie pamiêtam jak to jest w tych prockach wiêc nie powiem, nie wiem jak napisany masz program. A tak na boku to nie polecam zegarków na wewnêtrznych tajmerach o ile nie s± one do tego celu przystosowane specjalnie. Najepiej zapodaæ jakiego¶ RTC na IIC i mieæ ¶w. Spokój.

Pozdrawiam £ukasz

Są trzy rodzaje tych zegarów - 1337, 1338 i 1339. Przyjrzyj się uważnie datasheetowi i wybierz ten, który Ci najbardziej odpowiada (różnice są w tym, czy jest dodatkowy pin do podłączenia baterii, czy linia ALARM, itp). Sam zamówiłem sobie te scalaczki i kiedy do mnie dotarły, zorientowałem się, że wybrałem akurat te najmniej interesujące (i bez możliwości podłączenia baterii). :(

Kosma

4s wychodza jak wykladowca podstawi 50ppm. W praktyce mozna _dostroic_ dokladniej, a jak zadbac o utrzymanie temperatury to i utrzymac dokaldnosc. Ewentualnie zamiast termostatu mozna sie pobawic w pomiar temperatury i korekcje wprowadzac.

Kolega ma jednak odchylke rzedu 1%, i to zdecydowanie jest kwestia wewnetrznego generatora.

J.

Witam Zegarek z termostatem to chyba przesada. Podobnie z pomiarem temperatury, chyba lepiej, latwiej, taniej i dokladniej zastosowac to RTC. Pozdrawiam

Micha³ S³owik

RTC jest tylko tak dokladne jak kwarc ktory tym steruje.

Pytanie do uzytkownikow czy akceptuja odchylke rzedu minuta na tydzien, czy chce im sie bawic w strojenie i kompensacje zeby wyszla minuta na miesiac, czy szukaja czegos lepszego - a wtedy czy precyzyjny kwarc, czy DCF lub GPS.

J.

Jesli chodzi o DS1338C, to wyciagniete z datasheeta:

The DS1338C integrates a standard 32,768Hz crystal in the package. Typical accuracy at nominal VCC and +25°C is approximately 10ppm.

Po szybkich obliczeniach wychodzi, ze bedzie sie poznil/spieszyl o minute po okolo pol roku dzialania, czyli akurat co pol roku trzeba przestawiac zegarki w zwiazku ze zmiana czasu. Wplywu temperatury niestety nie ma w datasheet'cie Pozdrawiam

Micha³ S³owik

U¿ytkownik "Micha³ S³owik" <slowik77.wytnijto@to_tez.poczta.onet.pl> napisa³ w wiadomo¶ci news:44c2a8bc$ snipped-for-privacy@news.vogel.pl...

No ale wypada³o by na tym mikrokontrolerze zrobiæ automat przestawiaj±cy sobie czas co te pó³ roku :-), ful wypas

Pozdrawiam £ukasz

Michał Słowik napisał(a):

Ale trzeba także doliczyć zmiany spowodowane zmianą temperatury. Latem masz 35°C a zimą otworzysz okno i masz 5°C. I jeszcze pytanie, na ile te

32.768kHz jest na prawdę 32.768kHz :)

10 ppm to jest sekunda na dobe. po pol roku moze byc juz 3 minuty.

Pod warunkiem ze temperatura sie utrzyma.

J.

scx napisał(a):

Na poczatek upewnij sie ze dobrze obsluguejsz licznik/timer - poczytaj dokladnie i ze zrozumieniem datasheet rozdzial o timerach. Do rejestru wpisuje sie (wartosc-1)

Jesli chcesz dokladniejszej analizy Twojego przypadku - zapodaj fragment kodu ktory daje Ci rozbieznosc.

Mozna zrobic dokladny zegarek na AVR i na kwarcu. Zwlaszcza jesli zastosujesz kwarc 32768Hz, na np. atmega z trzecim timerem, ktory jest przystosowany do takiego trybu pracy. Ale nawet jesli uzyjesz nizszy AVR i kwarc kilka MHz to tez powineines uzyskac przyzwoita dokladnosc. Choc zalezy jakiej wymagasz...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required