#JO7OZW
Explore tagged Tumblr posts
Text
小型・オールモード・マルチバンド SDR → [ G4SDR ]を立ち上げます!
久々の投稿です。放置しすぎました。 近頃、コロナで大変ですね。コロナちゃんの影響で、会社が休業となったため、それを見越して発注しておいたSDRを作り上げてしまおうと、活動を再開しました!
以前、[SDR-YAGI]という名前で、SDRの立ち上げを行いました。実験により、1~144MHzの送受信ができる見込みまで行きました(紹介したブログ)。 しかしながら、クリスタルフィルタ部の難しさ(マッチングやクリスタルの素性がつかめず帯域を広げられないなど)とソフトウェアの壁でフラフラしてるうちに、別コンセプトが浮かんできたので、今回、[G4SDR]と命名したSDRに乗り換えます。
[G4SDRのコンセプト]
一般的な 基板サイズ (47x72mm)とし、独自の回路ブロックを気軽に(穴あけ不要でスタック)追加できる構成とする。
RFフロントエンド(送信パワーアンプ、受信BPF、LPF、アンテナスイッチ等)は外��け
HF+50MHz(144MHz)の任意周波数で送受信が可能
変復調モードはSSB, CW, AM, PSK etc..に対応
IQ信号の出力機能を備える(できればUSBで送り出したい)
PCは必要とせず、スタンドアローン動作
搭載するUIは必要最小限、UI拡張用のI/O出力ポートを備える
学生さんがプログラムやハードをいたずらできる余地を残す(いたずらしたくなる)
今風のおしゃれな部屋に馴染む佇まい、できればインテリア風になってほしい
長い間、構想を練ってきました。僕が作りたくなるものの条件として、「世の中にまだないもの」であること、そして、「僕自身のアイディアが表現できていて」かつ、みんなにも「いいね!」って言ってもらえるものを作りたいというのがあります。これを求めると、なかなか答えが出せず苦しんでいました。しかし、ここにSTMicro.が答えを与えてくれたのです。この結末の詳細は後日紹介いたします。
超小型クリスタルフィルタ部の設計
さて、話は変わって、G4SDRの肝となるクリスタルフィルタ部の設計であちこちつまずいたので、これを紹介していきたいと思います。 私も含め、クリスタルフィルタ初心者ないし、自分で作れるような気になっている(僕がそうでした)読者の方の一助になるように、できるだけ丁寧に書きます。ちなみに、ここで検討した水晶振動子は2016(2.0 x 1.6mm)の極小サイズです。自作派アマチュア無線家のブログをいくつも拝見しましたが、このサイズで作っている例は見つかりませんでした。 そういう意味で、冒険の始まりです(笑)
今回作りたい ラダーフィルタ の目標仕様を定義しました。
周波数 32 MHz
帯域 4~6 kHz
素子数 3
水晶サイズ 2016
通過帯域損失 5dB以下
入出力インピーダンス 500Ω以下
不安要素として、
32MHzのような高い周波数でラダーフィルタを作っている例をほとんど見かけない(一つありました)
小型サイズの水晶はその小ささの弊害で、フィルタとしての性能を損ねる要因を持っていないか?
という2つが頭から離れませんでした。 そこで、実現できるのかどうか、シミュレーションで検討しましょう��と走り始めました。
様々なブログを渡り歩き、最終的にJA9TTT 加藤OMのページに行きつきました。ここで紹介されている設計ソフトはとても素晴らしいものでした。是非、使用されたい。 以下、加藤OMページの抜粋 参考:Warrington Amateur Radio Club(英国)のサイトに、Jack Hardcastle, G3JIRによって最新バージョンDishal2031がアップされています。あまり違いは無いようですが、Windows OSによっては新バージョンの方が良いこともあるのでリンクしておきます。→ここから. (追記:2015.08.25)
この辺で、絵を入れたくなったので、採用を検討した水晶振動子の直並列共振周波数の測定の様子をお見せします。いつもお世話になっているAPB3で測定しました。
ちょっと右寄りに浮いてるのが水晶振動子です。いい加減な配線ですが、これで精一杯でした(笑)
いい加減な測定でしたが、それらしいデータが取れました。直並列共振周波数の間隔は45kHzであり、仕様とした帯域は満たせそうだと判断しました。この周波数差が大きいほど広帯域なフィルタが作れます。
さあ、それでは設計していきましょうと、設計ソフトを立ち上げて、「ん?」と固まりました。設計を進めるためには水晶振動子の等価回路の各パラメータを「実測で!」あらかじめ求める必要がありました(最初から知ってましたが、多少話を盛ってみます(笑))。 「実測で!」と強調したのは、データシートからは読み取てない素性だからです。なぜなら、本来の振動子として使うときには、「あまり重要ではないデータ」だからと推測します。そんな計算をいちいちやらないとマイコンを水晶振動子で動かせない世の中だったら、みんなアナログ屋さんになれますよね(笑) そうはいっても、そんな特殊な測定器(LCメータなど)は手持ちにないので、ひたすら水晶振動子のデータシートをアサリました。すると、ありました!!! 全部の必要なパラメータを列挙したおかしな?データシートが!! NDKさん、さすがすぎます!!
手持ちの水晶とサイズも一緒なので、さほど素性に乖離はないと判断し、この水晶振動子のパラメータを使ってラダーフィルタを設計しました。
いい感じに設計できてます。実測でもこのように動いてくれれば大満足です。
設計もできたので、実際に秋月で売っているSMDユニバーサルに組みました。 これおすすめです。って、裏面がベタのやつなくなってるやん!!悲しみ。。。
はい。なにがなんだかわかりませんよね。拡大鏡で頑張りました。
そして。APB3による測定結果です。ムムム、通過帯域は所望になっているけど、なぜか阻止域で跳ね返ってきてる!この手の特性は、経験上、測定の問題だと断定し、調査すると、同じようなことを書いている方が何人か見つかりました。 JM1DPL OMと最近はNanoVNAの創造主として有名人(←いいなぁ。そして、素晴らしい!)のttrftech 高橋さんです。 これらの内容を参照して、ユニバーサル基板の裏面ベタを利用してGNDを強化したところ、見事に跳ね返りが消滅しました!!
普段、数~数十GHzの回路を扱っているので、32MHzをなめてました。すみません。君は立派な高周波だよ。。。 そして、時代の流れに乗るために、そしてコロナ休み中にプロジェクトを進めるために、ついにNanoVNAをアマゾンで入手した。 2日で届いた。(eBeyで首をながくして待つより良いと判断)
使い方はjh4vaj OMのページを参考にした。なお、Cal.説明の 「THRU」 については、誤っている。ここでこそ、SMAメスメスの出番です。同軸2本がNanoVNAに接続された状態で,それらの先端をSMAメスメスで接続しあうのが正解。
いいね!!APB3と同じ特性が測定できました。NanoVNAは、タッチストーンファイルの出力機能を備えているので、問題が出ても、PythonのScikit-rfなどで解析できますし、安心できます。高橋さん、ありがとう!!! というわけで、仕様に合うフィルタの設計と実測検証が完了しました。 明日から、G4SDRの基板に部品実装し、動作検証に入っていきます!
0 notes
Video
youtube
G4SDR: STM32G4 internal signal rooting test while the ALL JA Contest 2020
0 notes
Text
1MHz~144MHzの任意周波数で送受信動作検証→OKっぽい!!
I2Sが動作するようになってから、RFアナログ回路デバックや復調・変調ソフトの実装などを進めてきました。表題の通り、この小さな基板で1MHz~144MHzの送受信動作ができそうな見込みが立ちました。
受信に関しては回路に問題があったとしても基板内でお祭り騒ぎになるだけで、他人に迷惑をかけることはないので、ある意味「���うにでもなる」ので、気持ち的には楽なのがいいです(笑)?しかしながら、送信に関してはそうはいきません。スプリアスが出てしまうことは、他人に迷惑をかけることになるし、法律的にも問題があるので、開発中もハラハラ・ドキドキです(笑)なぜこんなことを書いているかというと、設計時に想定していなかった不要信号(スプリアスではない)が発生することが分かったためです。前回の投稿で、開発中のSDRの構成ブロック図を掲載しました。このブロックから送信時の流れを抜き出したブロック図を示します。
第一IF周波数は諸事情で12kHzに変更しています。この理由は後ほど。
この送信信号の流れの中で発生しうる不要スペクトルとして想定していたのは以下の二つです。
Mixer1の出力信号のうち、20MHz IFフィルタで十分に減衰できない成分(20MHz ± 12kHzのどちらか一方)
Mixer2の出力信号のうち、LO2の漏れ信号(20MHz + f_RFout)
この予想通り、 20MHz IFフィルタの出力には20MHz ± 12kHzの変調信号が出てきましたが、フィルタにより 20MHz + 12kHz の成分は十分に減衰することができました。しかし、その予想に反して、20MHz IFフィルタの出力には変調信号以外に、変調信号に対して-35dBcの強さでLO1の漏れ信号も一緒に出てきてしまいました。これは2個のクリスタルフィルタでは十分に落としきれませんでした。
このローカル漏れの原因を探るために、コーデックTLV320AIC3204の出力を停止した状態で、IFフィルタの出力を見てみました。以下にAPB-3で測定したスペクトルを示します。
理想的には何もスペクトルが出てこないはずなのですが、しっかりローカルが出てきてしまってます。ここではローカル周波数は20MHz - 12kHzに設定されています。原因としてはコーデックのコモンモード電圧のアンバランスかと思われますが、まだ調査中です。こんなにローカルが漏れるMixerはMixer失格でしょう(笑)ひとまず対策として、次試作基板ではクリスタルフィルタの段数を増やす予定です。フィルタのス��ート特性など少し不満があったので、結果オーライということにしておきます。ミキサ周りの回路も修正予定です。
上記のような問題はありましたが、ドライブAMPとして6GHzまで帯域が伸びているMMICを用いているため、1~144MHzの間で0dBmの送信出力を得ることができる見込みです。簡単な (ブロード帯域な) 回路でクリーンな送信信号を得ることは結構大変ですね。身に染みて実感しました。
[IF周波数を12kHzに変更した理由]
ちょっと小難しい話をします。実信号と複素信号について考えてみます。複素信号と聞くと難しい響きで、見ることも聞くこともできない信号のように思えてしまいますが、要は複素信号は「マイナスの時間という概念から生まれた信号」と考えることができると思います。メモリ機能、つまり遅延を使えるデジタル信号処理においては「マイナスの時間 = 過去の信号」を扱うことは当たり前のことですから、知らないうちに複素信号を扱っていることになります。何を言いたいかというと、一度デジタル信号に変換してしまえば、複素信号を作り出すことは容易なのです。
とはいうものの、デジタル信号に変換したとしてもしばらくは(複素信号に変換が完了するまでの間は)実信号のまま扱うということもしばしばあります。今回のようにIF信号(実信号)を取り込んで、内部で複素可するような場合がそれに当てはまります。
受信信号処理を実装する過程で、12kHzからベースバンドへのダウンコンバートする信号処理方法を何種類か検討しました。デジタル信号処理で複素信号を周波数変換する場合には、理論的には、ローカル漏れやイメージ信号は一切発生しません。しかし、実信号から複素信号への変換を兼ねた周波数変換過程においてはその限りではなく、イメージ信号が発生してしまいます。
これが少し気持ち悪いなと感じた時、「IFを12kHzにすれば、12*4 = 48kHz(サンプリング周波数)という関係を利用して面白いことができるかもしれない」と思ったのです。具体的には、48kHzのサンプリング周波数でサンプリングした12kHzのIF信号を1サンプル分遅延させたデータと遅延なしのデータは位相差90度の信号対とみなせるわけです。これはつまり「データを1サンプル分遅延させるだけで複素信号を作り出せる」ことを意味しています。信号処理に詳しい人が聞くとちょっとした問題点に気づかれると思いますが、現状は目をつむっています。
この方式により、実信号を一般的な方法でダウンコンバートするよりも、不要信号レベルを約25dB減少させることができました。これはフィルタ設計条件を緩くしてくれるメリットがあります。とりあえず、満足です。
「以上が進捗でした。現在、これまでのデバック結果��反映した試作基板を設計中です。回路内容が大幅に変わりそうです。修正のついでに144MHzにも本格的に対応予定です。」
[つまずいたことと対策]
TLV320AIC3204のLine出力に直接容量負荷をつなぐと発振する。
#stm32#STm32CubeMX#SW4STM32#STMicroelectronics#JO7OZW#sdr#TLV320AIC3240#Si5351#stm32f303#i2s#APB-3#SDR-YAGI
0 notes