fc2ブログ

周波数カウンタの実装機能まとめ

2018-10-21      
 先週の木・金曜日は、毎年恒例の研修合宿でした。講師&引率者として参加するんですが、直前には相変わらずその準備にバタバタし、かつ残務を翌週に丸投げするのも恒例になってしまっています 2年目社員の啓蒙教育ですから、フレッシュな意見を聞くに付けハッとしたり、夜の懇親会でアニメヲタクっぷりを発揮して盛り上がったりで、案外自分自身が楽しめるものでもあります
 ただ、気付かぬうちに結構疲れていることが多く、昨日は午前中に”二度寝”してしまいました。気付けば13時近く・・・遅い昼飯を済ませてから、周波数カウンタ製作作業へ。

 昨日中には周波数カウンタに具備するロータリーエンコーダとスイッチのチャタ防止を施し、動作確認を済ませました。後は2.4GHzのプリスケーラ、クロックの直ぐ横に配置した温度センサ、クロック発振周波数の微調整に使うポテンショメータ、シリアル出力への結線が残っていますし、ケース加工もまだ・・・先はまだ長いです。今日のところは、実装する機能を先にまとめておきたいと思います。

 そうそう、機能のまとめの前に・・・この周波数カウンタの周波数特性をバラックの状態で測定してみたんで、その結果を掲載。アンプ部の回路は、先の記事で既に度々登場しているものです。



 今回の周波数カウンタはPICのタイマ1で測定していますが、カウント限界が110MHzを少し超えた辺りまで伸びています。ただ、上限辺りでは+7dBm程の入力が必要(これ以上になるとアンプが飽和してまともに測定できない)になるため、このカウンタの測定上限は100MHz、プリスケーラ入力でそれ以上の部分を測定することにします。まぁ、HF帯はそこそこ高感度に測定できそうで満足、満足

 では、実装したい機能をまとめましょう。

 ① 普通のカウント

 製作中の周波数カウンタのゲート処理には特徴があり、2つの1秒ゲートを連続・交互に動作させて1秒刻みで周波数を読み取っています。
 交互に得られる周波数データを順に表示させると1Hzゲートのカウント表示となりますが、例えば0.1Hzゲート(10秒ゲート)を作る場合には、10回分の周波数データを加算して表示することになります。
 このように、ゲート時間を10秒、100秒・・・として、mHz単位まで具備してもいいんですが、リアルタイムで測定するのは精々10秒ゲートまでで十分かと思われます。ひとまず、1秒と10秒ゲートの周波数表示を実装します。

 ② プリスケーラを使ったカウント

 2.4GHzまでの測定を実現したいというよりハンディ機の周波数確認で430MHzの測定を希にやりたくなるんで、ひとまず付けておいた感じです。1/64分周のプリスケ出力をゲート時間1.5625秒で受けるため、1回の測定で100Hz単位の測定ができます。10Hzまでなら10回分を加算して表示すればいいんで、この2つのゲート時間による周波数表示を実装します。

 ③ 平均値による10mHzオーダのカウント

 実験途上では、1秒ゲートで100回サンプリングしたデータを加算し、それを100で割って10mHz単位での表示を実現しました。1つのサンプリングバッファは32ビットにしていますから、この方法で理論的に430MHz弱まで同じようなカウントができます。つまり、100MHz(16進数で‭5F5E100‬)までは余裕の設計。
 1mHz単位にするためにはサンプリング数を1000(バッファ数を1000)にすればいいんですが、今回採用したPICではメモリ不足のためこの方法は使えません。そこで、10秒ゲートにして100回サンプリングにすると、32ビットバッファでは43MHz辺りでオーバフローするためこれもNG。詰まるところ、10秒ゲートでバッファを48ビットx100個にして解決・・・なんですが、果たしてここまでの測定は必要なのか
 そもそも、内蔵クロックである”LFTVXO009900”の安定度や10MHzに対する確度がしっかりしていないと意味が無いし、特に1mHzなどの測定はシリアルに逃げてPCで行う方が長時間測定にも有利ですから、実験済みの10mHz測定までを”本体機能”として具備することにします。

 ④ 内蔵クロックの調整

 ”LFTVXO009900”は外部からの電圧で発振周波数が可変できるため、確度の高い10MHzに調整できるよう、GPSモジュールからの正確な1Hzクロックを供給した状態で発振周波数を測定できるように回路を組んでいます。これで時折調整すれば、必要な程度の正確なクロック周波数の発振は担保できるでしょう。

 ⑤ 外部クロックによる周波数測定

 上記内蔵クロック調整の機能が具備できれば、GPSモジュールからの正確な1Hzクロックを使った周波数測定もできるはず・・・ですね。

 ⑥ 温度測定と周波数補正

 内蔵クロックの周辺温度は、温度センサーで常時測定できます。これを利用して周波数の偏差を表示できるようにしたいと考えています。もう一歩進めて”周波数補正”まで持って行けるとカッコいいんですが、この辺りは実験しながら考えたいと思います。

 ⑦ 周波数カウント値のシリアル出力

 カウントした周波数をシリアル出力する機能は、今回特に具備したい機能です。③の機能補完を含め、長時間の連続測定による測定対象の安定度観察など、これまで自分で手間を掛けて行ってきた部分を自動化できて便利になりそう・・・ただ、PC側のソフトも作る必要がありますね。これは、VB辺りでチャチャッと組んじゃいたいと思います。

 列挙すると結構なボリューム・・・当面はこれらを順に作り込んでいきたいと思います。

1/10,000,000分周の解決と周波数カウンタの仮組み

