Pinguino bootloader動作

130824a4PIC32MXでPinguinoのbootloaderが動かないので、古いUSBプロトコルアナライザを引っ張りだし、通信の内容を見るのだが、ひさしぶりに見るので内容を理解できない。 USBの本「USBコンプリート」を読み直しプロトコルを思い出す。

その結果、STALLパケットは、別に誤動作しているわけではないことが判明。ということは、bootloaderが動いていても良さそうだが、動かすことが出来ない。

bootloaderのソースをこのサイトからダウンロードし、中を読みつつ、いろいろイジって試す。そうこうしているうちに、ダウンロードしたファイルにReadMe.txtがあることに気がつく。回路図から開発環境の構築方法、コンパイル方法、書き込み方、動作確認方法まで書いてある。

この動作確認方法に、Pinguino付属のmphidflash.exeというプログラムで試すと書いてあるので試してみると、何か認識されたっぽい。今まではPinguino IDEの書き込み機能で試していた。もう一度IDEで試すが、やっぱりエラーが出て書き込めない。しばらく考えて、ボードの種類を選択していないことに気が付き、「PIC32 Pinguino 220」を選択すると、ちゃんと認識し動作した。ちゃんちゃん。

ところで、チップの端子とPinguinoでの端子(D0~D13,A0~A6など)との対応関係がわからない。資料を捜すと、PinguinoのサイトPIC32_Pinguino_DIYのページにある回路図とかPinsの表とかが、それっぽいのだがなんか話が合わない。

LEDチカチカのサンプルプログラムではD13がLEDの繋がっているRB15(26番ピン)になっていて、ちゃんと動作するのだが、上記資料ではD13が無いし、RB15はD1ということになっている。

PinduinoのdigitalWrite()のソースに、それっぽい配列があるので、それを使えばすむと思うが、ちゃんとした資料が見つからないのが気持ち悪い。

Pinguinoが使えるようにはなったが PIC32MX220ではROM容量が小さくて、いろいろ機能を削らないと入らないそうなので地道に調べながら自分なりのライブラリを作っていこう。でもbootloaderが使えるとPICkitが無くてもプログラムが書けて便利なので、このBootloaderで書き込める形式にはして行こうと思う。

ちなみに、bootloaderのReadMe.txtには、MinGW/Cygwin等のmake.exeではビルド出来ませんとあったが、パスをunix風に書き直し、MinGWのmake.exeを指定してやることでMinGW上からもemacs.exeからもビルドできるようになった。

Leave a Reply

メールアドレスが公開されることはありません。