VS1053bを使ったDecorderの使い方はここで説明しています。ただこれは基板が大きくてもっと小さいサイズの製品を探したらこれが見つかったのですが、これ意外と曲者でした。
Aliexpressの製品は写真と実物が違って意図しないものを買ってしまう事が良く有ります。今回は、LSIがVS1053bである事が注意点。(似たLSIでVS1003bが有り、これは性能が劣る)HPの当てにならない写真と明細書を確認してオーダーし希望の製品を入手出来ました。
ところが動かない
VS1053bを使うと同じ様にESP32を使ってサンプルプログラム(サイン波を出力するプログラム)を実行したところ、全く音が出ません。配線とプログラムを確認しましたが間違っていません。同じESP32と赤いVS1053bを接続すると問題無く動作します。どうもこの基板(緑のもの)に問題が有るように思えます。
この基板全く動かないかというとそうでも無いのです。レジスタの読み書き(レジスタに書いた値を読み出す)は出来ます。書いたデータを読み出す事は出来ないのでデータの読み書きが出来ないのかは確認出来ませんが、配線は間違っていない事は再度確認しています。
Webで検索すると
vs1053b SDI Sine test not working, SCI works – SOLVEDが見つかりました。要約すると
- VS1053Bには8ビットのGPIOが有り。リセット後には全て入力設定になる。
- 起動時に
- GPIO 0がLOW、GPIO 1 LOWの場合、通常のデコードモード起動。
- GPIO 0がLOW、GPIO 1 HIGHの場合、Real-Time MIDI モードで起動。
VS1053Bが Real-Time MIDI モードで起動して、サイン波が出ないとの事。そこでボードを確認すると
GPIO 0は10k(104)の抵抗を通してGNDに接続されている(LOWになっている)が、GPIO 1はオープンになっています。GPIO 1がHIGHで有る可能性はかなり高い。リンク先では、GPIOの0と1をショートさせたら動いたと有ったのでやってみたら確かに動きました。参考までに赤い基板の同じ箇所を確認すると
各ピン抵抗を通してGNDに接続されています(両方LOW)。また、SPECVS1053の資料に載っている推奨回路もGNDに落としていました。
ピンをショートしてからは問題無く動作しました。この基板はMIDI用として設計されていると言えばこれで良いのですが。、この基板をMIDI用に使う人がどれくらいいるのか。