前回紹介したBluetoothオーディオモジュールBM62を組み込んだワイヤレスアンプを製作しました。
ある程度大きな基板に、可変抵抗を使わないぶんリード抵抗を実装できるように設計し、工房ではこれをオペアンプの使い方を学ぶ講座の教材に使用しました。
記事修正履歴
2018/07/22
・使用オペアンプをNJM2737→NJM2732に変更。動作が不安定なため。
概要
※写真には一つ前の試作品を使用しています。最新版とはAUX入力端子が無い、ボタンの表示が雑といった差異があります。順次更新予定。
多機能BluetoothオーディオモジュールBM62の性能を引き出せるよう、様々な回路をタバコの箱とほぼ同じサイズに詰め込みました。リード部品を入れるためやや大きめではありますが、そのぶん大容量の電池を組み込むことができ、使用可能時間が非常に長くなっています。
USB電源に接続しながらの使用にも対応。Bluetooth対応のパソコンに接続すればあたかもUSBDACであるかのように使用できます。もちろんスマートフォンや携帯音楽プレイヤーにも接続でき、一般的なポータブルBluetoothアンプと同等の機能を備えてい
ます。
また、AUX入力を備えるため、イヤホンを挿しかえることなくアナログ機器の音声を聞くことができます。
このアンプ最大の特徴は、何といっても外部アンプのゲインを自由に設計できる点です。アンプの出力が大きすぎて音量調整に不自由を感じる場合は出力を下げることもできますし、パワーが欲しい場合は最大40mWの出力が可能です。
外部アンプのオペアンプにはNJM2732とAD8656を使用しました。どちらもユニティゲイン安定ですので、どんな利得設定でも使うことができます。
性能
通信方式 | Bluetooth 4.2 |
最大通信距離 | 見通しの良い状態で10m以内 |
使用周波数帯域 | 2.4GHz帯 |
対応プロファイル | A2DP、HFP、HSP、AVRCP |
対応コーデック | SBC、AAC |
マイク | 内蔵エレクトリックコンデンサマイク |
AUX入力 | 3.5mmステレオミニジャック |
最大出力レベル | 4.4mW (16Ω) ※ |
出力端子 | 3.5mmステレオミニジャック |
電源 | 3.7V Li-poバッテリー |
充電端子 | 5V microUSB電源 |
充電時間 | 約4時間 |
連続使用時間 | 約24時間 |
使用温度範囲 | 10~45℃(バッテリー充電) |
外形寸法 | W55×D88×H18mm |
※アンプの設定ゲインによる。最大40mW
操作方法
各モードでの操作方法を示します。これはデフォルトのものではなく、工房製作のワイヤレスアンプ用に調整した物になります。まだデータシートを読んだだけですので間違いがある可能性もあります。
まず電源ボタン(MFB)を長押しすると電源がつきます。そのまま押し続けるとペアリングモードとなります。
通常時 | Power | REV | PLAY | FWD | VR- | VR+ |
押 | – | 前の曲 | Play/Pose | 次の曲 | ボリューム- | ボリューム+ |
長押 | 電源 | 前のアルバム | Stop | 次のアルバム | – | – |
また、VR+,VR-を同時に長押するとボタンロック(誤操作防止)、REVとFWDを同時に長押でペアリングモードに移行します。
ボイスダイヤル/発信 | Power | VR- | VR+ |
押 | キャンセル | ボリューム- | ボリューム+ |
長押 | キャンセル | – | – |
着信 | Power | VR- | VR+ |
押 | 応答 | ボリューム- | ボリューム+ |
長押 | 切る | – | – |
通話 | Power | REV | FWD | VR- | VR+ |
押 | 通話終了 | 受信NR切り替え | 送信NR切り替え | ボリューム- | ボリューム+ |
長押 | 保留 | 受話 | 保留 | マイクミュート | ミュート解除 |
通話中はVR+とVR-を同時押しで電話機切り替え、グループ通話の場合はREVとFWDを同時押しでメンバーの追加を行います。
回路解説
主に「作る人」向けの回路解説です。
まずは全体の原理回路図を示します。
○ アンプ回路
設計可能箇所であるアンプ部の原理回路は図2のようになっています。オペアンプを使用しており、よく見る非反転増幅器C1と、その前段に固定抵抗による分圧回路C2がついています。音量調整はBM62モジュールに内蔵のデジタルボリュームで行います。オーディオ的にはわかりやすい欠点があり、嫌われがちなデジタルボリュームですが、それを採用することによってアンプ回路は非反転増幅回路らしからぬ柔軟性を持ちます。
まずわかりやすい特徴として、R1=R3,R2=R4またはR1=R4,R2=R3とすればオペアンプの入力端子から見た抵抗値が+-で等しくなるため、アンプ回路のオフセットが小さくなります。また、このような組み合わせの抵抗を設定すると増幅率も自在に設定することができます。
C1とC2それぞれを通った信号がどのように増幅(減衰)されるか、C1の増幅率をG1、C2の増幅率をG2として式にすると以下のようになります。
G1=(R1+R2)/R1=1+R2/R1
G2=R3/(R3+R4)
G=Vout/Vin=G1*G2
・ R1=R3,R2=R4の場合
G2の式をR1,R2で書き換えて総ゲインGを計算します。
G2=R1/(R1+R2)
G=G1*G2={(R1+R2)/R1}*{R1/(R1+R2)}=1
このようにアンプ回路の総ゲインは1倍になります。しかしながら、オペアンプにはG1の増幅率を設定することができるため、あらゆるオペアンプを増幅率実質1倍で使うことができます。
・R1=R3,R2=R3の場合
こちらの場合もG2の式をR1,R2で書き換えて総ゲインGを計算します。
G2=R2/(R1+R2)
G=G1*G2={(R1+R2)/R1}*{R2/(R1+R2)}=R2/R1
アンプ回路の総ゲインはR2/R1となります。非反転増幅器では1倍以下(減衰)の設定ができませんが前段の抵抗分圧回路があることで0~1倍の範囲の増幅率も選択することができます。R1=R2とした場合はG1=2の1倍増幅器になります。
抵抗分圧回路はボリュームの出力インピーダンスが変化するアナログボリュームでは使うことができません。ビット落ちというわかりやすい欠点があるためオーディオ的には嫌われがちなデジタルボリュームですが、回路的にはこのようにアナログボリュームにはない大きな利点があります。
○ 電源回路
このアンプではオペアンプとBM62で電池を共有するため電源切り替え回路が必要でした。USB電源接続中はBM62が電池を充電するので、その時は電池をアンプやUSB電源と切り離す必要があります。そうすると、図5のような回路になります。
ショットキーバリアダイオード1本です。この回路では5V接続時に5V、そうでなければダイオードを通して電池の電圧がオペアンプに供給されることになります。
しかし、Li-poバッテリーの電圧は2.8~4.2Vですので、ダイオードの順方向電圧で最大0.4V下がるとするとバッテリー駆動時の供給電圧は最低で2.4Vになってしまいます。AD8656やLME49721といった高速な低電圧駆動オペアンプは2.7V以上で動きますから、もう少し電圧が欲しいところです。
そこで図6の回路を採用しました。P型MOSFETにはON抵抗が50mΩ前後のエンハンスメント型を使用しています。
USB駆動時、MOSFETはOFFとなり、電池を切り離します。そして、オペアンプにはダイオードを通して約4.6Vの電圧が供給されます。
バッテリー駆動時はMOSFETがONとなり、ON抵抗が非常に低いため電圧降下ほぼ0(実測値で2mV以下)でオペアンプにはバッテリー電圧がそのまま供給されます。この回路により、素子数は増えましたがバッテリーの電圧を余すことなく使うことができるようになりました。
後部のNchMOSにはBM62から出るイネーブル信号を受け取ってアンプの電源をON/OFFする役割があります。
○マイク回路
前記事でコメントにもありました、マイク回路です。BM62はMIC1_P、MIC1_N、MIC_BIASの3つマイク用の端子を持ちます。ワイヤレスアンプでは音楽再生機能をメインとしたかったため、マイク回路は内蔵としました。
外部入力(有線の小型マイク)からの入力を受ける場合は図8のようにすると受けられるはずです(作っていないので動作確認していません)。
○書き込み回路
BM62の設定変更という側面もありますが、ファームウェアが1.03から2.01にアップデートされて機能が大幅に改善されましたので、図9のようにシリアル端子と制御端子3つを設置しています。実際にはハーフピッチピンヘッダがBMの各対応端子に直結されており、制御はシリアル基板の方で行います。
アップデート方法なんかは後日。
回路図参考にさせて頂きます。
質問ですが、A_EN(P0_4)のイネーブル信号を検知して後段のNMOSを制御されていますが、A_ENはどのタイミングで動作するのでしょうか?データシートを見たのですが良くわかりません。
ご教授ください。
先ほどの続きですが、充電中にA_ENが動作するのでしょうか?
コメントありがとうございます。
A_EN(lnd_1)の状態はBM62ボードの電源が入っているかに依存します。
BM62がOFFであれば外部アンプの電源を入れておく意味はありませんので、同時に電源をOFFにする役割があります。
lnd_1は確かオプションで、UIToolを使わないと信号が出なかったと思います。
UIToolをダウンロードし、EVBの取扱説明書と見比べてみると、おっしゃっていることが理解できました。
GPIOがいろいろ設定できるようになっているんですね。
それとUIToolのHELPに、ある程度説明があるのでやっと理解できました。
また、何かあったら質問させてください。
ありがとうございました。
BM64を使用したBTアンプを自作するのに回路図参考にさせて頂いているのですが電源についての質問です。今自作しているのはポータブル機なのでバッテリーを乗せません。そうした場合21ピン(BATT)へいれる回路はいらないのでしょうか?あと22ピンはなにをされてるんでしょうか?
ぜひご教授ください。
BM64を使用したBTアンプを自作しているのですが電源についての質問です。今自作しているのはポータブル機なのでバッテリーを乗せません。そうした場合21pinに繋がる回路はいらないのでしょうか?また、22pinに繋がる回路は、どんな動作がされてるんでしょうか?
回路に全然詳しくないのでぜひご教授ください。
邦太郎 様,蓮太郎 様
BM62の21ピンは3.7V定格のリチウムイオンバッテリーを接続する端子です。
BM62/64内蔵のバッテリー管理機能を使わない場合は何も接続しなくてOKです。20ピンに直接5Vを入力すれば動作します。
22ピンは周囲温度検出ピンといって、バッテリーを接続するときに必要です。
よって、21ピンを使わない場合は何も接続する必要はないようです。
以上の内容はBM64の同名のピンでも同じです。
バッテリーを使用する場合は、サーミスタという部品を使ってデータシート23ページのような回路を接続しないと充電してくれません。
これは温度計となる回路で、リチウムイオンバッテリーは周囲温度0~40℃で使用することが規定されているため、それが確認されないと使ってくれない、ということのようです。
マイクの件で質問です。
MIC_BIASですが何も接続していないときにある程度の電圧がでていると思うのですが、
他の端子を接続をしないと出力されないでしょうか?
電圧が出力されていないようであれば、何か内部の設定などがあるものでしょうか?
しんいち 様
ご質問いただきありがとうございます。
MIC_BIAS端子の電圧は、マイクが必要になった時だけ出力されるようになっていたはずです。
スマートフォン等に接続し、何かのアプリケーションで録音を開始してみてください。
UI Toolでの設定が必要だったかは後ほど確認します。
電源が必要とのことであれば、VDD_IO(3.3V)かSYS_PWR(電源直結)から10mAぐらいは取れます。
玉瀬様
おはようございます。しんいちです。
早速のご連絡ありがとうございます。
一度、マイク回路(図7)を作って、ペアリング後にサウンドの「録音」など
確認してみます。(Windows10使用)。スマホでも試してみますね。
古い内容だったので、ご回答はないかと思いましたが、助かりました。
ちなみに使用基板は、マルツの変換基板タイプを使用しています。
https://www.zep.co.jp/nbeppu/kit/mzbm62-b01/
また、コンデンサマイクの電源ですが、他の電源から供給する方法もアリですね。
追試報告いたします。
玉瀬様
しんいちです。
マイク回路を作る前にMIC_BIASについて確認してみました。
スマホでペアリング後、ボイスメモアプリを立ち上げ録音を開始したところ
MIC_BIAS端子に電圧が出力されました。(2.5Vくらい)
ユニットが壊れてしまったかと思いましが、光が見えてきました。
もともとマイクに着目して購入したモジュールですが、ヘッドフォンを簡易的に接続して
音は聴こえているので、いろいろと遊べそうです。
あとは、図7にある回路で試してみます。
なお、HFP1.6だと思い購入しましたが、Windows10での認識では8000Hzで認識しているようです。(HFP1.5?)
何かわかるようなことなどありますでしょうか?
また報告いたします。
しんいち 様
>UI Toolでの設定について
特に設定は必要ありませんでした。
BM62がマイクデバイスとして認識されていれば使うときに必ずBIC_BIASは立ち上がります。
> マルツの変換基板を使用
これまで何種類も基板を作りましたが、全て動作はしているので
変換基板の種類で、機能が使えなくなることはないと思われます。
> 図7にある回路図で試してみます。
コレは秋月電子の『WM-61A相当』というエレクトレットコンデンサマイク(標準電圧2V)で動作実績があります。
BM62はMIC_BIASの電圧が低くて自力でマイク付きイヤホンのマイクを使えない困った子です。
カップレスモードではイヤホンのCOM端子が1.4Vになり、イヤホンのマイクはバイアスに1.1Vしかかからなくなってしまうので外部電源が必要と思われます。
> HFP1.6だと思い購入しましたが…
データシートには『マイクの入力は16bit 8または16kHzのリニアPCMで取り込む』と書いてありました。
古いデータシートがなくて比べることができないのですが、心当たりがあるとすれば、
もしもペアリングしたデバイスに『DSPK1.03』(※初期ファームでしかお目にかかれないので1.03以外うろ覚え)とか表示されていれば
古いファームのため対応していない、といった可能性があります。
また、UI ToolのSys. Setup2に『Wide Band Speech Enable(mSBC)』というのがあるのでそれをEnableする必要があるかもしれません。
この項目は『DSPK2.1.1』から追加されていて、デフォルトEnableです。(が、ファームアップデートしたらEEPROMは書き直した方が良いです)
BM62に関しては最新ファームは「DSPK2.1.2」です。
またご質問などありましたら、書き込んでください。喜んで対応させていただきます。
玉瀬様
しんいちです。
いろいろと教えていただきありがとうございます。
HFP1.6に対応したいと思いますが、ファームウェアですが、ダウンロードするファイルはどれになりますでしょうか?
https://www.microchip.com/en-us/product/BM62
BM64とファイル名があるのは違うと思っています。認識はあっていますでしょうか?
いろいろとお手数をかけてしまいすみません。
よろしくお願いします。
しんいち 様
大変いいづらいのですが、このモジュールに関してはMicrochipは一切信用できないため
BM64 DSPK2.1.3
BM64 DSPK2.1.2
のどちらかがおすすめとなります。確か2018年の一時期はBM6Xとして同じものを配信していました。
よろしくお願いいたします…
しんいち 様
BM62のページにアクセスしたついでにリリースノートを読んだのですが、なにやら不穏な文章が見えまして、
『WindowsではBM6xの16kHz HFPを認識できない問題を、DSPK2.1.5で修正しました』
とのことです。
で、DSPK2.1.5は今のところBM64でだけアップデート可能です。
理由はBM62用のアップデートツールがなぜかHEXファイルを読み込めないためです。
私が知らないだけでHEXをH00~H15のファイルに変換できるのかもしれませんが、そこまで読み込んでいません。
それ以外に記述がないため、Windows以外では16kHz HFP通信が可能と思われます。
※BM83でもBM64と同等以上の働きができるとは思いますが、サポートしきれる自信がありません。
手元に検証ボードがあったら動くかどうかは見てみます。
玉瀬様
おはようございます。
しんいちです。
>手元に検証ボードがあったら動くかどうかは見てみます。
大変お手数をおかけいたしますがよろしくお願いいたします。
HD VOICEが実現できると大変うれしいです。
それでは失礼いたします。
しんいち 様
BM62、BM64、BM83の基板があったためWindows10 Ver21H2に接続しました。
・BM62
DSPK2.1.5は書き込みできず。
DSPK2.1.2では8kHz 電話の音質 で認識。
・BM64
DSPK2.1.5で16kHz テープレコーダーの音質 で認識
・BM83
MSPK1.03(BM83公式ファーム)で16kHz テープレコーダーの音質 で認識
でした。
よろしくお願いいたします。
玉瀬様
しんいちです。
早速試して頂きありがとうございます。大変お手数をおかけいたしました。
やはりBM62では対応していないのですね。
だまされた感じがあるので、マルツに問い合わせてみます。
追試していただいてありがとうございます。
ちなみに参照しているページですがいろいろと認識違いがあるような
内容になっていますので、一度ご感想をお聞かせください。
https://www.zep.co.jp/nbeppu/article/mz-bm62-da1/
それでは失礼いたします。
しんいち 様
進捗のお役に立てず申し訳ありません。
マルツからMicrochipに問い合わせが行って、BM62に書き込める形式のファームが配布されればチャンスあるかなあ…というところですね。
ご紹介いただいたページの感想ですが、『嘘は言ってないなあ…』というところです。
ここで紹介されているのは設定ファイル(EEPROM)の書き換えだけで、ファームウェアの書き換えは、雑で申し訳ないですがこれしかなさそうです。
ファーム書き換えの記事
・DSPK1.1を勧めている理由
購入者がファームの書き換えでモジュールを壊すことなくEEPROMの書き換えを楽しめるよう配慮していると思われます。
また、DSPK2.1系の仕様(UARTをEnableしておかないと操作不能になる)による答えづらい問い合わせを回避する効果もありそうです。
他にもいくつかBMモジュール特有の謎の挙動に悩まされていそうな感じもします。
マルツはBM83ボードも出していますが、マイク入力は省かれているようです。
他にも具体的に知りたいことなどありましたらお申し付けください。
知る範囲内ではありますが回答させていただきます。
玉瀬様
しんいちです。
参照URLを間違えてしまいました。
商品ページにあるHFP1.6との記述がありますが、「誤記」という理解にしていますが、認識はあっていますでしょうか?
いずれにしてもHD VOICEには対応していないものなので問い合わせしてみます。
マルツからMicrochipにファームウェアについての問い合わせが行けば
うれしいですね。
その方向でもお願いしてみます。さすがに組みなおすのも面倒ですね。
一応バラック組ですが、音はなっているので、ここまでとしたいと思います。
いろいろとありがとうございました。
しんいち 様
マルツの商品ページに対しては誤記でいいのではないかと思います。送受信双方がHFP1.6対応なら16kHzで通信するのがHFP1.6みたいですから…。
しかしMicrochipのBM62モジュールに対して、となると奴らがよくやる『(ハードウェアは)HFP1.6対応』の可能性が出てきて、誤記とは言い切れなくなります。私個人は『ハードウェアはHFP1.6対応』の解釈を採用してます。
Microchipの『WindowsでHD Voiceが使えない』もおそらく、『Windows以外は確認もしていない』でしょうけどiOSやAndroid、Mac相手ならHD Voiceが動く可能性がなくはないです。
イマイチとは思いますが、これを回答とさせていただきます。
追伸:
その後のテストで、BM64にDSPK2.1.5を書き込む→アップデートツールのDUMPを使用し、BM64の中身をH00〜H15形式で取り込む→取り込んだH00〜H15ファイルをBM62に書き込む
という操作でBM62にてDSPK2.1.5 16kHz HD Voice対応を確認しました。
アプリケーションノートに無い操作なので現時点でBM62がHFP1.6対応ではないことに変わりはありませんが、やはりハード的には対応しているようです。