2017年11月18日土曜日

HC-06でRN42のファームウェアを使う

だいぶ前に買ったHC-06っていうBluetoothモジュールがあるんだけど、このモジュールが秋月で売っているMicrochipのRN42というBluetoothモジュールのファームウェアが使えるということなので試してみた。

HC-06もRN42もCSRのBC417っていうチップを搭載してるらしい。
左からHC-06、Vgateに入ってたやつ(形式不明)、Microchip RN42である。
RN42は秋月で1800円だった。

他にもHC-05とかBC-04とかあるみたいだけど、どれもHC-06とハードは同じでソフトが微妙に違うとか?
さらに同じHC-05でもハードが違うやつもあるらしい?
まぁたしかにHC-06とVgateに入ってたやつはICは同じような配置だけど周辺部品が微妙に違う感じが。

RN42は何がいいかというと、HIDプロファイルが使える!
さらにHC-06では使えないマスター(親機)にもなれるし、ボーレートの設定の自由度があがるみたい。
HIDモードはシリアル通信で外部のマイコンから制御しないとだめだけど、ゲームパッドやキーボードになれる模様。

早速書き換え。
書き換え手順はネットで探せば結構出てくるけど、簡単に言うとCSRの書き換えツールでRN42のファームウェアをダンプして、書き換え対象のHC-06とかHC-05からも一応ファームウェアをダンプ、PSKEYもダンプしてからRN42のファームを焼いて基板固有の一部のPSKEYを書き戻すといった感じ。

今回はライターとして前回作ったCSR-SPI-FTDIを使用した。
まずはRN42からファームをダンプ
CSR-SPI-FTDIとは以下のように接続
  SPI_MOSI   → RI
  SPI_CLOCK → RTS
  SPI_MISO   → DSR
  SPI_CSB     → DTR

BlueFlash.exeを起動して
Stop Processorを押してからDumpボタンでファームウェアを保存。
保存が終わったら次にHC-06などの書き換え対象につなぎ替える。
これまたピン配置が違うので面倒だけど…
なんかあってももとに戻せるようにまた同じように
Stop Processorを押してからDump。次にStart Processorを押してからBlueFlashを閉じる。

PSTool.exeを起動して
File→DumpをクリックしてPSKEYをダンプする。
そしたらまたBlueFlash.exeを起動してStop Processorを押してから
Choose FileでRN42からダンプしたファイルを選択してDownloadボタンを押す。
これでRN42のファームウェアがHC-06に書き込まれる。
Start Processorを押してからBlueFlashを終了する。

あとはHC-06基板固有のPSKEYを書き戻す。
先程ダンプしたPSKEY(拡張子がpsr)をテキストエディタなどで開いて

// PSKEY_BDADDR
&0001 = xxxx xxxx xxxx xxxx
// PSKEY_ANA_FTRIM
&01f6 = xxxx
// PSKEY_ANA_FREQ
&01fe = xxxx

のようにこの3つ(6行分)の値だけを残してほかを消去して保存。
PStool.exeを開いてFile→Margeでマージして完成。
これであとはRN42として動くはず。

これで手持ちのHC-06とRN42間での通信もできるな。
ADM3202とか繋げば安価でREX-BT60互換なRS-232C変換アダプタとか作れそう。
ちなみにデバイス名が最初コピー元のRN42と一緒になってしまうので注意。
今回移植したファームウェアは旧版の6.15だった…
最新は6.30らしい?RN42-I/RM630買えばFWが6.30だったぽい…

0 件のコメント:

コメントを投稿