RDA5807FP(FM DSPラジオ IC)が使い易く、地域のFM局の受信も安定しているので色々と試している。
RDA5807FPは、I2S経由でディジタル音声信号(ラジオ音声)を出力する機能を持っているのが面白いと思ったので、動作を確認してみた。ここではDAC(ディジタルーアナログ変換)にUDA1334を使用する(現在、スイッチ・サイエンスでは販売終了とのこと)。
RDA5807とUDA1334の基板側の接続は以下の通り。電源はUSBからの5VをVINに、基板のGND同士を接続する(写真を参照のこと)。
ピン1(GPIO1) ー WSEL
ピン15(GPIO3)ー BCLK
ピン16(GPIO2)ー DIN
写真では、マイクロ・コントローラ(MCU)として、RP2040‐ZERO (Raspberry Pi Pico相当)を使用している。
RDA5807のI2Sを有効にするには以下の初期化コードを追加する。
Wire.beginTransmission(0x11);
Wire.write(0x04); // REG4
Wire.write(0b10001000); // RDSIEN, De-emphasis 50μs
Wire.write(0b01000000); // I2S Enabled
Wire.endTransmission(); // stop transmitting
Wire.beginTransmission(0x011);
Wire.write(0x06); // REG6
Wire.write(0b00000010); // DATA_SIGNED
Wire.write(0b10000000); // 48KBPS
Wire.endTransmission(); // stop transmitting
上のコードでは、Wireライブラリを利用して、RDA5807のREG4、REG6を直接設定している。RDA5807側のサンプリングレートは最大の48KBPSに設定している。UDA1334はWSEL入力の周波数に自動で対応するようである。
結果として、UDA1334側からもラジオ音声は出力されたが、RDA5807からの出力と比較してみて、音質の違いは明確には認識できなかった。あと、I2S側は音量が調節できないので、後段にアンプを接続する必要がある。
ということで、I2Sを利用しても仕掛けが大掛かりになる割にはメリットがないので、実験にとどめておくことにする。