[技術解説]
BluetoothワンチップBM62で作る
低雑音ワイヤレス・オーディオ
[Vol.1 BM62の基本的な使い方]

技適OK&20ビットDAC/DSP/AAC搭載!鍵はグラウンドの低インピーダンス化


【Index】

Vol.1 BM62の基本的な使い方

Vol.2 ディジタル雑音の発生メカニズムと対策

応用例1:USBブリッジICや再生ボタンなどと組み合わせたワイヤレス・オーディオ・ユニット 応用例2:手作りのワイヤレス真空管オーディオ・アンプ

使いやすい2.54mmピッチのBluetooth無線モジュール

ワイヤレス・ヘッドセット用のオールインワンBluetoothトランシーバ“BM62”(マイクロチップ・テクノロジー製,写真1)を紹介します.正式な型名はBM62SPKS1MC2です.技適は取得済みなので,安心して装置に組み込むことができます.

写真1$\mathrm{^{(1)}}$ Hi-Fiオーディオに使えるほど完成度の高いBluetoothワンチップ・トランシーバ BM62(マイクロチップ・テクノロジー)
左はシールドを外したところ,右はシールドを取り付けたところ

次のように高品位オーディオにも使えるくらいの高いパフォーマンスを備えています.

  • ほとんどのBluetooth機器と接続できるスタンダード・コーデック“SBC”と,iPhoneが採用する高音質コーデック信号処理“AAC”を搭載
  • 20ビットの高分解能D-Aコンバータとイコライザ調整用DSP(Digital Signal Processor)を搭載
  • 単電源動作のパワー・アンプとヘッドホンの間に入れるカップリング・コンデンサが不要で,小型化とコストダウンが可能

BM62は,申し分ない機能と性能を備えた完成度の高いチップですが,その実際の使い方や評価結果に関する情報は今のところ多くありません.そこで,$2.54\mathrm{mm}$ピッチのDIPモジュールに仕上げて実際に動かしてみました(受信動作だけ).

本稿では本モジュールの使い方を紹介します.なお,BM62は受信専用デバイスであり,送信は不可能です.

写真2 $2.54\mathrm{mm}$ピッチの評価用モジュールを製作して,BM62のパフォーマンスを引き出す使い方を検討する

完成の域に達したワンチップ・トランシーバ・チップ“BM62”

①ワイヤレス・オーディオ再生に必要なものがすべて入っている

BM62は,使い方が非常にシンプルで,電源をつなぐだけですぐに動作します.自作のオーディオ・アンプと組み合わせれば,簡単にワイヤレス・オーディオ環境を構築できます(図1).また,トランジスタを使用した低周波アナログ回路の実験をする場合などに,オーディオ信号源として活用できます.

図1$\mathrm{^{(1)}}$ 手軽に多機能なワイヤレス・オーディオ環境を構築できるBluetoothモジュール BM62

$16\mathrm{Ω}$および$32\mathrm{Ω}$のヘッドホン負荷を直接駆動できるので,パワー・アンプなどを外付けする必要はありません.$16\mathrm{Ω}$負荷時の最大出力電力は$34.5\mathrm{mW}$,$32\mathrm{Ω}$負荷時の最大出力電力は$17.2\mathrm{mW}$です.

②周波数特性を調整できる音声処理用DSPを内蔵

BM62には,Bluetooth通信のためのRF(Radio Frequency)回路と音声処理用のDSP(Digital Signal Processor)を一体化した“IS2062”というSoC(System On Chip)が使われています.図2にこのシステムの全体図を示します.

図2$\mathrm{^{(1)}}$ Bluetoothワンチップ・トランシーバ BM62の内部ブロック図

このSoCには各種設定を保存するためのメモリが搭載されています.BM62とパソコンをシリアル通信(UART:Universal Asynchronous Receiver/Transmitter)で接続して,専用のソフトウェア(無償)から書き込みを行えば,内部設定を変更することができます.

システム全体のインターフェースに関する設定として,ボタン操作,LED点灯パターン,電源管理などの内容を自分の好みに合わせて変更できます.また,内蔵DSPに関する設定を行えば音声処理における周波数特性を調節することができます(図3).なお,内部設定を変更しなくてもデフォルトのままで問題なく使用できます.

図3 内蔵のDSPの設定を変えると,音声処理における周波数特性を調節できる

③ほぼすべてのBluetooth機器と確実につながる

BM62は,Bluetoothの標準的なコーデックである“SBC”(Sub-Band CODEC)を搭載しています.また,iPhoneなどが搭載する高音質コーデック信号処理“AAC”(Advanced Audio Coding)に対応しています.

④ひずみ率$0.05\%$,SN比$96\mathrm{dB}$のD-Aコンバータを内蔵

内蔵D-Aコンバータの分解能は$20$ビット,SNR(Signal to Noise Ratio)は$96\mathrm{dB}$です.

図4(a)に入力振幅-出力振幅特性を,図4(b)に全高調波ひずみ率(THDN,Total Harmonic Distortion+Noise)特性を示します.$16\mathrm{Ω}$負荷,$1\mathrm{kHz}$,$-1\mathrm{dBFS}$入力時のひずみ率(THDN)は$0.05\%$です(データシートより).

図4$\mathrm{^{(1)}}$ 内蔵D-Aコンバータのオーディオ性能($16\mathrm{Ω}$負荷)
キャップレスとシングルエンドのCH1とCH2の特性.全チャネル,全モードにおいて90dB以上のリニアリティが確保されている

⑤2種類のスピーカ接続モードを備える

ヘッドホンを直結できる「キャップレス・モード」

BM62に対してヘッドホンなどの負荷を接続する方法は2種類あります.

1つめは,図5(a)に示す「キャップレス・モード」です.ヘッドホンのR端子をRチャネル音声出力端子(SPKR)に,ヘッドホンのL端子をLチャネル音声出力端子(SPKL)に接続します.ヘッドホンのコモン端子は回路全体のグラウンドではなく,BM62のアナログ・コモン出力(AOHPM)に接続します.AOHPMは,いわゆる仮想グラウンド出力端子で,“SPKR”端子,“SPKL”端子,“AOHPM”端子のDCレベルはほぼ等しくなっています.

図5 内蔵のD-Aコンバータとスピーカの接続方法を選べる

DCカット用のキャパシタを使う必要がないので,実装スペースとコストの節約になります.また,この接続方式はBM62全体の電位が揺れるようなコモン・モード・ノイズに強いという特徴もあります.

図6(a)に,キャップレス・モード接続時の周波数特性を示します.低域側に対する高域($20\mathrm{kHz}$)の減衰量は約$0.1\mathrm{dB}$で,ほとんど無視できます.データシートでは帯域幅を$20\mathrm{Hz}$から$20\mathrm{kHz}$と定めていますが,この性能が十分に確保されていることがわかります.

図6$\mathrm{^{(1)}}$ カップリング・コンデンサの有無とゲインの周波数特性

自作アンプをつなぐなど,拡張するときは「シングルエンド・モード」

BM62の音声出力と自作のアンプを接続したいときは,図5(b)のような「シングルエンド・モード」の接続方式を使います.アナログ音声出力の“SPKR”端子および“SPKL”端子にはDCオフセット成分が存在するので,DCカット用のキャパシタを挿入する必要があります.

図6(b)に,シングルエンド・モード接続時の周波数特性を示します.シングルエンド・モードではDCカット用のキャパシタを使用するので,低域側の信号が減衰しています.とはいえ,小型のヘッドホンやスピーカの最低共振周波数は$100\mathrm{Hz}$程度なので,低域の減衰を極端に気にする必要はないと考えられます.


評価用モジュールの製作

ピン配置

図7および表1に,評価用モジュールMZBM62-B01のピン配置を示します.グラウンド端子が合計$6$個あります.グラウンドのインピーダンスを小さくしてノイズを低減するために,これら6個のグラウンド端子はすべて回路のグラウンドに接続することをおすすめします.

図7 製作したBM62評価モジュール“MZBM62-B01”のピン配置(上面図)
表1 BM62評価モジュール“MZBM62-B01”の各ピンの機能

回路設計の注意事項

  • “BAT_IN”端子(21番ピン,$3.2$~$4.2\mathrm{V}$)あるいは“ADAP_IN”端子(20番ピン,$5\mathrm{V}$)のいずれかに電源を供給すると動作します.なお,“BAT_IN”電源に$3.3\mathrm{V}$の3端子レギュレータの出力を接続すると,電圧が低いため“Low Battery”と見なされます.
  • グラウンドのピン(23番,36番,37番,38番,39番,40番ピン)はすべて接続してください.また,グラウンド経路の抵抗が十分に小さくなるように設計してください.グラウンドの抵抗が大きい場合,ノイズが出る可能性があります.

その他,詳細はBM62のデータシートを参照してください.

自作アンプを接続する場合の最小構成

図8に,最低限の部品を使った回路の設計例を示します.

電源用のパスコン,音声出力のDCカット用のキャパシタ,電源ON/OFFおよび機器のペアリング時に使うプッシュ・スイッチ,動作確認用のLEDで構成されています.6本のグラウンド端子を接続するグラウンドの配線は,十分に低インピーダンスになるようにしてください(ベタ・グラウンドが理想).

図8の回路では$5\mathrm{V}$電源を使う仕様にしています.BM62自体の消費電流は$15\mathrm{mA}$程度なので,電流容量 数百$\mathrm{mA}$,出力電圧$5\mathrm{V}$の3端子レギュレータで十分に駆動できます.なお,この回路では操作用のボタンを省略しているので,再生・停止や音量調節などのコントロールは再生機器側で行います.

