FC2ブログ

デカLCD入手・・・周波数カウンタ製作終盤の様子

2018-11-03      
 11月に入りました。季節が一気に秋めいて朝の通勤時は結構気温が下がりましたが、暑がり大魔王の自分にはもう少し下がって貰っても良い感じ とは言え、今ぐらいの気候がやはり過ごし易いと言えるかな

 周波数カウンタの製作も終盤を迎えました。このところはソフト作りとデバッグを空き時間に進め、漸く機能的には全部詰め込んだところです。1カ所デグった(Degradeした・・・ソフト屋さん、IT屋さんの業界用語ですね)ところを見つけるのに案外手間取った以外は、ほぼ思惑通り進めることができました。

 エンコーダで動作モードを選ぶ格好にしましたが、モードは全部で9個になりました。モード一覧表を以下に。



 まだプログラムメモリがジャブジャブ余っていますから、さらに動作モードを追加することも可能ですが、ひとまず上記の通りに具備しました。
 そんな中、”中華”のお買い物でデカいLCDを入手しました。ちょいとスナップショット



 大きさの比較としてテストで使ってきたLCDを右上に置いていますが、こうして見るとかなりデカいでしょ 液晶表示部が24mm×99mmもあります。これで老眼対策はバッチリ・・・って、ちょっと凹むなぁ

 表示中の右下の妙な数字は、温度センサ出力をAD変換して表示していますが、実はまだ配線していません。この辺りはケーシングする際にデバッグしようと思っています。

 そろそろケース加工・・・ここが一番難題ですが、きちんと仕上げたいと思います。

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

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”を記入しました。

結局、周波数カウンタを仕立て中・・・

2018-09-22      
 先週の3連休で逡巡した挙げ句、GPSモジュールからの1PPSをゲートにした周波数カウンタをこしらえれば、どよよん無線技士が「まぁ、この程度で良かろうぞ」と思える”0.1Hz保証”は達成できそうなことから、ブレボにPICを乗せた簡単な環境でソフト作りに精を出し、漸く目途が立ったんで記事にしておきます。

 今回仕立てようとしている周波数カウンタは、PIC内蔵の16ビットタイマ2つを交互に動くようにして、GPSモジュールからの1PPSを連続で有効に利用できるように工夫しています。即ち、PICのタイマ1を2つ起動し、それぞれ1秒間を交互に測定するようにしています。これは、タイマ1を非同期モード、かつトグルモードとシングルパルスモードを併用して実現します。



 今回使用したPIC16F1769はタイマ1を3つ持っていて、それぞれ上記のモードで動作させることができます。外部から与えるゲートはトグルモードで扱うと、1秒刻みでON-OFFする信号をそのままゲートにできます(t1g_in)。
 その上、シングルパルスモードでソフト制御を上手く起動(T1GGOの制御)してやれば、1秒毎に2つのタイマーを交互に動かすことができます。これは、始めに起動したタイマが動き出したことを確認してから次のタイマを起動するだけでよく、16ビットタイマが複数内蔵されている全てのPICで実現できます。

 2つのタイマで交互にカウントされる周波数データは何れも1Hz刻みであるため、これを連続的に加算してその測定数で割ってやれば1Hz以下の計測が可能になります。今回は100回のデータを取って加算し、それを100で割って10mHzオーダーの計測をしています。
 この方式では、100回のデータ取得に達していない間は1Hz単位で、100回に到達したら100回前のデータを減算してからその回のデータを加算した上で平均値を求めています。

 こんな感じで組み上がったブレボのバラックの様子をスナップショット



 LCDの下段は、100回のデータ取得に達するまでのカウントです。これが100に達するまでは小数点以下は0で固定ですが、100回を超えたら過去100回分のデータの平均を表示するように仕込んであります。

 本当は1000回分を蓄積できると1mHzの分解能になりますが、1000個分のデータを取っておくためのSRAMを背負った市販のPICは少なく、無駄に28ピンのものを選択しなければなりません。まぁ、そもそも今回の仕組みで10mHzオーダーの精度が精一杯なんで、この仕掛けで十分でしょう。

 周波数カウンタとして形にするためには、GPSモジュールに頼らないで自走できるようにもしたいんで、もう少し検討を深める必要があります。この辺りが、次回の記事になっていくといいんですが・・・。

デバッグ中のLCDの不可解な動き

