Monthly FB NEWS 月刊FBニュース 月刊FBニュースはアマチュア無線の電子WEBマガジン。ベテランから入門まで、楽しく役立つ情報が満載です。

ものづくりやろう!

第七回 SI4732ラジオIC基板を用いたHF帯DSPラジオをつくろう(1)

JH3RGD 葭谷安正

こちらの記事を印刷する(PDF 形式)

はじめに

はるか50年ほど前の中学生時代に並四ラジオを作ってから、ラジオのキットや使いもしないトランシーバーキットを何回も作ってきました。作った後のラジオを活用することは少なく、どちらかというと半田ごてを握ってラジオを組み立てる事が楽しい、というのが私のラジオ製作の本音のところです。この年になってもまだそんなラジオ作りをしています。ところで、少し前から気になっているラジオがあります。

DSPラジオの製作

気になっているラジオ、それはアマゾンやヤフオクで「GENERIC SI4732 FM AM SSB Receiver」のような名前でたくさん販売されているSI4735というラジオICを使ったデジタルシグナルプロセッサ(Digital Signal Processor、以下DSP)ラジオです。キットや完成品が売られていますのでご存じの方も多いのではないでしょうか。RTL-SDRの親戚のように見えます。私はDSPラジオを組み立てたことがありません。このICの仕様を見ると老眼の私には半田付けするにはつらい大きさです。しかし、半田付けが無ければラジオを組み立てるのに必要な作業はマイコンやディスプレイ装置との接続くらいであり、わりと簡単に製作できそうです。それにこのラジオ、FM放送、AM放送、HF帯のSSB(LSB、USB)信号が受信できるとのこと。RTL-SDRのようなウォーターフォール表示はできませんが、その大きさも10×10×4cmとあり、この大きさの中にマイコン、電池を内蔵しており、アンテナを繋げばすぐ聞けるとのこと。コンパクトです。価格も思ったほど高くない。これくらいの大きさならばいつでも仕事のカバンに入れて外に持っていけそうです。

いつも私のカバンの中に入っている144/430MHzのハンディータイプトランシーバーでも短波帯の受信ができますが、AMのみ。可変できる周波数ステップの最小間隔が5kHzと大きいため、7MHzのCW信号などはとても実用的な受信ができません。このDSPラジオだったらBFOを持っており、最小ステップが10Hz設定可能なようです。また、DSP基板とArduinoマイコン、TFTや有機ELディスプレイ(以下、OLED)などの表示装置、それに若干の部品で構成されているので、どちらかというとマイコン寄りのラジオというイメージが見えてきます。さらに情報を集めていくと、ネットに多くのOM諸兄の製作記事が掲載されており、製作上の注意点など多くの情報が提供されていました。「これは作らねば。これがあればハンディータイプのHF受信機として持ち歩けるぞ」(アンテナはどうするの(?) という視点が完全に欠落していますが・・・)と妄想が大きくなりました。

と言うわけで「SI4732DSPラジオICを使ってハンディータイプの持ち運べるHF帯SSB受信機」を組み立てる事にしました。アマゾンやヤフオクには完全キットのものや完成品もあります。内部構成をみると、上記のようにそれほど部品が多くありません。もう少し情報を集めてみると日本の「合資会社エフエーエル」社がSI4732のDSP基板を発売していることがわかりました。ホームページを見ると動かない場合もサポートをお願いできると記載されていました(有償)。エフエーエル社のDSPラジオ基板の完成品ですが、この周りにArduinoやOLEDなどの表示装置をつければラジオが完成するとのこと。フルキットではなく、完成基板と手持ち部品、多少の部品購入でOK。「よし」とばかりにラジオのサンプル回路図をエフエーエル社のホームページから探してみました。「SI47XX」と書かれた回路図が何件かあります。ラジオキットが2、3種類あるのでそのどれに当てはまるのかもわかってきました。そのうちの1つが図1です。


図1 SI47XX_02_ALL_IN_ONE_OLED動作試験用回路図

この構成を見ると、
(1) DSPラジオ基板(回路図中央上部の黄色ブロック)
(2) 制御用マイコンArduino(回路図中央下部の黄色ブロック)
(3) 表示装置(右側黄色ブロックがOLED)
(4) スイッチ(回路図左下部、8個のスイッチ)
(5) その他(アンテナ周りのトランス、リミッタダイオード、配線)
  等で構成されています。ArduinoとDSPラジオ、OLEDの通信プロトコルはI2Cです。

エフエーエル社が発売しているのが「DSP-RADIO MODULE」(回路図中央上部の黄色ブロック)です。アマゾンやヤフオクで入手できるキットは、この回路全体に相当する部品をすべて含んでいると思います。しかし、私の手元には何個かの部品がありそうですので、エフエーエル社の「DSP-RADIO MODULE」完成基板を購入してラジオをつくることにしました(エフエーエル社では完成基板とキットを販売しておられます)。「DSP-RADIO MODULE」の回路図を図2に示します。このラジオ基板の正式名称は「SI4732-A10M-002モジュール」とのことです。


