RX62NのUSBプログラマを作る
究極のRX62Nボードや、RaXinoのRXマイコンの内蔵ROMにプログラムをしていただくために「FDTを使用してください」と書いてきました。ただ、FDTは登録してダウンロードしなければなりませんし、高機能すぎて、使うのはちょっと大変です。
そこで、RX62N用に簡易なUSBプログラマを作ることにしました。
RX62Nは、MD0をLに落とした状態でリセットすると、USB ブートモードというのになります。この状態でプログラムを行うためのツールです。
USBブートモードでは、RX62Nは、Generic Boot Deviceとして認識されます。
デバイスドライバが要求されるので、柏野さんの汎用USBデバイスドライバ(UUSBD)を使うことにしました。
(以前、Interface誌の記事を参考にしてlibusbを使おうとしたけど、だめだった。柏野さんドライバなら動いた。)
VID=045B、PID=0025で、このRX62NのGeneric Boot Deviceに結び付けられます。
hWrite = Uusbd_OpenPipe(husb, 0, 0); // パイプ0?
hRead = Uusbd_OpenPipe(husb, 0, 1); // パイプ1?
とやると、書き込みパイプと読み出しパイプのハンドルが取れます。
RX62Nのハードウェアマニュアルの第37章を参考にプログラムを作ってみました。

まず、0x55というコマンドを送ると、0xE6というレスポンスが返ってきます。
ここからすべてがはじまります。
そして、ハードウェアマニュアルを参考にして、サポートデバイス問い合わせ等のコマンドを発行します。

最初に0x55を送ることと、チェックサムの読み出しにもう1つのReadFileを行ってやることを除いて、どうやら、RS232C版の書き込みシーケンスとUSB版の書き込みシーケンスは同じようです。
とりあえず各種の情報は取得できました。
それほど難しくはなさそうなので、1~2日で作れると思います。
書き込みができるようになったら無償公開する予定です。
どうやってRX62Nに書き込みをしようかとお悩みの方はご期待ください。
FDTを使うのは大変だという方や、MACで書き込みしたいという方はどうぞご期待ください。
| 固定リンク



コメント
マニュアルには256バイト書き込みと書いてありますが、現物は256バイトではありません
問い合わせで返ってきたサイズで書きこめば大丈夫です
投稿: ysato | 2012.01.07 15:21
IDコード照合リトライ回数オーバーフロー時の
ERASE処理後ってIDコード待ちに戻る?
投稿: | 2012.01.08 13:14
ysatoさん
コメントありがとうございます。
確かに問い合わせで返ってきたサイズがマニュアルと違いますね。他にもいくつかマニュアルと違う点はありましたが、なんとかクリアできました。
投稿: なひたふ | 2012.01.09 04:44