2014年8月26日火曜日

PICkit3のProgrammer-To-Goを試す

さて、前回の記事から結構時間が開いてしまいました。
なにせただの趣味プログラマーですので、別のことに忙しかったり、もしくは何かを作ろうといった発想がないとなかなかプログラミングに手がつかないもの仕方ないことですね。特に何かの言語の基礎といったものを修得するような段階なわけでもないですし。

今回は、ちょっとプログラミングっぽくないかもしれませんが、PICkit3のProgrammer-To-Goを試してみようかと思います。

Programmer-To-Goって一体何?

PICkit3は、実はパソコンが無くてもスタンドアロンでPICの書き込みができてしまうのです。その機能がProgrammer-To-Goです(PICkit2にもProgrammer-To-Goはあります)。
とは言っても、まさかPICkit3の上でソフトウェアを開発するわけにもいきません。何をやってるのかというと、PICkit3が内蔵しているEEPROMにMPLABから転送したhexファイルを保持し、適当な外部電源とPICkit3にあるスイッチでPICにプログラムを転送できちゃうよって話です。

で、なぜこれを使おうと思ったか。
私は例のNTP時計を2つ作って動かしているのですが、1つは開発用PCから遠いところに固定してしまっていて、プログラムの更新をするのが非常に面倒なんです。NTP時計を外して持ってきたり、デスクトップパソコンをNTP時計の場所に持って行ったり、もしくはノートPCにPICkit3周りの環境をセットアップしてその場に持っていったりするのはとても面倒です。そこで、Programmer-To-Goなわけです。

それでは、Programmer-To-Goの準備をしていきましょう。

まずは、MPLAB Xでプロジェクトのプロパティを開き、CategoriesのPICkit3を選択して、Option categoriesからProgrammer-To-Goを選択します。



Image Nameの項目にこのProgrammer-To-Goのイメージの名前を入れてあげます。特にこれが完成したプログラムに影響を与えるといったことはない(と私は認識しています)です。単に、今PICkit3に入ってるプログラムが何なのかを識別できるようにしたいってだけなはずです。


次に、ツールバーの書き込みボタンの三角印を押してドロップダウンメニューを表示させます。この中にProgrammer To Go PICkit3 Main Projectという項目があるので、これを押すとhexファイルがPICkit3に転送されます。もちろん、この段階でPICkit3にPICを接続している必要はありません。

ここで、すでにPICkit3の中にProgrammer-To-Go用のプログラムが書き込まれていた場合、このような警告が出てきます。


読めばわかることですが、「PICkit3はすでにProgrammer-To-Goモードで"NTPCLOCK"っていうイメージが入っています。このデータを保持しますか?(つまり、PICkit3内のイメージを消去しないってことです)」と言っていますね。わざわざ"つまり"でわかりやすく言い換えてくれています。ここで、先ほど設定したイメージ名が役に立つわけです。

プログラムを更新したいので、PICkit3の中のメモリは消去する必要があります。なので、Noを押せばいいですね。

そうすると、出力一覧のPICkit3のところに
Connecting to MPLAB PICkit 3...
PICkit 3 is not in programmer-to-go any more.
Firmware Suite Version.....01.30.09
Firmware type..............dsPIC33F/24F/24H


The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x73ff
configuration memory

Programming...
Programming/Verify complete

PICkit 3 is now in Programmer to go mode. The next time you connect to this unit, you will have the choice to take it out of Programmer to go mode.
このようなメッセージが出てきます。
無事、プログラムの書き込みとベリファイが終了し、Programmer-To-Goモードになったということを示しています。
一方、PICkit3のほうを見るとACTIVEランプが点滅し、STATUSランプが緑色に点灯しています。これが成功の証です。

この後、PICkit3はパソコンから取り外し、モバイルバッテリー等の適当なUSB電源に接続してやります。
そうすると、全ランプが10秒くらい点灯した後に、STATUSランプが消え、ACTIVEランプが点滅し始めます。これが書き込みの準備ができたことを示す表示です。
そうしたら、PICkit3をPICに接続し、タクトスイッチを押すだけです。書き込み中はSTATUSランプがオレンジ色になります。書き込みが終了すると書き込まれたPICは動作をはじめ、PICkit3はACTIVEランプの点灯とSTATUSランプの緑色の点灯をして成功を示します。

これでバッチリですね。パソコンから遠いPICの書き込みもできました。

なお、もしも書き込みにエラーが発生するとACTIVEランプが消え、STATUSランプが特定のパターンで点滅をします。そのパターンからエラーを特定することができるそうですが、そのあたりはこのマニュアルにその説明を譲りします。


このProgrammer-To-Goという機能は実は昔から知っていましたが、使いどころがないだろうと思っていました。たいてい、組み込み機器の製作なんてトライアンドエラーですし、そういった観点からパソコンのすぐそこにそのデバイスを置いて作業しますもんね。
本来は、大量生産などで同じプログラムをたくさんのPICに書き込んだりするときに、そのプログラムを書き込んだPICkit3を手元に置き、流れ作業でどんどん書き込んでいくなどといった用途を想定しているようです。しかし、個人の趣味で大量生産などをするわけもなく、そのような用途では使わなかったわけです。

ですが、「パソコンから遠いところに設置した装置のプログラムを書き換える」ということで、ここでまた1つ、PICkit3の機能を使いこなすことができました。こういう使い方もできるんだなって。

0 件のコメント:

コメントを投稿