図2 SI4732-A10M-002モジュール回路図

部品の準備にかかります。この完成基板を使ってラジオを作るために必要な他の部品の手持ち状況を調べてみました。ラジオの音量や周波数変更、FM,AM,LSBなどのモード変更などに使用する制御用マイコンArduino Nanoが2つ部品箱にありました。また、OLEDも2個ありました。抵抗、コンデンサなども部品箱にありました。ケースも考えなければいけません。最初はプロトコル作成のつもりですので、ブレッドボード上に組み立てて改良点を探ろうと思います。その後ケースに入れた実用版にというようにステップアップしたいと思います。キットにはアルミと思しき小型のケースが付いています。私の頭の中での出来上がりイメージはハンディータイプトランシーバーの形です。具体的には手元にあるタカチのプラスチックケース(アルミにできればいいのですが)を加工する予定で現在考慮中です。あとの不足部品は週末の日曜日に日本橋に行って購入してきました。DSPラジオ基板完成品(SI4732-A10M-002モジュール)をヤフオクで購入しました。

ラジオの組み立て(配線)

今回製作するラジオは試作と考えています。試作品を使いやすく、またVHF帯を受信できるなどの機能の拡張を考えています(できるかどうかは自信がありません。来月号をお楽しみに)。

試作ですので、後ほど改変しやすいようにブレッドボード上にラジオ基板、マイコンなどを配置し、ブレッドボード用ケーブルで配線して動作確認することにしました。ブレッドボード上に配置することでノイズの影響が激しく現れるのではないかと懸念しましたが、影響が出たら考えることにしました。ブレッドボード上で確実に動くことを確認した後に機能拡張やケース収納を考えます。ブレッドボード上の配線にはジャンプワイヤーを使用しました。高周波信号が流れる回路部分に長い配線を行うとノイズが乗ってトラブルを発生する恐れがあるかもしれませんが、なにも影響がでないことを祈って配線しました。

配線の順番としては、最初にグランドを配線していきました。グランド(GND)であることをすぐに区別できるように基本的に黒線を使用して配線しました。できるだけ短くまたは針金等を使って配線するようにしましたが、長さの異なるジャンプワイヤーが3種類ほどしかありませんでしたので短くきれいな配線にする事はできませんでした。

グランドの次に5Vや3.3Vの電源部の配線を行いました。5Vがメインになりますので赤色線で結線していきました。配線箇所はそんなに多いほうではありませんが、一本でも配線していないと動かないことがありますので注意して結線しました。配線を確実に行うため、配線した後は回路図にマーカーで色を塗るようにしました(図3)。このためにいつも回路図を2枚以上準備するようにしています。


図3 配線チェックシート

ブレッドボードへの配線が終わったら、出来上がった配線をできるだけきれいに整えました。せっかく配線したものが外れてしまったり、バラバラにならないようにしましょう。


(a)結束前


(b)結束後

図4 DSPラジオ試作品

SI47XX用Arduinoライブラリの情報

SI47XX用ライブラリは指定のURLからダウンロードする必要があります。購入したDSPラジオICの発売元会社のホームページにもソフトウェアのダウンロードサイトが明記されています。サンプルソフトウェアについては、すでに多くの方がこのSI4735というDSPラジオICを使ってラジオを組み立てておられるようで、参考になるサイトがたくさん見つかりました。それらのサイトの情報を参考にさせていただいてソフトウェアの設定やちょっとの改変を試みていきました。

DSPラジオIC、SI4735のArduinoライブラリの情報が、下記URLに記載されています。https://github.com/pu2clr/SI4735

(このライブラリを開発されたPU2CLRさんはブラジルのアマチュア無線家のようです。QRZ.COM上に自己紹介があります。QRZ.COMページの下のほうに「Si4735 Arduino Library」についての記載が少しあります。)

このページから多くの関係情報へのリンクが張られています。SI4735の情報ページですが、今回購入したDSPラジオIC基板に搭載されているICはSI4732です。互換性があるとのことですのでその情報を信じて製作しました。

SI4735、SI4732装置上のSSBモードのサポートについての記載があります。https://pu2clr.github.io/SI4735/#si4735-patch-support-for-single-side-band

ソフトウェアのインストール

使用するソフトウェアは、上記PU2CLR氏が開発したライブラリとそれに付随するサンプルプログラムです。サンプルプログラムがたくさんついています。最初はどのサンプルプログラムを開けばいいのかわかりませんが、それは制御するマイコンの種類と使用するディスプレイを考慮して選択します。

