結局、周波数カウンタを仕立て中・・・
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モジュールに頼らないで自走できるようにもしたいんで、もう少し検討を深める必要があります。この辺りが、次回の記事になっていくといいんですが・・・。

今回仕立てようとしている周波数カウンタは、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モジュールに頼らないで自走できるようにもしたいんで、もう少し検討を深める必要があります。この辺りが、次回の記事になっていくといいんですが・・・。
OCXOを半分直す
2018-09-14
三連休直前ですが(
)、一つ記事にしておきます。
このところのメインディッシュであるGPSDOの周波数安定度の基準として使っていた、我が「周波数基準の神」であるOCXOの出力低下に気付きました。
このOCXO・・・”MV89A"のカタログ値は50Ω負荷で”+7dBm”となっており、過去記事を確認したら購入時からレベル低下があったようですが、この度は”自作”ではあるものの、多分・・・いやきっと・・・いやいや辛うじて正確そうな電力計で測ったら、何と20dBm近く低い”-11dBm”という結果。これは、どこかがイカレポンチだろうとネット情報を漁ったら、やはりこのOCXOに付き纏う故障であることが判りました。即ち「出力のチップコンデンサの劣化」ということで、こいつを換装すべく100Wのハンダゴテとシュッ太郎の組み合わせでフタ外し。
ターゲットのコンデンサの容量を測ったら51pF・・・本来は0.1uFの筈ですから、こいつがダメダメなのは明白。そしてこのコンデンサをちょいちょい突っついていたら、本体部分がポロッと外れてしまいました。

こうなりゃ、このコンデンサの換装・・・同じ容量のものが無かった上にサイズも一回り大きかったんですが、0.01uFのチップコンデンサで埋め合わせ。

この状態で出力を測ったら”+3.7dBm”まで上昇。でもカタログ値である+7dBmにはほど遠い感じです。回路図を追ってさらに怪しげな部分を見つけましたが、これ以上”Teardown”するには勇気が必要なため、勇気もヘッタクレも持ち合わせの無いここのブログ主は、元通りフタを閉めてしまいました。
この処置により、出力が元に戻って・・・なら嬉しかったんですが、上記のような有様。それでも「神は神」ですから、このOCXOの安定度を信じて、もう少し活躍して貰おうと思います。

このところのメインディッシュであるGPSDOの周波数安定度の基準として使っていた、我が「周波数基準の神」であるOCXOの出力低下に気付きました。
このOCXO・・・”MV89A"のカタログ値は50Ω負荷で”+7dBm”となっており、過去記事を確認したら購入時からレベル低下があったようですが、この度は”自作”ではあるものの、多分・・・いやきっと・・・いやいや辛うじて正確そうな電力計で測ったら、何と20dBm近く低い”-11dBm”という結果。これは、どこかがイカレポンチだろうとネット情報を漁ったら、やはりこのOCXOに付き纏う故障であることが判りました。即ち「出力のチップコンデンサの劣化」ということで、こいつを換装すべく100Wのハンダゴテとシュッ太郎の組み合わせでフタ外し。
ターゲットのコンデンサの容量を測ったら51pF・・・本来は0.1uFの筈ですから、こいつがダメダメなのは明白。そしてこのコンデンサをちょいちょい突っついていたら、本体部分がポロッと外れてしまいました。

こうなりゃ、このコンデンサの換装・・・同じ容量のものが無かった上にサイズも一回り大きかったんですが、0.01uFのチップコンデンサで埋め合わせ。

この状態で出力を測ったら”+3.7dBm”まで上昇。でもカタログ値である+7dBmにはほど遠い感じです。回路図を追ってさらに怪しげな部分を見つけましたが、これ以上”Teardown”するには勇気が必要なため、勇気もヘッタクレも持ち合わせの無いここのブログ主は、元通りフタを閉めてしまいました。
この処置により、出力が元に戻って・・・なら嬉しかったんですが、上記のような有様。それでも「神は神」ですから、このOCXOの安定度を信じて、もう少し活躍して貰おうと思います。
タンタル追加で落ち着いた未完のGPSDO
2018-09-11
今日は涼しさ大爆発の1日。明日も涼しいようで、少しは秋に近付いたんでしょうか。新生サッカー日本代表も面白い試合を見せてくれて、久々に美味い酒が飲めました
ケーシングするか迷っているGPSDOですが、どうも出力周波数が暴れるんで調べてみたら、GPSモジュールの電源ラインに8MHzくらいの正弦波が乗っていることが判りました。

