USB Type-C付きBluetooth 5.0 DIPモジュール MZ-BM83A

ヘッドホン直結,DSP搭載,$\mathrm{I}^2\mathrm{S}$対応,ファームウェア書き換え可

写真1 2.54mmピッチのDIP基板に,Bluetooth5.0対応のワイヤレス・オーディオ・モジュールBM83を実装したキット MZ-BM83A 写真2 プリント基板を製作して,本キット(MZ-BM83A)を搭載したハンディBluetoothオーディオ
USB Type-Cから+5Vを給電すると,青色のステータスLEDが点灯して,ヘッドホンから音が出る.本キットだけで,Bluetoothオーディオが完成する リモコン・ボタンで,スマートホンの音楽再生をコントロールできる.自社開発のプリント基板には独自のヘッドホン・アンプ回路を実装した

高完成度のBluetooth5.0対応!USB Type-C搭載で使いやすい

高品位のワイヤレス・オーディオも簡単製作

写真1に示すのは,Bluetooth組み込み用の定番モジュール BM83(マイクロチップ・テクノロジ製)を変換基板に実装したワイヤレス通信キット MZ-BM83Aです.Bluetooth5.0規格に準拠し,電源供給用とBM83のファームウェア書き込み用のUSB Type-Cを搭載しています.

キット(MZ-BM83A)は,BM83の主要な端子を外部に引き出しています.基板端には,ピン・ヘッダ挿入用のスルーホールと半円状の端面スルーホールを設けてあります.端面スルーホールを利用すれば,ピン・ヘッダを使わず,本基板を直接マザー基板にはんだで直付けできます.

完成度が高く多機能!定番のBluetoothモジュール BM83搭載

BM83は,オーディオ・コーデックを内蔵しています.USBコネクタ(USB Type-C)を通じてパソコンと接続し(図1),ヘッドホンやオーディオICを接続するだけで,Bluetooth5.0対応のオーディオ・システムが完成します(図2).DSP(Digital Signal Processor)も内蔵しているため,周波数特性(音質)を調整することも可能です.

外部からマイク音声を入力できるライン入力機能も備えています.$\mathrm{I}^2\mathrm{S}$対応の高性能なオーディオ・コーデックや,再生/停止/音量を調節するボタン類を外付けすることもできます.

図1 本キットとヘッドホンの接続
図2 本キットはCODEC(Coder/Decoder)とアンプを内蔵しているので,ヘッドホンを直結できる

7種の純正ファームウェアを書き込んで希望の動作を実現

USB Type-CでBM83のファームウェアを書き換えて希望の動作を実現

本キット(MZ-BM83A)上のUSB Type-Cコネクタとパソコンを接続すると,BM83内のファームウェアを更新できます.マイクロチップ・テクノロジは,ファームウェアと設定用ツールを用意しています.

図3に示すように,マイクロチップ製のビルド済みファームウェアをUSBやUART経由で書き込むことで,ユーザが希望する機能を実現できます.

図3 マイクロチップ・テクノロジ純正のBM83用ファームウェア
マイクロチップ・テクノロジ社のアプリケーション・ノート(AN3118 : IS2083/BM83 Bluetooth Applications Design Guide)より抜粋

図3の各プロファイルの意味を下記に示します.パソコン上でプロファイルの有効/無効化や動作を設定して,BM83モジュールに書き込みます.

  1. A2DP(Advanced Audio Distribution Profile)プロファイル
    高品質な音声データをオーディオ機器間で伝送するプロファイルです.スマートホンやパソコン,MP3プレーヤとBluetoothヘッドホンの間の通信で利用できます.
  2. PBAP(Phone Book Access Profile)プロファイル
    スマートホンなどの連絡先情報をvCard形式などで伝送できるプロファイルです.
  3. iAP2(Interface(iPod) Accessory Protocol)プロファイル
    曲名やアーティスト名を含む音楽や写真,ビデオのデータを伝送できるプロファイルです.
  4. SPP(Serial Port Profile)プロファイル
    RS-232Cのようなシリアル通信ができようになるプロファイルです.
  5. MSPK(Multi SPeaKer)プロファイル
    複数のBluetooth機器に音声データを配信できるプロファイルです.Microchip's Wireless Concert Technology(WCT)により実現されています.
  6. AVCRP(Audio / Video Remote Control Profile)プロファイル
    Bluetooth経由で,再生/停止/音量制御などのリモコン機能を実現できるプロファイルです.
  7. Google Fast Pairプロファイル
    Bluetooth機器スマートホンに近づけるとペアリング接続ができるプロファイルです.Android6.0以降のデバイスから利用できます.

ファームウェアが違う3つのBM83製品

BM83には3品種あり,違いは,出荷時に書き込まれる初期ファームウェアです(ハードウェアは同じ).前述のとおり,モジュール入手後にファームウェアを書き換えることにより動作を上書きすることができます.

各ファームウェアの詳細は,マイクロチップ・テクノロジが提供するReleaseNoteを参照してください.

  1. BM83SM1-00AA
    MSPK(Multi SPeaKer)機能を利用することを前提としたファームウェア(v.1.1)が書き込まれています.
  2. BM83SM1-00AB
    MSPK機能を利用することを前提としたファームウェア(v1.1,末尾AAよりも新しいファームウェア)が書き込まれています.
  3. BM83SM1-00TA
    オーディオ伝送主な利用として想定されたファームウェア(v1.0)が書き込まれています.

本キットの取り扱い方

本キット(MZ-BM83A)は,ブレッドボードなどで利用するためのスルーホールと,ユニバーサル(蛇の目)基板や自作のプリント基板に直接実装できる,半円状の端面スルーホールを用意しています(図1).ブレッドボードで挿抜を繰り返す場合は,スルーホールを利用してピン・ヘッダを実装してください.

なお,本製品は,ファームウェアを書き込まないと動作しません.詳細は後述の「 本キットの動かし方」を参照してください.

図4 本キット(MZ-BM83A)の端子機能とサイズ
ブレッドボードで使うときはスルーホールにピン・ヘッダを実装する.親基板に実装するときは,両端の半円状のスルーホールを使いはんだづけで直付けする.USB Type-Cコネクタの端子が基板の裏面に飛び出すことに留意

端面スルーホールを利用するときの留意点

プリント基板に直接実装する場合には,本キット(MZ-BM83A)の基板両端にある半円状のスルーホール(端面スルーホール)を利用してください.

ただし,USBコネクタ(CN1)の端子が,基板の裏面に飛び出していますので,受け側のマザー基板にこの端子の飛び出し部を避けるように穴を開けてください.端子の飛び出し長は,計算上約0.3mmですが,個体によって多少ばらつきます.

アンテナ・パターンの周辺に導体を置かない

BM83のアンテナ・パターンの近くに導体を配置すると,通信性能が劣化する可能性があります.BM83データシート(BM83 Bluetooth Stereo Audio Module Data Sheet)の Module Placement Guidelines項によれば,アンテナ・パターンから約15mmの範囲には導体を置かないように留意点として記載されています.

ヘッドホンを接続する

AOHPM端子(ピン7)は,ヘッドホンを駆動する内蔵アンプの動作基準です.0Vではありません.外部にアンプを設ける場合は,コンデンサで左右音声信号のDCバイアス電圧をカットしてください.

USBではなく,端子から+5Vを供給したいとき

USBコネクタではなく,ピン14とピン15から+5V電源を供給することも可能です.本キットを装置への組み込みに利用できるでしょう.

本キットをこのように利用する場合は,SB1のジャンパ接続をカットして,USB Type-Cの電源ピンを電気的に切り離してください.具体的には,はんだ吸い取り線などで,ショートしているはんだを除去します.

再生/停止ボタンやステータスLEDを外付けしたい場合

前述のように,AVCRPプロファイルを利用すれば,リモコンで再生/停止などの制御が可能になったり,LEDを外付けしてステータスを表示したりすることが可能になります(図5).キット上のLEDを無効にするときは,SB2とSB3をショートしているはんだを除去してください.

図5 再生/停止用のスイッチや外付けLEDを接続することもできる
LEDを外付けするときは,キット上のSB2/SB3のジャンパをカットする.各スイッチの機能はファームウェアで設定・変更できる

本キットの動かし方

本製品は,ファームウェアを書き込まないと動作しません.ここでは,BM83にファームウェアを書き込む方法(更新の方法)を説明します.

紹介するのは,スマートホンとペアリングして,オーディオを再生するという,単純なBluetoothオーディオ機能を実現するファームウェアの設定方法です.ほかの応用を希望の方は,前述の「7種の純正ファームウェアを書き込んで希望の動作を実現」を参照して,ご希望の動作を実現するファームウェアを書き込んで(上書きして)ください.

入手方法

マイクロチップ・テクノロジのウェブサイトから,マイクロチップ純正のファームウェア(ビルド済み)と書き込み用ソフトウェアをダウンロードできます.

やってみよう

ここで,スマートホンとペアリングして,オーディオを再生するという,単純なBluetoothオーディオ機能を実現するファームウェアの設定方法を紹介します.

ステップ1

“S2083 Turnkey Software and Tools v1.2.0”をダウンロードして,Windowsパソコンで解凍します.

ステップ2

SPP(Serial Port Profile)ファームウェアを入手します.なお,BM83のシリアル・ポートは利用しません.ファームウェアは,さきほど入手した“S2083 Turnkey Software and Tools v1.2.0”の次のフォルダ格納されています(図6).

\IS2083 Turnkey_1.2.0\Software\IS2083 Image\MSPK2v1.3\SPP\Embedded Mode

図6 ここで利用するビルド済みファームウェア一式

ステップ3

SPPファームウェアといっしょに設定も一緒に書き込みます. まず,“\IS2083 Turnkey_1.2.0\Tool\Config Tool\”下にある設定ツール“IS208x_Config_GUI_Toolv1.3.08.exe”を起動します.

設定項目「ICPackage」が[IS208x]に,設定項目「Project」が[MSPKv2_SPP]になっていることを確認します(図7).

ステップ4

設定画面が起動します(図8).項目がたくさんありますが,ここでは「スマートホンとペアリングして,オーディオを再生する」という単純な機能を実現してみます.

図7 ファームウェア設定ツール“IS208x_Config_GUI_Toolv1.3.08.exe”を起動する 図8 ファームウェアの設定ツールが起動したところ
「ICPackage」が[IS208x]に,設定項目「Project」が[MSPKv2_SPP]になっていることを確認する

まず,Bluetoothプロファイルを指定します. スマートホンから音声を鳴らすには,“HFP/HSP(HeadPhone Profile/ Head Set Profile)およびA2DP(Advanced Audio Distribution Profile)”というファームウェアを利用します.

スイッチを外付けして制御したいときは,“AVRCP(Audio / Video Remote Control Profile)プロファイル(AVRCP Controller)”も有効にするとよいでしょう.

本器は組み込みモードで利用するため,[Embedded Mode]にチェックを入れておきます. 設定後,[Next]ボタンをクリックします.

ステップ5

次の画面の設定項目「Power Switch Setting」にて,[Power ON Directory(電源電圧投入とともに,電源ON)]を選択します(図9).これで,+5V電源が供給されたら即,BM83が起動します.

電源ON/OFF ボタン(MFB,Multi Function Button)を外付けして,押さない限り省電力状態スタンバイになる,ような設定も可能です.

図9 設定項目「Power Switch Setting」で[Power ON Directory]を選択

ステップ6

次の画面では,項目「Name Fragment」で,ホストからBluetooth機器が認識される際に表示される名前を設定します(図10).

図10 「Name Fragment」で,ホストからBluetooth機器が認識される際に表示される名前を設定する

ステップ7

設定項目「Enable Paring as Standby Mode」を[Enable]にすると,ペアリング時にスピーカ機能があることがホスト(スマートホンなど)に伝わります.[Disable]にすると,スマートホンからペアリングした際に音声出力デバイスとして認識さないことがあります.

ステップ8

