zegar wewnętrzny w ATtiny2313

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

Reply to
VSS
Loading thread data ...

VSS napisał(a):

formatting link
str. 24, 160

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

Krzysztof Szmurło

Reply to
Krzysztof Szmurło

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

Wojtek

Reply to
Wojtek

Wojtek napisał(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

Reply to
Krzysztof Szmurło

Krzysztof Szmurło snipped-for-privacy@tlen.do.wyciecia.pl> pisze:

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

Reply to
Patryk Sielski

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?

Reply to
PitLab

PitLab snipped-for-privacy@wp.pl pisze:

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

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.

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.

Reply to
Patryk Sielski

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.