STM32F103でOCXO Calibrator Part4(構成部品の変更編)
自作・実験工程のメモとして
14.Jun.2020
(最終更新:2020/12/31)
前4編まででAE-GNSSを使ったOCXOの校正器作りを完結としましたが、事前にPPS信号の反転回路を組み込んであることや、作りかけたときには気づかなかった手ごろなTFTディスプレイが安価に流通していることと、完結編とした前回の回路にまたもや間違いが有ったことから、4回目の基板変更に取り掛かることにしました。
ここでは、3月に発注して2か月以上かかって到着したGPS受信器(UBlox NEO-M8N)と、NanoVNAにも採用されている2.8"TFTディスプレイを中心に回路追加とともに、初版のAE-GNSSやOLED(2.42" 12864 SSD1309)の使用も考慮した互換性を保ちながら不要部分を省く形でまとめました。
このページに掲載していない情報は、4つ前からの前編・続編・番外編・完結編を参照ください。
基板セット頒布のお知らせ
2020/12/21:更新(追加)
PCB頒布のお知らせ (2020/06/17)
8枚程度基板が残ったため、ご希望の方に頒布いたします。
なおフロントパネル枠は、PCBとして発注しましたので、キズ・汚れ・レジストの塗ムラが有ります。選別してお送りできませんのでご了承ください。
無くなり次第、終了となります。(予告なく頒布を打ち切る場合もあります)
頒布条件等
1.頒布品(送料別)
セット構成 |
金額 |
数量 |
(A)OCXO Calib.基板セット
2020/11/23:出庫 1 2020/12/21:出庫 3

■OCXO Calibrator V5 基板 ・・・・・・ 1枚
■フロントパネル枠(Displayベゼル) ・・・・・ 1枚
■USB2.0 Type-Cの目隠し板(4枚分一組 ) ・・・・・ 1組
■2SK241(FET) ・・・・・ 1本
■24C256(EEPROM) ・・・・・ 1個
(2SK241・24C256は、1個単位で入手が難しいので添付します)
基板のV-CUT部分はカット後に紙やすり等できれいにしてください。
組立実装の参考になればと、写真サンプルのページを臨時に用意しました。(別ページ)
(2020/11/27:追加)
|
500 |
3 |
(D)PIC24FV32KA301 プログラム済みセット

2020/12/21:入手性が悪いと思い追加いたしました。 | 400 |
3 |
(B)OCXOCalib.組立済み基板セット
2020/08/27:出庫 1 2020/12/21:(A)セットから入庫 2を組立
PIC24FV32KA301を入手する機会があり、(A)のPCBセットから2枚を組み立てました。

■OCXO Calibrator V5 組立調整済み基板 ・・・・・・ 1枚
内訳:CRハンダ付け済み・EEPROM・STM32F103・PIC24FV32KA301・74HC00・74HC74・USB2.0 Type-Cソケット・主要ピンヘッダ&ピンソケット・等
TFT & NEO-M8Nでテストしました。(温度センサは未実装)
■フロントパネル枠(Displayベゼル) ・・・・・ 1枚
■USB2.0 Type-Cの目隠し板(4枚分一組 ) ・・・・・ 1組
ケース加工の位置決め用に古い基板(V4以前)を(無料)添付します。不要でしたら、「ケース加工用基板不要」とでも追記ください。
|
2,500 |
2
|
(C)OCXOCalib.パーツUBlox NEO-7M基板セット
2020/11/23:出庫 1

NEO-7M (動作確認済み) ・・・・・・ 1枚
動作確認後、不要になりました。
使用するには、GPSアンテナ等が必要になります。
|
500 |
0
|
2.頒布数: 上記数量
3.サポート: 製作のサポートはありません。(ホームページの情報のみで製作ができる方)
4.金額: 上記頒布品の項に表記した金額
5.送料:
頒布希望の場合は送料200円を加算してください。
(クリックポストで一週間以内に発送予定。日本国内のみ)
6.支払い方法:
着後一週間以内に振込み(三菱UFJ銀行口座宛)をお願いいたします。
(振込み先は、発送時にご案内いたします。振込手数料は送金者負担でお願いいたします。)
7.ご希望の方は、
宛先:コールサイン@JARL.COM
(コールは、このページのタイトル等に記述してあります。)
件名:「 (A)OCXO Calib.基板セット又は(B)..(C)...セット頒布希望」
その他
コールサイン:(無ければ不要)
必要数:
郵便番号:
住所:
氏名:
をご記入の上、お問合せください。
|
上部はOLEDディスプレイ採用の1台目、下部は新たにTFTディスプレイを採用した2台目で同じOCXOを測定中