設定項目「Enter Pairing Mode When Power On(電源ON時にペアリング・モードに入れるかどうか」を[Enable]にすると,+5V電源を供給されたらすぐに,BM83がペアリング・モードに入るようになります.

ステップ9

設定項目「Class of Device(デバイスの種類)」は,デフォルトの[0x04 Headset]でOKです.

ステップ10

次の画面の設定項目「Power On Link Back Setting(電源ON時にペアリングを復帰するかどうか」にて,[Enable]を選ぶと,ペアリングした接続機器の設定が復元されるようになります(図11).

図11 「Power On Link Back Setting」で[Enable]を選ぶ

設定項目「Search Paired Device Pattern Setting(復帰するペアリング機器)」は,[All Devices]を選びます.

ステップ11

バッテリ充電機能を搭載した機器に,BM83を組み込む場合の設定もありますが,ここでは充電機能は使いません.

設定項目「Charging Detect Enable(充電中の検出)」は[Disable]を選びます(図12).設定項目「Working Temperature(動作可能温度)」は[Disable]を選んで無効化します(図13).

図12 「Charging Detect Enable」で[Disable]を選ぶ
図13 「Working Temperature」で[Disable]を選ぶ

ステップ12

項目「CODEC Setup」で,使用するコーデックを設定します.

「Speaker Output」では,[Capless Speaker Output(音声出力端子にDCバイアス・カット用のコンデンサを使わないでヘッドホンを直結する)]を選びます(図14).

設定項目「CODEC Output Type」は,[Internal Codec(内蔵CODECを使う]を選びます. これは,ディジタル・オーディオの通信規格 $\mathrm{I}^2\mathrm{S}$を備えるA-DコンバータやD-Aコンバータは使わない,という設定です.

図14 「Speaker Output」で[Capless Speaker Output]を選ぶ

ステップ13

以上の設定が完了したら[Finish]ボタンを押します.音声処理用のDSP設定画面が開きますが,今回は設定しないで画面を閉じます.

ステップ14

メイン画面「Config_GUI_Tool」で[Save]ボタンを押して設定を保存します(図15).設定は,hexファイルで保存されます.各種ファームウェアと同じように書き込んで使用します.

ステップ15

MZ-BM83AとパソコンをUSBケーブルで接続して,ファームウェア書き込みツール“isUpdateTool”を起動します(図16).

図15 メイン画面「Config_GUI_Tool」で[Save]ボタンを押して設定を保存 図16 本キット(MZ-BM83A)とパソコンをUSBケーブルで接続してファームウェア書き込みツール“isUpdateTool”を起動

ステップ16

項目「Access Port」にて,[port]-[USB HID]を選んで[Connect]ボタンを押します.「Image num」は“1”に設定します.接続に成功すると,下のコンソールに“USB HID is connected”と表示されます.

ステップ17

この状態で,Flash Update/Dumpから[Browse]ボタンをクリックして,

\IS2083 Turnkey_1.2.0\Software\IS2083 Image\MSPK2v1.3\SPP\Embedded Mode

に格納されている次の3つのファイルを順に書き込みます.

  • MSPKv2_1.03.0008_SPP.hex
  • MSPK2.0_DSP_FW_V1.04.0006.HEX
  • IS208x_UI_1.3.08_Demo_Package_Embedded_Mode_SPP.HEX

ステップ18

上記3つのファイルの書き込み処理が終わったら,前述に方法で作成した設定用hexファイルを書き込みます.

ステップ19

書き込みに成功したら,“isUpdateTool”を閉じます.これでファームウェアの更新は完了です.

ステップ20

ファームウェアが更新された本キット MZ-BM83Aは,USB Type-Cや端子から+5Vを供給すると,新しいファームウェアと設定で動き出し,LEDが点滅してヘッドホンから「ピポ」と音が出ます.

次に,スマートホンでBluetooth機器を探すと,さきほど付けた名前の本キットが見つかります(図17). ペアリングすると,ヘッドホンから音楽が聞こえてきます.音がでないときは,CODECの設定が[Internal]になっていることを再確認してください.

図17 スマートホンでBluetooth機器を探すと本キットが見つかる

コラムA Bluetooth送信機として機能させたい

マイクロチップ・テクノロジー社の技術資料を参照してください

通常,Bluetoothオーディオ・プレーヤは,パソコンやスマホが送信するデータを受信して再生しますが,マイクロチップ・テクノロジ社が提供するAudio Transceiver対応ファームウェアIS2083_Turnkey_1.1.0\Software\IS2083 Image\AT v1.0をBM83に書き込むと,Bluetooth送信デバイスとして機能し,テレビやラジオの音源をBluetoothヘッドホンなどで聞けるようになります.

詳しくは,IS2083/BM83 Bluetooth Applications Design Guide AN3118を参照ください.

Bluetooth送信機デバイスとして動作させた場合,接続相手はBM83に限ることはなく,任意のBluetoothレシーバになります.BM83どうしでも通信可能です.実際,アナログまたはディジタルのオーディオ信号を入力できる送信機能をもったBluetoothデバイスも市販されています.

1個のBM83(送信機)から複数のBM83(受信機)を鳴らしたい

次の2種類の送信システムを構成することができ,マイクロチップ・テクノロジーがファームウェアを公開しています.

  1. Multi-Speaker Mode
    分散型オーディオ・システムを構成できます.1つのBM83から複数のBM83を同期させることができます.
  2. Audio Transmitter Mode
    音楽送信プロファイル A2DP(Advanced Audio Distribution Profile)を利用する標準的なモードです.

詳しくは,IS2083/BM83 Bluetooth Applications Design Guide AN3118を参照ください.Multi Spleaker Modeについては,pp.4~6のfigure1-5を,Audio Transmitter Modeについては,p.30 figure29と30が参考になります.

Multi Speaker Modeの場合は,標準でSBCのエンコードが実行されます.AACのエンコーディングを「有効」にすることもできます.上記ウェブサイトの“Appendix N:Enabling AAC encoding in Concert/stereo mode”p.87 が参考になります.

Audio Transmitter Modeモードの場合には,SBCにて44.1/48kHzサンプリングにてパケット化されます.LDACについては詳細は不明です.開発するためには,Sony-Microchip社とNDAを結ぶことが求められるようです.また,AptXには対応していません.

[参考資料] BM83SM1-00TA : AT v1.0:Latest firmware for Audio Transceiver. BM83 Audio Transceiver v1.0 Release Notes

コラムB USB経由のファームウェア更新ができなくなったときは

BM83にファームウェアを書き込んでいる最中は,USBケーブルを抜いてはいけません.

抜いてしまうとBM83内のファームウェア・データが壊れて,パソコンがBM83を(HIDデバイスとして)認識できなくなり,USB経由でファームウェアを更新することができなくなります.こうなると,USB経由で普及する手段を失います.

このような状況に陥ったときは,UART経由でファームウェアを書き込んでみると復旧できる可能性があります.

ピン21(P3_4)を0V(グラウンド電位)にしてBM83に電源を投入するとテスト・モードで起動します(図18).続いて,書き込みソフトウェア“isUpdateTool”を使って,UART(UART_TXDピンとUART_RXDピン)経由でファームウェアを更新します.ファームウェアの書き込みに成功した後は,再び,USB経由でファームウェアを更新することができます.

なおBM83には,3.3Vのロジック電圧のUART信号を加えます.RS-232Cレベルの電圧は入力してはいけません.

図18 ファームウェアが壊れてUSB通信できなくなったときは,UART経由でファームウェアを書き込む

コラムC HFP(Hands Free Profile)のバージョンとサンプリング周波数

BM83

BM83に,MSPK1.3.4ファームウェア(BM83_MSPK134_ZEPConfig.zip)を書き込むと,サンプリング・レート16kHzのHSPモードを利用できます.図19に示すように,“ZEP-MZ-BM83A”というデバイス名でペアリングできるでしょう.

 なおMZ-BM83Aは,BM83モジュールのマイク入力端子が基板の外部に引き出されていないのでご注意ください.

図19 BM83のHFPのサンプリング周波数を16kHzで動かしたときのパソコンの設定

BM62

マイクロチップ・テクノロジー社が公開しているBM62標準ファームウェアは,16kHzサンプリングのHFP(Hands Free Profile)には対応していないようです.ただし,以下の方法で,16kHzサンプリング対応にできる可能性があります.

https://www.microchip.com/en-us/product/BM62の[Download]コーナに,BM64/IS2064(BM64のSoC)用の2つのファームウェアがあります.

  1. BM64 DSPK 2.1.3
  2. IS2064 Software & Tools (DSPKv2.1)

内容(ドキュメント/ツール)を見ると,BM62でも利用できる可能性があります.設定ツール(UITool)のSys.Setup2に“Wide Bnad Speech Enable(mSBC)”があるので,“Enable”に設定してみてください.未確認ですので,ユーザの責任で試してください.〈善養寺 薫

コラムD パソコンがBM62/BM83をオーディオ・デバイスとして認識しない

BM62およびBM83は,BLE(Bluetooth LowEnergy)の規格でも接続できます.

パソコンのハードウェアやソフトウェアの都合で,BLEが優先してペアリングすると,オーディオ・デバイスとして認識されず,音楽再生ができません.パソコン上のBluetoothデバイスとしては「その他のデバイス」に区分けされ,“LE_Dual_Mode_SPK”と表示されます.

オーディオ・デバイスとして認識させたいときは,図20のように,BM62/BM83の設定(UI Tool)にて,BLEを無効化し,改めてWindows上のペアリング設定を削除してから,再接続してみてください.下記ウェブサイトが参考になります.
https://itojisan.xyz/trouble/28844/#3

あるいは,LE_Dual_Mode_SPKとしてペアリング状態で,そのまま新規にペアリングし,音声デバイスとしてのBM62を探してください.

(a) 手順1
(b) 手順2
(c) 手順3
図20 パソコンとBM62/BM83をオーディオ・デバイスとして認識させる方法(UI Toolの設定画面)

(c)2021 Kaoru Zenyouji All Right Reserved.