このSI47XXライブラリのインストールは、サポートサイトに直接接続してダウンロードするのではなく、Arduino開発環境からライブラリ管理の方法でインストールを行います。

以下にその手順を示します。
・Arduinoをたちあげます。
・Arduinoのスケッチ上部から「ツール」-「ライブラリを管理」を選択すると図5が表示されますので、「SI4735」と入力します。


図5 ライブラリのインストール(「ツール」-「ライブラリの管理」-「si4735を入力」


図6 「PU2CLR SI4735ライブラリ」のインストール

ライブラリを発見すると図6のような画面になりますので、「PU2CLR SI4735」の「インストール」ボタンを押します。これでライブラリが読み込まれます。ライブラリの読み込み時にサンプルプログラムも読み込まれます。

私の場合、配線が終わってサンプルプログラムを動かそうと思ったとき、たくさんあるうちのどのサンプルプログラムを開けばいいのかわかりませんでした。調べてみましたら、それは制御するマイコンの種類や使用するディスプレイにより選択するのだということがわかりました。今回作成した回路に対応するサンプルプログラムは、ディスプレイが有機EL(OLED)を使用しており、使用するドライバを確認した結果、SI47XX_02_ALL_IN_ONE_OLEDというスケッチだということがわかりました。手持ちの部品や表示装置を使用する場合は少し調べる必要がありそうです。スケッチを開いてみます。

「ファイル」-「スケッチ例」-「PU2CLR SI4735」-「SI47XX_03_OLED_I2C」-「SI47XX_02_ALL_IN_ONE_OLED」


図7 サンプルプログラムのロード

このスケッチをコンパイルしてArduinoに転送します。事前に使用するCPUボードの種類やボードが接続されているシリアルポートを選択しておく必要があります。
・「ツール」-「ボード:Arduino Nano」を選びます。
・「ツール」-「プロセッサ:ATmega328P(Old bootloader)」を選びます。
・ArduinoがPCと接続されていることを確かめたのちに「ツール」-「シリアルポート」を選びます。
・「スケッチ」-「マイコンボードに書き込む」を選びます。

サンプルプログラムのコンパイルが終わると転送が始まります。転送が終了すると、配線等に間違いがなければFMラジオが鳴ります。ただ、FMラジオの設定範囲が日本と異なるために、私がいつも聞いているFM局(76.5MHz)は周波数選択範囲外になっていました。

プログラムを確認しましたところ、スケッチの185行目にFM周波数帯が84MHz~108MHzで、周波数の初期値が105.7MHzになっていました。これをコメントアウトして186行目を追加しました。こうすることでFM周波数帯が75MHz~108MHzに設定され、周波数の初期値が76.5MHzになりました。

リスト1 プログラムリスト(一部)


コンパイル、転送が終わると私がいつも聞いている近くの「FM COCOLO」が聞こえてきました。FMアンテナをつけていなかったのですが受信できました(図8)。また7MHzのアマチュア無線バンドも受信することができました。


図8 FM76.5MHzを受信

操作性の改善等(案)

このライブラリを開発したPU2CLR氏が書かれていますが、サンプルを自分の使いやすいようにカスタマイズしてほしいとのことです。これは使いにくいなというところが数か所ありました。このラジオを作られたOM諸兄のどなたかがすでにサンプルを改変しておられるかもしれませんが、私の感じたことを以下に記載します。

・音量調整について
普通のラジオでは音量調節用の可変抵抗器を用いていることが多いですが、このラジオでは2つのタクトスイッチを使って音量調整をしています。一般によく使われるラジオのようにボリュームを回転することによって音量の調節をしたいと思いました。

これを実現するためには、可変抵抗器と同じようなインターフェースを持つロータリーエンコーダで音量調整できるように改変する必要があります。音量調節に使っている2つのボタンのうち1つを使用し、ボリューム調整用のスイッチを押されているときはロータリーエンコーダが音量調節を行うようにソフトウェアを改変しようと思いました。

・周波数表示について
このラジオでは周波数変更はロータリーエンコーダで行っており、最小1kHzステップで周波数を変化させることができます。そのため1kHz以下の微調整はBFOで行っており、メインの周波数表示とBFOの周波数表示が別々になっています。このため、これを統合して表示すると現在の受信周波数がいくらなのかが解りやすくなります。

・周波数拡張について
このラジオで受信できる最大周波数はFMで108MHzと仕様に記載されています。エアバンドや144MHz帯を受信できるようにコンバータを付けたいなと思いました。その他いろいろ触ることができそうなラジオです。次回までにソフトウェアの改変やハード組み立てがうまくできましたら報告させていただきます。

ものづくりやろう! バックナンバー

2021年12月号トップへ戻る

次号は 12月 1日(木) に公開予定

サイトのご利用について

©2024 月刊FBニュース編集部 All Rights Reserved.