図8 “MZBM62-B01”の拡張例① 最小構成のワイヤレス・オーディオ・システム

ペアリングの方法

BM62と初めてBluetooth接続する場合は,再生機器側でペアリングの操作を行う必要があります.以下,電源がOFFの状態から操作を始めるものとしてペアリングの手順を解説します.

  1. “MFB”ピンに接続されているスイッチを長押しする
  2. 青LEDと赤LEDが同時に3回点滅する.電源がONになる
  3. “MFB”のスイッチを戻さずに,そのまま押し続ける
  4. 青LEDと赤LEDが交互に点滅して,ペアリング待機状態になる
  5. 続対象の機器(スマートホンや携帯音楽プレーヤなど)のBluetooth設定画面を開く.BM62は“Dual_Mode_SPK”(あるいは“Dual_SPK”)と表示されるので,それを選択すればペアリングの処理が行われる
  6. ペアリングが完了すると,青LEDが2回断続的に点滅する
  7. 音声再生中は青LEDと赤LEDが断続的に点滅する

すでにペアリングが済んでいる機器との接続

すでにペアリングが済んでいる場合のBluetooth接続手順を以下に示します.なお,電源がOFFの状態から操作を始めるものとします.

  1. “MFB”ピンに接続されているスイッチを長押しする
  2. 青LEDと赤LEDが同時に3回点滅する.電源がONになる
  3. 青LEDが点滅して接続待機状態になる
  4. 接続対象の機器(スマートホンや携帯音楽プレーヤなど)を操作して接続する

BM62の内部設定の変更方法

操作用のボタンとシステム・コンフィグ用回路を追加する

図9に,操作用のボタンとシステム・コンフィグレーション用の回路を追加した回路図を示します.再生・停止や音量調整などのコントロール用ボタンは,BM62の各端子とグラウンドの間にプッシュ・スイッチを接続するだけです.

図9 “ZBM62-B01”の拡張例② 操作用のボタンとシステム・コンフィグ回路を追加

“HCI_TXD”端子(32ピン)と“HCI_RXD”端子(33ピン)を一般のシリアル-USB変換モジュール(例えば,FT232RLを使ったものなど)を介してパソコンと接続すれば,パソコン側の専用アプリケーションと通信できます.また,BM62内部のEEPROMを書き込みモードにするためにトグル・スイッチを付けています.

これ以降,図9の回路を使用することを前提として解説を進めます.

システム・コンフィグ用ソフトウェアのダウンロード

最初に,BM62の設定変更に使う専用のソフトウェアをダウンロードします.以下,各ソフトウェアのバージョンは随時変更される可能性があるのでご了承ください.

  1. BM62関係のWebサイトにアクセスする
    https://www.microchip.com/wwwproducts/en/BM62
  2. “Documents”の項目の“Software Libraries/Firmware”欄の“IS2062/BM62 Software & Tools”をダウンロードする(図10)
  3. 下記ツールのダウンロードが完了したら,各ディレクトリを展開しておく ・DSP Tool:内蔵DSPの設定変更に使うツール(今回は使わない) ・EEPROM Tool:内蔵EEPROMの書き込みツール ・MPET Tool:書き込み用ファイル(ipfファイル)を生成するためのツール ・UI Tool:ボタンや操作音などの設定をするためのツール
図10 BM62の製品ページにアクセスしてツールをダウンロードする

“UI Tool”を使ってボタンや操作音の設定を変更する

ボタンを押したときの挙動やLED点灯パターン,操作音などを設定するための“UI Tool”の使い方を解説します.

  1. “UI Tool”ディレクトリ内の“UITool_IS206x_012_DualModeSPK1.1_v1.03.exe”を起動する
  2. [Load]をクリックする(図11)
  3. 図11 “UI Tool”の起動画面
  4. デフォルトの[UITool_IS206x_012_DualModeSPK1.1_v1.03_UI_CLS2.txt]を選択する(図12)
  5. 図12 今回はデフォルトの設定ファイルをひな形として使用する
  6. “IC Package”の欄を[BM62]に設定する(図13)
  7. 図13 “IC Package”の欄を“BM62”に設定する
  8. [Edit]をクリックする(図13)
  9. 編集対象の選択画面が出る.今回はそのまま[Next]をクリックする(図14)
  10. 図14 編集対象を選択する
    今回はそのまま[Next]をクリックする
  11. BM62の詳細な挙動を設定する.例えば,[Sys. Setup1]タブの“Power Switch Type”の欄を[Power ON Directly]に変更すると,電源印加時に[MFB]ボタンを押さなくても最初から電源ON状態になる(図15).また,[Tone Setup]タブでは操作音の設定ができる(図16)
  12. 図15 [Sys. Setup1]タブの“Power Switch Type”の欄では電源ON時の挙動を設定できる
    図16 [Tone Setup]タブでは操作音の設定ができる
  13. 設定が完了したら[Finish]ボタンをクリックする.“Notification”のメッセージ・ウィンドウが出るので,[OK]をクリックする
  14. [Save]をクリックする(図17)
  15. 図17 編集が完了したら[Save]ボタンをクリックする
  16. 新しく名前を付けて,設定ファイルを保存する(図18).このとき,デフォルトの設定が記述されているファイルに上書きしないように注意する
  17. 図18 編集内容をテキスト・ファイルとして出力する
  18. [Exit]をクリックして終了する

