[技術解説]Bluetooth5.0 オーディオ・トランシーバ・キット誕生
スマホ/ハンズフリーからDSPエフェクト/マイク/1:$N$接続まで
- 著:善養寺 薫(Kaoru Zenyouji) 株式会社ディスクリテック
- 企画編集・主催:ZEPエンジニアリング株式会社
- 関連製品:[VOD/KIT] すぐ動く!BM83 Bluetoothスタータキット
- 関連製品:[VOD/KIT] すぐ動く!BM83 Bluetooth無線モジュール
写真1 音声やオーディオのワイヤレス・トランシーバを簡単に作れる BM83 Bluetoothオールインワン組み立てキット“z-bm83all”(開発:株式会社ディスクリテック) | 写真2 “z-bm83all”を組み立てると,Bluetoothトランシーバが完成する |
動画1 BM83搭載のDIPモジュール“z-bm83b”とキャリア・ボード“z-bm83c”の紹介動画 |
マイク/オーディオ・トランシーバを簡単に製作できる2つのキット
1.BM83を搭載したDIPモジュール“z-bm83b”
Bluetooth5.0/技適取得済み!マイク入力/USB TypeC対応
写真1に示すのは,Bluetooth5.0準拠のマイク/オーディオ・トランシーバを製作・実習できるオールインワン組み立てキット z-bm83all(ZEPエンジニアリング製)です. 写真2は,z-bm83allの完成状態です.オーディオ端子やスイッチ類が実装されたキャリア・ボード“z-bm83c”に,2.54mmピッチのDIPモジュール “z-bm83b”を搭載しています.
z-bm83bモジュールは,電源供給とBM83のファームウェア書き込みを兼ねるUSB Type-Cを搭載しています.BM83チップの主な端子は,基板の外部に引き出されています.基板端には,ピン・ヘッダ挿入用のスルーホールと半円状の端面スルーホールを設けてあります.端面スルーホールを利用すれば,ピン・ヘッダを使わず,直接ベース基板にはんだで直付けできます.
図1にz-bm83bモジュールの端子名を,図2に回路図を示します.z-bm83bは,マイク入力とライン入力を備えています.
BM83チップはコーデック(CODEC)を内蔵しているので.D-AコンバータICを外付けしなくてもヘッドホンを直結できます(図3).DSP(Digital Signal Processor)機能も内蔵しているため,周波数特性(音質)を調整することも可能です.
端面スルーホールを利用するときの留意点
プリント基板に直接実装する場合には,z-bm83bモジュールの基板両端にある半円状のスルーホール(端面スルーホール)を利用してください.
ただし,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電源を供給することも可能です.z-bm83bモジュールを装置への組み込みに利用できるでしょう.
z-bm83bモジュールをこのように利用する場合は,SB1のジャンパ接続をカットして,USB Type-Cの電源ピンを電気的に切り離してください.具体的には,はんだ吸い取り線などで,ショートしているはんだを除去します.
2.z-bm83bモジュール専用キャリア・ボード“z-bm83c”
図4に示すのは,z-bm83bモジュールの搭載部,再生/停止/音量の操作ボタン,マイク/ライン入力端子を備えるキャリア・ボード“z-bm83c”の実装図です.ユニバーサル・エリアを利用すれば,パワー・アンプなどを外付けすることもできます.
z-bm83bは,ブレッドボード利用に配慮されており,スルーホールとユニバーサル(蛇の目)基板や自作のプリント基板に直接実装できる,半円状の端面スルーホールを備えています.ブレッドボードで挿抜を繰り返す場合は,スルーホールを利用してピン・ヘッダを実装してください.
7種の純正ファームウェアを書き込んで希望の動作を実現
USB Type-CでBM83のファームウェアを書き換えて希望の動作を実現
z-bm83bモジュールには,初期状態でファームウェアが書き込まれていますが,電源端子に3.3Vを供給しただけでは起動しません.P3_4端子(31番ピン)をHレベルにした状態で電源を投入すると“Application Mode”で,Lレベルにした状態で電源を投入すると“Test Mode”で起動します.詳細は後述の「z-bm83bモジュールの動かし方」を参照してください.
z-bm83bモジュール上のUSB Type-Cコネクタとパソコンを接続すると,BM83内のファームウェアを更新できます.マイクロチップ・テクノロジは,ファームウェアと設定用ツールを用意しています.
ファームウェアが違う3つのBM83製品
BM83チップには3品種あり,違いは,出荷時に書き込まれる初期ファームウェアです(ハードウェアは同じ).前述のとおり,モジュール入手後にファームウェアを書き換えることにより動作を上書きすることができます.
各ファームウェアの詳細は,マイクロチップ・テクノロジが提供するReleaseNoteを参照してください.
-
BM83SM1-00AA
MSPK(Multi SPeaKer)機能を利用することを前提としたファームウェア(v.1.1)が書き込まれています. -
BM83SM1-00AB
MSPK機能を利用することを前提としたファームウェア(v1.1,末尾AAよりも新しいファームウェア)が書き込まれています. -
BM83SM1-00TA
オーディオ伝送主な利用として想定されたファームウェア(v1.0)が書き込まれています.
再生/停止ボタンやステータスLEDを外付けしたい場合
AVCRPプロファイルを利用すれば,リモコンによる再生/停止制御や,外付けLEDでのステータス表示が可能になります.キット上のLEDを無効にするときは,SB2とSB3をショートしているはんだを除去してください(図5).
z-bm83bモジュールの動かし方
BM83チップにファームウェアを書き込む方法(更新の方法)を説明します.「スマートホンとペアリングしてオーディオを再生する」という,単純なBluetoothオーディオ機能を実現するファームウェアの設定方法です.
入手方法
マイクロチップ・テクノロジのウェブサイトから,マイクロチップ純正のファームウェア(ビルド済み)と書き込み用ソフトウェアをダウンロードできます.
やってみよう
ここで,スマートホンとペアリングして,オーディオを再生するという,単純な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
ステップ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)を外付けして,押さない限り省電力状態スタンバイになる,ような設定も可能です.
ステップ6
次の画面では,項目「Name Fragment」で,ホストからBluetooth機器が認識される際に表示される名前を設定します(図10).
ステップ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).
設定項目「Search Paired Device Pattern Setting(復帰するペアリング機器)」は,[All Devices]を選びます.
ステップ11
バッテリ充電機能を搭載した機器に,BM83を組み込む場合の設定もありますが,ここでは充電機能は使いません.
設定項目「Charging Detect Enable(充電中の検出)」は[Disable]を選びます(図12).設定項目「Working Temperature(動作可能温度)」は[Disable]を選んで無効化します(図13).
ステップ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コンバータは使わない,という設定です.
ステップ13
以上の設定が完了したら[Finish]ボタンを押します.音声処理用のDSP設定画面が開きますが,今回は設定しないで画面を閉じます.
ステップ14
メイン画面「Config_GUI_Tool」で[Save]ボタンを押して設定を保存します(図15).設定は,hexファイルで保存されます.各種ファームウェアと同じように書き込んで使用します.
ステップ15
z-bm83bとパソコンをUSBケーブルで接続して,ファームウェア書き込みツール“isUpdateTool”を起動します(図16).
図15 メイン画面「Config_GUI_Tool」で[Save]ボタンを押して設定を保存 | 図16 本キット(z-bm83b)とパソコンを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
ファームウェアが更新された本キット z-bm83bは,USB Type-Cや端子から+5Vを供給すると,新しいファームウェアと設定で動き出し,LEDが点滅してヘッドホンから「ピポ」と音が出ます.
次に,スマートホンでBluetooth機器を探すと,さきほど付けた名前の本キットが見つかります(図17). ペアリングすると,ヘッドホンから音楽が聞こえてきます.音がでないときは,CODECの設定が[Internal]になっていることを再確認してください.
コラム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チップ(受信機)を鳴らしたい
1:$n$接続の送信システムを構成することができ(写真3),マイクロチップ・テクノロジーが次の2種類のファームウェアを公開しています.
- Multi-Speaker Mode
分散型オーディオ・システムを構成できます.1つのBM83チップから複数のBM83チップを同期させることができます. - 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には対応していません.
コラム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レベルの電圧は入力してはいけません.
コラムC HFP(Hands Free Profile)のバージョンとサンプリング周波数
BM63チップの場合
BM83に,MSPK1.3.4ファームウェア(BM83_MSPK134_ZEPConfig.zip)を書き込むと,サンプリング・レート16kHzのHSPモードを利用できます.図19に示すように,“ZEP-Z-BM83”というデバイス名でペアリングできます.
BM62チップの場合
マイクロチップ・テクノロジー社が公開しているBM62標準ファームウェアは,16kHzサンプリングのHFP(Hands Free Profile)には対応していないようです.ただし,以下の方法で,16kHzサンプリング対応にできる可能性があります.
https://www.microchip.com/en-us/product/BM62の[Download]コーナに,BM64/IS2064(BM64のSoC)用の2つのファームウェアがあります.
- BM64 DSPK 2.1.3
- 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を探してください.
(c)2023 Kaoru Zenyouji All Right Reserved.