下側(TFTディスプレイ・タッチペン仕様)には、100円均一に売っているゲーム機用の液晶保護フィルムを切って貼り付けています。
ケース上側はCU-13N、下側はCU-14Nとなります。(タカチ)

今回2台同時に稼働させるため、秋月電子のTV用アンテナ分配器(75Ω)を使い、GPSアンテナを2台に分配しました。
Edit by bluegriffon 3.1
キーワード:GPS基準による周波数カウンタ・Frequency counter・GPSをゲートにした周波数カウンタ・Frequency counter with GPS gate
1.OCXO 校正器(V5)のブロックダイヤグラム(BDG)と回路 |
文頭に構成部品の変更を試すとしていますが、もう一つはWeb上で見つけたアジレントの「エレクトロニック・カウンタの基礎」(January 23.2006)というPDFに「同期ゲーティング」(以下、「同期ゲート」と略す)という解説があり、V4の回路上でもD-F/Fが一つ余っていることから試してみることにしました。
また、表示部と操作ボタンSW部は、以前のデバイスと「TFT DisplayとTouch入力」を排他的に選択できるようにしています。
なお、BDGには入れていませんが、前回まで温度測定で使用を想定していた「AE-BME280」は、温度だけの測定なら勿体ないのでトランジスタ型のセンサーに変更しました。
今回で5枚目のPCBとなるため、V5と表記しています。
■.OCXO 校正器(V5)のBDG
このブロック・ダイアグラムは、 https://app.diagrams.net/ を利用しています。
1.「同期ゲート」回路に余っていたD-F/Fを使いました。
2.D-F/Fは手持ちに74AC74が有ったのでAC74と明記していますが、74HC74に読み替えてください。
■.OCXO 校正器(V5)の回路
クリックでpdfファイルが開きます。
1.「同期ゲート」回路は、中央辺りにある74HC74を中心とした回路で、従来からの「直接ゲート」も選択できるようにジャンパーブリッジを設けています。
2.問題が発生した時を考えて「GATE2」信号をSTM32に取り込んでいますが、今のところ不要となっています。
3.V4での間違い修正や、温湿度気圧センサー(AE-BME280)から温度センサー(LM61CIZ or MCP9700A)への変更を行っています。
今回もまた前回と同様にネジ穴やコネクタの位置は変更せず、前作を踏襲した構成にしています。
また、配線についても同様でパターンは自動配線を使わず、一貫して手動配線で行っています。
■.PCBの3Dビューアー(表面)
1.左上部の温度センサーをAE-BME280から安価なLM61に変更しています。
2.また、2種類のディスプレイ対応用に中央上部を整理してピンヘッダーを用意しました。
3.使う予定は無いですが、念のために用意していたパターンも前回同様に残しています。
■.PCBの3Dビューアー(裏面)

