PICkit2

2009-05PIC


PICkit2

私はPICのライター環境やMCHIP純正開発環境のことをほとんど何も知りません。

そうです。PICkit2というMicroChip純正のちっぽけなツールがあったのです。

MicroChip

http://media.digikey.com/photos/Microchip%20Tech%20Photos/DV164120.jpg

秋月で3500円で売ってます。(PICKit2のみの値段)

なんとISP端子が、そのまま1Msps程度のロジアナにもなるとか。

クローンも簡単に作れそうです。中身は18F2550ですから。

PIC焼きのための昇圧回路の配線がやや面倒ですが、ここも忠実に再現しなくていいのなら 秋月の50円のスイッチングICで作れちゃいます。

とりあえず自作の18F4550基板とか秋月AE-18F2550をPICkit2化出来るかどうか試してみようと思います。

  • そうやってライターばかり増やしてどうするんだという声も聞かれますが・・・。






ダメもとでPICKit2のツールをダウンロードする。

  • 展開(インストール)すると、展開先に"PK2V023200.hex" というHEXが出来ます。
  • これをw509ライターなどでPIC 18F4550に焼きます。
  • 水晶の周波数が違っていたら動かないよなーとか思いながらも、USBを接続します。
  • なんと、PICKit2と認識してしまいました。
  • VID:PIDは 04D8:0033 でHIDデバイスです。
  • HEXファイルを見ると、ブートローダーは4K弱ありますので、MCHIP純正のHID Bootloaderが先頭に焼かれているようです。
  • PICKit2のツールを起動すると、HVP書き込みのための高電圧が足りないと言われました。
    • それは、回路が存在しないからでしょう。
    • 回路はUBW互換のままであり、水晶も20MHzのままなのにそのまま認識して使えてしまいました。
    • 便利すぎだろなりすまし野郎め!
  • ToolメニューのなかにUARTツールとLogicツールがあり、
    • UARTツールを使うと38400bpsまでの内蔵シリアル(?)を使った端末が使え、
    • Logicツールを使うと1Mspsまでの(3入力)ロジアナになるようです。






PICKit2のUARTについて。

/ATMEL_AVR/jpg/PIC/uarttool.png

  • 300bpsから38400bpsまでメニューセレクトと150bpsから38400bpsまでの任意のボーレート数値入力が出来ます。
  • 回路図によるとTxD/RxDはISP端子と全く接続されていませんので、ソフトウェアUARTで実現していると思われます。
  • もちろんUSB-HIDデバイスでシリアルなんていうプロトコルは存在しませんので、内蔵の独自ターミナルソフトだけの世界です。
  • ASCII表示のほかにHEX表示も出来ますので、それなりにマイコン側のダンプを受け止める場合の都合が良いのかもしれません。






PICKit2のロジアナについて。

/ATMEL_AVR/jpg/PIC/logictool.png

  • これがまた、自作18F4550ボード(UBW互換)に何の改造も加えずにそのまま動作してしまいました。
  • 開いているサンプリングメニューを見てもらうと一目瞭然なのですが、このロジアナは1000サンプルしか取得しません。
  • 3ビットですが、1kサンプルです。PICには2kBの内蔵RAMがあるので1000サンプルを(1バイト単位で)取っても1kBで足ります。実際のところHIDmonでさえ、512バイトもあれば動きますので、メモリー的には余裕です。
  • 最初は、1Mspsのロジアナと聞いて、(つまり3Mbit/sのホストPCへの帯域確保と定速サンプリングの両立をどのようにやっているのだろうかと興味津々でした。
  • しかし、なんのことはありません。サンプリングは内蔵RAMの範囲内で全力サンプリングなのです。
  • これなら作れそうな気がしてきました。
  • LowSpeed USBのAVRでもMega644のようにRAMが4Kもあればもっと高性能なロジアナが作れるでしょう。
  • この場合ホストへの転送速度はあまり関係ないのです。

しかし、PICkit2のファームとLogicツールがUBW互換ハード上でそのまま動作することがわかった以上、もうロジアナっぽいソフトを作る必要はないのかもしれません。(GUIツールは作るのが面倒ですから)






PICkit2のファームその後

  • 外部ライターを使ってHIDmon bootloaderとPICkit2の焼き直しを行うのが面倒くさくなってきたので
  • PICkit2からMCHIPブートローダーを抜いたHEXを(テキストエディタで)作ってみました。
  • PICkit2のファームの本体部分は0x2000から始まっているので、
    org 0x800         //reset
         goto 0x2000   
    org 0x808         //low_isr
         goto 0x2008
    org 0x818         //high_isr
         goto 0x2018
  • みたいな6行アセンブラを書いて800番地に焼き、
  • テキストエディタで切り取ったPICkit2ファームを2000番地から焼きます。
  • 焼くのは外部ライターからではなくHIDmonのファームに内蔵されたブートローダーを使用してpicboot.exeで焼きます。
  • HIDmonはXINST=0でコンフィグしてあります。
  • HIDmonをアプリモードでリセットすると、新しいUSBデバイスをPICkit2の名前で認識し
  • なぜかロジアナまで、すんなり動いてしまいました。

18F2550/4550(どちらも400円IC)は、便利すぎです。

ほんとにPICkit2互換昇圧回路作ってPICkit2クローンにしたくなってしまいました。

と、思ったら、互換品を制作されていらっしゃる方を発見。

  • 秋月で3500円で買える今となっては、価格面でのメリットはありませんが、
  • 中日電工ND80Z(と言って分かる人はいるのかな)的な手作り感のぬくもりが感じられます。