Miernik częstotliwości na ATMEGA162 z korektą GPS
Poniższa konstrukcja to bardzo prosty, a przy okazji bardzo dokładny miernik częstotliwości i okresu opublikowany na stronie : http://www.mino-elektronik.de/fmeter/fm_software.htm
Warto stronkę odwiedzić – doskonałe kompendium wiedzy na temat mierników częstotliwości, głównie pracujących w technice odwrotnościowej (reciprocal).
Najważniejsze cechy układu :
- automatyczny zakres pomiarowy od 0,004Hz do >50MHz
- 7-cyfrowy wynik pomiaru częstotliwośći i okresu prezentowane na LCD 2×16
- 1,6 pomiarów / sekundę
- wejście sygnału GPS 1 PPS dla automatycznej korekty wzorca częstotliwości
- wewnętrzna dokładność pomiarów z GPS poniżej 0,01ppm
- tolerancja częstotliwości kryształu (16 MHz) +/- 100ppm
- automatyczne przechowywanie wartości korekty co 10 minut w EEPROM
- możliwość pracy bez GPS z wykorzystaniem zapisanej w EEPROM korekty
Schemat układu (zaczerpnięty ze strony autora)
Zaprojektowałem płytkę PCB do miernika uwzględniającą minimalne modyfikacje – w zakresie zasilania (stabilizatory 5V i 3V3), wzmacniacza wejściowego i zintegrowanego na płycie modułu GPS (klasyczny, tani moduł NEO-6M lub podobny, ale z pięcioma pin`ami – czyli z wyprowadzonym sygnałem PPS), dodałem też przycisk RESET procesora.
Aby korzystać efektywnie z korekcji częstotliwości wzorcowej przy pomocy odbiornika GPS należy mu zapewnić dobrą, aktywną antenę umiejscowioną tak aby odbiornik mógł szybko i pewnie złapać Fix`a – u mnie w pomieszczeniu GPS odbiera bardzo słabo – umieściłem antenę na zewnętrznym parapecie okna. Przed użyciem odbiornika GPS w mierniku należy go przeprogramować (w programie u-center) – chodzi o wypełnienie impulsu PPS – należy ustawić na 50 %. Można to zrobić już po zamontowaniu – na PCB wyprowadzone są dwa niezależne porty UART – jeden dla GPS i jeden dla MCU.
Układ tego miernika dzięki dokładnemu wzorcowi 1PPS z odbiornika GPS koryguje częstotliwość oscylatora taktującego (w obliczeniach) o ile zastosowany rezonator kwarcowy 16 MHz mieści się w tolerancji +/- 100 ppm (czyli prawie każdy). Wartość korekty – raz na 10 minut – zapisywana jest w EEPROM i w przypadku zaniku/braku sygnału GPS to właśnie ta wartość jest uwzględniania przy dalszej pracy urządzenia.
Moja płytka PCB wygląda tak :
Programowanie całości wykonałem przy użyciu załączonego przez autora pliku HEX wykorzystując eXtreme Burner`a i taniego programatora USBasp. Na PCB jest wyprowadzony port do programatora iSP.
Nie jestem pewny czy dobrze ustawiłem FUSE`y, ale u mnie wygląda to tak :
Oczywiście aby je zaprogramować checkbox „Write” należy zaznaczyć.
Autor zamieścił również plik C z kodem źródłowym do modyfikacji/wykorzystania w środowisku IAR KickStart.
Działający miernik :