閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)

*純正:PICkit2 4,000円 [#gd356f64]

|&attachref(P1010553.JPG,zoom,150x150,button){新しい写真添付};|&attachref(PICkit2本体.JPG,zoom,150x150,button){新しい写真添付};|&attachref(P1010551.JPG,zoom,150x150,button){新しい写真添付};|

USB接続で利用する純正のPICプログラム ライタ「PICkit2 Debug Express」(赤ボタン)
です。 07/10/06

【目次】(項目をクリックすると、そこへ飛べます)
#contents
~
↓PICkit2 デバイス サポートリスト
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813

【使った感想】 08/08/30
●書込み速度が非常に速い
●ICD(インサーキット デバッグ)機能が非常に便利
●ロジアナ機能を重宝している

PICkit2が秋月電商で08/08/29から販売が開始された模様です。 08/08/30
本体($35):4,000円
http://akizukidenshi.com/catalog/items2.php?p=1&q="M-02508"
本体+テストボード($50):5,800円
http://akizukidenshi.com/catalog/items2.php?p=1&q="M-02514"

オンラインデバッグ機能が魅力で、USB接続 小型 外部電源不要でIDE(統合開発環境)から
操作出来る場合が多いです。価格は50ドル(米)(=6,000円 =$50×120円) 07/10/06


&color(crimson){マイクロチップ社の通販サイトオープン記念で、07/9/25-11/30の期間キャンペーンで};
&color(crimson){80%offの「10ドル」で購入できお得です。(先着1000名まで)};
マイクロシティ(http://www.bandhk.com/microcity/)のDiscount Storeで「割引クーポン」
を入手し、通販サイト(http://www.microchipdirect.com/)で
「DV164121 - PICkit 2 Debug Express」を購入(同じ様な商品が多いので間違えぬ様)

「割引クーポン」は最後の方で入力メッセージが出てきます。
メッセージが日本語なので安心して購入出来ました。(さすがに住所氏名はローマ字入力)

ただし、アメリカからの宅配便手数料15ドルと手数料5ドルと関税0.5ドルが加算されます。
それでも$10+$15+$5+$0.5=$30.5(=3,660円(=$30.5*120円))でお得です。

注文して6日後にFedEx宅急便で商品が届きました。


~
★この情報は役に立ちましたか?
#vote(はい[10],普通[0],いいえ[4])

#comment

*インサーキット デバッグ機能 [#vb988109]

&attachref(P1010557.JPG,zoom,150x150,button){新しい写真添付};

PICkit2の特徴のひとつである「インサーキット デバッグ機能」を早速使ってみた。
素晴らしい。実際のアナログ入力値を見ながらデバッグ出来る。
センサーからの入力信号が多いPICのプログラムのデバッグをパソコン上のシミュレータ
で行うのは、手間が掛かると共に、結局はデバッグする事が出来ないと言う結果に終わる
事が多かった。
この「インサーキット デバッグ機能」は、「PICプログラムのデバッグに利用してみ
よう。」という気を起こさせてくれる。期待大の機能である。

「PICkit2 Debug Express」(赤ボタン)には、16F887のデモボードとインサーキット デ
バッグ操作を習得する為のチュートリアル用プログラムが付いてくる。
16F887のデモボードはPICとLEDが8個、半固定抵抗1つ、タクトスイッチ1つが付いて
いる。また、インサーキット デバッグのチュートリアル用プログラムには、あらかじめ
バグが仕込んであるプログラムが用意してある。ユーザーズガイドでは、このプログラ
ムを用い「インサーキット デバッグ機能」でバグを発見し、修正する方法を示してくれ
ている。
PICkit2 ユーザーズガイドは日本語版が公開されている。
↓「インサーキット デバッグ機能」の操作法説明はp.29〜45
http://www.bandhk.com/microcity/DS51553C_JP_PICKIT2.pdf

07/10/14

~
★この情報は役に立ちましたか?
#vote(はい[3],普通[1],いいえ[0])

#comment

*C言語でインサーキットデバッグ(HI-TECH C PRO(Lite mode)) [#ac04e3ec]

|&attachref(PICkit2テストボード.jpg,zoom,150x150,button){新しい写真添付};|&attachref(HI-TECH C PRO ICD画面.JPG,zoom,150x150,button){新しい写真添付};|

C言語でICD(インサーキットデバッグ)が出来るのは非常に便利であり、
プログラムの開発効率が非常に向上する。 08/08/30

例題として、A/D変換値やスイッチ入力の状態をLEDに表示するC言語のプログラムを
PICkit2付属のテストボード用(16F887)に作り、C言語でのICD(インサーキットデバ
ッグ)の使用感を確認した。

結果は、非常に魅力ある、非常に使いやすい機能であった。

実際に動いているPICのレジスタの内容がwatchウインドウで確認出来る。
A/D変換された値がどのようにADRESH, ADRESLに格納されたかとか、
PORTBに接続したスイッチがONかOFFかも目で確認できる。

※HI-TECH C PRO PIC10/12/16 MCU Family(Lite mode)は、PIC12, PIC16用の
無料で利用できるCコンパイラです。 
http://microchip.htsoft.com/products/compilers/piccpro-modes.php


 //PIC16F887 MPLAB 8.10 HI-TECH C PRO(Lite mode) v9.60
 //AN0(RA0):半固定抵抗 RB0:スイッチ RD<7:0> LED 8個
 #include <htc.h>
 __CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT 
 & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS & DEBUGEN);
 __CONFIG(BORV21);
 
 //A2D変換(10bit仕様)
 //添付のsamplesフォルダ中のa2demo.cを参考にアレンジ
 unsigned int
 read_a2d_ch16(unsigned char channel)
 {
     channel &= 0b00001111; //truncate channel to 4 bits
     ADCON0 &= 0b11000011; //clear current channel select
     ADCON0 |= (channel << 2); //apply the new channel select
     GODONE = 1; // initiate conversion on the selected channel
     while (GODONE) continue;
     
     return (ADRESH << 8) | ADRESL;
 }
 
 void main(void)
 {
     //使用変数の定義
     unsigned int x; //A/D値(10bit)を受ける
 
     //PICの初期化
     TRISA = 0b00000001; //RA0は1:入力、他は0:出力設定
     TRISB = 0b00000001; //RB0は1:入力、他は0:出力設定
     TRISD = 0b00000000; //PORTDを全て0:出力設定
     ANSEL = 0b00000001; //AN0をアナログ、AN7-1ピンはデジタルで使用
     ANSELH = 0b00000000; //AN13-8ピンはデジタルで使用
 
     //A2D変換開始
     ADCON0 = 0b01000001; //ADCS Fosc/8 & ADON
     ADCON1 = 0b10000000; // select right justify result. A/D port configuration 0
 
     while (1)
     {
         if (RB0 == 1) //switch up
         {
             x = read_a2d_ch16(0); //sample the analog value on AN0(RA0)
             PORTD = (char)(x >> 2); //Use the 2 MS Bits of the result to select the bit position of the LED on PORTD
         }
         else //switch down
         {
             PORTD = 0b11111111; //LED 8個全て点灯
         }
     }
 }

~
★この情報は役に立ちましたか?
#vote(はい[1],普通[0],いいえ[0])

#comment

*ブレッドボード用ICSPケーブルの自作 [#sc76ae06]

|&attachref(P1020043.JPG,zoom,150x150,button){新しい写真添付};|&attachref(P1020042.JPG,zoom,150x150,button){新しい写真添付};|

ブレッドボードでPICkit2のICSP(In Circuit Serial Programming)、ICD(In Circuit Debug)
の機能を利用する目的で、28ピンPIC用のICSPケーブルを自作した。 08/09/01

ICSPの接続の仕方は、PICkit2ユーザーズガイド 26ページに掲載されている。
&attachref(ICSP接続回路.JPG,zoom,150x150,button){新しい写真添付};
ケーブルには不要となったUSBケーブルを廃物利用した。(デジカメ、プリンタに付属し
ていた不用品となった物)
4芯とアースでちょうど5線入っている。ソケット半田付け部はホットボンドで補強した。
ケーブルの長さは20cm以下にするのが安定した通信を確保するのに良いとされている。
~
★この情報は役に立ちましたか?
#vote(はい[0],普通[0],いいえ[0])

#comment

*ゼロプレッシャ ソケットの自作 [#w96c1225]

&attachref(P1020044.JPG,zoom,150x150,button){新しい写真添付};

写真の通り、PICkit2用の28ピンPIC用のゼロプレッシャ ソケットを自作した。 08/09/01
しかし、上記のブレッドボード用ICSPケーブルがとても便利なため、このゼロプレッシャ
ソケットはほとんど利用していないのが実情である。
~
★この情報は役に立ちましたか?
#vote(はい[0],普通[0],いいえ[0])

#comment

*ロジアナ機能を使ってみた [#i737312e]

|&attachref(ロジアナ回路.jpg,zoom,150x150,button){新しい写真添付};|&attachref(ロジアナ38KHz.jpg,zoom,150x150,button){新しい写真添付};|&attachref(ロジアナ300us.jpg,zoom,150x150,button){新しい写真添付};|

PICkit2に付いているロジックアナライザ(ロジアナ)機能を使ってみました。
高速信号を扱うプログラムが正しく機能しているかを目で確認するのに非常に便利です。
08/08/30

↓PICkit2ロジアナ機能の操作方法マニュアル
http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit%202%20Logic%20Tool%20User%20Guide.pdf

赤外線通信用にPICのPWM機能を利用した赤外LEDを38KHz点灯のプログラムを書いて、
検証してみました。

 【操作法Tips】
 ●信号間隔の測定法
 マウスの左クリックでXカーソル設定、右クリックでYカーソルを設定すると
 Y−Xの時間と周波数が画面に表示されます。 

PICkit2のロジアナて見て測定してみると、38.46KHzでバースト点灯しているのが確認出 
来ました。(写真2) 
Delay_us()関数で点灯・消灯を300μ秒にするプログラムを書いたのですが、実測する 
と440μ秒位になっているのが確認できました。(写真3) 

 //赤外線通信 38KHzバースト点灯
 //言語:MikroC v8.1.0 
 //PWMの初期化と起動 
 PWM1_Init(38000); //PWM1の初期化 (38KHz周期指定) 
 PWM1_Start(); //PWM1機能スタート 
 
 PORTC.F3 = 1; //パイロットランプLED ON 
 
 while (1) 
 { 
   PWM1_Change_Duty(127); //PWM1のDuty50%に設定 
   Delay_us(300); //300μ秒待つ 
   PWM1_Change_Duty(0); //PWM1のDuty変更 
   Delay_us(300); //300μ秒待つ 
 }

~
★この情報は役に立ちましたか?
#vote(はい[0],普通[0],いいえ[0])

#comment