2009/02/23

PIC16F819、PIC12F629で遊んでみる

組み込み用途としてはAKI-H8みたいな方が便利そうだけれど、転職して回路図をみる機会もでてきたので、電子回路の勉強がてら秋月からPICマイコンを買ってみました。 とりあえず準備した環境は、こんな感じです。

  • OS: Windows Vista SP1 32bit版 (Inspiron 640m)
  • Software:
    • PICkit 2 Programmer v2.60
    • MPLAB IDE v8.20
    • HI-TECH C Lite v9.60PL5

選んだのは18ピンの"PIC16F819"と8ピンの"PIC12F629"の2種類とMICROCHIP製の純正ライターの"PICkit2"。 値段と機能は比較しましたが、それほどちゃんとした基準で選んだわけではないです。

書き込み用のライター機能だけを持つ基板を作成しました。 いちいちプログラムを修正するためにPICをつけかえる事は避けたいですが、ブレッドボード上にピンヘッダをつけたところ、PICkit2との接触が悪いらしく書き込み時にVerifyできない旨のエラーが表示されてしまいました。
そこで最終的にガラスエポキシ基板にICソケットやらライター機能用の結線だけ半田付けをして、PICkit2と接続して使っています。

PICの勉強を一人でやるとはいっても情報を公開している方が大勢いますが、問題もやっぱりあって、IOポートにLEDを接続して光らせるだけでもうまくいかない場合がありました。

"PIC12F629"は3番目のIOポートが入力専用だっていう点と、他のポートから信号を出力させるために"CMCON"レジスタの下位3ビットを立てた上で、"TRISIO"を0で初期化すること。

#include  <htc.h>
__CONFIG(UNPROTECT & BORDIS & MCLRDIS & PWRTDIS & WDTDIS & INTIO);
void  init(void) {
        CMCON = 0b00000111; // 0x07;
        TRISIO  = 0b00000000;
}
void  main(void) {
        init();
        _delay(100);

この他にもC言語(PICC)でプログラムを書いてみましたが、内部クロックで動作させるためにINTIOをセットするとか、外部クロックで動作させるときに、どんなオプションが設定できるかわからず、結局インクルードファイルを直接みてコメントを読んで理解しました。 情報の探し方がわかればいいけれど、PICチップ自体の仕様とC言語からどうやって操作するかはHI-TECH社の作り方との組み合せなので、「PICもC言語も始めてです」、っていう場合には混乱しそうです。
とりあえずPICのDataSheetと、HI-TECH社のPICCのインクルードファイルを比較しながら手探りで進めて行こうとしています。

HI-TECH PICCのQuickstart guideにもサンプルコードが載っていますが、ターゲットのPICによって__CONFIGの後ろとかTRISIOの名前が違ったり、ポート名違ってコンパイルできず最初は困りました。
Cygwinを使って"C:\Program Files\HI-TECH Software\PICC\PRO\9.60\include"の下にあるヘッダファイルにgrepしながら、なんとか進んでいます。 "12F629"のヘッダファイルは、コメントが豊富で良かったですが、"16F819"のは不親切な感じです。いろいろみてみなければ…。

0 件のコメント: