Jak skonfigurować fuse bity w ATtiny2313 dla pracy z wewnętrznym zegarem?

zegar wewnętrzny w ATtiny2313





Poprzedni Następny
Wiadomość
Spis treści
From: "VSS" <news_at_nospam_vss.pl>
Subject: zegar wewnętrzny w ATtiny2313
Date: Sat, 4 Feb 2006 10:37:48 +0100


Witan !

Mam soft do wrzucenia w procesorek attiny2313, uzywam pony proga. proc ma
chodzic z wewnętrznym zegarem. co nalezy właczyc w fus'ach aby ruszył ten
generator ?

VSS



Poprzedni Następny
Wiadomość
Spis treści
From: =?ISO-8859-2?Q?Krzysztof_Szmur=B3o?= <ks123_at_nospam_tlen.do.wyciecia.pl>
Subject: Re: zegar =?ISO-8859-2?Q?wewn=EAtrzny_w_ATtiny2313?=
Date: Sat, 04 Feb 2006 11:00:50 +0100


VSS napisał(a):
Witan !

Mam soft do wrzucenia w procesorek attiny2313, uzywam pony proga. proc ma
chodzic z wewnętrznym zegarem. co nalezy właczyc w fus'ach aby ruszył ten
generator ?

http://www.atmel.com/dyn/resources/prod_documents/doc2543.pdf

str. 24, 160

ps. uwaga w ponyprog zaznaczony fusebit znaczy programmed (czyli 0)

Krzysztof Szmurło

Poprzedni Następny
Wiadomość
Spis treści
From: "Wojtek" <wniedzie_at_nospam_interia.pl>
Subject: =?iso-8859-2?Q?Re:_zegar_wewn=EAtrzny_w_ATtiny2313?=
Date: Sat, 4 Feb 2006 14:43:29 +0100


"VSS" <news_at_nospam_vss.pl> wrote in message news:ds1slp$mhc$1_at_nospam_opal.icpnet.pl...
Witan !

Mam soft do wrzucenia w procesorek attiny2313, uzywam pony proga. proc ma
chodzic z wewnętrznym zegarem. co nalezy właczyc w fus'ach aby ruszył ten
generator ?

To ja sie podepne do pytania.
Generator wewnetrzny ma dokladnosc 10%. Czy jest ona wystarczajaca do
poprawnej pracy UART'a?

Wojtek


Poprzedni Następny
Wiadomość
Spis treści
From: =?ISO-8859-2?Q?Krzysztof_Szmur=B3o?= <ks123_at_nospam_tlen.do.wyciecia.pl>
Subject: Re: zegar =?ISO-8859-2?Q?wewn=EAtrzny_w_ATtiny2313?=
Date: Sat, 04 Feb 2006 16:28:16 +0100


Wojtek napisał(a):
"VSS" <news_at_nospam_vss.pl> wrote in message news:ds1slp$mhc$1_at_nospam_opal.icpnet.pl...
Witan !

Mam soft do wrzucenia w procesorek attiny2313, uzywam pony proga. proc ma
chodzic z wewnętrznym zegarem. co nalezy właczyc w fus'ach aby ruszył ten
generator ?

To ja sie podepne do pytania.
Generator wewnetrzny ma dokladnosc 10%. Czy jest ona wystarczajaca do
poprawnej pracy UART'a?

Nie jestem pewien, ale np. atmega16 jest dostarczany z generatorem
skalibrowanym na 10%, a można go samemu skalibrować z dokładnością 1%.
Ale i z dokładnością 10% uart jako tako będzie chodził chociaż mogą
wystąpić błędy.

Pozdrawiam
Krzysztof Szmurło

Poprzedni Następny
Wiadomość
Spis treści
From: Patryk Sielski <psielski-usun_at_nospam_elka-usun.pw.edu.pl>
Subject: Re: zegar wewnętrzny w ATtiny2313
Date: Sat, 4 Feb 2006 15:58:35 +0000 (UTC)


Krzysztof Szmurło <ks123_at_nospam_tlen.do.wyciecia.pl> pisze:
Ale i z dokładnością 10% uart jako tako będzie chodził chociaż mogą
wystąpić błędy.

Przy błędzie 10% działanie będzie zależało od szczęścia.
Proponuję kalibrację oscylatora na podstawie otrzymywanych
znaków przez port szeregowy. Obczaisz szybkość i ustawisz
taką samą.

--
Pozdrawiam,
Patryk Sielski
http://usprawnienia.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "PitLab" <pitlab_at_nospam_wp.pl>
Subject: Re: zegar wewnętrzny w ATtiny2313
Date: Sat, 4 Feb 2006 17:41:15 +0100


Proponuję kalibrację oscylatora na podstawie otrzymywanych
znaków przez port szeregowy. Obczaisz szybkość i ustawisz
taką samą.
Jak coś takiego zaimplementować? Można wejście UARTa podpiąć pod wejście
przerwaniowe.
Natomiast czy da się zmierzyć koszystając tylko z zasobów UARTA?

--
Piotrek.
http://www.pitlab.pl



Poprzedni Następny
Wiadomość
Spis treści
From: Patryk Sielski <psielski-usun_at_nospam_elka-usun.pw.edu.pl>
Subject: Re: zegar wewnętrzny w ATtiny2313
Date: Sun, 5 Feb 2006 04:43:17 +0000 (UTC)


PitLab <pitlab_at_nospam_wp.pl> pisze:
Jak coś takiego zaimplementować? Można wejście UARTa podpiąć pod wejście

Tak jak modemy obczajają prędkość, przecież można słać do nich z dowolną
szybkością, dostosowują się.

przerwaniowe.
Jeśli jest wolne, to czemu nie, końcowe rozwiązanie będzie zależne
od konkretnego projektu. Ja bym zrobił to tak:

Czekamy na zbocze opadające linii RxD
Startujemy licznik (ew spisujemy jego stan)
Czekamy na narastające
Odczytujemy czas bitów.
Jesli nie wiemy ile bitów otrzymaliśmy,
to wystarczy zauważyć, że czas będzie zawierał się w przedziałach:
(n*czas_bitu)+/- 20%, gdzie n=1-9
Z tej zależności znajdujemy n i czas bitu (banalna arytmetyka)

Mając to możemy ju skorygować sobie oscylator.

Możemy to robić automatycznie wtedy, gdy dostajemy framing errory.

Natomiast czy da się zmierzyć koszystając tylko z zasobów UARTA?

Chyba nie, bo trzeba znać czas bitu. Tak więc dodatkowa procedurka
kalibracyjna jest wymagana.
Chociaż jeśli się skalibruje oscylator na 2% tuż po zaprogramowaniu
to nie będzie trzeba kombinować z kalibracją z UARTa.
Bo warunkiem poprawnej transmisji jest nierozjechanie się
zegarów bardziej jak o ok. 1/3 bitu.
1/3 z 10 bitów to 3%/

Kalibrację oscylatora można zrobić tak, że po włączeniu zasilania
program oczekuje na F_ref na jakiejś nóżce. Jeśli jest, to na
podstawie tego sam kalibruje swój oscylator i zapisuje w EEPROMie.

Szybkie i łatwe, ja tak kalibruję tory analogowe w ADC, jak mam jakieś
dzielniki i referencje. One mają kiepską dokładność początkową,
ale stabilność i TWR o rząd (jeśli nie lepiej) wielkości lepszy.

--
Pozdrawiam,
Patryk Sielski
http://usprawnienia.pl