この記事で作っているモノはまだケースに入れていないので作成中の状態となります
ですがバラックのまま動作可能ですから最終作業はのんびり進めようと思います。
【こんな感じで全体の構成を考えてみました。】
SI5351aをVFOに使う(以前に秋月電子で買ったモジュール)
マイコンはArduino pro mini(5V/16MHz仕様)
受信は高一中二のシングルスーパー
1stミキサーにダイオードDBM(ND487C1-3R)
RF・IFアンプには3SK294を使う
検波にはSA612AD
フィルターには6素子で帯域700Hz程度のラダーフィルター
送信出力は0.7から1W程度を目指す
電源電圧は3.7Vリポの2Sを想定しているので7.4Vで設計してみる
特別な事はしていませんが過去の経験で気になっていたところは改良に取り組みたいと考えています
今回は初めて使うデバイスとして3SK294・2SC4116・SA612A・PchMOSFET・2N7002KがありどれもSMDです
全体の半分くらいを表面実装部品で作ることになります。
回路全体は可能な限り手抜き(シンプルを目指す)をしながらツボは抑えていきたいです。
1stミキサーにはダイオード式のDBMとしてみます、先にお伝えしておきますがミキサーの性能を向上させるためではありません、たまたまSi5351aの出力が大きいのと矩形波出力なのでダイオードDBMにはちょうどいいように思っただけです
RFアンプは受信時の不要輻射を抑えるために特に素人が作るダイオードDBMの時は必須としておいた方が良いと思います。
受信全体の構成としては高一中二です
検波には何度も回路を書き換えては悩んだ末にSA612Aとしました
検波段に使うのでAGCで可能な限り十分に管理されたレベル範囲内での信号(IF出力)をSA612Aに渡せれば美味しく頂けるのではないかと打算的に考えた結果です
SA612Aの入力は50mVppを超えないようにしたいと思っています、それとSA612Aを使うと独立したBFOの発振回路を用意しなくていいことも最終的な決め手になりました。
RFとIFアンプには3SK294を使います、初めてなので癖とか特徴は知らないのでデータシートを頼りに動作点を想定しています、今までは3SK74を使ってきましたがこれはデプレッション寄りのエンハンスメントのようなFETですが3SK294は完全にエンハンスメントなので設計しやすいように思います
具体的には利得と利得制御がソースに対してプラス側だけで良いので楽です、もちろんG1とG2の両方をうまく使う必要はあります
パッケージが小さなSMDですが性能はいいような気がしたので採用しました、それに低価格なのも嬉しいです。
RFアンプはあまり利得は要らないのですが結果的には利得過剰と思われるのでソースに抵抗を入れています(バイパスコンデンサは入れません)、必要以上に利得が高すぎたときはソース抵抗で調整しようと思います。

G1とG2を制御していますが、ありふれた簡易な回路としています。
3SK294のソースには10Ωを入れています
過大利得だったときは抵抗で調整する予定です。
R62のG1バイアス用抵抗は2.1KΩにしていまが、ここは抵抗1本分のスペースに1.1Kと1kを直列にして基板に取り付けます。
IFアンプは2段とも同調回路を使わずRFCの負荷で済ませています、22μH(AL0307-220K)を使いましたがもしかすると10μHの方がベストかもしれません。

ラダー型フィルタは6素子にしました、画像のとおりの特性ですが周波数の低い側が高い側よりも傾斜が緩いためBFOの周波数は低い側にセットします、


スパン3KHzで見ています
-6dBの帯域は710Hz
-60dBの帯域は1.9KHzです
UM1型の12.8MHzクリスタルは普通に使うと2KHz程度しか動かせないのでSA612Aでの発振回路には10μHのマイクロインダクタを入れてVXO風にすることで目的の周波数に設定できるようにしました。
気休め程度ですがSA612Aの出力側に簡易なπ型LPFを入れています
回路図の定数(47mHと0.68μFのπ型)で約800Hzあたりから減衰をしますが簡易なものですから減衰特性は緩やかですが無いよりはマシ程度に考えています。
このπ型LPFのインピーダンスは入出力が230Ωくらいなのですが、そこは無視していますが実測してみたところ特に問題は無いようです。

