Stabilność wewnętrznego oscylatora w AVR

Jaka jest stabilność wewnętrznego oscylatora w ATmega8? Nawet po ustawieniu OSCCAL strasznie mi pływa, to normalne i trzeba używać kwarcu?

Reply to
Adam Wysocki
Loading thread data ...

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

Reply to
JJJK

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

Reply to
DHQ

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ć.

Reply to
Adam Dybkowski

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.

Reply to
Adam Wysocki

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ą...

Reply to
Adam Wysocki

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ć.

Reply to
Adam Dybkowski

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.

Reply to
EM

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:

formatting link
i od razu kondensatory w środku. P.G.

Reply to
Piotr Gałka

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.

Reply to
Adam Dybkowski

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.