PICkit3を使ってMPLABからプログラムを焼く方法

前回MPLABを使ってプログラムを作成する方法を確認したので、今回は作成したプログラムを実際にPICへ焼いてみました。
今回の書き込みを行ったのはPIC16F84Aです。


PICへの書き込みにはライタが必要なので、まずは以下のハードを用意します。

用意する道具一覧


PICkit3


今回、ROMの書き込みにはPICkit3を使用しました(PICkit2でも書き込み可能です)。

楽天だと2021年7月現在、Debug Express付きのものが1万円ほどで販売されているようです。
プログラムの書き込みだけならDebug Expressは不要です。PICkit3単体だと4000円程度で入手できます。
マイクロチップ PICkit3 Debug Express DV164131

マイクロチップ PICkit3 Debug Express DV164131
価格:10,920円(税込、送料別)




ブレッドボード


PICの書き込みをするだけなら、以下のように小型で安価なものでも十分です。
小型のものだと400円程度から購入できます。
ブレッドボード(小型)

ブレッドボード(小型)
価格:400円(税込、送料別)


PICにセンサーなどを追加して色々遊んでみたい人は、以下のようにもう少し大き目のものがお勧めです。

大きいほうも持っているのですが、今回は小型のもので動作確認しました。

ブレッドボード用のジャンプワイヤ


ブレッドボードで使用する配線用のワイヤです。
大きめのブレッドボードを購入した場合は、ワイヤも同梱されていることも多いです。
B005AYV154
ブレッドボード用ジャンプワイヤセット



PICへの書き込み方法

まずはPCへPICkit3を差し込みます。接続には必ず付属の赤いUSBケーブルを使用してください。WindowsXPで確認しましたが、特にドライバのインストールは要求されずに認識されました。

デバイスマネージャのUSBヒューマンインターフェースとして、以下のようにPICkit3が認識されていればOKです。


次にMPLABを起動し、書き込みを行いたいプログラムのプロジェクトファイルを開きます。
メニューバーよりProgramer->Select Programmer->PICkit3を選択し、チェックを入れます。


すると、右下にConnectingというメッセージがしばらく表示されます。



この時、PMLABでデバッグを行っていた場合は以下のメッセージが出ます。


Debugger In Use
----------------
A programmer and a debugger cannot be loaded at the same time.
Do you want to unload the debugger and continue loading the 
programmer?


これは、プログラム(デバッグ)機能とPICへの書き込み機能が同時に使用できないという警告です。デバッグを終了して書き込みを行いたい為、OKをクリックします。


その後、OutputウィンドウにPICkit3タブが表示され、デバイスが検出されたというメッセージが表示されます


PICkit3 detected
Connecting to PICkit3... 
Running self test...
Self test completed
RS Version..... 01.08.22
AP Version..... 01.08.22



初回の使用時には、PICkit3とMPLABのバージョンによっては、ファームウェアをアップグレードを促すダイアログが表示されます。通常はファームをアップしないとしないと使用できないので、OKをクリックします。


ファームのダウンロードとアップデートが行われます。
しばらく時間が掛かるので待ちます。



ファームのアップデート後、再度PICkit3を刺しなおすと以下のようになります。
(今回のファームバージョンは01.27.15でした)


PICkit3 detected
Connecting to PICkit3... 
Running self test...
Self test completed
Firmware Suite Version .... 01.27.15
Firmware type ............. Midrange





次に、電圧設定に関する警告が表示されます。


Voltage Caution 
CAUTION: Check that the device selected in MPLAB IDE (PIC14F84A)
is the same one that is physically attached to the debug
tool. Selecting a 5V device when a 3.3V device is connected
can result in damage to the device when the debugger checks
the device ID.


MPLABで選択されたデバイスと同じものが取り付けられているか確認してください。
3.3V駆動のデバイスに対してプロジェクト作成時に5V駆動のデバイスを選択しているとデバイスにダメージを与える原因となります。

メッセージを確認後、問題なければOKをクリックします。




次に接続される側であるPIC側の回路をブレッドボードで組み,PICkitと接続します。
ドキュメントによると以下の接続を行う必要があります。


上記仕様を元に実際にブレッドボードで組んだ回路です。
使用するPICは、前述の通りPIC16F84Aです。
左下の外部に出ている線がPICkit3との接続線で、左側がpin1になります。


こちらはPICkit側です。▲のある側がpin1で、pin6は使用しません。


また、PICkit3は+5V電源の供給も行えるのですが、最初の動作確認は外部から電源を貰ったほうが確実です。



配線を行いPICが認識されると、Target Detectedのメッセージが表示されます。


Target Detected
Device ID Revision = 00000000






ここまで出来たら、次はいよいよプログラムの書き込みです。
メニューバーにPICkit3の操作用アイコンが追加されています。


アイコンは、左から順に以下の操作を行う事ができます。

Program            PICにプログラムを書き込みます
Read               PICからプログラムを読み出します
Verify             PICに正しくプログラムを書き込めたかチェックします
Erase Flash Device PICからプログラムを消去します
Blank Check All    PICのプログラムが空であるかチェックします
Release From Reset 
Hold In Reset      
Power On



今回は一番左のProgramをクリックします。



下記のメッセージが表示されれば書き込みは成功です。


Programming...
Programming/Verify complete




今回は、動作確認として以下のプログラムを書き込みました。

    LIST    P=16F84
    INCLUDE P16F84A.INC
    __CONFIG  _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
 
 
    ORG     0
    BSF     STATUS, RP0
    MOVLW   0xFF    ; PORTAを入力にする
    MOVWF   TRISA
    MOVLW   0x00    ; PORTBを出力にする
    MOVWF   TRISB
    BCF     STATUS, RP0
 
MAIN_LOOP
    ; RA2に入力が無ければPORTBを1,有れば0にする
    MOVLW   B'11111111'
    BTFSS   PORTA, 2
    MOVLW   B'00000000'
    MOVWF   PORTB
 
    GOTO    MAIN_LOOP



動作確認用のスイッチ、LED、オシレータを追加した回路はこちら。


スイッチを操作して、LEDのON/OFFがコントロールできれば動作確認は成功です。

4777516482
ブレッドボードによる電子回路実験 (I・O BOOKS)

関連記事

コメントを残す

メールアドレスが公開されることはありません。