基板に組む前にRFCを入れて処置したつもりでしたが、この対策だけでは足りず・・・といった案配で、GPSモジュールの電源ラインに10μFのタンタルを突っ込みました。

この黄色頭のお陰で周波数の揺らぎがグッと小さくなり、1Hz出力の際に1μsオーダーでちらついていたものが±20nsまでに落ち着きました。ただ、衛星の捕捉数が8機以上でないと、この精度は出ないようだということが判りました。
今暫く、バラックのままあれこれ遊んでみようと思います。

ケーシングするか迷っているGPSDOですが、どうも出力周波数が暴れるんで調べてみたら、GPSモジュールの電源ラインに8MHzくらいの正弦波が乗っていることが判りました。

基板に組む前にRFCを入れて処置したつもりでしたが、この対策だけでは足りず・・・といった案配で、GPSモジュールの電源ラインに10μFのタンタルを突っ込みました。

この黄色頭のお陰で周波数の揺らぎがグッと小さくなり、1Hz出力の際に1μsオーダーでちらついていたものが±20nsまでに落ち着きました。ただ、衛星の捕捉数が8機以上でないと、この精度は出ないようだということが判りました。
今暫く、バラックのままあれこれ遊んでみようと思います。
GPSDOっぽいのを製作・・・でも課題が!?
2018-09-09
夏休みに”大型休肝日”を過ごして以来、毎週金・土曜日は引き続き休肝日にしています。勿論、第一には身体の養生のためですが、時に昼間っから飲んじゃって「ダランダランな週末になってしまう体たらくからの脱出」でもあります。お陰で、あれこれ予定通りに進むことが多くなりました。「酒は百薬の長」と言われていますが、やはり「過ぎたるは及ばざるが如し」ということですね
今週末はタイトルの通り、”GPSDOっぽいもの”を得意の”秋月C基板”に組んでみました。まぁ、途中途中であれこれ躓きましたが、何とか動作するようになりました
回路図は以下の通りです。


躓いたのは、ロジック部のRFC・・・当初このRFCは入れていませんでしたが、ブレボ実験中に衛星の捕捉が芳しくなくなり、試行錯誤の末に「電源ノイズ」であることを突き止め、基板化する際にも入れることにしました。

実験中の様子です。GPSモジュールの電圧供給のリード線にFT37-61に4回巻きしたRFCです。これで、衛星の測位までの時間が格段に上がりました。巻数から換算して1μH弱でしたので、とりあえず少し多めの3.3μHとしています。
その他、PIC用のクロック発振周波数を測定し易いようにTPを設けました。これで随分PICのクロック合わせは楽にできますから、特にPICのクロック精度が必要なものは、端からこうしたピックアップを設けておいてもいいでしょう。
設計時点で既に入れ込んであった対策は、電源回りの余裕設計・・・5Vの三端子レギュレータに500mA使用の”M”を採用したことです。
アマ無線関連で自作する場合、12Vが主電源の電圧として設計することが勢い多くなりますが、ロジック回路等に必要な5Vを単純に三端子レギュレータで降圧して得ることが多くなります。その際、必要な電流を加味しないと、簡単にレギュレータの定格電力を超えてしまいます。今回の回路の5V部分は消費電流80mA程度であり、これを鵜呑みにして”78L05”を用いるとヤバい・・・レギュレータに必要な電力消費量は、「(12V-5V)×80mA=560mW」と見積もる必要があるわけで、ここは経験的に先回りすることできました。

2つの回路を各々秋月C基板に組んで完成を見たわけですが、この回路構成では「10mHzオーダで動いてしまう」ということが判りました。これはブレボ実験中にも気付いていたことですが、GPSモジュールからMHzオーダの出力を無理矢理に引っ張り出すと必然的に起こります。今回は、手持ちのOCXO(結構、安定度は高いです)を基準として観察しましたが、最大±60mHz程度は動いているように見えています。
これは別に今回の製作物の精度がどうのこうのではなく、MHzオーダの出力ができるGPSモジュールには付きまとう問題であり、直接的な解決策はありません。ただ、この10MHzに追随するようにOCXOを制御できれば、そこそこ高精度の信号源に仕立てることはできます。この辺りも当初より視野に入れていましたから、今回製作した”2枚の基板”をケーシングするか否かを非常に迷っています。
週明け1週間が過ぎると3連休が2回連続で来ます。この辺りでGPSDO関連は卒業したいところですが、果たしてどうなるんでしょうね

今週末はタイトルの通り、”GPSDOっぽいもの”を得意の”秋月C基板”に組んでみました。まぁ、途中途中であれこれ躓きましたが、何とか動作するようになりました



