HomeMade

Pełna wersja: miernik/skala częstotliwości na AVR
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.
Tematów tego typu jest masa, przymierzam się do budowy (w zasadzie płyta bazowa jest) i własnego oprogramowania skali cyfrowej + może kilka dodatkowych funkcji do prostego qrp.
Na "pokładzie" ATMEGA168 20PU, wyświetlacz 16x2, obwód kształtujący sygnał wejściowy to zlinearyzowana bramka z 74HC00 + bufor, dzielnik /5 lub /10 na 74HC390 (taki miałem w szufladzie, hi), generator 20MHz (nie badałem stabilności na razie). Kod - C (WinAVR czyli AVR-GCC), opublikuję jak będę bliżej końca, choć to żadne odkrycie.

Pomiar częstotliwości w zasadzie działa (działa, ale jeszcze nie sprawdzałem z kalibrowanym generatorem), natomiast naszła mnie wątpliwość co do metodyki pomiaru.
W zdecydowanej większości projektów na Atmelach, sygnał cyfrowy podawany jest na wejście licznika 16bit TIMER1 (16bitow), natomiast TIMER0 (8bitów) służy za podstawę czasu. Po odpowiedniej liczbie przepełnień T0, uznajemy ze mamy "jakiś-tam" czas zliczania, robimy proste operacje arytmetyczne, i mamy wynik.

Spotkałem się natomiast z projektami gdzie jest odwrotnie - T0 zlicza impulsy wejściowe, natomiast T1 służy za podstawę czasu. Sam nie wiem co jest lepsze.

Na mój rozum, T0 który jest taktowany dużo większą częstotliwością (mierzoną, czyli powiedzmy, 1MHz) może, przy częstym (fwe/256) przeładowaniu opóźniać o jakieś takty T1, co odbije się na dokładności.
Z drugiej strony, jeśli T0 używamy jako podstawy czasu, to czy taktując 8bitowy licznik T0 z preskalera fcpu/1024, uzyskamy odpowiednio dokładną podstawę? (znów mogą wejść jakieś cykle zegara itp). Dokładność jaką bym chciał osiągnąć to co najmniej 100Hz.

A może jedna i druga metoda w zasadzie dają prawie równoważne rezultaty, a ja robię z igły widły Smile

Pozdrawiam
Dzielnik/preskaler zrób lepiej na binarnym liczniku np 393.
Słuszna uwaga, po binarnym będzie miał 50% wypełnienia. Może to jest przyczyną dla którego (jak zauważyłem wczoraj) mierzy mi do nieco tylko 20MHz.

Zauważyłem też gdy nie ma sygnału, wzbudza mi się zlinearyzowana bramka wejściowa (tak jak to było we wzmacniaczu VFO w Huzarku, hi). Generuje ładny przebieg ~80MHz. Problem rozwiązałem podwyższając nieco napięcie z wejścia bramki tak aby nie było na progu przełączania (rezystor 100k do +5V)
Chodzi raczej o długość licznika i o to że to co nalicza będzie w postaci binarnej a nie dziesiętnej.
Wypełnienie na wyjściu licznika raczej nie jest kluczowe bo licznik w procu reaguje na zbocze.
Przekierowanie