(12)トラ技mbedでDSPラジオ(Si4735ライブラリ)
.
(12)DSPradio(Si4735 library)
概要
- Si4735用のライブラリです。
- Si4735はI2C接続のDSPラジオ(AM/FM)です。
- 2つの付録基板での活用例です。
- トランジスタ技術2014年2月号の付録基板(実験基板)
- トランジスタ技術2014年3月号の付録基板(トラ技mbed)
- 実験基板は表示機として使用します。LPC810は外しておきます。
Si4735モジュール
- ビット・トレード・ワンのSi4735モジュールを使用します。
- 事前準備として、FMアンテナ用ハンダ・ジャンパーをショートします。
- これによりイヤホン・ケーブルがFMアンテナを兼用します。
- 端子のmbed風表記です。
ボタン操作方法
SW1 | Band | FM/AMバンド切替 |
SW2 | Mode | モード切替(Volume/Seek/Step/Region) |
SW3 | Up | VolumeUp/SeekUp/StepUp |
SW4 | Down | VolumeUp/SeekDown/StepDown |
- Volumeモードでボリュームを設定します。
- Seekで自動チューニングします。
- Stepで手動チューニングします。
- Regionで居住地域を設定します。
ラジオ放送の仕様(spec.)
- | 日本 | 米国 | EU |
AMバンド | 531KHz~1602KHz | 530KHz~1710KHz | 522KHz~1602KHz |
AMスペース | 9KHz | 10KHz | 9KHz |
FMバンド | 76MHz~90MHz | 87.9MHz~107.9MHz | 87.5MHz~108MHz |
FMスペース | 0.1MHz | 0.2MHz | 0.1MHz |
FMデエンファシス | 50us | 75us | 50us |
- FM放送は音質改善のために、高音を強調(エンファシス)して送信しています。
- FM受信側で高音を元に戻す(デエンファシス)必要があります。
Si4735関数
関数名 | 用途 | 引数 | 戻り値 |
Si4735 radio(P0_5, P0_4, P1_19) | インスタンス生成 | SDA, SCL, RST | - |
Si4735 radio(i2c, RST) | インスタンス生成 | i2c, RST | - |
radio.getIntStatus() | status取得関数 | void | char status |
radio.setProperty(0x4000,32) | SetProperty設定関数 | short PROP, short PROPD | void |
radio.setVolume(32) | Volume設定関数 | char v | void |
radio.getFMStatus() | FM状況取得関数 | void | char |
radio.getAMStatus() | AM状況取得関数 | void | char |
radio.setFMRadio(8000) | FM周波数設定関数 | int f | void |
radio.setAMRadio(954) | AM周波数設定関数 | int f | void |
radio.getFMRadio() | FM周波数取得関数 | void | int f |
radio.getAMRadio() | AM周波数取得関数 | void | int f |
radio.seekFMRadio(SEEK_UP) | FMseek関数 | SEEK_UP/SEEK_DOWN | void |
radio.seekAMRadio(SEEK_UP) | AMseek関数 | SEEK_UP/SEEK_DOWN | void |
radio.initFMRadio(fmin, fmax, spacing, deemphasis) | FM初期化関数 | int, int, char, char | void |
radio.initAMRadio(fmin, fmax, spacing) | AM初期化関数 | int, int, char | void |
radio.resetRadio() | reset関数 | void | void |
- インスタンス生成はどちらかの方法で行います。i2cを継承することもできます。
- Si4735コマンドの詳細はプログラミングガイドAN332を参照ください。
- I2Cアドレス(7ビット)は0x11(プログラム上の表記は0x22)
Appendix(1) Si4735のポップノイズ対策
- Si4735のLOUT/ROUT端子はデジタルとアナログ兼用のため、切替時にノイズを発生します。
- そのためAM/FM切替時にポップノイズを発生します。
- RESET信号に連動したアナログスイッチでノイズを回避します。
Appendix(2) Si4735の音割れ対策
- アナログ出力の駆動能力には限界があります。
- そのため大音量で音割れします。
- オペアンプでバッファーし、駆動能力を補います。
Appendix(3) Si4735のFM受信ノイズ対策
- Si4735-D60はデフォルトでデバッグ機能が有効です。
- そのためFM受信時、定期的(約1秒間隔)に小さなノイズが入ります。
- デバッグ機能を無効にすることでノイズを軽減します。
DSPラジオのメリット
- デジタル処理のため、受信周波数の安定性がよい。アナログのようにふらつくことはありません。
- 周波数の安定性がよいため、音質もよい。
- 物理的な調整箇所がないため、経年変化がありません。アナログの場合、再調整が必要です。
- 小型軽量です。
mbedソフトウェア
- サンプルプログラムはmbed_RADIOです。
- mbed_RADIO_LPC11U35_501.binを書き込みます。
トラ技mbedのプログラム書き込み方法
- ISPボタンを押しながらRESETをON/OFFします。
- PCにUSBストレージとして認識されます。
- firmware.binを削除します。
- バイナリファイルをコピーします。
- RESETを押します。
接続
- Si4735の3.3Vをmbedの3.3Vに接続します。
- Si4735のGNDをmbedのGNDに接続します。
- Si4735のSCLをmbedのSCLに接続します。
- Si4735のSDAをmbedのSDAに接続します。
- I2Cデバイスを複数接続する必要があるため、I2Cハブを利用しています。
著作権と免責事項
- 個人利用に限定され、著作権者の許可なく商用利用できません。
- 直接間接に関わらず、使用によって生じたいかなる損害も筆者は責任を負いません。
Please log in to post comments.