Zbyszekkk
Guest
Sun Nov 20, 2011 12:45 am
Mam problem z wewnętrznym generatorem RC w ATTINY2313.
Fabrycznie układy ustawione są na 8MHz z podziałem częstotliwości przez 8.
Wyłaczam więc podział przez 8 (bit CKDIV8) i wszystko jest OK ale
poszczególne egzemplarze maja bardzo duży rozrzut częstotliwości
wewnętrznego zegara RC.
Z tego co można wyczytać na stronie Atmela w fabryce układy ustawiane są z
dokładnością do 3%. W praktyce kupiłem 7 układów Attiny 2313 i każdy z nich
ma inną częstotliwość wewnętrznego zegara. Zrobiłem w programie wpisanym do
procka podział zegara przez 210 i otrzymuję na nodze częstotliwośc 38kHz.
W praktyce poszczególne egzemplarze dają na nodze częstotliwości od 28kHz do
46kHz więc rozrzut częstotliwości poszczególnych egzeplarzy wynosi
kilkadziesiąt %.
Sprawdziłem w prockach bajt kalibracji i w każdym egzemplarzu jest zapisany
inna wartość tego bajtu.
egzemplarz częstotliwośc uzyskiwana bajt kalibracji
1 46kHz 0x52
2 41kHz 0x59
3 38kHz 0x5D
4 36kHz 0x61
5 35kHz 0x64
6 30kHz 0x6D
7 28kHz 0x70
Widać, że częstotliwość zegara ma związek z wartością bajtu kalibracji
wpisanego fabrycznie do układu. Skąd się biezrze taki rozrzut, czy to jest
normalne. Jak to unormować?
Wyczytałem, że po restarcie bajt kalibracji jest przepisywany do rejestru
OSCCAL w układzie. Próbuję więc w programie wpisywać do tego rejestru
wartość 0x5D ale nie zmienia to częstotliwości w żadnym egzemplarzu. Układy
programuję przez AVR-studio. Można tam odczytać wartość bajtu kalibracyjnego
ale nie można jej zapisać pod zmieniaoną wartością.
Nie mam już pomyslu co robić. Może ktoś już się mordował z tym tematem?
Zbyszek
Michoo
Guest
Sun Nov 20, 2011 1:34 am
W dniu 20.11.2011 00:45, Zbyszekkk pisze:
Quote:
Mam problem z wewnętrznym generatorem RC w ATTINY2313.
Fabrycznie układy ustawione są na 8MHz z podziałem częstotliwości przez 8.
Wyłaczam więc podział przez 8 (bit CKDIV8) i wszystko jest OK ale
poszczególne egzemplarze maja bardzo duży rozrzut częstotliwości
wewnętrznego zegara RC.
Z tego co można wyczytać na stronie Atmela w fabryce układy ustawiane są
z dokładnością do 3%.
Z tego co ja wyczytałem kiedyś w dokumentacji to ich kalibracja daje
+-10% dokładności.
Quote:
W praktyce kupiłem 7 układów Attiny 2313 i każdy z
nich ma inną częstotliwość wewnętrznego zegara. Zrobiłem w programie
wpisanym do procka podział zegara przez 210 i otrzymuję na nodze
częstotliwośc 38kHz.
A jakie napięcie zasilania?
Quote:
Układy programuję przez AVR-studio. Można tam odczytać
wartość bajtu kalibracyjnego ale nie można jej zapisać pod zmieniaoną
wartością.
Nie mam już pomyslu co robić.
Ja bym pewnie przeczytał AVR053.
--
Pozdrawiam
Michoo
Zbyszekkk
Guest
Sun Nov 20, 2011 12:26 pm
Quote:
W dniu 20.11.2011 00:45, Zbyszekkk pisze:
Mam problem z wewnętrznym generatorem RC w ATTINY2313.
Fabrycznie układy ustawione są na 8MHz z podziałem częstotliwości przez
8.
Wyłaczam więc podział przez 8 (bit CKDIV8) i wszystko jest OK ale
poszczególne egzemplarze maja bardzo duży rozrzut częstotliwości
wewnętrznego zegara RC.
Z tego co można wyczytać na stronie Atmela w fabryce układy ustawiane są
z dokładnością do 3%.
Z tego co ja wyczytałem kiedyś w dokumentacji to ich kalibracja daje +-10%
dokładności.
Mi wychodzi rozrzut większy niż 10% (ok 25%) i im wiekszy rozrzut tym
większa wartość korekcji wpisana fabrycznie - tylko, że nie koryguje.
Quote:
W praktyce kupiłem 7 układów Attiny 2313 i każdy z
nich ma inną częstotliwość wewnętrznego zegara. Zrobiłem w programie
wpisanym do procka podział zegara przez 210 i otrzymuję na nodze
częstotliwośc 38kHz.
A jakie napięcie zasilania?
Napięcie idealnie 5V stablizowane do 0,01V
Quote:
Układy programuję przez AVR-studio. Można tam odczytać
wartość bajtu kalibracyjnego ale nie można jej zapisać pod zmieniaoną
wartością.
Nie mam już pomyslu co robić.
Ja bym pewnie przeczytał AVR053.
Już wczoraj przeczytałem tylko, że nic z tego nie wynika.
Może jakiś bit w fusach trzeba włączyć, aby wpisana fabrycznie korekta
zegara działała. Może trzeba coś w kodzie programu umieścić?
Zbyszek
Zbyszekkk
Guest
Mon Nov 21, 2011 12:24 am
Quote:
Już wczoraj przeczytałem tylko, że nic z tego nie wynika.
Może jakiś bit w fusach trzeba włączyć, aby wpisana fabrycznie korekta
zegara działała. Może trzeba coś w kodzie programu umieścić?
Zbyszek
Doszedłem już gdzie był błąd. Mój program wpisywał do rejestru osccal
wartość 00 więc korekty zegara wpisane fabrycznie nie były brane pod uwagę.
Swoją drogą widać jakie rozbieżne mają poszczególne generatory RC. Dobrze,
że robią tą korektę fabrycznie. Mam nadzieję że po zmianie kodu programu
będzie już dobrze.
Zbyszek
EM
Guest
Mon Nov 21, 2011 9:32 am
Użytkownik "Zbyszekkk" <zew@MALPApoczta.onet.pl> napisał w wiadomości
news:jac26n$pks$1@news.onet.pl...
Quote:
Już wczoraj przeczytałem tylko, że nic z tego nie wynika.
Może jakiś bit w fusach trzeba włączyć, aby wpisana fabrycznie korekta zegara
działała. Może trzeba coś w kodzie programu umieścić?
Zbyszek
Doszedłem już gdzie był błąd. Mój program wpisywał do rejestru osccal wartość
00 więc korekty zegara wpisane fabrycznie nie były brane pod uwagę. Swoją
drogą widać jakie rozbieżne mają poszczególne generatory RC. Dobrze, że robią
tą korektę fabrycznie. Mam nadzieję że po zmianie kodu programu będzie już
dobrze.
Zbyszek
Witam
My używamy produkcyjnie procesrów AVR i przez dłuzszy czas nie było żadnych
problemów z komunikacją RS232, przy wykorzystywaniu wewnętrzengo RC, czyli
dokładność raczej lepsza niż 2%. Problemy pojawiły się, gdy były zawirowania na
rynku i problem z dostępnością. Wtedy wprowadziliśmy proecdurę kalibracji w
razie potrzeby oraz przejście na rezonator kwarcowy w nowych opracowaniach.
--
Pozdr
EM