PIC

【考察】PICKIT4を使ってPICマイコンでLチカしてみる

PICマイコンでエフェクターを作ってみたいという思いから手を出してみました。

基本的に私はPIC関連の知識0の状態からスタートしているので、できたところまでを備忘録的に記事にしていきます。

では、早速Lチカ(LEDを点滅させること)のやり方を書いていきます。

 

 

 

①準備物

■PICKIT4

これでPICにプログラムを書き込むことができます。

他にもPICに書き込むツール(ライターツールとも言います)はいくつかあります。

私が調べた限りでは、PICKIT4の前身であるPICKIT3の記事が多いのですが結構古いものなので新しいPICKIT4を購入してみました。

価格はPICKIT3が5000円、PICKIT4が5700円です。

PICKIT4はPICKIT3との互換性があるようで、私が使用している中では問題が出ていません。

 

■ブレッドボード

電子回路を簡易的に作るためのものです。

 

■LED、抵抗

LEDは赤を1つ準備しました。

抵抗は1kΩ±5%を使います。

 

■PICマイコン

今回はPIC12F683を使用します。

 

■MPLAB X IDE

PICKIT4にてプログラムを書き込むためのソフトです。

こっちの記事にインストール方法を書いているので参考にしてください。

MPLAB X IDEのインストール、初期設定のまとめ

②ブレッドボードの配線

とりあえずこんな感じです。

 

PICの番号でいうと、7のGP0 に抵抗とLEDをつなげて8のVssに返しています。

PCIKIT4と12F683のピンアサインは以下の図の通りなのでそのまま繋げます。

〇PICKIT4ピンアサイン

〇12F683ピンアサイン

③プログラム

C言語で以下のように書いてみました。

LED点灯コード

#include <stdio.h>
#include <stdlib.h>
#include <xc.h>

#pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON // MCLR Pin Function Select bit (MCLR pin function is MCLR)
#pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = ON // Brown Out Detect (BOR enabled)
#pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)

#define _XTAL_FREQ 1000000

int main(void){
OSCCON = 0x40;
ANSEL = 0x00;
TRISIO = 0x00;

int i = 0;
GP0 = 0;

while(1){
if (i<5){
__delay_ms(1000);
GP0 = 0;
__delay_ms(1000);
GP0 = 1;
} else{
__delay_ms(100);
GP0 = 0;
__delay_ms(500);
GP0 = 1;
}
i++;
if(i == 10){
i = 0;
}

}

return (EXIT_SUCCESS);
}

私のプログラムスキルはVBとRuby on RalisとPythonがそれなりに使える程度なのでC言語はまったくわかりません!

Lチカを試しているブログは多数あったのでそれらを参考にしています。

このプログラムは1000msで5回点灯した後に500msで5回点灯に切り替わります。合計10回点灯したらまた1000msに戻ることを繰り返しています。

 

④点灯テスト

PICKIT4をUSBでPCに、ブレッドボードにPICKIT4を接続します。

入力方法は以下図の①をクリックした後、②をクリックするだけです。

①をクリックすると、コードを入力しているウィンドウの下のOutputのタブにBUILD SUCCESSFULと表示されます。もしエラーがある場合はコードがミスっているので修正してください。

②をクリックすると成功していれば【Programming/Verify complete】と表示されてLEDが点灯するはずです。

 

問題なく点灯しました。

⑤発生したトラブル

回路の作りやプログラムはものすごくシンプルなのですが、MPLABにてトラブルがあったのでここでまとめておきます。

 

①PICKIT4がMPLABに認識されない。

コードを入力した後、PICにコードを流すために【Make and Program Device main Project】をクリックします。

 

そうすると初めてPICKIT4を使う場合はPICKIT 4 not Foundというウィンドウが表示されます。

その時、本来であればPICKIT4のところにSN:~のように表示されるのですが、2枚目の図のように表示されない状態になりました。

〇表示されている。

〇表示されていない

 

この状態はPICKIT4がPCに接続されていない場合に発生します。ただ、私の場合はUSBでばっちり接続されているし、PC側もPICKIT4を認識しているのでMPLAB側が認識していない状態です。

この解決方法はとても単純で、MPLABを起動した後にPICKIT4を接続すると認識されました。先にPICKITを接続してたらなぜかだめなんですよねぇ。

 

②The configuration is set for the target board to supply its own power but no voltage has been detected on VDD. Please ensure you have your target powered up and try again.

Connection Failed.

これは【Make and Program Device main Project】をクリックした後にOutputタブに赤文字で表示されるエラー分です。

これが出るとLEDが光りません。

解決方法は調べればすぐに出てきたので載せます。

メニューバーのProduction → Set Project Configuration → Customizeで以下ウィンドウが表示されます。

CategoriesのPICKIT4をクリック、Option categoriesのリストでPowerを選択、チェックボックスにチェックを入れてVoltageLevelを5.0に設定します。

設定後OKをクリックします。

これで解決するはずです。

 

③ ②の解決方法でも同じエラーが出る。

私がLチカを始める際、友人の家ですでに作成されたコードと回路でPICKIT3を使って試してみたところはまりました。

ただ、このエラーはPICKIT3で発生したものでPICKIT4では再現できなかったんですよね。

この時の使用機材がMacBookProでUSB-cの拡張アダプターから接続していました。もしかしたら拡張アダプターがダメだったのかぁと今は思っています。

もともとPICKIT3を使う予定だったのですが、この問題を解決するためにPICKIT4を試しに買ってみたらなぜか解決してしまいました。

他に疑ったことはUSBの供給電圧やMac版MPLABのインストール方法・設定の違いと思って時間を使いましたが、すべて外れでした。

 

 

まとめ

ひとまずLチカができました。

最終目的はPICを組み込んでエフェクターを作ることなので、次はスイッチやリレーなどを使ってLEDを操作できるかを試します。

 

 

-PIC
-,

Copyright© かきざきの考察ブログ , 2020 All Rights Reserved Powered by AFFINGER5.