中央下部が「同期ゲート」と従来からの「直接ゲート」を切り換えるジャンパーブリッジ部分になります。
第1項に書きましたが、アジレント社の資料を読んで精度が上がるなら試してみたいなと思っていたら、たまたまD-F/F(74HC74)の片方が未使用だったので、即採用しました。
回路の解説等に興味のある方は、「エレクトロニック・カウンタの基礎」でWeb検索すると最上位に出現するようですのでご確認ください。
■.「同期ゲート」回路の抜粋
1.資料の通りにD-F/Fを追加しましたが、元の回路に戻せるようにジャンパーブリッジを置いています。
2.以前は、GATE信号の立下りでカウンターを読み出していましたが、同期ゲートでは、無信号時にGATEが閉まらないようになるためCRデレーを入れて、強制的にGATEオフの状態を作って後にプログラム上でD-F/Fをリセットしています。(デレー時間は、4.7KΩと0.1uFで約0.5mSぐらい)
3.上記デレーは、周波数で言えば2KHz以下の周波数測定で影響が出る値で、本器の最低測定周波数(100KHzを想定)から見れば影響なしと考えています。
4.また、「直接ゲート」選択の時も、上記デレーは影響ないと思われます。
■.「遅延」CRデレーの実測 (2020/09/24:追加)
オシロを使う機会が有り、遅延回路の時定数を測ってみました。
理論値に近い値で遅延回路が動いているようです。
最初本器に取り掛かった時は気づかなかったのですが、OLEDを使ってみると確かにきれいなフォントで表示できますが、欲を言えばカラーで表示したい・もっと文字数を増やしたいと思ってきました。
また、OLEDの価格がそれなりに高価なので、別の物を探しているとTFTディスプレイ デバイスが数多く流通しており、OLEDより安価に入手できそうなため両方に対応するように変更しました。
■.ディスプレイ デバイス(2種)の私的比較
種類 |
イメージと品名 |
メリット |
デメリット |
OLED |

Amazonでの品名:2.42" OLEDデジタルIIC I2C SPIシリアル12864 128X64 SSD1309ピクセルLCDスクリーンディスプレイモジュール Arduino に対応 C51 STM32 DIY向け |
U8g2フォントを使用しましたが、とにかく表示速度が速く、全画面の文字の書き替えが約12mSで完了する。 |
相対的に価格が高い。
モノクロである。 |
TFT |

Amazonでの品名:HiLetgoR 2.8 "TFT LCDディスプレイ タッチパネル SPIシリアル240 * 320 ILI9341 5V / 3.3V STM32 [並行輸入品] |
相対的に価格が安い。
カラーで表示できる。
ペンタッチ入力ができるため、入力回路が省略できる。 |
こちらも最終的にU8g2フォントを使用しましたが、1画面の文字の書き替えに約330mSもかかります。
また、タッチペン入力が若干押しにくい?。 |
前回までは、秋月電子のAE-GNSSを使用していましたが、当初からUBlox社のNEO-M8Nという受信器(受信モジュールと表記することも有り)も視野に入れていました。
事前に同受信器のピン配列がAE-GNSSと同じ並びになっていることとを確認していたことと、いつでも対応できるようにと当初からPPS信号の反転回路を用意して、3月には発注しましたが入手に二か月以上もかかってしまいました。
そのため別のショップにも発注し、最終的に同じものを2個入手することに成りました。
やり残したことの一つとして、UBlox社のNEO-M8Nと、同NEO-7Mの2つについて試してみました。
■.今回追加したGPS受信器
種類 |
イメージ |
使用感(私的) |
お勧め度 |
(1)
NEO-M8N
|

|
使用衛星数(Number of SVs used)は、12(AE-GNSSとは違い、$GxGGAの中の値は12以上には増えない)で安定している。
出力するNMEA信号の種類がAE-GNSSと*違うため、プログラム中で変更処理を実施した。
(*:$GPGGAと$GNGGAの違い等)
尚、ラベルが「NEO-M8N-0-10」であってもファームウェアー(以下、F/W)は、V2.01の品が有りラベルは当てにはなりません。 |
○
(使用衛星数が多かったため) |
(2)
NEO-7M
|

|
使用衛星数は、8個程度でM8Nよりは少ない印象です。
出力するNMEA信号の種類がM8Nと少し違うため、上記と同様にプログラム中で変更処理を実施した。 |
□ |
(3)
NEO-M8N
別タイプ
(追加) |