“MPET Tool”を使ってipfファイルを生成する

“UI Tool”や“DSP Tool”を使うと,BM62の設定を記述したテキスト・ファイルを生成できます.このテキスト・ファイルをBM62に書き込める形式(ipfファイル)に変換するのが“MPET Tool”です.以下,このツールの使い方を解説します.

  1. “MPET Tool”ディレクトリ内の“MPET.exe1”を起動する
  2. [Next]をクリックする(図19)
  3. 図19 “MPET Tool”を起動して[Next]をクリックする
  4. [UI Patch Only]を選択して“Next”をクリックする(図20)
  5. 図20 “UI Patch Only“を選択して[Next]をクリックする
  6. [Browse]をクリックして,デフォルトのバイナリ・ファイルを選択する(図21).今回は“default_bin”ディレクトリ内の“IS206X_012_DUALMODESPK1.1_E1.0.0.2_0FCD.bin”を使用する
  7. 図21 デフォルト設定が記述されているバイナリ・ファイルを読み込む
  8. [Next]をクリックする
  9. [+]ボタンをクリックして,先ほど“UI Tool”で作ったテキスト・ファイルを選択する(図22).追加したら[Next]をクリックする.(今回は扱わないが,“DSP Tool”で生成したテキスト・ファイルもここで追加できる)
  10. 図22 先に“UI Tool”で作成したテキスト・ファイルを選択する
  11. [Output File]をクリックして,保存するipfファイルの名前と保存先を設定する(図23).[Next]をクリックする
  12. 図23 ipfファイルの出力先を設定する
  13. [Generate]をクリックする(図24)
  14. 図24 [Generate]をクリックする
  15. すべてのチェック・ボックスにチェックを付けて[Next]をクリックする(図25).
  16. 図25 すべてのチェック・ボックスにチェックして[Next]をクリックする
  17. [Finish]をクリックして終了

“EEPROM_Tool”を使ってBM62にipfファイルを書き込む

“EEPROM Tool”は,先に“MPET Tool”で作成したipfファイルをBM62に書き込むときに使うツールです.以下,このツールの使い方を解説します.

  1. BM62に接続したUART-USB変換モジュールとパソコンを接続する
  2. BM62の“P2_0”ピンをプル・ダウンした状態で電源を入れる
  3. “MFB”に接続したスイッチを押すと,赤LEDと青LEDが点灯する.これでBM62はEEPROM書き込み待機状態になる
  4. “EEPROM Tool”ディレクトリ内の“EEPROM_Tool_V4851.exe”を実行する
  5. 適宜COMポートを選択して,[IC/Module Identify]ボタンをクリックする.“MPSE Name”の欄に何らかのモジュール名(今回は“IS206X_012_DUALMODESPK1.1_E1.0”)が表示されることを確認する(図26).もし“UnknownVersion”と表示される場合は,BM62側と正常に通信ができていないので,UART経路の配線が正常か確認する.また,BM62が書き込みモードになっているかを確認する
  6. 図26 BM62と通信するCOMポートを選択して,[IC/Module Identify]ボタンをクリックする
  7. “File Path”欄の[…]ボタンをクリックする.さきほど“MPET Tool”で作成したipfファイルを選択する
  8. [Write]ボタンをクリックする.プログレス・バーが表示される(図27).
  9. 図27 EEPROMに書き込み中はプログレス・バーが表示される
  10. “Write Finish”というメッセージ・ウィンドウが出るので[OK]をクリックする
  11. [Exit]ボタンをクリックして終了

参考文献

  1. BM62データシート,マイクロチップ・テクノロジー
    http://ww1.microchip.com/downloads/en/DeviceDoc/BM62-BM64-Data-Sheet-60001403F.pdf
  2. Bluetoothモジュール BM62のデータや開発ツール
    https://www.microchip.com/en-us/product/bm62
    最新ファームウェアは“Embedded Software”にある“BM64 DSPK v2.1.5”(2022年1月12日時点)である.このzipファイルを1つダウンロードすれば,ファームウェアやツール類が一通り揃う.ツールの使い方などは,DocumentationのApplication Noteを参照のこと

関連資料


(c)2020 Nobuyasu Beppu