PicKit3 の変更点


[[PIC32MX]]

*PICKit3を使ってHEXファイルを書き込む [#ne2f7885]

http://akizukidenshi.com/img/goods/L/M-03608.jpg

*注意点 [#rb3cb3a5]

秋月のHPには以下のFAQが用意されています。
-http://akizukidenshi.com/catalog/faq/goodsfaq.aspx?goods=M-03608

~
~
~
*私が嵌ったPICKit3の罠について [#i6a83b56]

-買ってきたばかりのPICKit3には、最新のファームが書かれていないか、あるいはブートローダーのみ生きているような状態でした。
-この状態でMPLAB-Xに付属のMPLAB IPEを使用してPICKit3に接続しようとしても、
 *****************************************************
 Connection Failed
-というエラーが出て、使用できない状態でした。
-Advancedモードに移行(パスワードは下に表示されています。)して、Manual Download Firmwareを選択しても、ファーム更新しているふり
だけして、結局、
 *****************************************************
 Connection Failed
-となってしまいました。

~
対策:
-PICKit3をUSB接続したあと、すかさず「connect」ボタンを押すと、ファームウェアの自動アップデート・フェーズに入る場合があります。
-ファームウェアが正しく書き込まれれば、それ以降は「connect」に失敗することはないようです。
-一説によると、PICKit3のボタンを押したままUSBケーブルを挿すとよいという話もあります。これもいろいろ試したのですが、結局USB接続して一定時間(数秒)を過ぎてしまうと、ファームウェアの更新チェックは行われないか、更新できない状態に移行するようです。(まるで、昔のArduinoのブートローダーのようですね)

~
~
~
*このサイトに登録されているHEXファイルをPICKit3で焼く場合の注意点 [#hbbc2ea0]

-MPLAB IPEでは、KSEG1のアドレスに出力されたHEXレコードは丸無視するようです。

-- PIC32のメモリーマップです。
-- 物理割り当てされているエリアは 0000_0000 〜 2000_0000 の512MBです。
-- 物理割り当てされている512MBと全く同じものが KSEG0とKSEG1にもマップされます。
-- KSEG0とKSEG1の違いはキャッシュ無効/有効で分けられています。
 
 FFFF_FFFF +---------------+ 
           |               |
           | Reserved      |
           |               |
 C000_0000 +---------------+
           | KSEG1(論理)   | Cacheなし.
 A000_0000 +---------------+
           | KSEG0(論理)   | Cacheあり.
 8000_0000 +---------------+
           |               |
           | Reserved      |
           |               |
           |               |
           |               |
 2000_0000 +---------------+
           | 物理メモリー  | ROM/RAM/PORT
 0000_0000 +---------------+


-ですので、HEXファイルのレコードで、0xBXXX_XXXXで吐き出されたレコードのアドレスを0x9XXX_XXXXに書き換える必要があります。
-簡便な方法としては、リンカースクリプト(*.ld)に指定してあるアドレスの0xb******* を0x9******* に全部変更します。

~
~
*HEXファイル変換ツール [#l32e7494]

hex2pickit3
-HEXファイルのアドレス指定がKSEG0(論理),KSEG1(論理)のいずれの場合にも、物理アドレスに置換します。
-MinGW gccあるいは Linux gccなどでコンパイルしてください。

-ダウンロード:[[hex2pickit3.zip:http://psp.dip.jp/web/upload.cgi/PIC/hex2pickit3.zip]]