|
別タイプのNEO-M8Nが有りましたので、入手して試してみました。
パッチアンテナがTFT液晶用のコネクタに干渉するため、ピンヘッダの位置を逆面に移動しました。
また、外部アンテナを使用時は、内蔵パッチアンテナが干渉するようなので、C3 C2を外しています。
(カット位置をC2に変更)C3 C2を外した状態で使用衛星数は、12で安定しているように見えましたが、時々NMEAフォーマットが崩れ??使用衛星数データが無効になります。(C2を外しても同様に崩れが有り) この個体だけの問題かどうかは分かりませんが不安定です。
(2020/10/05:追記)(2020/10/09:再追記)
別の品を手配して確認したところ、干渉やフォーマットの乱れは有りませんでした。ただし、NEO-M8L??が届いたようです。(使用衛星数はMax10個でC2カットで12個)(2020/11/22:再追記)
|
□
これは高さが有るので、大きい方のケース(CU-14N)で無いと蓋が閉まりません。そのため、限定的。 |
(4)
NEO-M8N
モジュール(Module)による自作基板
(追加) |

|
上記「(3) NEO-M8N 別タイプ」でNMEAフォーマットが崩れる??現象が納得いかず、NEO-M8Nモジュール(単品でそれなりの価格)を入手して、基板を作ってテストしてみました。
残念ながら(3)同様に、特に38400bpsに落とした時には顕著に崩れ現象が発生します。
本ModuleのF/WバージョンはV3.01で、2020年を示すロットのようですが、新しい品?は上手くいかないのか不明です。(2020/11/22:追記)
頒布の申し込みが有り「NMEAフォーマット崩れ」について実験してみました。詳細は、「19.その他気づいたこと」の「NMEAフォーマット崩れ」に追記します。(2020/11/25) |
× □
SMAコネクタを横方向に出せるようにしましたが、「NMEAフォーマット崩れ」により使えませんでした。F/Wバージョンダウンで使えそうです。 |
以下は、上表の
(1)(2)についての記述になります。
1.両器とも小さなボタン電池のような物が見えますが、スーパーキャパシタ?のようなもので、電源OFFにして1時間ぐらいで設定値が初期値に戻ってしまいます。
2.EEPROMが両方に載っていますが、写真右側(裏面)は共通で写真左側(表面)のチップのみ違う製品のようです。
3.UBlox社の
u-center.exe でUARTの速度を変更してEEPROMに書込んだつもりでも、実際は書き替わっていないようです。(私の場合)
4.実際はUARTの速度のみ変更で、その他は初期値のまま使用する予定です。
5.なお、PPS信号は両器とも「
アクティブHIGH」となり、基板上の
ジャンパーブリッジ(JP3/JP4)の切換が必要になります。書き
1.数か月間放置していても設定が記憶されていることを期待して、電池でバックアップすることにしました。(XHコネクタ)
2.右の拡大写真に有りますように、一応ダイオードを通してスーパーキャパシタ?のプラス側にハンダ付けしています。
以前より温度センサーは、シャーシ後部から小さな穴を通して外気を取り入れているつもりにしていましたが、通常の温度計と比べ2度ほど高い値を示すため、シャーシ後部に穴を空けセンサーの頭を出すことにしました。
温度の特性は、最初は氷水と体温で2点間の値を取って合わせようとしましたが、氷水も本当の零度かどうかが分からず、目覚まし時計の温度計を参考に程々の数値に合わせています。
■.温度センサー
左側はPCB面から約5mmの高さに5Φの穴を空け、センサーの頭を突き出しています。
センサーは、LM61の他にMPC9700Aも試してみました。
7.各デバイスの切り換えとソース(スケッチ)ファイル |
スケッチは前回ののもに加筆して作っていますが、デバイスの選択にヘッダーファイル(xxx.h)を用意して、ソースファイルが分散されないようにしました。
取りあえず動くという状態ですが、参考に公開しておきます。(zipファイルとして)
目新しいこととして、新たにTFTディスプレイ(Touch入力付き)デバイスを追加したことで、Touch位置のキャリブレーションもできるようにしています。
また、OLEDとTFTの表示にかかる時間が大きく違うため、どちらも同じような表示頻度に揃える処理をしました。
■.STM32_GPSCOUNTER_V50.h ファイル で機能を選択するようにしました。
// STM32F103C8T6
// 周波数カウンター Frequency counter(別名:OCXO 校正器:Calibrator)
// 2020/05/25
// 表示器の選択(何れか)
#define OPTION_SSD1309_OLED // Input ANALOG_4_BUTTON_SW
//#define OPTION_ILI9341_TFT // Input XPT2046_TOUCH_SW
// GPS受信機の選択(何れか)
//#define OPTION_AE_GNSS
#define OPTION_UBLOX_NEO
// UBlox ENO-7M M8N の識別(何れか)
//#define SEL_UBLOX_NEO_7M
#define SEL_UBLOX_NEO_M8N
// 温度センサー(何れか又は、二つとも無し)
#define OPTION_TEMPERATURE_SENSOR_LM61
//#define OPTION_TEMPERATURE_SENSOR_MPC9700A
/*
*
* UBlox ENO-7M M8N の識別は、以下の条件式で選択する(2020/06/07)
* #if defined(OPTION_UBLOX_NEO) && defined(SEL_UBLOX_NEO_M8N)
* #if defined(OPTION_UBLOX_NEO) && defined(SEL_UBLOX_NEO_7M)
*
*/ |
不要な記述を // でコメントアウトする。
2020/06/14:V50_10 ・ 2020/06/18:V50_11 ・ 2020/07/12:V50_12 ・
2020/08/31:V50_51 ・ 2020/11/25:V50_52 ・ 2020/12/03:V50_52a ・(旧ソースファイルのリンク削除)2020/12/13:
V50_53 画面表示回数を1回/秒にする。他
2020/12/15:
V50_54 Timer2で[STAT]キーの早押し抑制を付加した。
2020/12/18:
V50_54a PIC側のLEDがカウント毎に点滅を繰り返さなかったので、picRESET()を一ヶ所コメントアウトした。
2020/12/28:
V50_54b ディスプレー上の表記等の軽微な変更。
解凍したフォルダーを「
スケッチブックの保存場所フォルダー」の中に入れて、IDEを立ち上げなおすと扱えると思います。
(内容は、STM32_GPSCOUNTER_V50.h と STM32_GPSCOUNTER_V50_5x.ino ファイル)
PIC24FV32KA301側のプログラムに変更は有りません。(念のため、リンクを追加:2020/12/18)
OCXO Calibrator 操作マニュアル(簡易マニュアルを添付しておきます。:2020/12/18)
■.Arduino IDEのボード設定 (STM32duino)
使用しているSTM32F103C8T6(Blue pill)は、公称64k Flashですが、私の手元に有る品は多くのWeb上の情報通り128k Flashまで使用できます。
特にTFTディスプレイを使用する設定の場合は、プログラム容量が64kを超えており、日常的に128k Flashの設定にしています。
ほとんど前回と同じになりますが、パーツリストとして書きだしておきます。
このほか、ディスプレイ デバイスの選択・GPS受信器の選択・ケーブル・ケース・ビスナット類等々必要になりますが、省略しています。
また、本器の調整ポイントを簡単に記録しておきます。
分類 |
Reference |
数量 |
Value |
手配先 |
品番等 |
注単位 |
メイン基板用 |
C1,2,4,5,7,8,9,12,14,15,16,18,19 |
13 |
0.1u |
Amazon等のパック品
0805(2012)
計17個 |
13,17 |
2 |
10u |
C11 |
1 |
1u |
C10 |
1 |
470p |
D1 |
1 |
LED_AK |
秋月 |
I-11577 |
1 |
D4 |
1 |
LED_AK |
ピンヘッダーで取り出し |
J1 |
1 |
Conn_Coaxial |
秋月 |
C-13195 |
1 |
J4 |
1 |
USB_Type-C |
秋月 |
C-14356 |
1 |
L1,2 |
2 |
2uH |
秋月 |
P-11179 |
5 |
Q1 |
1 |
2SK241 |
Amazon等の品 |
Q2 |
1 |
2SC3355 |
秋月 |
I-09742 |
1 |
Q3 |
1 |
2SC1815 |
秋月 |
I-04268 |
10 |
R21 |
1 |
10k |
Amazon等のパック品
0805(2012)
計23個 |
R7,13,22 |
3 |
1k |
R5 |
1 |
1M |
R4 |
1 |
2.2k |
R8,9 |
2 |
22k |
R2,3,12,15,16,20,23 |
7 |
22R |
R10 |
1 |
330R |
R18,19,25 |
3 |
4.7k |
R14,17 |
2 |
5.1k |
R6 |
1 |
680R |
R11 |
1 |
82R |
U1 |
1 |
74HC74 |
秋月 |
I-10879 |
1 |
U2 |
1 |
74HC00 |
秋月 |
I-10856 |
1 |
U3 |
1 |
PIC24FV32KA301 |
RS-Online |
742-1170 |
1 |
U4 |
1 |
STM32F103(BP) |
Amazon等の品 |
U5 |
1 |
CAT24C256 |
aitendo |
BL24C256A-PA |
1 |
U6 |
1 |
LM61CIZ |
秋月 |
P-03281 |
1 |
VR1 |
1 |
RV50k |
秋月 |
P-03281 |
1 |
|
2 |
ICソケット14P |
秋月 |
P-00028 |
1 |
|
1 |
ICソケット20P |
秋月 |
P-00031 |
1 |
|
1 |
分割ピンソケット(細)40p |
秋月 |
C-10073 |
1 |
P1(RF_in) |
|
CONN_2(PH) |
秋月 |
C-00167 |
1 |
OLED選択時 |
P7(A_SW) |
|
CONN_3(PH) |
P5(OLED) |
|
CONN_7(PH) |
TFT選択時 |
U7(TFT) |
|
CONN_9(PH) |
U8(touch) |
|
CONN_5(PH) |
必要時 |
U9(SD) |
|
CONN_4(PH) |
GPS用5ピン |
P2(GPS) |
1 |
CONN_6(PS-5p) |
|
C-02762 |
|
OLED選択時の操作ボタンSW |
SW1,2,3,4 |
4 |
SW_Push |
秋月 |
P-09825 |
1 |
R1 |
1 |
10k |
Amazon等の品 |
R2,3,4 |
3 |
1k |
Amazon等の品 |
未使用品 |
C3,6 |
0 |
10u |
|
|
|
F1(リード線でショート) |
0 |
Fuse_Small |
|
|
|
R1 |
0 |
51R |
|
|
|
R24 |
0 |
100k |
|
|
|
SDカードを使用する場合は、ベゼル上端より14mmの高さが必要になります。
2台目に採用したケース(CU-14N)では、この高さを確保しましたが、CU-13Nでは難しいと思います。
■.RFアンプの調整
RFアンプの調整は、無信号時にQ2(2SC3355)のコレクターの電圧を、理論的には2.5Vに調整すれば良いのですが、私は次のようにして追い込みました。
1.ある程度周波数とその出力レベルが安定している発信源を用意する。
2.ステップアッテネータ等でその信号レベルを落とながら連続して測定する。(GATE=1秒)
3.出力される周波数値が安定するような位置にVR1を調整する。(調整範囲はだんだん狭くなります)
4.上記の2.3.を繰り返して、最小信号レベルで安定した測定ができたところでテスターで電圧値を読み取る。
5.2台調整した結果は、OCXO(出力レベル:約+4dBm) に ATT(20dB) を挿入し、2.17Vと2.31Vになりました。
2020/07/25現在、2台とも2.50Vに調整しています。
一つ前の掲載でも手持ちOCXOの周波数合わせを書きましたが、ここでは同OCXOを2台の校正器(周波数カウンタ)で測定してみました。(文頭の写真)
「同期ゲート」を使ってスタートSWも同時に押し、同じ条件のはずですが±1カウントほど違う計測数を記録することが有ります。
これは1000秒の間に、百億カウントしたか・百億1カウントしたかの違いで、測定のバラツキとして容認する必要があると思いますが、3カウント以上のバラツキが出た場合は、測定上のトラブルや調整の不良を疑うことに成ります。
ここでは、前回も使ったOCXOを2台の校正器で測定した状況と、新たに手配したOCXO(Double Ovenらしい?)が入手できましたら追加して測定を予定しています。
■.手持ちOCXOの2台同時測定時のLOG(OLED側とTFT側)
画像を左右に並べましたが、画面によっては縦の展開となっていると思います。
同時にスタートしていても、微妙にカウント数が違うのが現状です。
■.手持ちOCXOの2台同時測定時のLOG 2(OLED側AE-GNSS と TFT側NEO-M8N)

