マイコン工作実験日記

Microcontroller を用いての工作、実験記録

BM20実験基板 -- その2

2017-08-18 22:08:01 | WT32/BM20
この1週間ほど、BM20実験基板を使ってBM20の機能を確認する作業を続けてきました。基板を作成した際に想定した機能項目に関してはほぼ確認できたので、ここで今回作成したボードの回路図を参考のために示しておくことにします。




  • 通常動作とEEPROM設定変更時とでは、DIPの設定を変更する必要があります。実際のところEANとP2_4の2つの端子はHighレベルにしておき、変更することはありません。これらの端子は内部プルアップされているので、オープンのままでも良かったと思います。
  • LED1とLED2には電流制限抵抗は不要です。これらのLEDの明るさはUI Toolで設定変更可能です。
  • ブザー機能はBM20の出荷時設定では無効になっています。EEPROM設定で有効にできますが、生成される音は単調ですので、スピーカから流すトーンを使った方が良いと思います。
  • ディフォルト設定では、ADP_INから5Vを供給し、BAT_INには電池をつなぐことを想定しています。電池をつながずに5Vを加えるとLED2がしばらく点灯しますが、充電中表示をしているのではないかと思われます。
  • ディフォルト設定では電源オン/オフにはMFBスイッチの長押しが必要です。オンのためには2.4秒、オフのためには3.2秒ボタンを押し続ける必要があります。かなり長いです。これらの時間設定はUI Toolを使って変更可能です。
  • HFP接続時には、MFBスイッチは着信応答、切断、リダイヤルボタンとしても機能します。


今回Eleclowで作成した基板は7枚届きましたが、1枚を予備に残すことにしても残りの5枚は使うことも無さそうなので、ご希望の方がいらっしゃればお分けします。こちらの売店より購入をお願いします。





お分けするのは基板のみです。部品はご自分で調達願います。

  • BM20はDigikeyから購入しましたが、Microchip Directからも購入できるようです。
  • マイクにはWM-61A相当、リードピン付きを使いました。
  • 3.5mmオーディオジャックとタクトスイッチには手持ちの表面実装用のものを使いました。相当品はスイッチサイエンスのようなSpark Fun製品取扱店やRSオンラインのような部品販売サイトで見つかると思います。
  • ブザーには秋月で販売されている圧電サウンダを使いました。
  • EEPROM設定変更のためには、USBシリアル変換器を用いてPCと接続する必要があります。この部分の回路は基板上には含まれていませんので、別途用意してください。

BM20には、BM20SPKA1NBC-0001AAとBM20SPKS1NBC-0001AAの2種類の品番の製品があります。値段はBM20SPKAの方が安いのですが、電波法の認証を受けている型番はBM20SPKS1NBCとなっているので、わたしはこちらを買いました。
コメント
この記事をはてなブックマークに追加

EEPROM設定を変更してみる -- その4 (BuzzerとPMU)

2017-08-17 21:16:18 | WT32/BM20


BM20では動作時にスピーカだけではなく、ブザーを鳴らすこともできるようになっています。今回作成した実験用ボードでは、ブーザとして秋月の圧電スピーカをつなげられるようにパターンを用意しておいたので、これを追加実装しました。タクトスイッチも追加実装したかったのですが、やはり手持ちを切らしてしまったようです。何かのついでに注文するまでしばらく無しのままになりそうです。

ブーザの機能はBM20のディフォルト設定ではイネーブルされていないので、UI Toolで設定を変更する必要があります。



Function EnableのところでBuzzerにチェックを入れておきます。ブーザを接続できる端子にはP0_3またはP1_5の2つがありますが、ディフォルト設定ではP0_3はボタンに割り当てられているので、今回のボードではP1_5をブザーに使うことを想定してパターンを用意してあります。



こちらはブザー関連の設定画面です。Output TypeではPulseとPWMの2種類を選択できます。Pulseは信号がアクティブになっている間鳴り続けるタイプのブーザで、圧電スピーカのように発振器を必要とする場合にはPWMを指定してやります。発振させる周波数はPWM周波数として指定できますが、結果として出てくる音は、on/offパターンは選択できるものの、周波数は単一なので音として面白くありません。スピーカからはマルチトーンで出せるので、ブーザを使うより、スピーカ鳴らした方がいいですね。

BM20のディフォルト設定では充電機能が有効になっており、電圧監視機能も有効になっています。今回の実験では電池はつないでいないので、これらの機能を無効にしておくことにしました。



これまでの動作確認実験では、すべてADP_IN端子にUSB 5Vを加えていました。BAT_IN端子からの電源の供給も可能なのですが、ディフォルトではリポ電池をつないで使用することを想定して充電と電圧監視機能が有効になっています。そのため、BAT_INに3.3Vを加えたとしても電圧監視機能が働いて電圧が低すぎると判断されて、自動的に電源がオフにされてしまうのです。

充電と電圧監視を無効にすることで、BAT_IN端子に3.3Vを加えて動作させることができました。この場合、ADP_INはオープンで構いません。
コメント
この記事をはてなブックマークに追加

EEPROM設定を変更してみる -- その3 (音声プロンプトの追加)

2017-08-16 12:53:23 | WT32/BM20
前回の記事ではBM20で音声ガイドが出せることを確認しました。BM20では4ヶ国語の音声パターンがあらかじめ用意されていますが、日本語は含まれていません。しかしながら、UI Toolを使って音声プロンプトの追加登録が可能になっているので、これを試してみました。

追加する音声はサンプリング周波数8000Hzのモノクロ16bit PCMで用意しておき、これをwavファイルのコンテナに入れておきます。わたしは、「電源オン!!」と吹き込んだおよそ1.55秒のファイルをAudacityを使って作成しました。UI Toolのマニュアルによれば、音声の長さは3秒までで、電源オンの通知だけは4.5秒まで許容されるようです。

UI Toolを立ち上げて、用意したファイルをVoice Prompt Toneとして追加登録してやります。



ファイルを追加するとCurrent EEPROM Sizeの値が増えます。もともとは4096 だったのが5460に増えているので、1360バイト増えていますが、16bit PCM形式のままだと24KBは必要になるはずなので、何らかの圧縮を行なって保存するようです。複数の音声を追加しようとすれば、それだけEEPROMの領域が必要になるので、そもそもBM20が持っているEEPROMの容量を知りたいところですが、データシートにはこの値が明記されていません。探し回ったところ、IS20xx_ApplicationNote.pdfに512Kbitであるという記述がありました。

上図の最後に示されているように、追加したファイルが各トーンの設定メニューで選択可能になるので、これを選択してやります。Multi-Toneの方も同様な手順で独自のトーンを追加できますが、こちらはMIDファイルを食わせてやるようです。

こうしてEEPROMを更新することで、電源オン時に自分で作成した音声が流れることを確認できました。
コメント
この記事をはてなブックマークに追加

EEPROM設定を変更してみる -- その2

2017-08-15 12:11:16 | WT32/BM20
使用すべきツールセットの区別がついたので、ようやくとEEPROM設定変更作業を開始します。

まずはUI Toolから。パラメータは色々ありますが、今回はSPPプロファイルをイネーブルするだけの変更にしておきます。SPPではUARTを使うことになりますが、UART CommandのチェックはUART経由でコマンドを投入したりイベントを拾ったりする場合の指定だと思われるので、チェック無しにしておきます。



Nextを押して次の画面に進みます。



うーん、読みが外れてしまいました。UART機能がdisable状態で変えられません。どうやら、最初の画面でUART Commandをチェックしておかないと、この画面でUART機能がEnableにならないようです。実際のところ、どういう風に動くのかわからないので、このまま進むことにします。



Sys. Setup2の画面です。デバイス名称を変えておきます。



スクロールすると、AACとmSBCが無効になっていたので、どちらも有効にしておきました。データシートにはAACはオプションと書いてあったので別途ライセンス料が必要なのかと思いましたが、ここでチェックするだけでいいのかな?



こちらの画面では、Link SPP..の部分がDisableだったので、A2DP Profileにしておきました。A2DPのリンクがあると、SPP接続を許可するということなんでしょうか?

LEDやボタンの設定はディフォルトのままにしておきますが、それぞれボタンに対応するアクションの紐付けや、LED点滅パターンや明るさの設定が行えます。



最後にトーン設定を変更しておきました。音声ガイドは英語だけを有効にして、電源ON/OFF時にトーンではなく、音声を流すように設定変更しました。"VP"というのが Voice Promptの意味のようです。

続いてDSP Toolを起動。チップを選択するとロードされるディフォルトの設定をそのままセーブしておきます。



次にEMPETを起動。記録のために画面だけ貼っておきますが、説明は省略。








この画面の意味がわからないのですが、とりあえず何もチェックしないで進むことにしました。



ここまでで、.ipfファイルが生成されたので、EEPROM toolを起動して書き込みを行います。前の記事に書いたようにDIP SW設定を変更して、電源を入れ直しておきます。


