記 2010年05月18日〜 ja3npl
”GPSを利用した、11桁の周波数カウンター”の製作紹介です。このカウンターを使って、”10MHzの周波数標準”をFLL制御しています。
携帯電話基地局用のGPSを利用したオッシレータは、PLL制御方式で、2002年頃に、中古品や、自作記事が有りましたが、最近は見かけなくなりました。当時は、私には難しい題材で、手に負えませんでした。
最近になって(前作のHF帯スペアナ調整時など)、1Hz単位の確認をしたい場面が出てきて、ユニバーサル・カウンターが欲しいと思ったのですが、メーカー製の中古品は、あまりにもサイズが大きく、机に乗りません。
とても小さいGPS受信モジュール(aitendo、NaviSys、GM-316)の在る事を知り、購入したのがきっかけで、カウンターを作ってみようと思い立ちました。
昔の、オムロン社製電話線モデムのケースを利用し、これに合わせて基板を作りました。
手の平サイズで、130Wx133Dx38H 。
窓際に置くと、GPSの信号は、プラスチック・ケースを通して、GPSモジュールに届いてくれます。
左側BNCは、10MHz/+6dbmの信号出力、右側BNCは、〜40MHz/-30dbmの周波数カウンター入力です。
この周波数標準の使用目的は、トランシーバーの周波数較正の程度ですので、10MHzで、0.1Hz (10の-8乗)程度の精度を目標にしていました。(つまり、超高精度を目指すのではなく、簡単構造です。)
OCXOは、携帯電話用のTVCXO(RSオンライン、cmac社CFPT-125, 5mmx7mm)を利用して、オーブン入りXtal Oscとしました。
下は、ブロック図です。
マイコンを中心に置いて、センサーや、LCDなど、全てをマイコンに接続する構成です。
とりあえず、全てをつなぎ込んで、後で、ソフト処理してやろうと言う要領でした。
PLL制御に比べて、このFLL制御は簡単構成になります。PLL制御は、パルス立ち上がり瞬時の同期を大事にした使い方、例えば、多数の時計を合わせる・・になるのでしょう。私の場合は、同期は必要ないので、FLL制御を選びました。
LCDの表示例です。
LCD表示画面は、周波数標準モニター画面と、周波数カウンター画面と2つあり、押しボタンで切り替えるようになっています。
左は、周波数標準モニター画面で、10MHzは、10,000,000.000Hzの11桁表示となります。(2行目は左から、周波数制御レジスター、温度制御レジスター、オーブン温度です。)
最小桁は、0.001Hzで、1mHz、0.0001ppm、0.1ppb、100ppt、10^-10乗、1e-10 などの表現があるようです。
0.001Hzの測定要領は次の様にしました。
マイコンのソフトで、1,000個のメモリーを用意し、1Sec毎に、10MHzのカウント値;10,000,000を入れて行きます。
1,000個が満たされたら、これらを全て足し算して、平均値を求める方法です。1回目の積算結果を得るのに1,000Sec(16.6分)掛かります。さらに、毎秒、1,000個の内、1個を更新して、毎秒で過去1,000個の平均値を表示する要領です。
1,000個に満たない時は、100個で0.01Hzを、10個で0.1Hzを・・・と、自動的に切り替わります。
パソコンのソフトは、VB.NETで作りました。”11桁周波数カウンター”の内部データを読み込んで、グラフ表示するものです。
左グラフは、X軸が8時間(480分)の記録です。目盛は、10分刻みx48本です。スタートから20分後に0.001Hzの測定モードになっていて、その後、±2mHzの範囲に収まる制御が続いています。
時折、ベランダに通じる窓を開けて、出入りし、風がビューと吹き込むと言う日常の机の上での記録です。戸棚内に収納すれば、より安定します。
周波数カウンターには、±1カウント・エラー があるので、±1mHzの誤差は避けられません。GPSの1ppsにも、誤差があり、毎秒で±100nSec(1Hz相当)、30秒平均でも50nSec(500mHz相当)程度のようです。1,000秒平均では、数mHz程度になるのでしょうか。(注;行修正、2010/06/15)
初期には、0.1Hz(100mHz、9桁表示)を読むために、0.01Hz(10mHz、10桁表示)で加減制御すればよい、と思っていましたが、予想外に性能があり、0.001Hz(1mHz、11桁表示)での制御になりました。
この項は、別ページにまとめました。 クリックで、別ウインドウ拡大です。
GPSの電波は室内の窓際にて受信可能ですが、屋外アンテナの設置が望ましい・・と言う当然の結果です。
GPSモジュールが4個の衛星を補足すると、1PPS信号の出力が始まります。もし、2個以下になって、途切れたり捕捉したりの不安定状態では、衛星からの時間データが得られなくなり、GPSモジュール内蔵のRTCに切り替わります。1ppsの信号は、相変わらず継続して出力されます。
左は、安定した測定が続いた後に、衛星捕捉が不安定になり、1ppsの時間がGPSモジュール内蔵のRTCになったり、復旧したり・・となり、周波数制御ループが反応している状況です。
大雨注意報が出るなど、雲を通して電波が弱まる時は、さらに、この頻度が高まります。
また、衛星が全部、北半球側に偏っていることで、受信不能の時もありました。
屋外アンテナの場合は、安定しています。
外付けアンテナ・ユニットを室内窓際に置く方法、アンテナを自作する方法もそれなりに改善効果があります。
左は、偏波を考慮したスーパー・ターン・スタイル方式のアンテナと、下に置いた、いわゆる万歳アンテナと呼ばれるダイポールです。
最初は、万歳アンテナを実験したのですが、偏波面の鋭い効果を知ることになりました。衛星6個を捕捉した状態で、アンテナを90°回転させると、この衛星6個が全て消えて、他の6個の衛星が現れる程でした。
スーパー・ターン・スタイル方式のアンテナは、2つのダイポールをクロス八木の様に組み、AWX様に接続したアンテナです。
1つのダイポールは、1/2λより7%長く、他は、7%短くしています。結果的に、90°位相が異なる接続となり、リアクタンス性のダイポールと容量性のダイポールが接続されるので、インピーダンスは、純抵抗になります。
これを、金属板の上、1/4λに置くと、真上への指向性となり、水平近くの乱反射で入射する成分を除く事になり、めでたし・・となります。(MMANAで確認、ダイポール実寸;96o、83.8o、2.0Φのエナメル線)
市販の外付けアンテナ(パッチ・アンテナ、プリアンプ)を屋外に置くと、捕捉衛星数は10個、屋内に置くと、6個程度、
自作のこのクロス状ダイポール(室内)での捕捉衛星数は8個、GPSモジュールのアンテナ(室内)では、捕捉衛星数は4個・・と言う所が平均の状況です。
12x22mmのサブ基板の上側に、TCXOと温度センサー、電圧レギュレータを置き、基板の下側に熱源を置き、TCXOの温度を一定にする構造です。
実際の運用の結果、目的を達したのですが、より良い方法に気付きました。
熱源は、下側1面ではなく、上下2面以上としてTXCOを囲い込むべきでした。TCXOが外界に向かってさらされる構造だと、必ず温度傾斜が出来てしまいます。断熱材で保温すれば大丈夫と言うイメージがあるのですが、実際は、遠赤外線で影響があります。風呂上りの高い体温で近付く、好天時の窓の外のコンクリート輻射などで影響を受け、断熱材とアルミ箔程度では防げない事が判りました。
左は、安定した測定が続いた後に、エアコンを動作(20℃x30分)させて室温を急変させ、周波数変動を見たものです。エアコンの噴出し口より約1mの所で、強風が当たります。
8mHzの影響がありました。精度が、1つ下がって、-9乗のレベルになると見られます。
オーブンが簡単構造なので、相応なのだと思われます。また、後記の様に、電圧源や、抵抗値の変動が未対策なので、その勢かも知れません。
当初は、PWMの出力フィルターにOPアンプ(LMV358)を使いました。PWMの周波数は600Hz程度だったので、f0が10Hz程度のLPFにすると、OCXOの制御端子には、-90db余の減衰となり、構想どおりでした。
しかし、動作中にこのOPアンプ・ボルテージ・フォロアーに触れて体温を伝えると、大きく影響を受けます。"Input Offset Voltage Average Drift=5uV/℃"や、周辺のチップ抵抗(後述)、コンデンサー(tanδ)の温度特性が効いています。一方、被制御側のOCXOは、1mHz/1mVの設定で、10mV相当の影響でした。
OPアンプの使用は止めて、素子数の少ないRCフィルターの構成に替えました。
OCXOの電源電圧3.3Vを供給するため、基板上の3端子レギュレータを使っていましたが、使用に耐えないほど、周囲温度で大きく変動しました。3端子レギュレータの温度特性は、100ppm/℃で、OCXO側の必要とする安定度は、0.1ppm/℃程度です、
対策として3端子レギュレータをOCXO内に移設しました。
PWMにより、OCXOの制御電圧を生成しているマイコンの電源電圧についても同じ配慮が要りますが、今回は、対策していません。この変動は、周波数制御ループでの自動処理に任せています。マイコン・ソフトにより、REF Voltageを基準に補正するのが良いのですが、マイコンの足ピンが不足です。
なお、2.5Vの基準電圧素子を利用する事も検討しました。内部に発熱素子・温度制御素子を持った高精度と称するものでも、1ppm/℃ですから、期待通りになりません。
当初は、OCXOの出力(CMOS)をそのまま引き出し、基板上のインバーター(モノシリック、TC7S04F)に入力していました。
インバータの入力容量は、5pFですが、この値が温度によって大きく変わり、OCXOの周波数に影響していました。
対策としてインバーター1個をオーブン内に追設しました。インバータ1個では不足気味で、2個直列が望ましい状況です。
厚膜チップ抵抗は、+数100ppm/℃〜-数100ppm/℃、薄膜チップ抵抗は、+数10ppm/℃〜-数10ppm/℃程度で、とても、温度制御に使える状況にはありません。これらは、出来るだけオーブン内に収め、抵抗分圧の中性点から制御線を引き出す等の工夫が考えられますが、思ったように対策できず、あきらめ状態です。
ここで、振り出しに戻って考え、次の方が、より現実に合っているのではないかと思いました。
対策A案;出来上がった基板の温度-周波数特性を採り、基板の温度に従って、補正を掛ける。
対策B案;基板をそっくり、温度一定の環境にする。
左は、チップ抵抗や、3端子レギュレータの影響を見たものです。
つまり、周波数制御をしないで放置した時の変動です。ケース内部温度(黄色)の変化に応じて、周波数は数10mHzの変動を生じています。
オーブンの温度を一定に保っても、基板の温度の影響を受けてる状況です。この状況にFLL制御を掛けると、±2mHz程度の変動に収まって来ると言う次第です。
当初は、10MHzの信号出力に、DC-DCコンバーターのノイズ(50KHz)が重畳していました。(約-70dbc)
原因は、OCXOへの3.3V電源のリップルでした。3端子レギュレータをOCXO内に配置し、-90dbc程度に改善できました。
温度センサーは、LM61を使い、50cm長のリード線を介していますが、ノイズが乗って、安定した温度を示しませんでした。原因は、電源に携帯電話用の充電器を使っていた為でした。この充電器の2次側;5.8V側には、対地で50Vの電圧が生じていました。
この"11桁周波数カウンター"の用途は、ユニバーサル・カウンターとして、周波数を精密に測る事なので、
トランシーバの局発の周波数を測る等に使っています。
10MHz周波数標準は、他の周波数カウンターの外部クロックにし、高い周波数を測れる事になるのですが、ほとんど使いません。
パソコンにつないだ場合には、時間経過と共に、変化するデータを記録する事が出来ます。以下の様に特殊な測定例ですが、解析に面白さがあります。
TCXO、3端子レギュレータ、バッファー用インバーター、温度センサーを同居させた、自作OCXOの温度特性です。
オーブン内の温度(赤)を20℃〜60℃の間で変化させて、周波数(青)の変動を記録しました。
終わりの方では、温度が30℃より下がらないので、エアコンを入れて、20℃まで下げています。
グラフを散布図に切り替えると、左の図になります。
30℃あたり、53℃あたりの2点は、温度が変化しても、周波数が変化し難い所です。この結果から、オーブン温度の設定値を53℃に決めました。
一般的な回路ですが、アンバッファーではなく、(高調波を1.5GHzまで出すため)74ACを使っています。乾電池3V駆動、チップ・セラミック・コンデンサーです。
使用温度範囲10〜30℃の間で、約70Hzの変動、-3.5Hz/℃です。
電池の温度、普通は使わない74ACの発振回路の影響があるかもしれない・・と疑い、次の回路の測定をしました。
使用温度範囲10〜30℃の間で、約55Hzの変動、-2.75Hz/℃、前測定とほぼ同じです。
チップ・セラミックを使って、普通に作れば、±30Hz程度のQRHがあると判りました。
チップ・セラミックはマイナスの温度係数と聞いているので、この発振回路は、温度が高くなると、周波数が高くなる・・と思っていましたが、逆でした。
また、Xtalの特性として、変曲点があるだろうと思っていましたが、真っ直ぐの直線でした。
秋月にて購入の18S-03A-4です。
使用温度範囲10〜30℃の間で、約11Hzの変動、
周波数精度は、-10Hz余、-1ppm程度です。
15℃、40℃に変曲点があり、温度補償の効いているのが判ります。
以上
*戻る*