2016-04-03      
 新年度最初の週末、土曜日は短時間ながら「休日出勤」となってしまいました。これで月曜朝は上手く迎えられそうですが、ちょっと損した気分

 周波数カウンタのプログラム作りは着々と進んでいます。プログラムエリアがジャブジャブあるため、書き下しでも十分入りそうなんですが、そこはそれ、今後のメンテ性も考えながらコンパクトに仕上げようとあれこれ工夫しながらノンビリ進めています。そんな中、ちょっと不可解な現象が・・・。



 下段の「L、1、H」 が1ドット分、下の方に突き抜けています。このドット位置はカーソルが表示されるところなんですが、どうも縦にフルドットになる部分の下に1ドットが足されるような感じです。
 この現象は上段のカーソル部分では起きないんですが、上段の先頭に例えば「H」を表示すると(下段先頭は空白)、下段のカーソル部分にやはりドットが現れるんです。そこで上段にHを16文字表示させると・・・現れるはずのドットは表示されません。先頭の3,4文字が不具合を起こすようなんですが、まだこの現象の不具合の傾向が絞れていません。

 このLCD表示には他の工作にも使っている自前のライブラリを使っていますが、こんな現象は初めての経験。LCD自体が不味いとも考えられるんで、未開封在庫のLCDで試してみようかなぁ

 こんな風に妙な現象に少し囚われてしまい、夕刻が近づいてきたため息抜きにこの記事を書きました まだここ暫くは、周波数カウンタのプログラム作りに精を出したいと思います。

バラックで組んだ周波数カウンタの周波数特性評価

2016-03-27      
 昨日と今日はたっぷりめに時間を割いて、周波数カウンタのバラック組み立てと評価に取り掛かりました。昨日はこれまでのプログラム整理をしつつ、カウンタ制御部分をデバッグしながら、バラックで組んだカウンタ回路全体をひとまず動作確認。今日は、カウンタとしての性能評価を行いました。



 手狭な工作机に超バラックで組んでいます。当初、PICの「TMR0」をカウンタ入力として考えましたが、74AC161の前置でPICとしてはカウント・スピードが必要なくなったため、「TMR1」でカウントすることにしました。ところが、このTMR1のクロックゲートになる「T1CKI」が立ち上がりエッジでカウントするタイプであることをうっかり忘れており(TMR0の「T0CKI」はソフトでエッジを設定できる)、74AC161の「QD」の立ち下がりでカウントしようという想定が吹っ飛び、初回のPICのカウントアップが8カウントでインクリメントされてしまうことに・・・まぁ、ソフト論理を少し入れ込んで難は逃れていますが、もう少し注意深くしないとね

 一方、このカウンタの最大動作周波数については、これまでの実験で何とか150MHz程度までは動く感触を得ていたんですが、実際に組んで試してみると120MHz辺りが限界のよう。これは、アンプ部とカウンタ部が別の基板に載っており、さらにプリスケーラとの切替を行うためのリレーまで入ることから、特に高い周波数の様子が安物万能基板で行った事前の実験とは違うようです。この辺り、もう少し突っ込んで当たってみようとは思っていますが、このカウンタの最終形である「卓上のミニ・カウンタ」としてはHFから6mの確実な動作が主眼であり、ちょっと棚上げすることにしました。



 クラニシ君@SGの発振周波数を測定しています。我がクラニシ君は表示周波数が若干低く(1KHz程度)、このスナップでは少しズレているように見えますが問題ありません。きちんと校正した中華SGでは、表示周波数とバッチリ合いますが、50MHz以上が発振できず確認できないんで、未だこの「クラニシ君使い」を卒業できていません クラニシ君を校正すれば良いんですが、本来の使い方であるアンテナ調整時には「1KHz位の誤差」は関係ないんで校正はしません。下手に開けてぶっ壊すのは愚の骨頂、古い機器ですからねぇ・・・

 こんな感じで今日を迎え、このバラックの状態で周波数特性を測ってみました。今回は特に作りっぱなしのアンプ部について、若干の改修は覚悟。どこを調整したいかというと・・・



 この手の広帯域アンプの「帯域の肝」は、エミッタ接地アンプのエミッタに接続するコンデンサ容量によって帯域幅が大きく影響を受けるということ。このこと自体は、既に実験は完了した上で「1000pF辺りがよさそう」という当たりを付けています。ただ、万能基板で行った予備実験でHFの高い方に高感度部分がズレているように解釈されたため、今回の製作に向けては一旦1000pFで組んで特性を測ってから工夫しようということにしました。パラに増設するにせよコンデンサ1つなら、基板の裏にハンダ付けしても問題ないでしょう。早速、結果のグラフへ・・・。



 赤い折れ線が、エミッタに接続するコンデンサを1000pFのみとした場合の測定結果です。想像通り、感度の高い帯域は20MHz辺りにあり、HFの下の方はあまり高感度とは言えません。そこで、0.0047μF(4700pF)をパラに接続して測定した結果が青い折れ線です。実はこの測定の前に0.01μFをパラにしたら、感度の高い領域が下にズレ過ぎることが判ったため、再度0.0047μFに付け替えて測定しました。HF帯のカバレッジとしてはまずまず平坦になりました

 これでひとまず「基本機能」が動くことは確認できました。さぁ、次はどっちに行くかな・・・この辺りの我が儘に進められる部分が、「自作」の醍醐味でもあります。ユルユル考えて進めていきたいと思います

