VFOsysのTS820VFOのDDS化は、ほぼ終了したかと思っていましたが、とんだ間違いがありました。回路図まで書いて基板パターンをおこしてました。完成に近いと思っていましたが、動作仕様に対しての根本の間違いが見つかりました。TS820本体側からの周波数のストリングデータを送出する時のArduinoNANOの送出のプッシュSWの代わりにタイマーICの555を使う方法に切り替える方式にしたのですが、タイマー出力は仕様通りトリガーに対しL状態からHになり、タイマー時間経過後にLになります。立ち下がりでLの入力をD13ポートが検出してシリアルデータを送出するということで動作は確かにしていました。ところが、よくArduinoNANOを見ていると、LEDが周期的に光っていました。通常時はシリアルデータを送らないということでプッシュSWの対策としたのですが、通常時もタイマーICの555のQ出力はLとなっているため、シリアルデータを送出し放しでした。立ち下がりにこだわり過ぎた対策でのトラブルです。とんだ対策で通常時Hとはなっておらず、L状態なのでD13で検出されて送出しっ放しとなるというのが原因です。先ず原因が明らかなので、タイマーIC出力をそのまま使うとする場合は後に対策回路の追加が必要になります。対策は通常時Hとなるようにすれば良くパルスの立ち下がり動作が必要という事が条件になります。対策は最初の対策検討時に使っていたTTLの74121のワンショットパルスを使うことでできそうです。
トラ技のサンプルページに同様のワンショットマルチバイブレータ2個入りの74HC123Aの例がありました。この例での動作は1番Pin入力、出力は4番Pinですが私の使った下記TTL74121は3番Pin入力、1番Pin出力です。端子設定は同じです。私の場合のパルス幅を決める定数は R:10k、C:10μFにしています。計算上の出力パルス幅は約7msecです。私は1個入りのTTL 74121使用しました。

実験中の追加ワンショット回路です。
対策の回路の接続は、タイマーICの出力はD13の検出入力ポートからワンショットの入力に繋ぎ変えます。回路図にワンショットTTL 74121の追加をしました。基板も追加修正してあります。
ここでタイマーICの555の出力は前段のトランジスタからの同相のトリガー(L→H)がかかると今までどおりタイマーがスタートし L→H→L と動作します。追加するワンショットパルス回路の動作として、必然的にワンショットのトリガー入力は立ち下がりを選択することになります。タイマーICの555の出力が HからLになる時に74121のワンショットパルス出力QにL→H→Lのパルスがでます。ただQポートではタイマーICの555の出力を繋いだのと同じで通常時LでNGなのでQの反転ポートを使います。反転なので、通常時Hです。ワンショットは H→L→Hと 丁度プッシュSWを押したのと同じ様に動作してくれます。これで、タイマーが終わると(H→L→H)のパルスが1発出ます。少しタイマー定数の調整が必要でしたが、ワンショット回路追加で通常時のシリアルデータの送出がなくなり、バンドSWを回した場合にのみワンショットH→L→Hのパルスが出て、D2からD12の安定になった選択バンドの電圧を検出し、バンド対応の周波数情報ストリングデータを送出してくれるようになりました。
もう変な動作がないかの最終ESP32DivKitCのVFOsysと本体側のバント選択情報送出用のArduinoNANOとのシリアル通信確認をやっています。今の所、本来の仕様通りにシリアルデータの取りこぼしもなくほぼ問題なくVFOsys側でTFT液晶に周波数表示してくれています。VFOに組み込む基板とは別に実験ボードを用意した分での動作チェックの段階ですが、今度こそ、完成です。
バンドSWを想定したロータリーSWを回して周波数がVFO 側に自動で表示されてる動画です。恒例のいじわる試験(バンドSWを速く回す)もやりましたが、クリアしています。
まだ、本体への組み込みがありますので、油断出来ません。少し回路のまとめもしないといけません。また、シリアル送出部の回路全部を10X8cm のEAGLE CADで基板1枚に入れ込みましたがサイズが少し大きいので、820本体の空きスペースに分けて入れられる様にスイッチング回路とタイマー回路、Single Shot回路をArduinoNANOの基板とは分けて、別基板にしようかと考えています。
つづく?