ファイル名を入れてWriteボタンを押すと...



無事に書き込み完了。UARTとはHCI_TXとHCI_RXの2本しかつないでいませんが、問題なく書き込みできるようです。

一旦、電源を切って DIP SW設定を元に戻します。そして、電源を入れ直します。MFBボタンを押していると、「パワー オン」という音声ガイドがスピーカから流れ、無事に設定変更できたことが確認できました。ただし、音声を最後まで聞いている間、ボタンを押しっぱなしにしていりと、ペアリングモードに入ってしまうようです。音声が聞こえた時点でボタンを離しても大丈夫。

ペアリング状態でDPを確認してみると、次のレコードが追加されていました。

Service Name: Bluetooth Serial Port
Service RecHandle: 0x10007
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 6
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "Serial Port" (0x1101)
    Version: 0x0102


SPPを許可したことで、対応するSDPレコードをアナウンスするようになったわけです。実際にPCから接続を試みたところ、SPPの接続は確立できるのですが、データの送受信が行えませんでした。データ送受をするためには、UI Toolの設定において UART Commandを有効にしなければならないようです。
コメント
この記事をはてなブックマークに追加

EEPROM設定を変更してみる -- その1

2017-08-15 10:49:58 | WT32/BM20
工場出荷時状態での動作がほぼ確認できたので、EEPROMを書き換えて設定を変更してみることにします。

BM20には設定用ツールとして、次の4つのWindowsアプリが用意されています。
  1. UI Tool
    User Interface関連のパラメータを設定変更するツールで、.txtファイルを生成します。サポートするプロファイル、ボタンへの機能割付け、LEDの点滅パターン、トーン設定や音声ガイドなどの設定ができます。
  2. DSP Tool
    音声信号入出力に関連するフィルターやイコライザー、アンプゲインなどの設定を変更するツールです。.txtファイルを生成します。
  3. MPET Tool
    UI ToolとDSP Toolの出力したファイルをマージして、EEPROMへの書き込みデータを作成するツール。.ipfファイルを生成します。
  4. EEPROM Tool
    MPET Toolの出力したデータ(.ipfファイル)をBM20に内蔵するEEPROMに書き込むためのツール。

手順が多くて面倒ですが、上記の4つのツールをこの順番で使ってEEPROMへの書き込みを行います。この4つのツールのうち、実際にBM20とつないで作業を行う必要があるのは、最後のEEPROMツールだけです。

さて、これらのツールはBM20のページのDocumentation/Softwareからダウンロードできるのですが、そこにはBM20_203 Tools SetIS2020_002 Toolsの2種類のzipファイルが掲載されています。両方をダウンロードしてみると、どちらにも4種類のツールが含まれています。どちらを使えばいいのかわからないので、試しにUI Toolを立ち上げてみると、そもそも最初の画面の表示内容が違います。

BM20_203のUI Tool表示画面


IS2020_002のUI Tool表示画面


どちらもディフォルトではSPPがイネーブルされていないことを示しているようなんですが、BM20_203の方ではそもそもPBAPのサポートが無いように見受けられます。いよいよ混乱してきましたが、ツールセットの中に含まれていたアプリケーションノートを読んでようやくとその違いがわかりました。どうやら、SiliconのバージョンにIS20xxx_002 とIS20xxx_203の2種類があり、まずはEEPROMツールを使ってシリコンのバージョンを確認し、それに対応したツールを使う必要があるとのことです。

EEPROMツールを使うためにFT232とBM20のHCI_TX/HCI_RX端子をつなぎ、DIP SWを P1-ON, P2-OFF, P3-ONに設定し直します。USB 5Vを加えてやるとLED1とLED2の両方が点灯状態となり、EEPROMツールからのアクセスができました。MFBボタンの操作は必要ありませんでした。



わたしの購入したモジュールのSiliconバージョンはIS20xxx_203であることが判明しましたので、Tool Set としてはBM20_203 Tools Setを使えば良いことになります。しかし、これはPBAPが使えないことが確定ということなんでしょうか? 改めて資料を確認してみるとデータシートにはPBAPサポートが明記されているのですが、BM20の製品ホームページにはPBAPという文字はありません。なんか騙された気分がしないでもありませんが、まぁこんなトラブルも中華チップを楽しむ上での醍醐味かもしれません。

前置きが長くなったので、続きは その2に書くことにします。
コメント
この記事をはてなブックマークに追加