このLPFを出たらTA7368Pへ繋がります、SA612Aの出力レベルを考えると、たぶんAF用のプリアンプは不要だろうと考えました。
従来と少し違うのは送信時のミュートのかけ方です、MOSFETで信号ラインそのものをON・OFFしています、そのタイミングはマイコンで設定することにしました。

Q6の2N7002Kがmute回路です
これのソース側には抵抗が必要ですが10kΩのAF_VRで代用しています。
送信部は2ステージです、Si5351aの出力は送信時は受信時とは別のポートclk1から出力します、直接送信周波数を出力するから回路が簡易になりました、この信号は複同調回路で十分にフィルターしてからドライブの2SC1815GRで増幅します。
今回は同調回路経由で終段と接続します、これは高調波を少しでも抑えることができればいいなと思っての事です。
終段には三菱のパワーMOSFETのRD01MUS2を使います、SOT89のSMDですが基板に直接面実装するから放熱は基板で行います。
ゲートバイアスの有無でON・OFFが制御できるためドレイン電圧はかけたまま使います
ドレイン側は9対4の簡易なトランスを経てLPFへ繋がります、LPFは7次で設計していますコイルにはQRPなのでT25-2を使いました。

送受切替の電源切換回路には通過ロスを最小限にしたかったのでPchMOSFETを使ってみました、Dualパッケージのものを使っています、殆どの回路は6Vで動かしていますが実際には5Vの三端子レギュレータに下駄をかませてるので5.6Vが実際の回路電圧となります。
この低い電圧は3SK294の動作には5から6Vもあればいいのでそれに合わせただけの話しです
AFアンプのTA7368Pと送信終段のFETはそれよりも少し高めの電圧が欲しいので8V程度を想定していますが、何気に3.7Vのリポバッテリーの使用を思いつき標準電源電圧は7.4Vとして考えてみました(実際に動作する電圧は6Vから9Vの範囲で使えます)。

基本回路はFDS4935AのDualパッケージPchMOSFETを使った回路です
SMDなのでついでに周辺部品もSMDを使いました。
SS2040FLのダイオードはSBDです、たまたま手持ちにはこれしかなかったので使っただけで普通のスイッチングダイオードでOKです。
ここまでの内容を盛り込んだ全体の回路図です

回路図をPDFでご覧になる方はこちらをクリックしてください。
注文していた基板が届いたので表面実装部品から取付けていきました、ため息が出てしまったのは3SK294です、2SC4116と同様に小さいのはいいとしても3SK294はリードが細くて短いため最も取付けにくくて気を使いました。これを取り付けた後のチップ部品は簡単に感じるほどでした。
全体的に部品数が少ないので思ったより簡単に全ての部品を取り付け終えることができました。
ラダー型フィルタの特性を測っておきたかったので、ここは前後の部品を取り付ける前にラダー型フィルタ単独にとどめて計測しました、このラダー型フィルタは「なんちゃってチェビシェフ」ですが正しい計算はせずに適当に手持ちのコンデンサに合わせて定数を決定しています、ですが単純なラダー型よりもスカート特性が良かったので深追いすることはせず安易に決め打ちしました。
受信部のほとんどは表面実装部品(コイル類は除く)で構成し基板の裏側に取付けています、
送信部は終段のMOSFETを除いて他は通常のリード型の部品で構成しました
Arduino pro miniとSi5351aのモジュールはソケットを使って取り外しができるようにしました
組立の途中でテストしておきたいもう一つは電源の切換用回路です、
今回は電源の通過ロスを最小にすることと動作電流を最小限にするためにPchMOSFETが2つ入ったDualパッケージの表面実装部品(SMD)を使っています、そのため必然的に周辺部品も全てチップにしました、これが期待した動作をしてくれれば今後も活用していきたい回路です。
電源入力を7.4Vを規定値としているので低損失型三端子レギュレーター(LM2950-5.0)を経由して6Vにしますが実測では1N4148で嵩上げしてみましたが5.57Vしかありません、PchMOSFETを通過した電圧は期待通り殆どロスることなく出力されているので電源切換回路は思惑通り成功と言えます。


仮設で実働できる状態にし最終調整を行いました
とりあえず発振周波数を合わせておきましょう
PLLのAとBは発振周波数が約3倍違うので送受でズレ幅も違うはずです
測定器で測ってみると送信時の7MHzを直接発生するPLL_Bは120Hzのズレで、受信時に19.8MHzを発生させるPLL_Aは340Hzのズレがありましたから
送受で別々の補正値を使うようにしました。
諸々最低限の調整を終えてバラックのまま電池で動かして遊んでいるところです

