UBWを試す

これまでAVR中心に扱ってきましたが、AVRにおけるArduinoと似たような存在として、PICの方でもUBW(USB Bit Whacker)というものがあることを知りました。こちらはマイコンにUSBコントローラを内蔵しているPIC18F2550を使用可能で、しかも、秋月で売っている18F2550マイコンボードをほぼそのまま使えるようです。しかも、ホストとの通信にはデバイス内臓のUSBコントローラを使うということで、極小サイズでデバッグができるようです。

というわけで、試してみることにしました。

ハードウェアの準備

ハードウェアは千秋ゼミのサイトを参考に、AE-18F2550を使ってブレッドボード上に構成しました。

ブートローダの書き込み

UBWでは、ブートローダのことをFirmware Bと呼ぶようです。このFirmware Bは、こちらのページの「UBW driver」というリンクの先にあるB.zipファイルに入っています。これを展開すると、FW_B_20MHz.hexというファイルが「output_20MHz」フォルダの下にあるので、これをWindows上の「PICkit 2 Programmer」で書き込みます。

書き込み完了後、UbuntuマシンにAE-18F2550を接続しても・・・・なにも起きません。動いてないと困るので、ポートRC2をGNDに落としながらMCLRをリリースすると、LEDが交互点滅し、どうやらブートローダが動いていることがわかりました。

ダウンロード用プログラムのコンパイル

次にダウンロード(ブートローダにアプリケーションを流し込んで書き込む)用のプログラムをコンパイルします。

こちらのサイトを参考に fsusb-0.1.11-2.tar.gz をダウンロード、コンパイルします。一次配布サイトなのかどうかよくわからなかったのですが、make一発でコンパイルします。

ファームウェアの書き込み

次に、Firmware D と呼ばれるアプリケーションをダウンロードします。こちらのページの途中に「・・・・ UBW Firmware D released」というリンクがありますので、それをクリックすると、Firmware D の圧縮ファイルが入手できます。これを展開したら、ポートRC2をGNDに落としながらMCLRをリリースして、LEDを交互点滅させます。この状態でブートローダが待機しているようですので、

$ sudo ./fsusb FW_D_2553.hex

として書き込んで、再度MCLRでリセットをかけると、異なるパターンのLED点滅が始まりました。

追伸

fsusb をルート権限で動かすのは面倒くさいので、こちらの記事で追加した /etc/udev/rules.d/60-local.rules に

# PICkit2 programmer
ATTRS{idVendor}=="0d48",ATTRS{idProduct}=="0033",GROUP="usbuser",MODE="0660"
# UBW bootloader
ATTRS{idVendor}=="0d48",ATTRS{idProduct}=="000b",GROUP="usbuser",MODE="0660"

を追加してみました。再起動しないと効果がわからないので、うまくいくかわかりませんが・・・。

追伸の追伸

やっぱりダメでした・・・。何でroot権限要求するのかソース読んでみないと・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)