ラベル ブートローダー の投稿を表示しています。 すべての投稿を表示
ラベル ブートローダー の投稿を表示しています。 すべての投稿を表示

2010年10月29日金曜日

ブートローダー・ファームウェア切換え回路

38ピンのRB5にスイッチを接続します。 スイッチを押しながらUSBケーブルを挿すとブートローダーが起動します。
USBケーブルを挿し終わって、ディバイスの認識が完了したら、ボタンを離します。
(参考)スイッチを押しながら、マイコンボードの JP1 の 2,3 を解放して接続しても可能かと思いましたがうまく切換え出来ませんでした。

リセット回路を追加するとケーブルを挿したままで、ファームウェアからブートローダーへの 切換えが出来ます。
リセットスイッチを数秒押しているとブートローダーが利用できます。


RB4 にスイッチが接続されている時の
ファームウェアからブートローダーへの切り替えは、
RB4 のボタンを押しながらリセットを押します。

ブートローダーからファームウェアに切り替える場合はリセットボタンを押します。

19,20ピンにLED を接続すると点滅速度でブートローダーとファームウェアの違いが確認出来ます。
HID ディバイスの場合は点滅速度は同じ様です。

2010年10月28日木曜日

HID - Joystick を使ってみる

ブートローダーでHID - Joystick の記事を読んでUSB Device - HID - Joystick の
ファームウェアの書き込みが完了し、ディバイスドライバのインストールも完了したら、
スイッチを追加して動作を確認してみたいと思います。

RB5 にスイッチを接続します。



USB Device - HID - Joystick フォルダのjoytester.exe を起動させて、
スイッチを押すと、上の動画の様になります。

ブートローダーでHID - Joystick

ブートローダーを利用して、USBフレームワーク の USB Device - HID - Joystick の
ファームウェアを書き込んで試してみたいと思います。


PICkit 2 などのライターで書き込む場合は MPLAB IDE で開いてビルドして、
書き込めばいいですが、
ブートローダーを使って書き込む場合は、
プログラムの修正が必要です。

USBフレームワーク をインストールしたフォルダの
USB Device - HID - Joystick フォルダを開きます。


 Firmware をクリックします。

USB Device - HID - Joystick - C18 - PICDEM FSUSB.mcp
をダブルクリックして MPLAB IDE で開きます。

usb_config.h をダブルクリックして開きます。

#define PROGRAMMABLE_WITH_USB_LEGACY_CUSTOM_CLASS_BOOTLOADER
上記の一行を書き加えます。

ビルドして、hex ファイルを作成します。

ブートローダーの書き込みソフト-HIDBootLoader.exe を起動させます。
Open Hex File をクリックして作成した hex ファイルを選択します。


Program/verify をクリックすると書き込みが始まります。
書き込みが完了すると上の画像の様に表示されます。

ケーブルを抜いて、もい一度挿すと、
HID - Joystick のディバイスドライバのインストールが開始さます。
ディバイスドライバのインストールが完了したら、必要に応じてパソコンの再起動をして下さい。

USB Device - HID - Joystick フォルダのjoytester.exe が利用できます。

ブートローダー用の書き込みソフトの起動

ブートローダーの書き込みで使用したフォルダと同じ場所の
HIDBootLoader.exe をダブルクリックして起動させます。

書き込みソフトが起動しました。

マイコンボードとパソコンをUSBケーブルで接続すると下の画像の様になります。

USBで接続-ディバイスドライバのインストール

USBケーブルでパソコンと接続します。
JP1 は2、3を接続しています。
JP2 は無接続

接続するとすぐにディバイスドライバのインストールが始まります。

表示されたアイコンをクリックしてしばらくすると、
インストールが完了します

閉じるをクリックします。

再起動してディバイスドライバのインストールを完了します。

ブートローダーとは

ライターを使わなくても、PICマイコンをUSB接続して、
プログラムを書き込む事が出来ます。

ここではMicrochip社のブートローダーを使います。


ブートローダで書き込む時のマッピングアドレス
#define REMAPPED_RESET_VECTOR_ADDRESS 0x1000
#define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS 0x1008
#define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS 0x1018


usb_config.hに下記一行を追加する必要があります。
#define PROGRAMMABLE_WITH_USB_LEGACY_CUSTOM_CLASS_BOOTLOADER


(参考)ライターで書き込む時のマッピングアドレス
#define REMAPPED_RESET_VECTOR_ADDRESS 0x00
#define REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS 0x08
#define REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS 0x18

ブートローダの方が0x1000をシフトされる。
0x00-0xFFFはUSB HID Bootloaderのプログラムエリア。

ハードウェアではブートローダー と ファームウェア の切り替えスイッチを設ける必要があります。
通常ではファームウェアの方が実行されます。

RB4に接続されたスイッチを押しながら電源を入れるとブートローダーが実行します。

ブートローダーの書き込み

PICkit 2 を使って書き込みます。

PICkit 2 の書き込みソフトを使って書き込みます。
書き込み方法は
PIC18F4550 USBマイコンボード(秋月)に書き込む
を参考にしてください。
書き込むhexファイルは

USBフレームワークをインストールした場所から
USB Device - Bootloaders を選択します。

HID - Bootloader を選択します。


USB Device - HID - HID Bootloader - C18 - PIC18F4550.hex を選択します。