躓いたのは、ロジック部のRFC・・・当初このRFCは入れていませんでしたが、ブレボ実験中に衛星の捕捉が芳しくなくなり、試行錯誤の末に「電源ノイズ」であることを突き止め、基板化する際にも入れることにしました。

実験中の様子です。GPSモジュールの電圧供給のリード線にFT37-61に4回巻きしたRFCです。これで、衛星の測位までの時間が格段に上がりました。巻数から換算して1μH弱でしたので、とりあえず少し多めの3.3μHとしています。
その他、PIC用のクロック発振周波数を測定し易いようにTPを設けました。これで随分PICのクロック合わせは楽にできますから、特にPICのクロック精度が必要なものは、端からこうしたピックアップを設けておいてもいいでしょう。
設計時点で既に入れ込んであった対策は、電源回りの余裕設計・・・5Vの三端子レギュレータに500mA使用の”M”を採用したことです。
アマ無線関連で自作する場合、12Vが主電源の電圧として設計することが勢い多くなりますが、ロジック回路等に必要な5Vを単純に三端子レギュレータで降圧して得ることが多くなります。その際、必要な電流を加味しないと、簡単にレギュレータの定格電力を超えてしまいます。今回の回路の5V部分は消費電流80mA程度であり、これを鵜呑みにして”78L05”を用いるとヤバい・・・レギュレータに必要な電力消費量は、「(12V-5V)×80mA=560mW」と見積もる必要があるわけで、ここは経験的に先回りすることできました。

2つの回路を各々秋月C基板に組んで完成を見たわけですが、この回路構成では「10mHzオーダで動いてしまう」ということが判りました。これはブレボ実験中にも気付いていたことですが、GPSモジュールからMHzオーダの出力を無理矢理に引っ張り出すと必然的に起こります。今回は、手持ちのOCXO(結構、安定度は高いです)を基準として観察しましたが、最大±60mHz程度は動いているように見えています。
これは別に今回の製作物の精度がどうのこうのではなく、MHzオーダの出力ができるGPSモジュールには付きまとう問題であり、直接的な解決策はありません。ただ、この10MHzに追随するようにOCXOを制御できれば、そこそこ高精度の信号源に仕立てることはできます。この辺りも当初より視野に入れていましたから、今回製作した”2枚の基板”をケーシングするか否かを非常に迷っています。
週明け1週間が過ぎると3連休が2回連続で来ます。この辺りでGPSDO関連は卒業したいところですが、果たしてどうなるんでしょうね

GPSDOのモジュール監視部の実験
2018-09-02
今夏はやはり異常気象と言って良さそう・・・何やら落ち着かない天候が続いていますね。スマホを身近なところに置いていますから急な雨や雷には備えられますが、それでもほんのちょっとした予想範囲のズレで当たり外れがあって、「まだ平気だな・・・」と傘を持たずに買い出しに出るとそこそこの雨量で濡れてしまったり、逆に傘を持って出ると降らなかったり
先週末のハムフェアは、初日の午前中に野暮用が発生して出鼻を挫かれ、午後から行こうかと思ったものの暑くて億劫になり、実験途上のGPSDOのフィルタやらバッファやらの組み立て実験の方に力が入ってしまい結局行かず終い。そのお陰で、この部分は上手く動作するようになりました。そこで今週末は、GPSモジュールからのメッセージを受け取ってきちんと衛星捕捉数を監視する部分をPICに組み込み、ブレボで実験することにしました。
この監視部には、以下の機能を具備することにしました。
◆GPSモジュールとのシリアル通信、受信のみ行う:1ポート
◆GPSモジュールからメッセージ”GNGGA”を受信したら、LED(赤)をブリンク:1ポート
◆”GNGGA”のパラメータから衛星捕捉数を拾い、捕捉数に応じてLED(緑)を点消灯:1ポート
3機未満:消灯、4~6機:点滅:7機以上:点灯
◆シリアル通信の取りこぼしを極力減らすため、クロック発振には水晶を使用:2ポート
通信速度:38400bps、クロック周波数:9.8304MHz
上記の機能具備のために必要なPICのポート数は単純計算すると5ポートになることから、ミニエレキーをこしらえたときに多めに買い込んだPIC12F1822をチョイス。ところが、シリアル通信を行うと(使わなくても)送信ポートも取られてしまい、都合6ポート必要であることに気づき、入力にしか使えないMCLRを考慮するとどうしても入らない
そこで、何とかこのMCLRを出力ポートっぽく使えないかとネットサーフィンしてみると、お誂え向きの記事を”EDN Japan”のWebサイトで見つけました。このアイディアを採用
土曜日の午前中にササッと回路図を完成させ、プログラムをこれまたササッと組んで実験へ・・・とその前に、回路図をご披露。

