EtherRadio

overview

mbed NXP LPC1768と秋月電子通商ラジオモジュールを組み合わせて、イーサネットラジオを作ってみました。

本機とPCとのやりとりはUDPパケットを使用します。AM/FMバンドの選択、周波数の設定、ミュートなどのコマンドもUDPパケットで送信します。PCから本機に"wave"と書かれたUDPパケットを送信すると、それを受け取った本機が、音声データをUDPパケットで1秒間返信します。すなわち、0.5秒ごとに1回"wave"パケットを送信し続ければ、連続的にストリーミング音声を受信できます。音声データのサンプリングレートは32000Hz、データ幅は16ビット(A/Dコンバータの解像度は10ビット)です。非圧縮で、1パケット当たり256サンプルずつ転送します。

mbedとラジオモジュールはI2Cで通信しますが、mbedのI2C機能とラジオモジュールの相性が悪いのか、うまく通信できませんでしたので、自作のI2C関数を作成しました。

mbedにはA/D変換機能が付いていますが、いまいちノイズが多く、性能が悪いので、外付けA/Dコンバータを使用しました。

ラジオモジュールの音声出力は、Rail-To-RailタイプのOPアンプ、ナショナルセミコンダクターのLMC6482を経て、マイクロチップテクノロジーのMCP3002でA/D変換します。mbedとA/DコンバータはSPIで通信します。mbedは256サンプル毎にCRCを付加して、1028バイトをUDPパケットで配信します。

アナログ入力バッファ+A/D変換基板(PDF)

mbedファームウェア

http://mbed.org/users/soramimi/programs/RadioServer/

再生ソフト

Win32実行ファイル

ソースコード