ターゲットは秋月で買ったPIC12F1840です。ライターも今回買いました。 いわゆる互換品です。まじ激安。 pickit4が純正の最新で、純正のpickit3はもはや手に入らないようです。
では、MPLABとXC8コンパイラをインストールします。 MPLABをインストールして間髪入れずにXC8コンパイラをインストールするとBuildToolにXC8の設定を入れても認識してくれませんでした。 MPLABを入れて、起動して、exampleをコンパイルしようとして、エラーを出させた後、XC8コンパイラを入れて、「tools」「options」で、
まぁ、環境によりますが、こんな感じで。
で、pickit3を挿してデバイスドライバのインストールまで完了させておきます(挿せば勝手にやってくれます、ハイ)。
では、Lチカまでやってみます。
「File」「New Project ...」で、
「Standalone Project」で「Next >」
「Device」のドロップダウンがとても選びにくいので、直打ちです。「Tool」はpickit3を選びます。で、「Next >」
よくわからないのですが、「OPTIONAL」らしいので、このまま「Next >」
「コンパイラを選べコラ」と赤い字で書いてあるので「XC8」を選んで「Next >」
プロジェクト名やらフォルダやらを適当に設定して、「Finish」
で、こうなる。
「Production」「Set Configuration Bits」とつつく。
こうなる。で、てきとうにやる、、、オシレータは内蔵。PLLなし。MCLRをMCLRとして使わないと、後で面倒なことを聞いてくるので、ここはON、、、で、結局、、、
これで、良いのでしょうか、、、初心者なのでわかりません。まぁ、これで行ってみます。で、「Generate Source Code to Output」を押す。
こんなのが出ます。全体を選択してコピーします。
で、main.cに貼り付け♡と思ったら、main.cは作ってくれてません。ので作ります。
ファイル名を「newmain」から適当に変えて「Finish」
で、こうなるので、さっきのやつを貼り付ける#include <xc.h>はすでに書かれているので、そこは空気を読む。
こうなります。で、クロックの設定を調べます。
設定が必要そうなのはOSCCONのようです。
まぁ、読めばわかる。で、次はポートです。Lチカですから。
親切にこういうのがあります。PORTA, LATA, ANSELA, TRISAを設定すれば良さそうです。PORTAは入力用っぽいのでLチカには不要だと思いますが、
こういう文言で惑わされます、、、PORTAに書いても同じってこと?
ていうか、この英語、どう解釈すべきかいまいちわからない、、、困ったときのgoogle先生
「PORTAへの書き込みは、実際には対応するLATAレジスタに書き込まれます。」やはりそういうことらしい。ということで、LATAの存在は忘れることにします。
で、結局こんな感じで。
#include <xc.h>
#define _XTAL_FREQ 8000000
void setup(void){
OSCCON = (0b01110000);// 8MHz
ANSELA = (0b00000000);// set all pin as digital
TRISA &= ~(0b00100000);// set RA5 as output
PORTA &= ~(0b00100000);// output Low on RA5
}
void loop(void){
PORTA |= (0b00100000);
__delay_ms(200);
PORTA &=~(0b00100000);
__delay_ms(200);
}
void main(void) {
setup();
while(1){
loop();
}
return;
}
で、左側のプロジェクトツリーのstudy1を右クリックして、「Build」
下のほうの、Outputになんじゃかんじゃあるけど「BUILD SUCCESSFUL」とあるのでOKなんだろう。
では結線です。
で、データシートより
です。その通りにつなげばよい。、、、はず。
で、こうなります。秋月の「FT231X USBシリアル変換モジュール」はUSBから5Vをとるためだけにつなげています。
では書き込もう。RUNを押す。
そして怒られる。
上のほうはブツはあってるか?ということかな?
下のほうはLowVoltage書き込みをしたいのならそういう設定をしたほうが良いよ(でもデバッグの時はLowVoltage書き込みはできないけどね)、、、ってことかな?ということで言われたとおりにしてみます。
左上のプロジェクトツリーのプロジェクト名(今回はstudy1)を右クリックして、「Properties」を押す。
でできたダイアログで、ここを押す。
で、これを選ぶ。
で、これにチェックを入れる。
で「Apply」「OK」
で、ふたたび、RUNを押すと今度は怒られずに、したのほうに
*****************************************************
Connecting to MPLAB PICkit 3...
Currently loaded firmware on PICkit 3
Firmware Suite Version.....01.56.07
Firmware type..............Enhanced Midrange
Target voltage detected
Target device PIC12F1840 found.
Device Revision ID = 5
Device Erased...
Programming...
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x7ff
configuration memory
Programming/Verify complete
というのが出るので、書き込めたってことだろう。
ものを見ると、
まぁ、いけてるようです。
にしても、AVRマイコンのほうが、ATMELのAVR Studioやら、Arduinoやら良いツールがあって圧倒的に使いやすいわ、、、AVRISPMKIIも互換品がお安く手に入るようだし(うちにあるのは純正です)。、、、ていうかArduinoがあればそれすらも要らない、、、PICマイコンを選択する理由は全く無い。でもATMELはMICROCHIPに買収されたんだよねー。わからんわ半導体の世界。
コメントをお書きください