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 :