たびたびお世話になっている秋月電子さん。昨日、秋月電子でPIC kit4を購入しました。
PIC kit4は2018年3月1日に発売されました。秋月電子で取り扱い開始日が2018年5月15日だそうです(秋月電子HPより)。
ちなみにPIC kit3が¥5,000であったに対し、PIC kit4は¥5,700でした(税込み)。差額がたったの¥700でした(2019年3月現在)。でもこれだけの差額しかないなら、新しい方を買おうと即決しました。というわけで、PIC kit4をさっそく使ってみた感じをご紹介します。
パッケージは黒主体の少しかっこいい感じになっているのでとても素敵です。持ってみるとよく分かるのですが、とても軽いです(笑)。PICkit4の正式名称は、”MPLAB PICkit4 In-Circuit Debagger”といいます。

そして、中身を空けてみるとこんな感じでした。

内容は以下です。
- PIC kit4本体
- USB-microBケーブル(約2m)
- 使い道がいまいち分からないロゴシール
PIC kitとは何か
Microchip Technology社のPIC(peripheral Interface Controller)ライターの一つです。比較的安価で初心者向けのPICライターです。ちなみにPICライターは、PIC kitだけでなく他にMicrochip Technology社以外の企業からも販売されています。
※PICはMicrochip Technology社のマイコン製品群の総称です。
PICライターとは?
PIC内部のEEPROMにプラグラムを記憶させせるためのプログラム書き込み機器のことです。PICはワンチップのマイクロコントローラで、PICだけではプログラムを書き込めません。PCと物理的に通信するためのインターフェースを担うのがPICライターです。ArduinoやRaspberry Piを使っている人からしたら、PICライターをわざわざ用意しないといけないのは抵抗があるかもしれないですね。
実際にユーザーがプログラムを書くときは、何らかのソフトウェアを使います。多くの人はMPLAB X IDE(無料)というMicrochip Technology社の統合開発環境を使っているかと思います。
基本的にこういうマイコンは、USB(Universal Serial Bus)を使ったシリアル通信を出来ません。USBはシリアル通信規格の中でも、ハイスペックである一方で、実装には複雑でコストがかかるので、低コスト向けのマイコンには採用されていません。なのでUSB以外のシリアル通信用規格を使うのですが、PCと通信するには変換が必要となります。PIC kitはこういうところも一緒にやってくれているのですね(USBとPIC kitはUSBで接続します)。
早速、手持ちにあったPIC16F1823でLチカをやってみたのですが、その前にPICとPIC kit4のピン対応表の紹介します。
PIC と PIC kit4の接続法
PIC kit4を真上から見てみると、MICROCHIPと書かれたすぐ右下に、下向きの三角形が印字されています。この位置がピン番号で言うところの1番になります。PIC kit4は1番から8番ピンまであります。そしてPIC kit4のピン名称とPICへの配線先は以下のようになります。

上の画像は、PIC kit4の各ピンに対するPIC16F1823 の接続先を書いてありますが、ピンの名称はどのPICでも同じです。したがって、もし違う型番のPICを使っていても、データシートから各機能が、どのピンに対応しているかを見れば、簡単にPIC kit4とつなげられます。
PIC16F1823でLチカしてみた!
というわけで、PIC kit4をつかって、LEDを点滅してみました。PIC kit4自体を使うのはこれが初めてです。Lチカなので、大したことはありません。PICとPIC kit4を上述のように接続して、プログラム書いて、あとはPICとLEDと抑制抵抗をつなげれば、ひとまず容易なLED点滅回路の完成というわけです。
PICkit4はPCと接続すると、下の画像にように光ります。
こんな感じです。

PIC kit4にある赤い○が一番ピンの目印です。
参考程度に、LEDが1秒毎に点滅するプログラムはこちらです。LEDと抵抗はPICの11番ピン(RA2)に接続しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
// CONFIG1 #pragma config FOSC = INTOSC // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin) #pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled) #pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled) #pragma config MCLRE = OFF // MCLR Pin Function Select (MCLR/VPP pin function is digital input) #pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled) #pragma config CPD = OFF // Data Memory Code Protection (Data memory code protection is disabled) #pragma config BOREN = OFF // Brown-out Reset Enable (Brown-out Reset disabled) #pragma config CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin) #pragma config IESO = OFF // Internal/External Switchover (Internal/External Switchover mode is disabled) #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disabled) // CONFIG2 #pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off) #pragma config PLLEN = OFF // PLL Enable (4x PLL disabled) #pragma config STVREN = OFF // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will not cause a Reset) #pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.) #pragma config LVP = OFF // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming) // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. #include <xc.h> #define _XTAL_FREQ 31000 void main (void){ OSCCON = 0x00;//31KHz TRISA = 0x00; TRISC = 0x00; PORTA = 0x00; PORTC = 0x00; while(1){ RA2 = 1; __delay_ms(100); RA2 = 0; __delay_ms(100); } return ; } |
以上で完了です。
最後まで読んでいただきありがとうございました。