2台とも同じころにカウントが大きく減少(値は違う)しています。
GPSアンテナから入ってくる電波の減衰なのか、外来ノイズなのか、OCXO出力のディップなのか、PC(共通)のUSB電圧の変動・低下なのか、原因は特定できません。
その後:3つ目のNEO-M8Nを入手してNEO-M8Nを交換しながら2台の平行測定をしていると、GPS受信器の個体差によって一方にカウント増減が発生するような傾向がありそうですが、証拠となるようなデータは取れていません。(追記:2020/09/05)
■.新規入手OCXOのイメージ (2020/07/12:追記)
■.新規入手OCXOのLOG (2020/07/12:追記)
1.入手当初は、約300mHzほどプラスの周波数を発振していましたが、±20mHz以内には調整できました。
2.これ以上調整しようとすると、多回転ボリュームでも非常に合わせにくい為、あきらめました。(追記:少しチャレンジして差が開いてしまいました)
3.上記LOGの5番目の記録で、その前のカウントから18mHz分マイナスを示し、この後12時間以上にわたって2mHz以内の変化に収まっています。
これは、以前から手持ちのOCXOでも同じような傾向が有り、PCを分離(デスクトップとノートPC)したり、OCXOの電源を交換して切り分けを試みましたが、明確な答えが見つかっていません。
OCXOを2台用意して、同じような傾向を示すことからOCXO個別の問題ではなさそうです。
■.OCXO最近の校正方法(2020/12/31:追記)
本器(OCXO Calibrator)を使って気長に手持ちのOCXOを調整していましたが、多回転ボリュームを微少量回していくだけでは思った量の変化も無く、逆方向に変動することも有り難しく感じていました。
そこで、ボリュームの中点の電圧を取り出せるようにソケットをハンダ付けし、電圧計(テスター)で読み出すことにしました。
電圧測定のための電極ソケット
赤色熱収縮チューブの線がボリュームの中点、黒がアース電位になります。(ちなみに、ボリュームのホット側は7.266V)
小数点以下3桁表示のテスター

