仕様

  • 測定周波数範囲
  • 入力チャネル     1
  • 入力感度       TTL
  • 入力インピーダンス  1MΩ
  • 入力カップリング   DC
  • ゲート時間      10nSec~10Sec
  • 原発振        12.8MHz±1ppm
  • 表示         最大8桁
  • 電源         AC100V または 006P電池
  • サイズ        190mm×54mm×200mm
  • 8桁精度を有する周波数カウンタを作る
  • 8桁精度を実現するために、GPSの1PPS(Pulse/Sec)信号を利用する
  • GPSが受信可能な環境では、GPSの1pps信号による、内蔵基準水晶発振器の校正と、周波数測定を同時に行う
  • GPSが受信できない環境でも、周波数測定が可能な構成とする
  • 8桁精度を実現するために、信号入力回路、ゲート回路などはハードウエアのみで周波数カウント可能な構成とする(ソフトウエアによるタイミング制御はしない)
  • PICを利用し 最小のハードウエアで構成する
  • GPSが受信可能な環境では、GPSからの1PPS信号を基準ゲート信号とし、水晶発振器(12.8MHz)をカウントするすることにより、水晶発振器の周波数変動を補正する
  • GPSが受信できない環境では、水晶発振器の温度による周波数変動が±3ppm/℃と大きいため、温度センサーで水晶発振器の周辺温度を測定し、予め測定していた周波数変動を外部制御端子から制御することにより、温度による周波数変動を抑える

ブロック図(PICの周辺回路を用いたカウンタ構成)

周波数カウンタブロック図1

  • 上記 ブロック図で下半分が、周波数カウンタを構成している
  • 水晶発振器12.8MHzをTimer0で100Hzへ分周する。
  • Timer4は、この100Hzを入力クロックとし、101カウントする。
  • PWM7でDuty100:1の設定をする。Duty100のの期間がカウンタのゲート信号1Secとなる。
  • Duty1の期間(10mSec)で、Timer1、3を停止し、カウント値をメモリに退避する。
  • カウンタの計測信号は、74HCU04を介し、PIC16F18857の14pin(T1CKI)と13pin(T1G)に入力する。
  • 14pin(T1CKI)は、ダイレクトカウント時の入力し信号であり、ゲート信号は、上記PWM7の出力信号である。
  • Timer1とTimer3で32bitのカウンタを構成する。このカウンタは、Fosc非同期とする。
  • 13pin(T1G) は、レシプロカルカウント時のゲート信号であり、基準信号は水晶発振器の12.8MHzである。周期を計測し その逆数から周波数を求める。
  • 1KHz以上の周波数を入力した場合は、 ダイレクトカウント、1KHz未満は、レシプロカルカウントを行う(ソフトで制御)。
  • 次に、上半分の 水晶発振器のキャリブレーションについて説明する。
  • GPSの1PPS信号を74HC4040の12ステージのバイナリカウンタのQ8出力で512分周する。この信号のH期間(256秒)をTimer5のゲート信号とする。
  • Timer5のクロック入力は、12.8MHzを入力する。
  • Timer5は、Fosc非同期とする。
  • Timer5は16bitカウンタであり、256秒ゲート、12.8MHzを入力すると オーバーフローが発生する。よってTimer5のオーバーフロー(TMR5IF)割り込みで、ソフトでレジスタにカウントアップ信号を保存する
  • 256秒のゲート信号の後縁の立下りエッジで割り込み(TMR5GIG) で、カウント値と基準カウント値256×12.8M=3276800000との差を求める。
  • この差から、DACとPWM6のDutyを制御する。PWM信号は ローパスフィルタ(LPF)で直流信号に変換され、水晶発振器の外部制御電圧に印加され周波数誤差が補正される。
  • DACの基準電圧は、FVRモジュールで生成され、4096mVに設定し分解能は5bit(32)から、電圧分解能は4096mV/32=128[mV]となる。DACの設定値をxとすると出力電圧は、128*x[mV]となる。(0 =< x < 32)
  • PWMの基準電圧は電源電圧の5Vを利用し、PWM分解能が10bit(1024)から、電圧分解能は5000mV/1024=4.88[mV]となる。PWMの設定値をyとすると出力電圧は4.88*y[mV]となる。(0 =< y <1024)
  • DAC出力とPWM出力は、オペアンプによる加算器を構成している。DAC出力は、560Ωと1kΩによって分電圧され出力電圧は128x1k/(1k+560)=82x[mV]となる。PWM出力は、36kΩと1kΩによって分電圧され出力電圧は、4.88y1k/(1k+36k)=0.13y[mV]となる。
  • 以上より 水晶発振器の外部制御電圧は 82x + 0.13y [mV]となる。

回路図

回路図

水晶発振器

  • 高精度 周波数カウンタを作るために、基準クロックとなる水晶発振器で入手可能なものとして、秋月電子で販売しているVCTCXO12.8MHzを使用する。
  • この水晶発振器の仕様を下記に示す。
  • ーーー仕様ーーー
  • 型名  VM39S5G VCTCXO 温度補償型水晶発振器
  • 発振周波数  12.8MHz±1ppm
  • 温度による周波数変動    ±3ppm/°C (-10°~+60°)
  • エージングによる周波数変動 ±1ppm/年
  • 周波数外部制御       2.5V±2V (f0±6ppm)・・・実物を調べると1.5Vであった
tcxo_sデータシート

GPSユニット

  • 高精度 周波数カウンタを構成するために、水晶発振器を制御する基準信号が必要である。
  • 基準信号をGPS受信機の1PPS(1pulse/sec)信号を使用する。
  • GPS受信機で1PPS信号が出力している商品として、秋月電子で販売しているAE-GYSFDMAXB(太陽誘電製)を使用する。
  • AE-GYSFDMAXB(太陽誘電製)の仕様を下記に示す。
  • 本GPS受信機の1PPSの精度は ±10nSecから、 10nSec/1Sec=1×10⁻⁸ から カウンタの有効桁数を8桁とする。
  • GPS受信機の1PPS信号をWEBで調べると、誤差は累積しないと書かれている。例えば、1PPSを10回計測した10Secに対しても±10nSecであると書かれている。
  • 本カウンタでは、この1PPS信号を 74HC4040の12ステージ バイナリカウンタで分周し、4096秒毎に、上記水晶発振器の発振周波数を 外部制御電圧で、周波数誤差を補正している。
  • GPS受信機の本来の機能である位置情報、時間情報を利用し、本カウンタに日時、緯度、経度をLCDに表示する。
AE-GPS_manual_r1.06_s

機構

表示

ソフトウエア

ソースファイル