先ずは受信部から始めました
3SK294の動作点を最初に決定する必要があります、AGC回路のRV1とRV2を最小にして始めます、IFアンプQ3のドレイン側の電圧が4.6VになるようにRV2を回していきます、ここへの電源電圧は5.57VなのでR10(100Ω)のドレイン側が4.6Vになれば10mAに設定したことになります。
とりあえずこれで最大利得で受信回路は動作していることになるので、次にSSGを用意するのが面倒なのでとりあえず代用としてtinySA ULTRAをSGモードにして開始しました。
SGから50μVに相当する-73dBm(テンキーで希望するLEVELに設定できない、理由は不明)を入れるとAGCで制御された状態でクリアーな音が聞こえてきました
次にSGから-107dBm(AGCが効かないよう1μV程度にする)の弱い信号を入れてRFアンプの2個のコイルを最大音で聞こえるように調整します。
この状態でRV1を回していくとAGCの検波ダイオードにバイアスがかかります、そうするとAGC電圧が下がっていきますから1μVで受信している音が小さくなり始める直前で止めます、受信部の調整はこれでOKです。
諸々データを取っておきたいので、ここから先はちゃんとSSG(HPの8648C)を持ち出して測定してみました。
細かく確認したところ耳測定器(S/Nを正式に測っていません、セットノイズが劇的に少ないので無意味に感じたからです)での感度は0.1μV(50Ω負荷端)のようです、さらに信号を弱くしても聞こえますが実用範囲外でしょう。
SSGからの信号を上げて50mV(S9+60dB相当)にしてもIF出力はAGCが効いていい感じに制御が効いていて驚きました、当然スピーカーから出てくる音量はS7からS9+60dBの範囲でも安定した状態で聞こえます。S7あたりからSSGの出力を下げていくと徐々に信号の弱さを音で感じるようになります
ついでにS1からS9+60dBの範囲で発生するAGCの電圧をメモしておきArduinoのADC設定に利用します。
これにより1μVを少し過ぎたあたりからSメーターが動き出します
SメーターはOLEDに表示させていますから計測データを基にその範囲でメーターが振れるように設定しているので機械式のメーターよりは対応しやすくて楽です。
IFアンプの出力は100pFで取出し、更に抵抗で分圧しSA612Aに入れています、これはSA612Aは大信号には使えないのでこうすることで高周波部分の回路と検波回路の動作点を両立できるようにした結果です。
ラダー型フィルタの切れが良かったので高域のノイズを抑える目的でもあるAFのLPFはスピーカーからの音を聴いて定数を変更しました、0.68μFと47mHの組合せでfcを800Hzにしていたのですが0.47μFに変更し1KHzにしました。
これは個人的な聴感上のものなので狭帯域が嫌いなワシとしては高域を抑え込んだ圧迫感の有る音がちょっと嫌かなって思ったからです。
余談ですが
SA612Aの利得を計算してみたら4.4倍あったので約13dBということになります。
ネットの噂よりも利得が低い理由は発振出力が低いのが原因と考えられます、7番ピンつまりエミッタの部分で測ると0.4Vppくらいしかないため希望していた発振出力よりもかなり低い値です、ただ難しいなと思うのはオシロのプローブの影響も多大にあり正しい電圧は定かではありません。
12.8MHzを発振させていますがネットでの利用例は4MHzあたりが多く参考になりません、変換利得が低いことからもう少し強く発振させるようにできたらいいのかもしれません。
この発振出力の測定方法も検討課題ではありますがもう一つ困ったのはオシロや周波数カウンターなどを繋ぐと発振周波数が変化するため予定しているBFO周波数に調整するのが難しい事です、そのため本機はマイコンでプログラムしていて周波数は補正値を適用して合わせているのでSSGからの信号を受信してスピーカーからの音と、スマホから800Hzのトーンを鳴らせてゼロビートになるようBFOの調整をしました。これでBFOの発振周波数は12.796140MHzになっているはずです。
「作業机の近くにはパソコンが無いためスマホを利用しただけの話しです。」
SP出力をオシロで測って800Hzにするのも有りです、もしかするとこれが本来のやり方かも知れません。
受信時のDiDBMへの局発レベルについて
SI5351aのドライブ電流は2mAに設定しましたがレベルを測ると少し足りなかったので4mAに変更しました、ちなみに6mAも試しましたが4mAとの違いは感じなかったので4mA設定にしました。
今回ダイオードミキサーにND487C1を使っています、他のダイオードの場合はND487C2やSBDを4本使って作る場合は6mAか8mAの方が良いと思います
ND487C2は手持ち在庫が少ないので勿体なくて使えませんでした、代わりに若松通商で今でも買えるND487C1を使ってみました。
秋月電子で買ったSi5351aのモジュールは3.3V仕様です、Arduino pro miniは5V/16MHzのを使いますからI/Oの電圧は5Vなので直結するのはマズいです
Arduino pro miniのRAW端子に7.4Vを供給すると内蔵レギュレーターを通してACC端子に5Vが出力されます
ACC端子からの5Vを利用して外付けの低損失三端子レギュレーターLM2950G-3.3と2N7002Kを使ってレベルコンバータを構成しています
この回路は以前に買ったAdafruitのを参考にしました。
マイコン周辺の回路です

