PICkit4購入

Pickit3を使っていると、デバッグ時のブレークポイントが意図したところで止まらなかったり、Step Outできないとか色々気になるところがあった。どうもハードウェアブレークポイントというものらしく、きめ細かい位置には設定できないらしいです。MPLABXではUnlimited BP (S/W)と呼ばれており、MPLABXの左下のDashboardを見ると、Pickit3選択時だとNot Supportになっているはず。

一方、プログラムのステップ単位で指定できるいつものやつは、ソフトウェアブレークポイントと呼ばれているみたいです。ソフトウェアブレークポイントは、従来だとICD3などの上位機種のみサポートなので、「高価だし、仕方がないね」と諦めてましたけど、どうもPickit4だとこのソフトウェアブレークポイントをサポートしているらしい。ということで衝動買いしてしまいました。

pickit4-001

箱の中は、本体とケーブルとシール以上。マニュアルなどは今風なのか入ってないです。
以下にあるので、DLしろということです。

MPLAB® PICkitTM 4インサーキット デバッガ クイックスタート ガイド

PICkit4のパンフレット

MPLAB® PICkit™ 4 In-Circuit Debugger User’s Guide

pickit4-002-1

USBインタフェースは、MiniからMicroに変わりました。通信速度が速くなったらしいですが、そもそも書き込みに時間かかるので、体感的には大差ないでしょう。

pickit4-003

インジケータは、モダンな感じです。が、前のほうが分かりやすい気もします。まぁわざわざLEDの色みて判断しないので、シンプルで良いかもしれないです。

pickit4-004

接続すると、ドライバのインストールなしに認識しました。おそらくMPLABXインストール時に入っていたのでしょう。古いMPLABXを使っている場合は、アップデートが必要になるかもしれないです。

pickit4-005

早速、PIC24FJ64GB002を使って、タイマー1で0.5s毎にLEDを点滅させるプログラムを作成して、書き込んでみます。

給電したいので、PICkitの設定を開いて設定します。このあたりはPICkit3と同じです。給電できる電圧のバリエーションが増えている気もします。供給できる電力もパワーアップされているらしいです。

pickit4-006

一番気になっていた、ソフトウェアブレークポイントをONしてみます。

pickit4-007

設定を反映すると、Dashboardでも**Unlimited BP (S/W)**がEnableになっています。

pickit4-008

PIC側とのコネクタは、2本増えて合計8ピンになってますが、まだファームウェアが完成してないらしく、今は動作しないらしいです。今後に期待です。矢印のついたピンが1ピンでそこから6ピンまではPICkit3と同じで互換性があります

pickit4-009

MPLABXから書き込んだときのログです。初回はファームウェアをDLしてインストールしていた気がします。ちょっとだけ時間かかりましたが、2回目からは普通に書き込まれます。PICkit3と比較しましたが、書き込み速度はほとんど同じです。(書き込んでいるプログラムサイズが小さいのもありますが)ほかのレポート見ても、大差ないと言われているのでそんなもんでしょう。

Connecting to MPLAB PICkit 4...

Currently loaded versions:
Application version............00.02.00
Boot version...................01.00.00
Script version.................00.02.53
Script build number............825de4df13
Connecting to MPLAB PICkit 4...

Currently loaded versions:
Boot version...................01.00.00
Updating firmware application...
Connecting to MPLAB PICkit 4...

Currently loaded versions:
Application version............00.04.00
Boot version...................01.00.00
Script version.................00.02.53
Script build number............825de4df13
PICkit 4 is supplying power to the target (3.25 volts).
Target device PIC24FJ64GB002 found.
Device Id Revision = 0x2

Erasing...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x9ff
configuration memory

Programming/Verify complete

デバッグですが、いろんなところにBPを追加して、ステップイン、アウト、オーバーなど試しましたが、確かにPICkit3よりも正確に止まります。普通のPC上で動作するプログラムと同じ感覚だと思います。ひとまず、購入した意味はあったと思います。

対応ハードウェアについて

PICkit3では、ほぼすべて完全対応していますが、PICkit4はまだ全体的にベータ版といったところです。MPLABXでPICkit4を選択するときにも黄色いアイコンになってましたが、そういうことです。PICkit3だとグリーンになってます。リリースノートの中にPICkitとハードウェアの対応リストがあります。

http://www.microchip.com/mplabx-ide-release-notes

上記のURLからリリースノートをDLして中に入っているDevice Support.htmを開くと、対応表になってます。PK4D、PK4PがPICkit4、PK3D、PK3PがPICkit3です。

2018-10-13現在のリストの上部のみ
pickit4-010

傾向としては、PICkit4がY:beta supportで、PICkit3がG production tested supportがほとんど。上図は先頭だけを切り取った部分ですが、下までずっとこんな感じです。R Not support deviceはちらほらありますが、発売されたばかりのPICが多く、そのうちbeta supportぐらいにはなるでしょう。

デバッグ中にエラーが発生

ステップアウトやインを試していたら、PICkit4でエラーが発生してデバッグが停止しました。そのときの出力ログです。endpoint云々言っているので、USB通信あたりの不具合かもしれないです。beta版だから仕方なしぐらいに思っておいたほうがいいです。

手元にPICkit3もあるなら、手放さずにまだ持っていたほうが良いかもしれないです。

Running
Target Halted
Setting software breakpoints.......

Running
Target Halted
Reception on endpoint 129 failed (err = -121)
Reception on endpoint 129 failed (err = -121)
A communication error with the debug tool has occurred. The tool will attempt to recover momentarily.
A communication error with the debug tool has occurred. The tool will attempt to recover momentarily.
Transmission on endpoint 2 failed
Transmission on endpoint 2 failed
Transmission on endpoint 2 failed
A communication error with the debug tool has occurred. The tool will attempt to recover momentarily.
Transmission on endpoint 2 failed