Jaka jest stabilność wewnętrznego oscylatora w ATmega8? Nawet po ustawieniu OSCCAL strasznie mi pływa, to normalne i trzeba używać kwarcu?
- posted
14 years ago
Jaka jest stabilność wewnętrznego oscylatora w ATmega8? Nawet po ustawieniu OSCCAL strasznie mi pływa, to normalne i trzeba używać kwarcu?
Tzn. jak strasznie? W jakich warunkach? W jakiej aplikacji? Uzywam wewnętrznego oscylatora w wielu aplikacjach i jest OK. Do komunikacji szeregowej asynchronicznej z większymi prędkościami nie nadaje się.
Janusz
Używam wewnętrznego oscylatora w aplikacjach które nie są szczególnie wrażliwe na długość taktu zegara. Nawet mogłem sobie pozwolić na odmierzanie np. 1 minuty z wystarczającą dla mnie dokładnością. Było dotychczas to powtarzalne, ale po ostatniej dostawie procesorów M8 po zaprogramowaniu okazało się że część chdzi na 1MHz, zaś większość z nich oscyluje sobie gdzieś ok. 1,6MHz, musiałem więc dla nich zrobić osobny porgram (w Bascomie) z deklaracją "$crystal 1600000" aby układ nie śpieszył się i chodził tak jak poprzednio. Spotkał sie ktoś z taką sytuacją? Podejrzewam że to są chińskie podróby. Co ciekawe, wszystkie procesory są z tej samej serii i raczej nie powinny się różnić. Franek sp9dhq
Adam Wysocki pisze:
A kalibrujesz generator (regulując rejestr OSCCAL) regularnie, czy tylko jednorazowo przy produkcji urządzenia? Bo że nie można stawiać na wartość OSCCAL dostarczoną przez producenta (którą odczytuje się np. programatorem ISP) to chyba nie muszę pisać.
Licznik liczący sekundy - rozjeżdża sie zauważalnie już po ~15s. Soft raczej na pewno dobry. Poeksperymentuję jeszcze z kwarcem. ATmega8 w DIP-ie.
To na razie prototyp, wykonana jedna sztuka. Przeczytałem wartość kalibrującą z tej sztuki raz i zapisuję ją do OSCCAL na początku programu - jak będzie więcej urządzeń to za każdym razem będę ustawiał pod konkretny układ (albo po prostu użyję kwarcu...).
A tego nie wiedziałem... Ustawiam właśnie tą odczytaną...
Adam Wysocki pisze:
Mało dokładne. Dużo lepszą kalibrację robi się podając na jakieś wejście przebieg o dokładnie znanej częstotliwości, mierzy programowo i tak "kręci" OSCCAL aby wyszedł idealnie. Z braku laku można przesłać np. z wolną prędkością z peceta kilkadziesiąt bajtów przez UART (najlepiej o wartości 0x80 - wtedy mierzysz czas bitu startu i 7 zerowych bitów danych) i też się na podstawie tego skalibrować. Jest o tym nota u Atmela i wiele przykładów krążących w Sieci. Tak skalibrowana ATmega644 potrafi spokojnie przez kilka miesięcy skutecznie pracować jako RTC (popędzana z wewn. generatora RC 8MHz i z włączonym dzielnikiem DIV8) i się dużo nie rozjechać.
Witam Przez wiele lat polegaliśmy na kalibracji fabrycznej OSCCAL i UART działał bez zastrzeżeń, ale ostatnio trafiła się większa partia AVRów, gdzie te wartości nie były ustawione. Nie wiem kto to produkował. W każdym razie teraz robi się w tym projekcie podobnie jak proponuje Adam D, natomiast nowsze projekty przewidują już kwarc.
Użytkownik "EM" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:h8vgln$30f$ snipped-for-privacy@news.onet.pl...
A może rezonatory ceramiczne:
Piotr Gałka pisze:
Heh, tyle że nie zawsze możesz poświęcić 2 nogi proca na taki czy inny rezonator. A w przypadku ATtiny10 to już w ogóle nie ma szans - można dołożyć ew. tylko generator ale to oznacza duży pobór prądu przez cały czas.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.