PICマイコンの書き込み用接続を簡単にできるICSPアダプタを製作した。
(2023/2/1追記)PICkit2やPICerFT向けの回路になっていなかったので追記しました。
<はじめに>
まずICSPについて簡単に説明すると、PICマイコンで採用されている書き込み方式の1つで、PICkitや前回製作したPICerFTもこれを採用している。
普段は基板の中にICSPコネクタを用意するかブレッドボードを使って接続しているが、ゼロプレッシャーソケットを使用して簡単に接続できるICSPアダプタを使用している人も多いため、筆者も作ってみることにした。
<回路調査>
どのようなものが作られているか調べてみる。
まずは秋月電子で販売されているICSPアダプタ。
2,000円の時点で買う気はないけど、さらに問題なのはこの造り。
これ、ブレッドボードで配線するのと何が違うの?却下。
次に、アマゾンでよく売っているICSPアダプタを調べてみる。
どうやら様々な中華メーカーが作っているようで、どう見ても同じものが大量に出品されている。
小型なのはいいけど、ジャンパーで設定変えるのは面倒かな。
設定のシルクが裏面ってのも、にらめっこしなきゃで面倒。
さらに、購入者の回路解析結果を見ると、PICの出力設定によっては書き込みした瞬間にショートする可能性があるようで、これは使えない。
PICerFTの製作者であるe電子工房さんも独自でICSPアダプタを作っているみたいだが、できるだけ多くのタイプを使用できるように回路が複雑になっており、1個人としてはそもそもマイナーなやつは買わなければいいため、これも却下かな。
そもそもICソケットで挿抜面倒だし。
他にもゼロプレッシャーソケットを何個も使っているものや、そこらの評価キットよりも充実しているものなどがあったが、簡単接続で書き込みさえできればいいので、PICerFTと同じCタイプ基板に収めたい。
とまぁこんな感じで検証したところ、筆者がメインで使用しているPIC12/16/18はある程度ピン配置が共通しているみたいだ。
具体的には、以下のようになっている。
ピン数 | MCLR/VPP | VDD | VSS | PGD | PGC |
8ピン | 4 | 1 | 40 | 39 | 38 |
14ピン | 4 | 1 | 40 | 39 | 38 |
18ピン | 4 | 36 | 5 | 35 | 34 |
20ピン | 4 | 1 | 40 | 39 | 38 |
28ピン | 1 | 32 | 8、31 | 40 | 39 |
40ピン | 1 | 11、32 | 12、31 | 40 | 39 |
上の表は40ピン換算をしている。
dsPICシリーズや最新のPICではこの通りでないものもあるようだが、筆者が使用しているPICは上記の通りだった。
これだとちょっと分かり辛いので、共通しているものをまとめると以下のようになる。
ピン数 | MCLR/VPP | VDD | VSS | PGD | PGC |
8/14/20ピン | 4 | 1 | 40 | 39 | 38 |
18ピン | 4 | 36 | 5 | 35 | 34 |
28/40ピン | 1 | 32 | 31 | 40 | 39 |
28ピンと40ピンはVDDやVSSが複数あるが、どうせ内部で繋がっているため共通しているものだけ使用すればいい。
あとは3つのICSPコネクタを用意し、この通りに配線するだけ。PICkitのユーザーガイドを見ると、MCLR/VPPとVDDの間に4.7k~10kΩの抵抗を付けることが推奨されているため、追加してレイアウトを考えてみた。
↑注意!MCLR/VPPとVDDの間に4.7k~10kΩの抵抗を付けることが推奨されているのはPICkit3以降だけです。PICkit2やPICerFTには推奨されておらず、むしろVDDにVPPの高電圧(9~12V)が回り込む可能性があり、それを防止するためにダイオードか分圧抵抗が推奨されているぐらいなので、付けない方がいいです。
レイアウトは以下の通り。(PICkit3以降向けです!)
27×17穴のCタイプ基板に収まった。
はんだ面にある黄色い線はジャンパーで、エナメル線を使用する。
ICSPコネクタの1ピンが無駄にジャンパーしているのは、昔見た製作例でMCLR/VPPピンに100Ω抵抗を付けていて、必要だと覚えていたから。
まぁ書き込み時に9~12Vかかることを考えるとあってもいいとは思うけど、今回は使用せずジャンパーにした。
これが実際に製作したもの。
はんだ面のジャンパーをエナメル線にしたため、ビニール線と比べれば結構きれいだと思う。
実装してから気付いたんだけど、ゼロプレッシャーソケットってレバーがない側が1ピンなのね。個人的にはこっちの方が分かりやすいけどなぁ。
8ピンと28ピンでしか試していないけど、書き込みは大丈夫だった。
(以下PICkit2、PICerFT向け)
・レイアウト
・実装写真
<おわりに>
PICerFTと合わせて、PICマイコンの書き込み環境を作ることができた。
今までの自作PICkit2クローンとブレッドボードと比べるとかなり簡単に書き込みできるようになった。
いくつかPICマイコン工作を行っているため、次回以降はそれをアップしていく予定。