PIC USB framework ダウンロード先
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784
Microchip Libraries of Applications v2012-08-22 Windowsをダウンロード
インストール後のHID bootloaderはここ
C:\Microchip Solutions v2012-08-22\USB\Device - Bootloaders\HID\Firmware - PIC18 Non-J
PICのCコンパイラ
フリーで使いたいとすると、XC8が使いたい所。
こちらで色々紹介されています。
http://homepage3.nifty.com/mitt/pic/xc8/xc8_ix.html
ただ、今年出たばかりでサンプルソースが中々見つからない。IDEもいい感じだけど。
ソースが多そうなPICC LITEでしばらくやってみます。
XC8に統合されてそのままでは入手できないみたいだけど、うまいこと入手できました。
http://d.hatena.ne.jp/garyo/20121021/p4
待ちは
__delay_us(150); __delay_ms(150);
で出来そうだけど、これが標準ライブラリなのかどうかイマイチわからない所。
Hitech C
Hitech Cでサンプルソース
http://sky.geocities.jp/home_iwamoto/picc_02.htm
http://physics.cocolog-nifty.com/weblog/2012/07/post-9765.html
Hitech Cでのコンフィグの説明
http://sky.geocities.jp/home_iwamoto/picc_03.htm
バージョンによってコンフィグの表記が変わるとか。
http://homepage3.nifty.com/mitt/pic/picc/piccix.html
C:\Program Files\HI-TECH Software\PICC\9.83\include
のヘッダーファイル調べてみたら
pic.hで__config()マクロが定義してあって定数はpic16f84a.hで定義してあった。
pic16f84aでつかうのはこれ
// Config Register: CONFIG #define CONFIG 0x2007 // Oscillator Selection bits // RC oscillator #define FOSC_EXTRC 0xFFFF // HS oscillator #define FOSC_HS 0xFFFE // XT oscillator #define FOSC_XT 0xFFFD // LP oscillator #define FOSC_LP 0xFFFC // Watchdog Timer // WDT enabled #define WDTE_ON 0xFFFF // WDT disabled #define WDTE_OFF 0xFFFB // Power-up Timer Enable bit // Power-up Timer is disabled #define PWRTE_OFF 0xFFFF // Power-up Timer is enabled #define PWRTE_ON 0xFFF7 // Code Protection bit // Code protection disabled #define CP_OFF 0xFFFF // All program memory is code protected #define CP_ON 0xC00F
セラロックを使用したいので「FOSC_HS」を使用
http://www.picfun.com/pic20.html
Watchdogは使わないので「WDTE_OFF」
コードプロテクトもしないので「CP_OFF」
Power-up Timerは使うので「PWRTE_ON」
以下の設定になった
#include "pic.h" __CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & CP_OFF);
pic16f84aで組んでみたソースがこれ。ポートを2本モニターして他のポートを動かしリレーを制御する。標準ロジックでも組めるけど。
/***************************************************************** xx-xxx xxxxxxx 電流切替回路 xxxxxxx 追加回路用 DATE VER NAME COMMENT 2012/10/22 V0.00 XXXXXX 新規作成 *****************************************************************/ #include "pic.h" __CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & CP_OFF); int main(void) { unsigned char a; PORTB = 0; TRISB=0b00000011; // PORTB IO 0,1BITを入力、他をを出力に設定 while(1) { a = PORTB & 0b00000011; switch(a){ case 0: //Relay ALL OFF PORTB = 0b00000000; break; case 1: //RB4:1 RB5:0 RB6:0 PORTB = 0b00010000; break; case 2: //RB4:1 RB5:1 RB6:0 PORTB = 0b00110000; break; case 3: //RB4:0 RB5:0 RB6:1 PORTB = 0b01000000; break; } } }
PICC Lite 入手先
ネット上ではPICC Liteで書いたソースが多いので
こちらのサイトを参考に
http://homepage3.nifty.com/mitt/pic/picc/piccix.html
以下から「HI-TECH C Compiler for PIC10/12/16 MCUs (PRO/Standard/LITE) Update v9.83」を入手
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en542849
こちらのサイトを参考にPIC12F683でブレッドボードでLEDの点滅に成功
http://motuelectro.blog.fc2.com/blog-entry-15.html
MPLAB X IDEでPIC Kit3に給電する設定方法
PIC Kit3を使うときにPIC Kit3からマイコンに給電しないと動かない。以下のエラーメッセージが出る。
Target device was not found. You must connect to a target device to use PICkit 3.
この時の対処方法は以下の通り。
MPLAB X IDEはMPLAB IDEより改良されているようだが、メニューの項目が全然変わっているのでむつかしい。
MPLAB X IDEでPIC Kit3からの給電をONにするためには
プロジェクトを開いた状態で「RUN」-「Set Project Configuration」を「customize」にして
左側の「Categories」の「Pickit 3」をクリック
「Option categories」の「Power」を選択
「Power target circuit from PICkit3」にチェックを入れ「OK」をクリック。
これで動くようになります。
PIC Kit3を使ってみた
PICkit3デバッグエクスプレス
http://akizukidenshi.com/catalog/g/gM-03480/
実験用基板(PIC18F45K20−I/PT搭載)付き
PIC Kit3のみ
http://akizukidenshi.com/catalog/g/gM-03608/
PIC Kit3のみの方が安いけど、最初は実験用基板付きのPICkit3デバッグエクスプレスが楽しいと思います。
PCとUSBケーブルで接続してPICマイコンから6本の線を引き出してピンヘッダーをつけるだけでオンボードでPICの書き込みができるのですごく便利。
色々試してみてやっと動くようになりました。
開発環境は
http://www.microchip.com/pagehandler/en-us/family/mplabx/#downloads
こちらから
MPLAB® X IDE v1.41 と
MPLAB® XC8 Compiler v1.10 をダウンロード
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
こちらから
MPLAB IDE v8.88 をダウンロード
XC8はマイクロチップ・テクノロジ社が2012年4月に提供開始した、8ビットPIC向けCコンパイラとのこと。
HI-TECH C (PICC/PICC18)の後継コンパイラでPIC10/PIC12/PIC16/PIC18に対応している。
PIC16までと比べてPIC18はプログラムメモリにバングがなくなってリニアになって使いやすいみたい。
PIC Kit3に付属のボードもPIC18F45K20でPIC18系。PIC18系にはUSBに直結できるPIC18F14K50−I/P
http://akizukidenshi.com/catalog/g/gI-03031/
もあって人気のようだ。170円と安いし。
PICの流れとしてはPIC10-PIC16までのアーキテクチャとC言語を意識してかなり使いやすくなったPIC18,DSP内蔵のdsPicとその技術を応用したPIC24(かなり高速・高機能)があるみたいだ。
PIC10には35円で買えるPIC10F200−I/Pもあるので、用途に応じて使い分けると良さそう。
http://akizukidenshi.com/catalog/g/gI-02103/
PICの大体の流れはこの記事がわかりやすかった。
http://www.mal.jp/open/information/info_dspic_introduction.html
PICkit3デバッグエクスプレス付属の実験用基板の動かし方は以下の通りです。
PICkit3デバッグエクスプレス付属のCDの D:\Manuals\PICkit 3 Debug Express Lessons.zipにサンプルプログラムが入っています。
これをCドライブにコピーして解凍します。例 C:\project\pic\PICkit 3 Debug Express Lessons
適当なフォルダを作り(例 C:\project\pic\hello),C:\project\pic\PICkit 3 Debug Express Lessonsのフォルダから「01 Hello LED.c」をコピーして入れます。
1.まずMPLAB IDEを起動します。
2.「Project」-「Project wizard」をクリック
3.「次へ」をクリック
4.Deviceで「PIC18F45K20」を選択し「次へ」をクリック
5.「次へ」をクリック
6.Create New Project Fileで「Browse」をクリックして
「C:\project\pic\hello」のフォルダを選択して「ファイル名」に何か入れて(例 hello)「保存」をクリック
7.「次へ」をクリック
8.「01 Hello LED.c」を選択して「Add>>」をクリック
9.「次へ」をクリック
10.「完了」をクリック
11.「Project」-「Build」をクリック
********** Build successful! **********
と表示されるとOK。
PICkit3デバッグエクスプレス付属のデバッグ基板とPICkit3を接続し、PICkit3とPCをUSBで接続します。
1.「Programmer」-「select programmer」-「6.PICKIT 3」を選択。
2.「OK」をクリック
3.この時
PK3Err0045: You must connect to a target device to use PICkit
3.
とエラーが出るので、「Programmer」-「settings」をクリック
4.「Power」タブをクリックし「Power target circuit from PICkit3」にチェックを入れ「OK」をクリック
5.「OK」をクリック
6.「Programmer」-「program」をクリック
Programming...
Programming/Verify complete
と表示して、デバッグ基板の左端のLEDが一つだけ点灯すればOK
他のサンプルソースもヘッダーファイル(拡張子が.h)の最後に#endifが無いとか何か修正しないと動かないので注意。