次に送信部の調整です
Si5351aのclk0は4mAに設定して受信へ、clk1は2mAに設定して送信へ、このclk1は最初は4mAで動かしてみたところ出力が大きくてドライブ段が歪んだため2mAに変更したがまだ大きすぎるのでC90(100PF)を抵抗に変更しました、抵抗R64(2.2kΩ)がそれです
それでも波形を見ると僅かに歪んでいるのでドライブ段Q10(2SC1815GR)のエミッタ抵抗R38を47Ωから68Ωへ変更してようやくいい感じになりました。
ドライブ段の電流は17.2mAから8.8mAになりました。
送信はマイコンのkey入力をLOWに落とせばいいようにしています、
オシロを終段Q11のゲート側にあるR35のところ(T7の4番ピン側)を測りT5・T6・T7を回して最大点にしておけばいいです
T7の4番ピンのところで最初は7Vppを超えていたのが、これでようやく5Vppまで落とせました、信号電圧が高いですがインピーダンスは知りません。
つづいて、いよいよ終段を稼働させて最終的なパワーを測ります、最初は全く何も出てこないがRV3のバイアスボリュームを回してゲート電圧を上げ行くと、徐々にパワーが上がり始め簡単に1W(7.4Vで240mA流れます)を超えることが確認できました、やはりPower MOSFETは簡単でいいね。
この時のゲート電圧は2.45Vでした
バイアス電圧は緑色の小型(3ミリ直径)LEDとスイッチングダイオードで2.6V弱を作っています、この電圧だと間違ってRV3を最大側にしてもFETが壊れないよにギリギリの電圧で設計しています。
現状はほとんど回し切った状態です、なんかダイオードを追加してもう少し高いゲートバイアスが試せるようにしたら最大出力がどれくらいになるのか興味はあります
それと動作状態によってはNFBをかけようと思って部品も実装できるようにしているのですが出力に余裕が無いのでNFBをかけていません
気になる高調波は2倍の14MHzが-63dBくらいあります。
最終的にはエレキーヤーでも繋いで送信時の波形を見てみないと判断できないのですがキークリック対策用としてドライブ段に小細工を組み込んでいます
前回のCW専用トランシーバーを作った時にバラックでテストして効果があった方法です
電源ラインにCR(C86とR41)を直列にして入れます、これの効果は立ち上がりを鈍らせてくれますが立下りも妙な形で鈍ります
適正な容量の組合せはケースに組み込む直前にでも計測しながら行う予定です。
今回の回路は部品数が少ないので組立も簡単でした
実は最も時間がかかったのはArduinoのスケッチです、Si5351a特有ではありませんがデータを受取って安定した信号を発生するまでにはタイムラグあります
そのため送受の切換時、特に受信から送信へ切り替わる際には安定しているであろう頃合いに送信回路をONにする必要があります
AFミュートはkeyダウンと同時にミュートをかけて、ミュート解除(受信に移行する際)にはポップアップ防止のため少し遅らせて切替えるようにしています。
これらのタイミング制御を諸々組み込んでいます、ソフト処理なのでここも設定調整は簡単にできます。
こんなことをしていたから思い描いた機能がうまく働くように手探りで1つずつ動作検証しながら進めました。
こういうところがCWでフルブレークイン動作の難しいところでもあります
こんなタイミング調整機能は、気にしなければ別にどうでもいい事なのかもしれませんが・・・。
悩んだついでにラスト周波数を記録する機能も付けました、次回の起動時は前回最後に表示していた周波数で起動します。
QRPなので自分からCQを出してQSOをすることなど考えてもいません、そのためRITは搭載していません、きっとこれからも追加しないと思います。
まだケースに入れる気にならないのでバラックのまま室内アンテナをつないで受信していますが
6素子のラダー型フィルタが意外にもよく切れるようでキャリアポイントの設定は思惑通り好結果となりました(なんちゃってチェビシェフが良かったのかも)
混変調特性はどうだか知りませんが、感度がとても良いことと余裕を感じるAGC特性のおかげでとても快適です
最後に毎回のように言いますがarduinoのスケッチは得意ではありません、どちらかというと分かりません
そのため、スケッチはここを参考にさせていただきました
http://jh7ubc.web.fc2.com/arduino/Si5351A_MultiCH.html
http://jh7ubc.web.fc2.com/arduino/Si5351A_VFO.html
SI5351aの制御に関して、このページが一番わかりやすかったのと合理性を感じたので気に入りました(JH7UBC局に感謝)
改造後の実際のスケッチはオリジナルからかけ離れてしまいましたがSi5351aに関するコードなどはそのまま利用させていただいております。
感想
まだケースにも入れていないのに感想は早すぎるとは思いますが
続きをいつ書くか分からないのでとりあえず締めくくっておきます。
ラダー型フィルタは前作の4素子から6素子にしましたが全然違いますね、
6素子のラダー型フィルタは期待した以上に切れが良くてAFのLPFと合わせてとても良好な使い心地です、信号を受信しながらダイアルを回していくとスパッと切れる感じです。
微弱な信号からSメーターが動くようになっています、これはIC-7300と比較するとP.AMP1を入れている時と同等です。
ATTが欲しくなったらRFアンプのG1バイアスを小細工できるようにしているので利得を落とすことでATT代わりに対応可能です、これは様子を見て判断することにします。
因みにOLEDに表示しているSメーターはバーグラフとの位置合わせもまあまあやっているので表示は信頼できます。
マイコン制御によるMOSFETのAFミュートは遅延時間を設定できるので改善ポイントとして合格です。
AFのVRは10kΩのものを使っていますが5kΩの方が良いかもしれません。10kΩで不具合は有りませんがこれより大きいものは推奨できません。
※ミュート用MOSFETのソース側の負荷として働くためです。
ラスト周波数のメモリ機能は意外に便利です、過去に作ったものにも搭載しようと思います
あー そういえば送信時のスプリアスの画像を取り忘れました、後日アップします
口だけでお伝えすると一番大きいスプリアスは第2高調波が基本波から-60dB以下で、それ以外は特にないような感じです。
5月25日追記 送信時のスプリアスの様子を追加します
ダミーには簡易な30dBのATTを付けて直接tinySA ULTRAと接続できるようにしているのですがtinySA ULTRAの内蔵ATTもー10dBに設定して合計40dBほど減衰させています、この状態で計測してみました。

