BM20を使ってみた

皆さんこんにちは!
今回は音が出る物を使ってみました。今まで紹介したものはリモコンだったりデータ通信だったりでしたので趣を変えてみました。今回の実験ではマイクロチップテクノロジー社のBM20と言うBluetoothモジュールを使ってワイヤレスヘッドホンの実験を行います。

BM20外観
BM20外観

マイクロチップテクノロジー社のBluetoothモジュールです。V5.0に対応しており、音声系(A2DPやHFP、HSP)にも対応しています。予めソフトウェアが内蔵されていますので、ヘッドホン(ヘッドセット)、電池、スイッチを繋げればスマホ/タブレットと接続し、音楽が聞けたり電話の音声が聞けたりします。

準備の項目の中で実験基板の写真を載せていますが、今皆さんがお使いのBluetooth接続のヘッドホンはこれらの回路全て+小型スピーカー+バッテリーが耳の中に入ってしまうくらい小さいのですよね。凄い技術ですね。ヘッドホンを無線化することにより線が絡まったりブラブラしたりして煩わしい何て事から解消されますね。でも、混雑している所(駅とか)などでは音が途切れたりしませんか?無線化する事により当然メリットも有りますがデメリットも有ります。先ほどのヘッドホンの例で音が途切れたりするのは多数の人が同時に電波を使っている為の混信や何らかの電気的な雑音に依るものです。こちらのページでは無線化のメリット/デメリットについて説明しています。参考にしてください。

では実験に移りましょう。いつもの様に説明は、
 ・用意するもの
 ・事前設定
 ・実験
の順に進めて行きます。

準備

1.用意するもの

・BM20実験回路 1台

BM20実験回路
BM20実験回路

マイクロチップテクノロジー社製BM20が載った実験回路です。回路図、回路の説明はこちらにあります。説明のページにも書いてありますが、BM20には日本の電波認証(技術基準適合証明)が取れている物と取れていない物があります。機能としては同じですが、電波認証が取れていない物を使う場合は電波が外に出て行かないように細工をする必要が有ります。購入する際は電波認証が取れている物を調達してください。電波認証が取れている物の型式は「BM20SPKS1NBC」です。

・USB-シリアル変換ケーブル(3.3V用) 1本

もうお馴染みですね。今回は主として電源を供給するために使います。また、BM20の動作パラメーター設定にも使います。

・BM20用ツール一式
マイクロチップテクノロジー社のこのWebページの下の方に「Software Libraries/Firmware」と言う項目があり、「BM20_203 Tools Set」と言うツールのセットがダウンロードできます。BM20の設定を変更するために必要です。予めご用意ください。

・ヘッドホン
実験基板に接続出来るものを用意してください。今回実験基板は3極(L,R,G)用のジャックを使っていますが、手持ちのヘッドホンに合わせて実験基板側を変更して頂いても結構です。また、同様にマイク端子を2Pのピンヘッダーにしていますが、エレクトレットコンデンサーマイクロホンをお持ちであれば、それに合わせた端子形状にしてください。BM20のMIC_BIAS端子からは実測で2.46Vが出ていますので、この電圧で動作するマイクを選んでください。

・PC 1台
先のツールを動かすために必要です。私はwin10で使っていますが、このツールがどのOSまでサポートしているのかチョット見つかりませんでした。。。すみません。

・音声機能の付いたBluetooth内蔵PC又はスマホ、タブレット
BM20の通信相手として使います。A2DPのプロファイルを持っていれば音楽を流せます。

2.事前設定

2-1.ディップスイッチの設定
通常モードで動かすにはP2_0、P2_4、EANの端子を全てHighにします。スイッチのON-OFFで言うと先の並び順にOFF-OFF-ONに、なります。

ディップスイッチ設定
ディップスイッチ設定

通常動作時のディップスイッチ設定は左の写真のとおりです。
設定変更の際は1番のディップスイッチをオンにします。
一か所だけの変更なら只のスライドスイッチにしておけば良かったと思いましたが後の祭りでした。

他の設定は特に有りません。では動かしてみましょう。

実験

1.スマホの音をBM20から出す

では、スマホ(又はタブレット等)とペアリングしてBM20に接続したヘッドホンから音を出してみましょう。
(1)電源オン
ヘッドホンとUSB-シリアル変換ケーブルを実験基板に挿してください。その後USBコネクタをPCに挿してください。
スマホ又はタブレットのBluetooth機能をオンします。
ヘッドホンを装着した状態でMFBスイッチを長押ししてください。「ピロロロ」(上がり調子)の音がして電源が入ります。同時にLED2個が点滅します。ここで、そのままMFBスイッチから手を離さず押し続けます。「ピロ」っと音がして今度は2個のLEDが交互に点滅を始めます。これでペアリングのモードに入りました。

(2)ペアリング実行
スマホ側の画面にEDDY SHSと言う端末が現れたら、それがこの実験基板です。ペアリングを許可してください。これでペアリングが出来るはずです。

