PICプログラマに求められる機能とは
「PICマイコンとは」については先人たちがたくさん記事を書いているので、そこはすっ飛ばしていきます。なので、いきなりPICマイコンにプログラムを書き込むためのプログラマを考えていきましょう。でも、たいていは市販のキットや先人たちの公開している回路などを利用することが多いようですので、それらを利用する場合は考えなくてもいいところです。でも、対応しているPICマイコンの種類が限られていたり、PICプログラマを作るためにプログラム入りPICが必要だったり、シリアルポートやパラレルポート接続だったりしますので、勉強も兼ねてUSB接続のものを作ってみたいと思います。いや、USB接続のもあったりするみたいですけどね。
どうやったら、PICマイコンにプログラムを書き込むことができるのでしょうか。
PICマイコンのデータシートを読んでいきます。ちなみに最初に選んだのは、PIC16F628Aというチップ。喫煙ルーム友達でもあるPICの先輩が「あげるよ」と言って譲ってくれたので、というのが理由。秋月で1個200円で売ってるものです。それを教材にしてPICプログラムを作ります。これからの説明は、PIC16F628Aについてですので、他のデバイスだとちょっと違うかもしれません。
MICROCIHP社のPIC16F628Aのページから、データシートをダウンロードして読んでみます。アップデートによって章やページは変わるかもしれませんが、ちょうど今ダウンロードしたバージョンのドキュメントでは、14.11章にIn-Circuit Serial Programmingの項目がありました。2本のシリアル線(データ・クロック)と、電源5V、GND、プログラム電圧Vppで書き込めるようです。その次の14.12章には、Low-Voltage Programmingっていうのがあります。しかし、この資料には大したことは書いていません。“PIC16F627A/628A/648A EEPROM Memory Programming Specification”を読むように書いています。将来URLは変更されるかもしれませんが、その時は検索して手に入れましょう。
そっちを読んでいくと、Vppは12Vから14V、しかしLow-Voltage Programmingなら、4.5V~5.5VでOKのようです。これこれ。このLow-Voltage Programmingなら、与える電圧は5Vだけでよくて、13Vを作る必要がないんですね。5VだったらUSBポートから供給されているので、そのまま使うことができます。だったらこっちの方法を使いましょう。13Vの方も、実際の電圧は内部で作るのであって、外部から供給する13Vはそのための基準電圧にするようです。たくさん電流をひくわけでもないようですので、作れるのなら作ってもいいのかもしれません。もしかしたらこの低電圧プログラミングができないデバイスもあるかもしれませんけど、まぁこれで商売するわけじゃないので別に構いません。自分用のができればOKというスタンスです。
プログラムを書き込むのは、PICマイコンを「プログラム/ベリファイモード」というモードに設定する必要があります。そうしなければ、自分の持つプログラムで勝手に動作を始めてしまいます。
通常プログラミングと低電圧プログラミングでは、プログラム/ベリファイモードの設定方法に違いがあります。通常の方は資料を見ていただくとして、今回選んだ低電圧プログラミングについて見ていきましょう。
データ、クロックをLOWにして、VDD(5V)=ON、Thld0時間(5usec)以上経過後PGMをHIGH、TLVPP(5usec)時間以上経過後MCLRをHIGHにするとプログラム/ベリファイモードでチップが起動します。アクセスは、さらにTPPDP時間(5usec)以上経過後に行います。
データ・クロックの制御フォーマットはどうなっているのでしょうか。2.4.1章から各コマンドについて書いてあります。コマンド6ビット、データ16ビットのフォーマットで書き込みます。データ16ビットは不要なコマンドもあります。デーア16ビットのうち、実際に使うビットは真ん中14ビット。最初と最後を1ビットずつあけて、LSBファーストで送信します。コマンドは9種類。そのコマンドを、3.3章からのフローチャートを見ながら送信していけばいいでしょう。
コマンド類を見ているとちょっと気になりました。PC、プログラムカウンタのあるところにデータを書き込むような仕様です。PCをインクリメントするコマンドはありますが、デクリメントや指定の位置に変更するコマンドはありません。というわけで、PCを戻すにはリセットかける必要がありそうです。リセットピンなどもありませんので、もう一度このプログラム/ベリファイモードに入りなおしてパワーオンリセットするしかなさそうです。というわけで、電源のオン・オフ機能も必要のようです。
PICプログラマの必要要件が概ね見えてきました。次回は、ハードウェアについて検討していきましょう。
PIC関係はこのブログから引っ越すことにしました。→PICのページ
コメント
ちんぷんかんぷん・・・
:smile: