AMラジオ SDR−1 ( Software Defined Radio )

おじさん工房 TOP へ     サポート掲示板へ     SDR-1 キット頒布中

■SDR−1 開発過程

2010/10/11 SDR−1 プロジェクト開始
2010/10/29 基板ができました。 SSB の特性をとりました。
2010/10/31 キット頒布開始します。
2011/10/17 FLL の応答特性改善と短波受信できるように変更。


■応用例

JJY(40kHz、60kHz)受信機


■最新の設計資料・ソフトなど

組み立てマニュアル ver. 1.00 (PDF 535KB)
回路図 20101031 (PDF 85KB)
基板パターン図 20101031 (PDF 2423KB) (レイヤーごとに表示できます)
プログラムソース 20101031 (ZIP 44KB) ← 20101129 hexファイルを追加しました。



キットのサポートは掲示板にておこなっています。


2010/10/11

いままで APB-1 や、それに PRE-1 を追加して SDR(Software Defined Radio) を作ってきましたが、もっと簡単に、もっと非力な CPU で作れないかとずーっと思っていました。 確かに強力な CPU や FPGA を使えば簡単に作れますが、どうしてもハードウェアとして大げさなものになってしまいます。 今回、ATMEGA328 という本当にこんなんで大丈夫かという非力なワンチップマイコンで SDR を構成してみました。 ハードウェアが簡単かどうかはちょっと微妙ですが、、、

ちょっと多めに基板を頼んだので余った基板でキット化する予定です。 私が面白いと思うものは他にも面白いと思う人がいるだろうということで。 (その割には PRE-1 は在庫が...)


■試作した基板

SDR-1 基板写真

なるべくハードウェアを簡単にしようと思ったのですが、どうしてもある程度の部品が必要でした。
手持ちの部品で試作したので、SOP や DIP が混在しています。 今基板化していますが、ATmega328、NJM386 以外は SOP にしました。

■ブロックダイアグラム
SDR-1 ブロックダイアグラム

アンテナ入力からの信号はエミフォロを通って、HC4053 で周波数変換されると同時に I/Q 信号になります。 HC4053 で I/Q になった信号はオペアンプの差動増幅器で 32dB 増幅し、UDA1345 で A/D 変換します。 A/D 変換された信号は、ATMega328 の CORDIC で絶対値計算(AM 復調)します。 復調された信号は D/A され、オーディオアンプで電力増幅してスピーカーを鳴らします。

一方、HCU04 のフランクリン発振器で作った 2 〜 7MHz は HC74 のジョンソンカウンターで 1/4 の周波数の 2 相信号になります。
HCU04 のフランクリン発振器出力を、ATMega328 のカウンターで周波数測定し、周波数誤差に応じたパルスを出します。 そのパルスを TLV272 (CMOSオペアンプ)で積分して誤差電圧をつくりフランクリン発振器の周波数を変化させます。 この一巡を FLL(Frequency Locked Loop) といいます。 PLL(Phase Locked Loop)と違い、位相はロックしません。

■ソフトウェア実行タイミング
SDR-1 ソフトウェア

A/D D/A のサンプリング周波数が 24kHz なのでこれを 1 周期としてその中に全部の処理をいれます。

まず受信割り込みでは、A/D した信号を取り込むと同時に D/A 用のデータをセットします。 A/D D/A は 16bit 2ch なので 24kHz の 1 周期に 32bit 転送しないといけません。 1 回の転送で 8bit 送りますので 1 周期に 4 回割り込みがかかることになります。 割り込み処理は 2〜3us かかり、4回で約 10us になります。

残りの余った時間(約 30us )で、ユーザーインターフェース( LCD 表示や SW 入力)、FLL、AGC などの雑多な処理と、AM 復調処理をします。


■閑話休題


2010/10/29

基板ができてきましたので部品を実装しました。


■部品をのせた基板

SDR-1 基板写真

基板の大きさは 80mm x 80mm です。
液晶の下に ATMEGA328 や NJM386 があります。
AD/DA コンバーターが 0.65mm ピッチなのを除けば他は 1.27mm ピッチなので APB-1 などに比べると組み立ては簡単です。


■ SSB 逆サイドサプレッション特性実測

逆サイド特性

SSB モードのオーバーオール逆サイドサプレッションの実測値です。 0dB が -20dB になるようにして測りましたので逆サイドサプレッションはだいたい 42dB ぐらいです。 だいたい1%程度のレベル差があることになります。 無調整なのでこんなものでしょう。 レベル調整すればこの下のヒルベルトフィルターの特性 50dB ぐらいまで追い込めると思います。


ヒルベルトフィルター特性

エクセルで計算したヒルベルトフィルター(Hilbert Filter)の特性です。
ヒルベルトフィルターは 300 - 5700 Hz で 50dB 以上になるものを実装しました。 タップ数は 63 です。


ヒルベルトフィルター係数

上図のようにヒルベルトフィルターの係数は奇対称でしかもひとつおきにゼロになります。 このことを利用して本来 63 回の MAC 演算が必要なのを 16 回に減らしています。
それでもさすがにヒルベルトフィルターは時間がかかり約 55us かかっています。 そのため SSB のときはサンプリング周波数を 12kHz に落としています。


■閑話休題



2010/10/31

キットの頒布を開始します。 希望される方は頒布案内ページをご覧の上申し込みください。


■設計資料

組み立てマニュアル ver. 1.00 (PDF 535KB)
回路図 20101031 (PDF 85KB)
基板パターン図 20101031 (PDF 2423KB) (レイヤーごとに表示できます)
プログラムソース 20101031 (ZIP 44KB) ← 20101129 hexファイルを追加しました。



2011/10/17

APB-2FMアナライザーで FLL の応答特性を取ったところ高い周波数で不安定なことがわかりました。 そこで FLL のかけかたを大きく変更し、応答時間と応答特性の改善を試みました。

また、短波受信にも使えるように受信周波数が 2MHz を超えたときには 4 分周されたものとして扱うようにしました。


hexファイル 20111017 (ZIP 11KB)



■ FLL 応答特性
FLL_R8=10k


これでもオリジナルと比べると大分良くなっていますが、R8 を 10k から 1k に変更すると以下のようにさらに改善されます。


FLL_R8=1k


これは、R8 と C7 で作られる時定数 1ms が FLL のループ内に入りループ安定性を損なっているためです。 R8 を 1k に変更すると時定数が 0.1ms とほとんど影響なくなります。



■ 短波を受信するには



これで周波数を短波帯 ( 2MHz 以上 ) にすると短波を受信することができます。 受信できるのは FLL がロックする範囲です。 L1 を 0.82uH にした場合 2100kHz から 7600kHz まで受信可能でした。 L1 を小さくすれば受信可能周波数を上げることができますが、L1 が小さくなると Q が下がり発振しにくくなります。 その場合 R6 を 1k 程度まで小さくすると発振させることができます。 上限はだいたい 10MHz ぐらいまでです。

さすがに原発振が 30MHz ぐらいと高いと FLL をかけているといっても数10Hz オーダーでのふらつきは押さえきれません。 ちょっと息を吹きかけただけで大きく変動します。 SSB モードでの受信はちょっとつらいです。
L1 を大きなものにし、D2 を FM 用のバリキャップに変え、FLL 発振部をシールドすると良くなると思うのですが...

あと、感度が足りない場合は、R11, R12, R15, R16 を 1k から 100 オーム程度まで小さくすると良くなります(約20dBアップ)。




inserted by FC2 system