BM20発見
BM20発見
ペアリングを許可する
ペアリングを許可する
ペアリング完了
ペアリング完了

(3)音を出してみましょう
スマホから何か音を出してみてください。(youtubeとか流すと)ヘッドホンから音が聞こえるはずです。実験基板のVOL+又はVOL-スイッチを押すと音量を変えられると思います。

(4)電源を切る
MFBスイッチを長押ししてください。「ポー」っと音が聞こえたら、そのままもう少し長押しをしてください。LEDがチカチカっと点滅して「ピロロロ」(下がり調子)の音が聞こえたら電源が切れた印です。単なる長押し(「ポー」っと音が聞こえた段階)でスイッチから手を離してしまいますと、デフォルトでリダイヤルの機能が設定されていますのでスマホなどとペアリングして有る場合は最後に電話をかけたところに繋がってしまいますので注意してください。

これでスマホの音を無線で外部に出せる事が確認できました。ほぼ外部に回路を必要とせず音を出せますので、アンプとスピーカーでも繋げればワイヤレススピーカーが簡単に作れます。
でも、音に何か警告音が混じっていませんか?実はBM20の初期設定でバッテリ電圧の低下を警告するようになっています。その電圧が3.5Vとなっていて、実験回路のレギュレーター電圧である3.3Vより高いのです。3.3Vを選んだ理由はUSB-シリアル変換ケーブルの電圧に合わせたのですが、このままでは電圧低下の報知音がうるさいので設定を変更し、電圧低下の検知を無効にします。

2.BM20の設定を変更する

BM20の設定を変更し、低電圧検知を無効にしましょう。大きく分けて手順が3つあります。
(1)UIツールを使って設定変更用のファイルを作成する。
(2)マージツールを使って本体ファイルと設定変更したファイルを繋ぎ合わせる。
(3)EEPROM書き込みツールを使ってBM20に書き込む。
以上の手順で設定の変更が出来ます。では始めましょう。

(1)UIツールを使って設定変更用ファイルを作成します。

UIツールWelcome画面
UIツールWelcome画面

・ダウンロードしたツールの中からIS20XXS_203UIv1.03.4.exeを起動します。起動すると左の画面が出るのでOKをクリックする。

編集元選択画面
編集元選択画面

編集する元ファイルを選択する画面になるので「Load」釦をクリックする。

編集元ファイルの選択画面
編集元ファイルの選択画面

編集元ファイルとしてIS2020SUI_DEFAULT_TABLE.txtを選択する。

編集ファイル選択後
編集ファイル選択後

編集するファイルを選択すると元の画面に戻る。ここから「Edit」をクリックする。

プロファイル、使用釦選択画面
プロファイル、使用釦選択画面

「Edit」をクリックすると、使用プロファイルや操作する釦などを選べる。
今回はココはいじらず、右下の「Next」をクリックする。

詳細設定画面
詳細設定画面

タブが沢山あり、システムの設定、音の鳴らし方の設定、LEDの光り方の設定などがあります。音やLEDの点灯パターンは脇のボタンを押すとシミュレーションしてくれますのでとても判りやすいです。
今回はこの中の「PMU Setup」を変更し、低電圧検知を無効化します。
タブを一通り見ていただけば、どの様な設定が出来るのかが判ると思います。
では、「PMU Setup」のタブをクリックしてください。

PMU Setup画面
PMU Setup画面

「PMU Setup」のタブに入ると一番上にBattery Detectionの項目が有り、有効になっている事が判ります。「Enable」になっている部分を「Disable」に変更してください。これで電圧低下の警告が出なくなります。
次に「Sys.Setup」のタブをクリックしてください。この中でスマホがBM20を検出した時に表示される内容を設定出来ます。

表示名称変更
表示名称変更

無線モジュール.comで使っているので「Name Fragment」の欄に「MM.com_BM20」と入れてみました。お好きな表示名に変えてください。終わったら右下の「Finish」をクリックします。

お知らせ
お知らせ

EEPROMサイズのお知らせが出てきますが、気にせず「OK」をクリックしてください。

設定完了後の画面
設定完了後の画面

設定変更が完了し、元の画面に戻ってきました。(が、変更内容はまだファイルに保存されていません。)
良く見ると左の画面の「Save」が有効になっています。これをクリックして変更後の設定ファイルを保存します。名前は何でも良いですが変更した内容が直感的に判った方が良いですね。私はこんな名前で保存しました。「IS2020SUI_dis_batt_detection_TABLE.txt」
保存したら右下の「Exit」をクリックしてUIツールを終了させます。

(2)マージツールを使って本体ファイルと設定変更したファイルを繋ぎ合わせる。
次は本体ファイルと今回変更した部分のファイルを繋ぎ合わせてEEPROMに書き込めるようにします。
ツールの中の「MPET.exe」を起動してください。

