8 月 13

arduinoとAd9834を使ったVFOでフルブレークインは難しい事が解りました
その時の課題で反応が遅いarduinoを何とかできないかと模索している状態でした。

動作が遅い原因は
digitalWriteとdigitalReadが遅い事です、これを改善するため直接ポート指定の方法に変更して試したら
今度はshiftoutも遅い事が判明しました。

んー もうワシには分からんよ  トホホ
投げ出したくなってIC-705でも買えばすっきりするのにと意味不明な事をブツブツと

今回は、そのshiftoutを止めて普通の記述に変更してみました
考えたのはshiftoutは8bitずつの転送だから、shiftoutを使わないなら16bitを一気に転送できると思うんです。

調べるとfor文で1bitずつ回して16回送ればいいのかな?と分からないけど勝手な思い込みを始めました。
AD9834の資料を読み直してタイミングについて勉強しましたが分かりません
頭悪すぎでダメですね

ふと、PICだと希望している処理をしてデータ送信しているだろうと思いつきネットで調べたら有りました
ということで、またまたパクリですみませんいろんな人のを参考にさせて頂きました。

それでも、結果的に期待する程のことは無いのですが、今までとは比べ物にならないレスポンスで反応してくれます、かなり高速なCWでも使えると確信できました
期待する程ではないと書いているのは、AD9834の資料を見ると感じるのですがデータを受け取ってDACから出力されるまでには結構時間がかかるような説明です、数値的には良いと思うのですが人間の感性と言うのは測定データでは表せないというか・・・ 本当に僅かなズレが違和感として残るって言うのか

長点で始まる符号は良いのですが短点で始まる符号や短点1個の時は一瞬のズレ(自分の意識とのズレです)が気になります、ようするに立ち上がりが付いてこないからです

これが概ね解決したら今度は別の事が気になりました
キークリックが感じられます
昔流に書くとキーダウン時のキークリックです、送信段の立ち上がりを少しなまらせると良いかも。

フルブレークインからセミブレークインに方針転換したのでエレキーからの出力は2系統あり
送信状態維持とキーイング用の2つです
送信出力は送信段に7.5Vをキーイングに合わせて供給します、最初はそのまま送信段につないでいましたが10Ωと22μFをかましてやることで対策をしました、10Ωは33Ωの方が効果が大きいのですが電圧ドロップも大きくなり送信段のVRを再調整しないと0.8Wくらいに低下してしまいます
僕は調整がめんどくさいので10Ωとしています。

ここのとこのキークリック対策はSメーター基板からメイン基板への配線の途中に入れました、その様子はこちらです。

キークリック対策

キークリック対策

直接、基板に取り付けた部品をアレコレしないで良いから簡単に試せますよ、ピン端子に配線の代わりに抵抗とコンデンサを取り付けてます。

細かいブレークインのタイミング調整はエレキー側でできるので、本体側をつつくのはこれで終了とします。
最終的な回路図はこちらです。

7MHz QRP CWトランシーバーの最終回路図

7MHz QRP CWトランシーバーの最終回路図

自分用の備忘録的に書いた回路図なので読みやすさは考慮していないので分かりにくいも

あっ Poメータの回路は書いてないですね、まあ簡単ですから書く必要も無いでしょ

Sメーター回路は結局簡易な方法にしました
2SC1815は最初は無かったのですが、メーターの倍率器として必要な抵抗値を計算すると全体の合成抵抗から逆算してマズかったのでトランジスタでバランスする電圧を供給するようにしました。
それとメーターにパラッている1N60は選別して使っています
ゲルマダイオードがこんなにバラツキが大きいとは思わなかったぞ
モノによっては0.4Vくらい必要です、これだとラジケーターが簡単に振り切ってしまうので0.2Vくらいのを選ぶと良いです、そうしないと強い信号を受信すると針が音をたててMax側に振り切ってしまいますからね
振り切らないようにVRを調整して感度を落とすと、弱い信号では反応しなくなります。
この0.2Vくらいというのがミソだと思っています(最近ではミソではなく肝なのか)
これでメーター半分くらいまでは感度よく振れて、上の方はダイオードにもバシバシ電流が流れるので分流効果が期待でき、疑似対数動作をしているようです。

DDS VFOのスケッチはこちらです(arduino AD9834 DDS VFO高速化)、今回のスケッチは、不要な消し忘れていた記述も消しています
同じような気持ちでCWトランシーバーを自作される人の参考になれば幸いです。

昔から、自作について 動くと使えるは違うと考えています
 動くものは作れるけど、使える物をつくるのは本当に大変ですね

boss

written by boss

8 月 08

その後、7MHzのQRP CW トランシーバーに簡易ではありますがエレキーとSメーター回路を搭載しました。