今回のブレボ実験は、点線で囲んだ部分です。PICのRA3はI/Oポートの入力として設定しますが、弱プルアップの制御ができるようにします。弱プルアップをオンにすると、見かけ上、数十KΩから数百KΩを介してこのポートから電圧(ほぼVCC)が出力されるため、これをエンハンスメント型のFETで受けてやります。これでスイッチがオン。逆に弱プルアップをオフにするとポートから電圧がでなくなりスイッチがオフ。こんな風に、MCLRのポートが恰も出力ポートのように利用できるというわけです。
ソフトの規模が小さいことから、例によって毎回躓くコンフィグ設定には躓いたもののバグ無し
あっという間に動きました。下の動画は、4から6機の衛星を捕捉している時の様子です。手持ちのスマホで撮ったため目が回ってしまうかも知れませんが、20秒程お付き合いを。
LEDには高輝度のものを使いました。電流制限用の抵抗は3.3KΩとかなり大きいですが、それでも「もう少し暗くてもいいかなぁ
」と悩むほど。画面右下の赤いLEDのブリンク(と言うか、消灯時間)を20msとしてあるためこの動画では目立ちませんが、毎秒キチンと”GNGGA”を受信していることを示しています。
これでブレボ実験は無事終了。後はこいつを基板に組み、フィルタ&バッファ部と接続すれば回路部分は完成・・・ケース加工は気が重いですが、何とか完成には持って行けそうです。頃合いのケース候補も見つけたんで、明後日の都内移動の途中でちょっくら秋葉原に寄って買ってきましょうかね

先週末のハムフェアは、初日の午前中に野暮用が発生して出鼻を挫かれ、午後から行こうかと思ったものの暑くて億劫になり、実験途上のGPSDOのフィルタやらバッファやらの組み立て実験の方に力が入ってしまい結局行かず終い。そのお陰で、この部分は上手く動作するようになりました。そこで今週末は、GPSモジュールからのメッセージを受け取ってきちんと衛星捕捉数を監視する部分をPICに組み込み、ブレボで実験することにしました。
この監視部には、以下の機能を具備することにしました。
◆GPSモジュールとのシリアル通信、受信のみ行う:1ポート
◆GPSモジュールからメッセージ”GNGGA”を受信したら、LED(赤)をブリンク:1ポート
◆”GNGGA”のパラメータから衛星捕捉数を拾い、捕捉数に応じてLED(緑)を点消灯:1ポート
3機未満:消灯、4~6機:点滅:7機以上:点灯
◆シリアル通信の取りこぼしを極力減らすため、クロック発振には水晶を使用:2ポート
通信速度:38400bps、クロック周波数:9.8304MHz
上記の機能具備のために必要なPICのポート数は単純計算すると5ポートになることから、ミニエレキーをこしらえたときに多めに買い込んだPIC12F1822をチョイス。ところが、シリアル通信を行うと(使わなくても)送信ポートも取られてしまい、都合6ポート必要であることに気づき、入力にしか使えないMCLRを考慮するとどうしても入らない


土曜日の午前中にササッと回路図を完成させ、プログラムをこれまたササッと組んで実験へ・・・とその前に、回路図をご披露。

今回のブレボ実験は、点線で囲んだ部分です。PICのRA3はI/Oポートの入力として設定しますが、弱プルアップの制御ができるようにします。弱プルアップをオンにすると、見かけ上、数十KΩから数百KΩを介してこのポートから電圧(ほぼVCC)が出力されるため、これをエンハンスメント型のFETで受けてやります。これでスイッチがオン。逆に弱プルアップをオフにするとポートから電圧がでなくなりスイッチがオフ。こんな風に、MCLRのポートが恰も出力ポートのように利用できるというわけです。
ソフトの規模が小さいことから、例によって毎回躓くコンフィグ設定には躓いたもののバグ無し

LEDには高輝度のものを使いました。電流制限用の抵抗は3.3KΩとかなり大きいですが、それでも「もう少し暗くてもいいかなぁ

これでブレボ実験は無事終了。後はこいつを基板に組み、フィルタ&バッファ部と接続すれば回路部分は完成・・・ケース加工は気が重いですが、何とか完成には持って行けそうです。頃合いのケース候補も見つけたんで、明後日の都内移動の途中でちょっくら秋葉原に寄って買ってきましょうかね