MPET起動画面
MPET起動画面

起動画面です。「Next」をクリックしてください。

生成範囲選択画面
生成範囲選択画面

変更部分のみを生成するか、全てを生成するかの選択画面になるので、下側の変更部分のみを選びます。その後「Next」をクリックしてください。

binファイル入力画面
binファイル入力画面

BM20用のデフォルトのbinファイルを選択します。
「MP_V2.1.29.4773」フォルダの下の「issc_default_bin」の中の「IS2020S_203_SHS_V3.1_E1.0.1.3_0E87.bin」を選択します。

binファイル選択
binファイル選択後

左の様な画面になったと思います。
(守秘上の問題で一部ぼかしています)
「Next」をクリックしてください。

MPETマージファイル選択画面
MPETマージファイル選択画面

次にマージするファイルを選択する画面になります。「+」のマークをクリックし、先ほどUIツールで作ったファイルを選びます。

マージファイル選択後
マージファイル選択後

選択すると画面の下側に表示されたと思います。「Next」をクリックしてください。

書き込みファイル名の指定
書き込みファイル名の指定

書き込みするファイルの名前を指定します。指定したら「Next」をクリックしてください。

MPET設定内容確認画面
MPET設定内容確認画面

指定した内容の確認画面が出ますので、間違いが無ければ「Generate」をクリックしてください。

変更範囲の選択画面
変更範囲の選択画面(チェックを入れる前)

「Generate」をクリックすると左の様な画面になったと思います。これはEEPROMの内容を変更する範囲を決める物も様です。評価ボードの解説には「Select if you want use new setting of these parts.」と、書かれています。ただ、どのセクションがどの変更に対応しているのかが判る資料が無いので取り敢えず全部にチェックを入れて「Next」をクリックします。

MPET作成完了画面
作成完了画面

EEPROMに書き込むファイルが作成され、MPETでの作業は終了となります。「Finish」をクリックして終了させてください。

(3)EEPROM書き込みツールを使ってBM20に設定ファイルを書き込みます。
書き込むファイルが出来ましたので次はEEPROM_Toolを使って書き込みます。先ずは以下の様にディップスイッチの設定を変更します。
EEPROMに書き込みをするにはP2_0、P2_4、EANの端子をLow-High-Highにします。スイッチのON-OFFで言うと先の並び順にON-OFF-ONに、なります。通常モードに対してP2_0だけがHighからLowに変更されています。

設定変更時のディップスイッチ設定
設定変更時のディップスイッチ設定

EEPROMに対して設定ファイルを書き込む時のディップスイッチ設定。

ディップスイッチを設定した後にUSB-シリアル変換ケーブルを基板、PCに接続しMFBスイッチを押します。(長押しでは無い)
すると二つのLEDが連続点灯状態になったと思います。
次に書き込みツールである「EEPROM_Tool.exe」を起動します。

EEPROM_Tool起動画面
EEPROM_Tool起動画面

起動すると左の様な画面になります。COMポート番号は、お使いの環境に合わせて選択してください。
ポート番号を選択後、「IC/Module Identify」をクリックしてください。

EEPROMツールID確認結果
ID確認結果

「IC/Module Identify」をクリックすると通信が行われ、左の様な画面になったと思います。次にFile Pathの右側にある「...」をクリックし、書き込むファイル(MPETで作成したファイル)を選択してください。

EEPROMツールファイル選択後画面
ファイル選択後画面

選択したファイルがボックス内に表示されたら「Write」釦をクリックして書き込みます。

EEPROMツール書き込み完了画面
書き込み完了

書き込みが終了すると「Write Finish」のボックスが出ます。「OK」を押し、本体プログラムの「Exit」をクリックして終了させます。
これで設定の変更は完了です。この状態ではMFBスイッチは効かないようですので、USB-シリアル変換ケーブルを抜き、ディップスイッチを通常動作の設定に戻してから再度スマホ等とペアリングしなおして確認してください。今度は低電圧検知を無効にしてあるので余計なLED表示や音の割り込みは無くなっているはずです。

以上でBM20を使ったワイヤレスヘッドホンの動作確認を終わります。マイクも接続すればハンズフリーホンとしての動作も可能です。
ただ、この場合はマイクの感度によってはDSPツールを使ってのゲイン変更が必要になります。DSPツールはUIツールと似たようなもので、UIツールがユーザーインターフェース(釦やLEDの光り方、音の鳴らし方)を変更するのに対してDSPツールはマイクやスピーカーのゲイン(増幅度)、フィルタの特性の指定などを行います。これで作成したファイルをUIツールと同様にMPETでマージしてEEPROMに書き込みます。手順はほぼ同じですので、マイクをお持ちで興味のある方は試してみてください。

無線モジュール.comでは無線モジュールを利用した様々な提案・開発を行っております。こちらのページには無線化の際のヒントを載せています。

また、是非開発実績もご覧になってください。