1MHzから31MHzまでの範囲でVBWは10KHzで計測しています
2倍と3倍の高調波がよく見えるようになったのでスクショを取ったのが上の画像です
2倍は-60dB以下ですが何故かちょうど半分の3.5MHzにも同レベルの低調波がありますが原因は分かりません、上も下も問題になるスプリアスは見当たらないのでよしとします。
少し広げて1MHzから150MHzの範囲でVBWを30KHzにして計測したのが次の画像です。

こんな感じで問題無いと言えます。
逆にもっと狭い範囲、つまり近接のスプリアスを見てみようと思ってspan50KHz(±25KHz)でVBWが200Hzで計測したのが次の画像です。

更に狭めてspan15kHz(±7.5KHz)でVBW200Hzの時が以下の画像です。

これら2つの近接スプリアスのデータについて、良いか悪いかと聞かれたら良くは無いけど悪いとも言えない曖昧ですが、tinySA ULTRAの性能からするとこれが限界だろうと思います。
測定結果のまとめ
ケースには入れていませんが安定して動作するので総合的に測った結果は以下のとおりです
データは終段のドレイン電流を測っています。
- 6V 210mA 0.72W 57%
- 7.4V 250mA 1.1W 59%
- 8V 260mA 1.27W 61%
- 9V 280mA 1.53W 61%
- 9.5V 290mA 1.62W 59%
9.5Vは参考値です、実用上の電源電圧は6Vから9Vの範囲ならOKです
送信時の総合消費電流はVFO関連と送信時のみ働く回路があるため、これらの消費電流が合計で70mA近くありますから、送信時の全電流は上記表のデータに70mAをプラスした値になります。
本機の仕様というのか定格は以下のとおりです
(新スプリアス規格準拠)
アンテナインピーダンス:50Ω不平衡
定格送信出力:1W
スプリアス発射強度:-50db以下
フルブレークイン
受信感度:0.25μVemf(S/N 10dB)
スピーカー:4Ωまたは8Ω 700mW以上
周波数範囲:7MHzから7.2MHz
周波数ステップ:100Hz(標準)10Hz・100Hz・1000Hz
受信通過帯域幅:-6dB 700Hz , -60dB 1.9KHz
定格電源電圧7.4V(動作範囲6Vから9V)
消費電流:90mA(受信無信号時)、送信 320mA(7.4V時)
次回につづきます
6月5日つづきです
過去に作ったものを参考に改善したかった件(順不動)
1. AFのミュート回路はCRの充放電型を廃止
2. 送受時のVFOの切換タイミングを最適化
3. 低損失型の送受用電源切換回路
4. 機械式Sメーターの廃止
5. 3SK74からの脱却
今回はこの5件とも改善できました、全体の回路も簡単だし半分くらいがSMDですけど自作の障壁にはなりません
ワシにとっての最大の障壁はケースの加工です、すごい嫌いなんですよ
一番時間がかかって頭が破裂しそうになるのがプログラミングです、Arduinoのスケッチが疲れました、
基本的な部分で当初の予定通りにCWトランシーバーのみなら250行程度だし思い描く動作もできてへらへらしてたんですけど
しばらく使っているとArduinoの処理能力に余力があるように感じたのでエレキ―も行けるんじゃないって思ったのが苦悩の始まりでした。
VFOとしての基本部分はSi5351aの動作タイミングを考慮して、かなり細かい制御を行っています、複雑な処理をブロックしないよう最善を尽くしています
Si5351aがI2C制御なのでOLEDと共通で配線は便利ですが制御はデリケートです、しかも割り込み処理もロータリーエンコーダ以外にも利用しているためもしかするとトリッキーに見えるかもしれません。
ハードウエア(送受信回路)の方はOKなので別途エレキ―の基板を付ければ本来は簡単です、しかし小さな野望が生まれこの基板一枚で完結出来たらいいなって思ったんです
でも自信が無いから設計初期の段階からエレキ―を搭載するように基板は作っていません
それでArduino pro miniの必要な端子に配線を付ければOKっていうのも有りなので頑張ってみました。
アイアンビックBではないのですがサイドトーンと連動させたスクイーズキーヤーです、ストレートキーが使えると便利な事もあるので両方に対応させています
サイドトーンの出力は受信部のボリュームのところへ割り込ませればいいしスピードコントロールもキーヤーの操作中に可変できます
一通り最低限のツボは押さえられたんじゃないかなって思ってます
今更直す気力は無いので無視しますけど、スクイーズキーに意識が行っている間にフルブレークイン処理のタイミングの設計をすっかり忘れたまま進んだため結果的にはセミブレークインになっています。
それと乾電池でテストしていて気付いた事としては電池電圧が下がってくるとキーヤー動作が不安定になります安定化電源だと問題無いので気にしませんけど最低動作電圧の6V辺りは乾電池だと厳しいようです。電波はきちんと出ているんですけどキーヤーとサイドトーンは面白いことなります。
ザックリですがVFO周りの動作説明だけでもしておきます
Si5351aの信号発生におけるプロセスはとても時間がかかるように思いました
データ転送、つまり周波数の変更時などPLLにデータを送って目的の周波数を安定して発生するには数ミリ秒かかる可能性があります
最初は送受切替わるたびにデータを転送する方法でしたが、とても処理がついてきませんでした。
いろいろ考えた結果、受信時にダイアルを回して周波数を変更したら、ついでに送信用のPLLへもデータを転送するようにしました
これはPLLをオフにしない限り一度送ったデータを記憶しているというのか維持しているというのかそんな感じの動作です、これはDDSにしても同様ですね
受信用にPLLAを、送信用にPLLBを使っています
出力は受信用にclk0、送信用にclk1を使っています
送受の切り替え時にはclk0とclk1の動作を制御することにしました、PLLAとPLLBは動作させたままです。
clkの制御でも安定出力が出るまでには少し時間が必要みたいです「気のせいかもしれませんけど」
これらの条件を満たすようにArduinoのスケッチには以下の流れになるよう工夫してみました
概ねこんな流れです
1. 受信から送信へ切り替わる時
clk0オフ・AF_muteをLOW・clk1オン・遅延してTX_ONをHIGH
2. 送信から受信へ切り替わる時
TX_ONをLOW・clk1オフ・clk0オン・遅延してAF_muteをHIGH
TX_ONはHIGHでTX回路へ電源供給
AF_muteはHIGHでmute用FETがスイッチON状態
遅延時間はmSオーダーです、3mSから10mS程度の範囲で調整すればいいです。
Si5351の設定は最後まで理解しきれないままでしたがJH7UBC局の説明を熟読しようやく合点がいきました感謝感謝で多謝です。
ネットで参考にしようと思って見たサイトの多くは、どうやら他人様のマルパクリなのか、作りました動きましたこれが証拠の写真です
そんな感じのものも多くて何の役にも立たない情報が氾濫しています、回路図すら載せていないってどうなん
それもあってワシは恥を忍んでせめて回路図は必ず掲載するようにしています。
今回はスケッチですごく苦労したのでこれも掲載しておこうと思います、何かの肥やしにはなると思います。
興味ある方はスケッチ(別窓でhtml表示)をここに載せておきますのでご利用ください。
スケッチは今の自分のスキルでは限界のものです、解る人が見れば笑って(嘲笑とも言う)頂けるものと思います
ダメ出しなどはご遠慮ください ワシは耐えられませんから
逆に勉強中の方には可能な限りコメントを入れてザックリ説明しているので何かのお役に立てればいいのですが・・・
とりあえず実際の送信時の波形は下記のとおりです、これは内蔵のキーヤーで短点を連続送出しているときの立ち上がりと立ち下りの様子です。