ここまでは良かったんですけど
実際に使ってみたら全く使い物にならない事が解りました。
最もダメだったのはフルブレークインができない致命傷です

送受切換についての動作はアナログ部分は比較的良好で内蔵のサイドトーンを聞いてるだけならバッチリOK
ところが、別の受信機で実際に送信される信号を聞いたら、まともに送信できていないのです
動作をよーく観察したら、大きく分けて2件の問題がありました。

arduinoの反応が遅すぎること
エレキーの出力も関係していそう

つまり符号の出始めが欠けるため聞きにくいです、しかも速度を上げると電波の発生も追いつかなくなります。
それでも、内蔵のサイドトーンからは軽やかに聞こえてくるのでいい感じに思ってたのに現実は・・・

この2件を解決しないと使い物になりません

エレキーは実は悩んだ末にarduino pro mini(ATMEGA328Pの3.3V-8MHz仕様)を使いました、つまりarduino nano のUSBインターフェース無しで、しかも低速なモノを使いました。
これも内心予想外のモノだったのであとで感想を書きたいと思います。

前回までに作った部分には手を付けず、エレキーとSメーター回路を搭載するのに、ソケット式にしていたサブ基板に無理やり載せてみました、下の画像で参考になるかと思います。

追加したエレキーとSメーター回路

追加したエレキーとSメーター回路

予定外の回路追加もありぎゅうぎゅうですがうまく載りました。

ちょっと判りにくいかな? こっちの方がいいかな?

追加したエレキーとSメーター回路 角度を変えて

追加したエレキーとSメーター回路 角度を変えて

こんな感じでサブ基板の端っこにATMEGA328Pの基板を取り付けています。

話しを戻して、送受切り替わり時の動作を考えると
受信から送信に切り替わる
この場合、アナログ回路部分はうまく行ってますからDDS-VFOの事だけ説明すると
受信時の16MHz帯から送信用の7MHz帯に周波数変更のデータを送り出すのですが
このアクションについて送受判定のdigitalReadの反応が遅い
その次に、送信判定をしてからDDSにデータを送り出すまでの動作が鈍い(digitalWriteの部分です)
しかも動作が安定するまでには少し時間が必要なようです。

調べたらみんな知ってたんだねarduinoが遅い事を
改善策は直接ポート指定の記述に変更したりしてスピードアップを図りました。
結果的に頭切れでまるでパルス送信機みたいな状態から妥当な動作をする状態にできました。

それで信号をモニターしていて別の事が気になりました
送信電波を発生する瞬間ごとに帯域が広がっている感じ(ジッターなのか?)とキークリック感があります
回路的にフルブレークインのままだと符号が発生するたびに、この現象が続きます
試しに直接送信状態に配線すると、信号の出始めはそうでも直後は安定し綺麗になります。

総合して考えると、これらを解決するにはセミブレークインでしか使えない事になります
そこで今度はエレキー側で小細工をすることにしました。

これに伴いエレキーも反応速度を上げるために直接ポート指定の記述に変更をし、それと2系統の出力をするようにプログラムの変更と回路を追加しました
追加した回路は1系統は送信時に7.5Vを出力する回路(こっちがキーイング用でOUT2とする)
そしてもう一つは送信を維持する出力です(OUT1とする)

本機のメイン基板はピンヘッダーを立てて配線を工夫しておいたので、配線の取り回しを変更するだけで対処可能でした。

このセミブレークインの動作は、パドルを操作すると受信から送信に切り替わりOUT1により受信部OFFでDDSから7MHz帯を出力した状態が続き
ドライブと終段に対してOUT2でキーイング動作となります

OUT1の保持時間は0.1秒程度だろうと思います
これはATMEGA328Pの反応の悪さを利用して時間稼ぎしています
つまりセミブレークインではありますがかなりフルブレークインに近い動作です。

他にも工夫はしましたが、とりあえず使い物になってると感じるので、しばらくこれで終わりにしようと思います。
完全フルブレークインを実現するには、プリミックス型のトランシープトランシーバーの構成でないと今の自分のスキルでは無理かと思います。

好奇心的な課題としてはarduinoからAD9834へのデータ転送のスピードを現状よりさらに速くしてみる事です
少し試しましたが、AD9834がそれについてこないみたいで(タイミングチャートで調べたら無理な気がしてます)誤動作するのでもっと勉強してからになると思います。

あっそうそう
今回、安くて小型だったATMEGA328Pですが、省エネかと思って買った3.3Vの8M仕様は5Vの16Mと変わらないような気がしてます、3.3Vで動かすと実測で5.2mAでした
RAW端子から5Vを入れると7mAを超えます、レギュレーターでロスるのでしょう

別の用途で利用する計画があったので6個買ったのですが、たいした省エネ効果も無いので5V仕様の方を買えばよかったと後悔しています(安い授業料ではありますが)。

boss

written by boss