この値が平均で 9,999,999.9998Hzに収束する値になります。
この値を見ながらでないと、ボリュームのツマミネジだけの調整ではほんの少し回しただけでも大幅な変化をしたり、多めに回したつもりでも逆に変化しなかったりします。
OCXOの校正方法は、オシロスコープでリサージュ図形を出して合わせる方法など色々あると思いますが、最終的にはVconの電圧を微調整して合わせることに成ると思います。
この値を計測結果からコントロールしてやることにより、短時間に最適な電圧値を求めることができるのではないかと考えるようになりました。
上手くいけばGPSDOに発展させられるかという希望??を抱きながら新年を迎えたいと思います。
多くは有りませんが、「このような機能が有ったら良いな」ということを思いつくままに追加していく予定です。
■.BEEP 音 (2020/06/18)
TFTディスプレイをTouch操作していると押す感覚がはっきりせず、操作しにくいと感じていました。
そこで、取り出せるようにしていた汎用ポートを使って、操作音を出してみることにしました。
(1)回路

5V駆動で回路は書きましたが、R27は3.3V時に330Ωでも十分聞き取れる大きな音が出ています。(ケースに収めた状態で)
(2)SUB基板を組んで設置

PB0を取り出せるようにしていた位置へSUB基板で垂直に設置しました。
BUZZERは、秋月電子 [P-09704] 電子ブザー 12mm UDB−05LFPNを使用しました。
■.BEEP 音2 (2020/08/31)
BUZZERの駆動電流からトランジスタ(2SC1815)を入れるほどでもないので、簡易的な回路に変更しました。
STM32のHIGH出力が3.3Vで200Ωを直列に入れて、鳴動時の電流値は2.4mA〜2.7mA(2個作って実測)ぐらいになりました。
一段落ついた後は、継続的に検証や調整を続けていますが、その中で気づいたことを記録していきます。
■.OLED表示の構成で温度センサー値が変動する (2020/10/18)
2台同時に測定していると温度変化がそろわないことが少し気になっていましたが、グラフにしてみると片方の変化が大きいことが分かります。
OLED表示(LM61)とTFT表示(MPC9700A)の温度変化の測定
TFT_MPC9700Aに比べて
OLED_LM61側の変動が大きいのが分かります。
センサーの不良等かと、LM61をMPC9700Aに交換してみましたが変わりません。
原因:温度センサー(PB1)と同様に、OLED表示時はキー入力SWをアナログポート(PA1)で読み取っていますが、その影響(PA1=通常3.3V)で温度センサー読取に影響が出ているものと推測しています。
対策:読取方法を変えてみましたが、決定的な解決策が見いだせず『
OLED使用時は温度センサーは使用しない』ことにしました。(割り切り)
TFT表示構成を2台用意して温度変化の測定