xxxのC86とR41のところですが実験の結果Rは不要だったのでジャンパーしてC86だけ入れるようにしました。
狙いは立ち上がり時を穏やかにすることです。

何も入れずに(C86が無い状態です)
立ち下りは良いのですが、立ち上がりが角があるように見えます。
特にキークリックは感じないです

拡大すれば良かったかな
立ち上がりの角が少し丸くなりました、コンデンサは22μFです。
ほんのわずかですが放電しきれずに尾が伸びています。

いい感じで立ち上がりが丸いです、これは100μFを入れたときです。ですが尾ははっきりと伸びているのが見えますから気持ち的には避けたいです。
100μFは今回は採用しませんでした、わずかしか丸くなりませんが22μFを取り付けることにしました
もちろん33μFでも47μFでも好きなのを付ければいいと思っています、100μFも受信音で判断するなら特に問題とは思いません。
最初はCRの定数を上手く組み合わせるといい感じに持って行けると思ったのですが、電源側のインピーダンスの方が低いのでしょうね、期待したほどのものでは無かったのでR(R41)は廃止してジャンパーをしてC86が直接グランドに接続されるようにしました、要するにただのパスコンです、容量が多いと電源投入時の瞬間に電圧がドロップすることを利用しています。
D9が無いかったら他の回路も負荷となって計算がややこしくなるのでドライブ段だけで波形調整ができるようにしているつもりです。
その他、好奇心に任せて定数やトランジスタを交換してみたりしましたが結局は元の状態に戻りますから、それなりにベストなところで動作しているモノと思われます。
ハード側の変更が少し必要です
キーヤーを追加してスピードコントロールができるようにするために残りのアナログピンを利用して速度調整をボリュームを取り付けて気付いた事です。
AGC回路の出力でマイコンへ繋がるところのD6は取り外して直結にします
理由は
スピードコントロール用に最初はA1を使っていましたがSメーター用のA0のポートに干渉するためA6に変更しましたが改善はしませんでした、
どこに接続しても干渉することが分かりました、A0の使い方がハイインピーダンス回路の設計をしているので余計に影響を受けやすいことが分かりました
どうやらArduinoのアナログ入力はとても曲者のようです、長考の末にAGC回路からダイオード(D6)を通して信号用電圧を貰っていますがこれを廃止(直結に)することで解決できました。「実質これで簡単にインピーダンスを下げることができます」
変更の必要は無いですが送信ドライブ用2SC1815GRのエミッタ抵抗(R38)を100Ωにしました。
Arduinoの開発環境
Arduino IDEのバージョンは1.8系(1.6系あたりの古いものでも問題ないはずです)、2.3系どちらでも使えます、
Rotary.hのライブラリーはrotary.hとは異なる内容なのでスケッチを書きかえればどちらでもいいのですが面倒でしょうから頭が大文字のRotary.hを使ってください。
ワシは両方のライブラリーを登録していますが、Windowsの設定によっては大文字小文字の識別をしない設定にしている方は共存できません
間違わないように大文字始まりのRotary.hです。
ケースには入れていないので 結局 まだつづきます
6月10日追記 アナログポートの干渉の件
キーヤーを搭載したら、それまでは問題なかった事も問題になるという悲しい事です
どうやってもアナログ入力の影響が排除できない
そのため送信時にキーヤーの動作がチャランポランになってしまう対策と対処についてこんなことをしてみました
送信時にANT側の出力端から少しだけ信号もらって整流した電圧をA0へTrスイッチ経由で送っていましたが
抵抗(R45)を1本取り外してA0へ行かないようにしました。