カウント部の基板完成

2016-03-21      
 今日は午後から昨日買ってきたFAX電話の据え付け作業を行いましたが、この1時間程の中断を挟んで着手しかけの周波数カウンタ・カウンタ部のハンダ付けを進め、基板として完成させました。

 秋月基板への部品の組み付けは、水魚堂さんのBschを使ってレイアウトを検討しながら実体図を作ってから始めます。実体図の製作は、まずは部品面から透過に配線図を描き、完成したら接続をチェック、その後「裏返し」にコピーして部品面と裏面のパターン図として完成させます。そして、この2つの図をPC画面に大写しし、それを見ながらハンダ付けをしていきます。



 23インチのディスプレーにこれだけ大写しすれば、流石によく見えます

 銅テープをランド面に貼り付けてカッターで切り抜いた後は、スズメッキ線で配線していきます。



 配線を終えた様子です。このカウント部は150MHz程度を扱う「立派な高周波回路」と見立て、安定動作させるべくできる限り広めのグランドを取りたかったんですが、あまり広くできませんでした。ただ、この辺りは実際組んで動作させてみて吟味しないと判らない部分ですから、ひとまず様子見。
 パスコンは最短距離でグランドへ・・・各ICのVCCに一つずつの他、RS232Cインタフェース用ICのチャージポンプ用コンデンサを幾つか裏面に取り付けました。



 周波数カウンタの基板としてはこれで完成です。スナップ左側に写っている「アンプ部+α」の部分も基板製作の方法は同じですが、グランドの貼り付け面が違います。

 基板が出来上がればもうゴールは見えた・・・いえいえ、ここからが本格的な「製作の肝」に当たるフェーズです。まずは、「アンプ部+α」が思った通り動くか確認し、必要部分を徐々にカウント部に接続していき、PICのプログラムが必要な機能を果たすように作り込んでいきます。そして最後がケーシング・・・まだまだ先がありますね

 既に夕刻を迎えました。土日の禁酒を解禁にして一杯やりつつ再度配線ミスが無いかチェックでも・・・やれやれ、今日この後の進捗はあまり期待できませんなぁ

周波数カウンタの製作開始

2016-03-13      
 先々週末の土曜日から、毎週土曜日を「休肝日」にしてみました。飲み過ぎ傾向が強まったため、肝臓の各種数値が「おいおい、大概にせぃや」という領域に・・・まぁ数値云々は置くとしても、週末をもう少し有意義に過ごすためにも、土曜日から日曜の午後に掛けては飲まないことにし、クリアになった頭で、ここ3週末は机周りの改善や工作を進めています。
 やはり飲まないと集中力は高まりますから、まずまずの集中力が発揮されて首尾は上々・・・この勢いで周波数カウンタも実験を終え、漸く「ハードウェアの製作フェーズ」に入りました。ソフトは後からあれこれ追加できますから後回しにし、「金物」としては仕上げる方向に動き出したといった感じです。

 ただ、我がブログ書きは「飲みながら」が素敵な感じ・・・夕飯前にちょっとアルコール変調でこの記事を書き始めました

 昨日の土曜日は周波数カウンタのバッファアンプ部他の回路をまとめ、例によって「秋月Cタイプ、片面、紙」を使って組み上げてみました。回路図整理からPCBレイアウトを決めて組み上げるまででほぼ丸一日。



 またしても銅テープを基板に貼っての製作ですが、横着をして「カッターで不要部分を切り取る法」としました。このスナップにも写っているベークの実験基板でそこそこ動きそうな感触を得たため、思い切って「お手軽製作」とした次第。

 この基板には、散々実験してきた広帯域アンプと共にプリスケーラ部を載せ、さらに基準クロックとなるTCXOを載せました。これで、周波数カウンタとしての調整部分を全てこの基板に実装した格好にしてあります。最終的にどの程度の大きさのケースに入れるかは思案中ですが、これと同じ大きさの基板の多段構造とした場合でも調整箇所として「最上段」にすることで済みます。
 この後はカウンタ部の製作です。ハード的に面白い部分はあまりなく、回路図通りに組めば済むんですが、この基板と同じ大きさでまとめるのに少し苦労しそうです。実際の製作の様子は、全ての基板が組み上がってからまとめていきたいと思います。

 さぁ、夕飯の時間・・・週末の「締め」へと参りましょうかね
Calendar
11 | 2018/12 | 01
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