2022年6月12日日曜日

PICkit4単体(PC無し)でプログラムを書く機能Programmer To Goを使ってみた


背景

PICkit4とは、Microchipのマイコンにプログラムを書き込む装置です。
ボタンとSDカードスロットが付いているのでPICkitだけでプログラムを書き込めるのだろうとは思っていましたが、放置していました。
調べてみたところ、その機能はProgrammer To Goと呼ばれること、想定していたほど手間取らず実現できることが分かったので、備忘録を兼ねて記事を残します。

参考リンクでも紹介しますが、今回の記事はMicrochipのPICkitの説明書が参考になりました。
DS50002751E_JP-p.1© 2020 Microchip Technology Inc. MPLAB® PICkit™ 4インサーキット デバッガ ユーザガイド
上記説明書の5章でProgrammer To Goの使い方が説明されています。

使ったもの

  • MplabXをインストールしているPC
    設定すればPICKit4だけでプログラムを書き込み可能になりますが、その設定にMplabXからの書き込みが必要です。
    ubuntuの場合は下記の記事が環境構築の参考になると思います。
    Ubuntuに開発環境を作り、PIC16F1829でLチカする方法
  • PICkit4
  • SDカード
  • 書き込み対象のマイコン(書き込み確認用)
    今回はLチカ回路を組んだPIC16F1829を利用します。
  • マイコンのプログラム
    MplabXで作成したプログラムです。

Programmer To Goを有効化の前に、有効化直後のプログラム書き込みを停止

標準ではProgrammer To Go有効化後にプログラムの書き込みを行う設定になっており、書き込みに失敗するとProgrammer To Goが有効になりません。
設定したプログラムがあっているのを確認できて便利な場面があるのかもしれませんが、自分の用途ではマイコンが無くてもPICkitの設定を出来ると嬉しかったので、直後の書き込みを無効化します。

PCにPICkit4を接続した状態で、プロジェクトのプロパティを開きます。
プロジェクト名を右クリックして出てくる下部のpropertyを選びます。


Connected Hardware ToolとしてPICkit4を選びます。
PICkitをUSB接続していても出てこない場合は、抜き差ししてpropertyを開き直してください。


下記の操作を行い、Programmer To Go有効化の際のプログラム書き込みを無効化します。(これをしておくと、書き込み対象マイコンが無くてもPICkitをProgrammer To Go用に切り替えられます。)
  1. 左側のCategoriesにPICkit4があるので選びます
  2. Option CategoriesをProgrammer To Goとします
  3. Program Deviceのチェックを外します
  4. OKを押します

PICkit4にSDカードを挿入

PICkit4の裏側にSDカードスロットがあるので、Programmer To Goのプログラムを書く前に挿入しておきます。
FAT32のパーティションがあるSDカードなら利用できました。
(Raspberry Pi OSのSDカードもbootパーティションを利用できました。)


今回3枚のSDカードを試したところ、1枚だけがProgrammer To Go用の情報を書き込めず、PICkitを抜き差ししてもMplabXを起動し直しても下記のエラーを回避できませんでした。
Sending programmer to go information to the debug tool
An error occurred while creating the programmer to go image. Please retry the requested operation.
A communication error with the debug tool has occurred. The tool will attempt to recover momentarily.
上記のエラーでProgrammer To Goが使えない場合は、SDカードを変えると使えるかもしれません。

Programmer To Goを有効化

ICに書き込む絵の右側にある三角をクリックするとメニューが表示され、Programmer To Goを選ぶとPICkitのSDカードにプログラムが送信されます。


設定に成功すると、PICkitがProgrammer To Goのモードになり、緑色のLEDが点滅します。


PICkit4単体でプログラムを書き込む

Programmer To Goを有効化したPICkitは、マイコンと接続し、USBで給電してボタンを押せばプログラムを書き込める状態です。


PICkitのロゴがボタンになっているので押します。
押しづらいのか、鈍感なボタンなのか、応答が無いことが多いですが、書き込みが始まると紫色に光ります。
書き込みは数秒で終わります。


マイコンが繋がっていなかったり、SDカードが無かったりProgrammer To Go用のデータが無かったりすると、赤く光ります。


赤く光ったら異常を取り除き、PICKitのUSB給電を切り入れして、緑色に光る状態にしてください。

余談1: Programmer To GoのSDカードは入れ替え可能

Programmer To Gotとして、あるSDカードにLED点滅間隔0.1秒のプログラムを書き込み、別のSDカードに点滅間隔1秒のプログラムを書き込み、SDカードを入れ替えて書き込んだところ、SDカードに書き込んだ内容のプログラムが書き込まれました。

余談2: 複数のプロジェクトをSDカードに書き込んだ場合、conf.ptgの書き換えで書き込むプログラムを切り替え可能

Programmer To Goとして、rtc_testとtest_blinkを書き込んだSDカードの中身は下記のファイルとディレクトリが含まれています。


  • conf.ptg
  • rtc_test_ptg
  • test_blink_ptg

conf.ptgに書き込み対象のディレクトリ名が記されているので、それを書き換えると書き込み対象を変えられました。
conf.ptg
DIR = "0:/test_blink_ptg/"

終わり

Programmer To Go状態のPICkitでプログラムを書けました。
PC無しでプログラムの書き込みができるので量産時などに活躍しそうです。

また、PICkitがProgrammer To GoモードになっていればSDカードの変更で書き込むプログラムを変えられるので、書き込み内容変更時にPICkit本体が無くても変更準備ができて便利な場面がありそうです。

参考

DS50002751E_JP-p.1© 2020 Microchip Technology Inc. MPLAB® PICkit™ 4インサーキット デバッガ ユーザガイド
上記説明書の5章でProgrammer To Goの使い方が説明されています。

0 件のコメント :