回路図の赤色で囲ったところがR45です、これを取り外してA0へ信号がいかないようにしました。
これでA0自体は動作していますが送信時にA6へ影響を与えるような変動がないため安定動作します。
送信時に起きていた問題は解決するのですが別の問題は送信出力のインジケーター表示ができなくなります
ちょっとしたことですが見た目に寂しいので送信時には強制的にバーグラフをダミー表示させて誤魔化すことにしました
でも、これは自分だけの問題なので黙っていればいい感じにパワーが出ていると他人は思う事でしょう(でへっ)
抵抗を外さなくてもA0周辺の回路はそのままに動作をソフト的に止める方法もありますが今回は採用していません。
他の方法としてはキーヤーを搭載しないか、速度調整をアナログポートを利用しない方法にすればいいのですがスケッチの書換えが手間な割にはバカみたいな状況になるのでこれ以上は考えない事にします。
それにこれ以上(今の1枚基板に対して)は追加部品をしたくないです
ですが送信出力の信号を整流した部分は残っているので遊びとしては僅かな追加部品でLEDを点灯させるとかは有り寄りの無しかな
なんであれダミー表示ですけどメーターが動いているのは楽しいからよしとしましょう。
ついでにSメーター用のバーグラフ表示も少しだけ変更しました
今までは連続してLの文字が並んでいましたが1個飛びに変更しました、ちょっとだけできた隙間がいい感じに見えます。
休憩時間や気分転換に7メガをワッチしながら落ち着いて観察すると、その時は良いと思うのに後から気になるってよくあることです
ケースにいれたら基板上の部品交換は面倒ですから今のうちにダメ出しをしておかなくちゃ。
修正したスケッチはこちらです、ついでにA6からA1に変更しています、A0はそのままポートの変更無しです。
6月11日追記 すぐ上の修正したスケッチの件ですが、その後動作テストをしていたらバグがあったので修正しました、クリックして表示されるスケッチは既に修正後の最新版です。
ついでに少し機能を変更したのでその事を書いておきます。
バグ修正ついでにキーヤー操作をあれこれテストしていたら速度を上げるとちょっと打ちにくいなって思ったのでアイアンビックBの仕様に変更しました、それと送信時のインジケータ表示をSメーターの下の行に表示位置を変更し文字を表示させるようにしています「__Transmitting__」といのを表示させています。
その他はAFのミュートの遅延解除を5mSから3mSにしました。
最終的にケースに入れると配線が長くなったりいろいろでポップノイズが出るのかもしれませんが現状はミュートは要らないのではないかと思うほど仕上がりは良好なので遅延時間については後日ここらも調整してみようと思います。
コメント