2018-10-14      
 買い物に行く時、結構な枯れ葉が落ちていることに気付きました。いよいよ家の前のケヤキ通りが秋の様相・・・と見上げるとあまり良さげに色付いてはおらず、やはり長く続いた夏の暑さと急激な気温の低下という組み合わせでは綺麗に仕上がらないようです。ただ、まだ全く色付いていないものもありますからもう少し”監視”を続け、いい頃合いになったらまた報告します

 直前のブログで課題とした1千万分の1分周は、結果的に8ピンDIPのPIC16F18313を2つ使って解決しました。この辺りをひとまずまとめておきます。

 新しめのPICには、タイマ1との組み合わせで指定したピンに分周信号をトグル出力できるコンペアモードがあります。これを上手く動かすと、ハードウェアロジックで以下のようにクロックが分周できます。

 ① タイマ1のクロックをFosc/4として入力
 ② タイマ1のプリスケーラで1/8分周
 ③ タイマ1とコンペア用のレジスタとの比較で最大1/65536分周
 ④ 出力をトグルモードとして1/2分周

 ∴ 4,194,304分周

 つまり、4.194304MHzの水晶があれば一発で1Hzが得られます。ソフト割込等は考えなくて良いため、初期化して知らん顔していれば勝手に1Hzが得られるといった寸法。でも、今回は10MHzからの分周ということで少々足りません。

 そこで、このPICを使うことを前提に一旦タイマ2で少し分周し、その割り込み処理を使って出力ピンのトグル制御を行い、これを別のピンで受けてタイマ1に入力するという作戦を立てました。

 ① タイマ2のクロックをFosc/4として入力
 ② タイマ2のプリスケーラは使わない
 ③ タイマ2で1/25分周
 ④ タイマ2のポストスケーラで1/5分周
 ⑤ 割り込み処理毎に出力ポートをトグル(1/2分周)
   ⇒ここまでで1/1000分周:10KHz
 ⑥ ⑤を入力としてタイマ1を動作させる
 ⑦ タイマ1のプリスケーラで1/8分周
 ⑧ タイマ1とコンペア用のレジスタとの比較で1/625分周
 ⑨ 出力をトグルモードとして1/2分周

 ∴ 10,000,000分周

 この仕様でプログラミングして実験しましたが、どういうわけか0.5秒毎にハイレベル出力が発振したような波形になってしまい、あれこれ弄っても改善しないことから2つのPICのタイマ1を使ってブレボ実験したら上手くいったため、上手く行かない原因を特定せぬままカウント部を組み立ててしまいました



 小型万能実験台(なにそれ・・・)にアンプ部と組み立てたカウント部を載せて動かしている様子です。奥の基板に並んでいる2つの8ピンDIPが、手前の基板の10MHzクロックを分周して1Hzを作り、これをゲートとしてカウント動作しています。入力はジャン測SGから10MHzを入力しているんですが、SG自体の周波数がずれているため10MHzピッタリにはなっていません。

 これで漸くブレボ実験は卒業しました・・・が、ここから順に機能を作り込む必要があります。エンコーダ処理やUSARTなどのI/O回りが中心ですが、2.4GHzのプリスケーラも搭載してありクロック切替処理なども入れ込んでいく必要がありますから、もう暫くソフト作りに精を出す必要がありそうですね・・・

クロックモジュールの換装

2018-10-06      
 10月は、多くの企業が”下期”と称する期の切り替え時期であり、当年度の事業計画を見直す時期。昨日は我がコマーシャル先も下期キックオフが催され、そのあと会社近くの飲み屋で・・・という流れになり、例によって”痛飲”してしまいました。朝起きてもまだ少し目が回っていて、ゴミ出しで階段を降りるのにやや緊張しました。

 仕立て中の周波数カウンタのアンプ部は以前に組み立て済みのものを使おうと思い、この基板に乗っかっているクロックモジュールの安定度を調べてみると、ここ最近の室温・・・25℃から27℃くらいの温度範囲でかなり動いてしまうことが判りました。そこで、評判の良い秋月の”超高精度”と銘打った奴を確認してみると、これでも±百mHz程度動いてしまうことから、ジャン測カウンタのクロックに使って好結果だった”CFPT-125シリーズ”の10MHzのVC-TCXO(LFTVXO009900)を使うことにし、ブレボ実験を経て換装することにしました。



 ジャン測カウンタの時と同様、またしても惑星探査機の如く4本足にしてDIP8ピンのソケットに挿して使うことにしました。この発振器は3.3V動作ですから近くにレギュレータを置きましたが、元のクロックモジュールの位置に上手く押し込めました

 この状態で発振器の周辺温度(スナップで発振器の上側にある黒頭が温度センサー)と発振周波数を長時間監視していますが、25℃から27℃の間で±30mHzに収まっているようです。この程度の変動なら、きちんとケーシングすればかなり安定したクロック源になりそうです

 そろそろカウンタ部をブレボから卒業させ、例によって秋月C基板に組んでみようと思うんですが、クロックが10MHzになったことから分周回路に工夫が要りそう・・・この休み中にやっつけたいところです

修正 2018.10.11>
 申し訳ない・・・秋月の超高精度クロックモジュールの周波数変動は単位が「ミリHz」です。いまさらですが、小文字の”m”を記入しました。

Calendar
09 | 2018/10 | 11
Sun Mon Tue Wed Thu Fri Sat
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
New !
Category
Comments
Monthly Archives
Track Backs
Counter
Sunspot Now !

 


Survey Results

 

Profile

どよよん無線技士

Author :どよよん無線技士
こおるさいん:JM1DPL

アパマンというハンデにさらにQRPまで課し、失敗連続のヘッポコリグや周辺機器の製作・・・趣味というより「荒行」か!?

メールは「JARL経由」でお願いします。

Links
Follow me !
RSS Links
QR Code
QR