SDRトランシーバー4号機(SDR#4)の製作スタート「全体構成の検討Rev2」


写真はSDR#4で使用予定のSTM32マイコンボードの評価の様子。

2025.5.25一部見直し、追記
2024.4.7一部見直し
2024.3.6追記
2023.4.20

はじめに
 新たな製作目標として「お気に入りのSDRトランシーバー4号機の製作」をスタートします。
 SDRの製作が続いていますが、製作の最終目標として「CPUボード内蔵ダイレクトサンプリングSDRの製作」をゴール設定して、 今までに、SDR#1からSDR#3で少しづつステップアップしてきました、次のステップとして以下のSDR製作を目標にして、今回は SDR#4の製作プロジャクトをスタートします。
 SDR#4、IF周波数を数100kHzに設定のシングルスーパーとし、dsPIC等でA/D処理して表示はPCを利用。
 SDR#5、RF信号(7MHz)をダイレクトにA/Dして、表示はタブレット端末等を利用。
 現状の自作力では、かなりハードルが高いのですが、ライフワークのつもりで少しずつ前に進めていきます。

構想の具体化

 大まかな構想案(妄想?)について、まだまだ妄想段階ですが、まとめておきます。

  • 1. 周波数構成は、7MHz-455kHz-数10kHz(I/Q信号の)とし、455kHzから数10kHzへの変換はデジタルダウンコンバート(DDC)とする。
  • 2. 表示はSDR3号機からのSDRStudy(改)をSDR4号機用に改造し、PCで表示、同時にI/Q信号のデジタル処理を受け持つ。
  • 3. 内蔵するマイコンとして、STM32マイコンを採用し、455kHzからのDDCとPCへのUSB I/F。
  • 4. 高IP設計を目指す。
  • 5. SDR本体パネルにはSW、VR類を配置せず、すべての制御機能はPC画面から制御できるようにする。

 

  構想の補足説明
 1.IF周波数のA/D変換ICは、サンプリング周波数(Fs)5Msps 12-16bitA/Dを検討すると、ほぼ5k以上、しかも納期や半田実装のハードルも高く、採用には至りません。 一方A/D内蔵マイコンなら、A/D性能はそれなりですが、2Msps 12bit程度なら使えそうと、今回はA/D内蔵マイコン開発ボードを採用します。
 2.マイコンの選定、候補としてdsPIC33CHとSTM32F446を検討しました。使い慣れたPICの延長でdsPICを使いたかったのですが、開発ツール(Pickit4)が高価なので、 今回は、STM32F446 32bitマイコンにチャレンジします。なお開発ツールはマイコンポードに付属した物(ST Link)を使用すれば3k程度と安価ですし、自作力アップを 目指します。
 3.チューニングにはアナログVFOにこだわってきましたが、SDR#4ではデジタルチューニングのみとし、その場合も極力アナログVFOのフィーリング にこだわりたいですね。

目標仕様
 製作に先立ち目標仕様を、以下の様に仮設定します。
項目 仕様 備考
周波数 7MHz シングルバンド
対応モード LSB/CW/AM AM_L/AM-Hは受信のみ
受信最小感度 -125dbm以下 CWモードにてビート確認できるレベル
受信最大入力 -30dbm以上 10kHz離れて-30dbmの2トーンを入力してもIMD成分が受信出来ないこと
送信出力 5W 
送受信イメージ比 60db以上 イメージ周波数8MHz
不要スプリアス -70db以下

補足説明
 IF周波数を455kHzに取った場合、8MHz帯のイメージ比があまりとれないことが予想されます、出来ればイメージリジェクション方式を検討 してみます。
 

以下2024.3月追記、2024.4月、2025.5月一部見直し、受信部概略構想
 SDR#4の開発をスタートして約2年、自分の技術力ではかなりハードルの高いSTMマイコンですが少しずつ具体化して、ようやく信号が通るようになってきました。
 受信部のみですが、現状の概略構想を一旦まとめておきます。


図は、受信部のハード構成とSTMマイコンソフトの構成をブロック図にまとめたものです。
 フロントエンド部は、アナログ構成として、ゲイン配分や使用デバイスなどはSTMマイコン部の特性により詳細を詰めていきますが、 従来技術の延長なので、今の自分の技術レベルで実現できそうです。
 一方、STMマイコンのソフトについては、実現可否不明な部分も多く、仕様を具体化して各要素毎どのような課題があるのか、入力側からみていきます。

AD変換、フロントエンドからの455kHz IF信号をAD、サンプリング周波数(Fs)はタイマー(TIM3)のクロックから分周して作成するので、割り切りの良い fsに制約されるので1Mspsとします。ナイキスト周波数(500kHz)に対して余裕がありませんが、TIM3の分周比と最終出力サンプリング周波数の制約から、あまり選択肢は ありません。
 AD結果は、メモリー(BUF)へDMA転送し、BUFの容量はAD以降のソフト処理時間との兼ね合いになりますが、検討課題です。

デジタルミキサー、アナログ受信機のミキサーに相当、入力信号AD値(455kHz)とNCO(ローカルOSC相当448kHz)のデータを掛け算した、デジタルダウンコンバーター で、最終的なIF周波数は8kHzになります。

NCO、アナログ受信機のローカルOSCに相当する機能です。今回は周波数固定で使うので、ADサンプリング間隔に合わせた波形データ―(数サイクル分) を配列で準備しておきます。配列の最初と最後のデーター不連続にならないように波形データ数を設定します。
 一方、参考にしている「ARMマイコンでつくるダイレクトサンブリングSDR」(CQ出版)では、周波数可変タイプなので、計算で波形データ―を作っています、 処理時間の比較について、検討課題とします。
 2025.5追記 今回は、周波数選択の自由度から「ARMマイコンでつくるダイレクトサンブリングSDR」の発生方法を採用しました。

Cicフィルタ、ADFsをデシメーションするため、Cicフィルタを配置し、次数は3次、Cicフィルターの組み込みは初めてなので、 どのような特性が良いのか、検討課題になります。

デシメーション比(R)、2025.5修正 デシメーション比は当初1/25と設定しましたが、プログラム上、2のべき乗の方が都合よく、1/32に変更しました。
 一方ADのサンプリング周波数(Fs)は1Mspsとしたので、PCへの出力サンプリングは1M/32=31.25kHzとします。

Firフィルタ、出力fsは31.25kで、PC側のスペクトラム表示範囲は-15.5〜+15.5kになります。経験上スペクトラム表示範囲は-16〜+16k程度が見やすく、 Firフィルターのカットオフ周波数は16kHz程度とし、次数は3段に設定します。
 CicフィルターのF特補正については、今後の課題です。

USB出力、PCへのI/Q信号をUSBオーディオストリーミングで出力することを考えています。サンプリング周波数(fs)は48kHz(40kHzに修正、その後31.25k)を想定していますが、 未だ具体的な実現方法が理解できていません。
 USBオーディオクラスの規格などを参考にしていますが、ハードルが高くて停滞しています。通常のシリアル出力(CDC)でもある程度の遅延を許容すれば 実現出来そうな気もしますが、、、。
 2025.5追記、USB出力はSTMマイコンから直接出力もできますが、PC側のバーチャルCOMポートの速度が出ていないので、新たにFTDIの変換モジュールとドライバを介して STMからUART出力後USB変換(2Mbps)することにします。

プログラムの構成
 プロクラム構成は、現在のところメイン、CIC、NCO、FIRに分割し、他Si5351(PLL)制御用のI2Cは別途検討です。STMCubeIDでは自動生成されるソースだけでかなりの 行数があり、すべてのソースをメインに記述するよりは、分割する方が判り易くなります。

今後の予定
 SDR#4では、未経験の要素技術が多くで、ソースコードを記述しても間違いが多く、なかなか進めません。次回からは、各要素毎に動作確認しながら 進めていきます。

   Top Menu