諸々の記録

その時々 興味にある事について

RDA5807M + Raspberry Pi Pico でFMラジオを鳴らしてみる

先日、RDA5807H + Raspberry Pi Pico でFMラジオを鳴らしてみたところ、なぜか
 OSError: [Errno 5] EIO
のエラーが出て動作しなくなった。
RDA5807H + Raspberry Pi Pico でFMラジオを鳴らしてみる - 諸々の記録

通信エラーっぽいので、RDA5807H がおかしくなったのかと思い、Amazon で RDA5807M (5個セット)を購入し、届いたのでこれで試してみる。


基板がつながったままだが、指で曲げれば簡単に切り離しできる。
で、これは先日秋葉原に行って秋月で見つけた小さなユニバーサル基盤とピンヘッダをはんだ付けしてブレッドボードに挿せるようにした、


そして、RDA5807H と この RDA5807M  を差し替えてみると・・
 OSError: [Errno 5] EIO
なんと、同じエラー!

その後、PCを変えてみたり、マイコンを Aruduino nano (互換品)にしてみたり色々試してみたがダメ。
もしや、このRDA5807M が不良品か? と思ったので、もう一つ RDA5807M にピンヘッダつけて試したけど、それもダメ。
もうあきらめようかと思っていたところ、急に音が鳴った!
何が悪かったか全くわからないが、マイコン側、FMモジュール(RDA5807)側 ではないとすると、配線の接触不良だったのか?
テスターでマイコン側とFMモジュール側の接点で通電は確認していたのですが、完全に断線していたのではなかったということでしょうか?

まあ、動いてよかった。

これを教訓として、RDA5807 の動作確認は、まず、下記のスケッチをを Thonny で実行。

import machine

i2c=machine.I2C(0,sda=machine.Pin(4), scl=machine.Pin(5), freq=10000)
print(i2c.scan())

そして下記がシェルに表示されれば接続は正常と判断する。

これは、I2C で接続可能なデバイスのアドレスが表示されるもので、10進数で、16, 17, 96 なので、16進数でそれぞれ、 10、11、60  となり、参考サイトの情報(0x10が一括(バルク)書き込み、0x11 が個別アドレス書き込み、0x60 が旧モデルTEA5767互換の一括(バルク)書き込みのアドレス の3つのI2Cアドレスを持っている)と合致します。

 OSError: [Errno 5] EIO のエラーが出ていた時は、このアドレスが全く異なるものが表示されていたので、まず、 上記スケッチで i2c.scan を実行して、I2C接続ができているか(配膳が正常か)を確認した方がよいですね。