センサーの変動倍率やオフセットは調整していませんが、両センサーとも異常と思えるような変動が無くなりました。
両センサーの変動幅が違うのは、出力の傾き・オフセットを独自に変更したためで、上昇・下降の傾向は揃ってきています。
■.「NMEAフォーマット崩れ」についての実験 (2020/11/25)
5項「GPS受信器の選択」で触れた、GPS受信器から出力されるNMEAフォーマットが崩れる件は、特に9600bpsの時にデータ量が多すぎて1秒の間に受信できない関連もあると思いますが、比較的新しいModuleに多い傾向が有るような状況のため、F/Wの書込み(書き替え)を実施してみることにしました。
対象となるGPS受信器は、自作PCBの品を使います。(書込みは前日の24日に実施)
(1)元のF/W情報モニタ画面

F/Wは、3.01を示しており、u-bloxのpdf資料に出てくる画面イメージと同じ情報が読み取れました。
この状態で、9600・38400bpsでほぼ100%「データ崩れ」が発生し、115200bpsでも時々発生することが有りました。
(2)UBX_M8_301_SPG.911f2b77b649eb90f4be14ce56717b49.bin 書込み後のF/W情報モニタ画面
F/Wのファイル名からみて、V3.01だと思いますが、u-centerで手順通り書込みができます。
元の状態と同様に、9600・38400bpsでほぼ100%「データ崩れ」が発生し、115200bpsでも時々発生することが有りました。
(3)UBLOX_M8_201.89cc4f1cd4312a0ac1b56c790f7c1622.bin 書込み後のF/W情報モニタ画面
F/Wのファイル名から、V2.01だと思いますが、u-centerで手順通り書込みができます。 (バージョンダウン)
この状態で、他のF/W V2.01のモジュール基板と同様に、9600bpsではデータ量の関係でほぼ100%「データ崩れ」が発生します。
しかし、38400・115200bpsでは正常にNMEA信号を受信できています。
必要とするNMEA信号は、$GNGGAと$GNRMCだけで、38400bpsでは両信号は含まれていますが他の信号が少なくなっております。
一方、115200bpsでは両信号と他の信号も漏れなく受けきれています。
(4)NMEAフォーマット崩れのイメージ (Tera Term画面の切り抜き)

画面中央付近の「Num,YYMMDD,HHMMSS,StMin,StMax,Freq,(+-),gpsLoss,ppsLoss,picLoss,TEMP」行より上が正常受信時のLog出力で、下側は「データ崩れ」時のLog出力です。
上側は、「
12,12」又は「
11,12」という部分が有りますが、受信した
$GNGGAの使用衛星数をモニターし、計測時間(上側1000秒)の間の最小数と最大数を記録しています。
下側は、その部分が「
99, 0」となっており、
$GNGGAが受けられないのでそれぞれの初期値(最小=99、最大=0)しか記録できていません。
また、
$GNRMCが受信できない関係で年月日が確定できていません。(2000/00/00 部分)
尚、

のタイプのGPS受信モジュールは、ラベルが当てにならず新しいものに見えてもV2.01が多く存在します。
V2.01品の方は、「データ崩れ」については発生していないようです。
■.その他 ()
追加していきます。
大幅な改定・追記用