BM83のI2S出力をDACでアナログ信号に変換する
はじめに
当サークルから発売しているBM83変換基板。これと秋月電子のDACキットを使ってBluetooth to I2S 経由のアナログ出力をしてみました。
BM83はデータシートによると内部CODECのS/Nが95dBと、先代BM62/64の98dBにわずかに劣ることになっています。せっかくこのモジュールを使うのであれば、やはりI2Sをメインにしたいところです。
使用部品
- BM83Bluetoothオーディオモジュール変換基板
- 各種部品
- PCM5102キット
- 3電源キット
- CS8416キット
- 3.3V電源アダプタ
- ジャンパケーブル
- ブレッドボード2個
- MicroUSBケーブル
基本構成としては、BM83の出力をPCM5102で受けてアナログに変換する回路です。
秋月のPCM5102キットは+-5Vが必要なので3電源キットを、電源ラインのピンアサイン変換のため贅沢にCS8416キットを使用します。
接続
3~5を秋月のDAC付きアンプキットと同様に接続します。
私はスイッチを付けるために上下逆に詰みましたが、CONT1ピンで制御可能なためDACキットの通りに使っても問題ありません。後から気付きました。
BM83はいつも実験に使っている物なのでMSPK1.2、256fs指定のものを書き込み済みです。初期ファームでも問題ありません。
BM83ボードとDAC基板を下記のように接続します。
- I2Sライン4本とGNDを接続。(右側)
- PWRピンをGNDにプルダウン(左側)
- CS8416基板の入力セレクトを外部I2S側にセット
- BM83の外部回路(今回はLED)を追加
I2Sのピン配置は、
- USBMCLK -- MCLK1
- USBLRCK -- RFS1
- USBBICK -- SCLK1
- USBSDATA -- DT1
となっています。
ジャンパケーブルが窮屈なので端子がスリムな物がおすすめです。
出力は適当に3.5mmジャックを刺しました。ほとんどの場合I2Sは最大レベルで飛んでくるのでイヤホンを直接刺すと音割れしますが、動作確認だけなら十分です。
最後にDACの3.3V電源とBM83のUSB電源を接続します。
ペアリング
各種ボードの電源を入れた後、MFBを長押ししてペアリングします。
AACモードでペアリングでき、イヤホンを通してアナログ出力が確認できます。
オーバーサンプリングモードについて
HantekのUSBオシロで適当に取ってみました。
DSP Tool で256fsを指定しているため、LRCK=44.1kHz、MCLK=256fsになっているようです。
余談
CS8416側のUSBxxxx端子を使用している信号入力はPCM5102側のI2Sピンでも動作可能です。しかし、CS8416側が信号セレクタを持っているため、そちらのピンを使用するとJP2(CONT1)の設定で光デジタル入力とBluetooth入力を選択できます。
PCM5102側に入力しているとCONT1をLOWとした時にBM83の出力とCS8416の出力が衝突してうまくいきません。
おわりに
今回はできる限り少ない手数で BM83 の I2S 出力をアナログ出力に変換しました。
I2S 特有の設定やBM83の不具合など見つけたらまたご紹介したいと思います。
それでは。