">
FlatIsleロゴ

Flat Isle 日誌

Raspberry Pi でPICライター作成(前編)

2022-07-08

LEDで蛍の光を表現したくて、PICマイコンを使うことになりました。
PICマイコンにプログラムを書き込むには専用のライターが必要ですが、市販品はちょっとお高い。
ラズパイで自作すればより安価にできるとの事で、実際に作ってみました。
前編で組み立て、後編ではプログラムの書き込みを説明します。

準備するもの

  • ラズパイ
    今回はRaspberry Pi Zero WHを使いました。OSはRaspbian Busterです。
  • PICマイコンへの書き込みソフト
    ラズパイで動作する「pickle」というソフトを使いました。
  • パソコン
    この記事はWindowsパソコンを対象としています。
  • プログラムを書くための統合開発環境(IDE)
    PICマイコンのメーカーが提供しているものを使いました。
  • PICライターを構成する電子部品
    長くなるので詳細は後述。
  • PICマイコンの動作確認のための電子部品
    今回はLEDを光らせるので、LEDと抵抗、PICマイコンを挿すソケット、電源用にUSBケーブルを用意し、小さく切った基板にのせました。
  • はんだ付け用品(長くPICライターを使いたい人向け)
    はんだごて、こて台、こて先クリーナー、はんだ は当然必要。
    バイス(万力)やツールクリッパーなど、基板を挟んで固定できる台があれば作業しやすいです。
    はんだ吸い取り器(はんだ吸い取り線)もあれば失敗してもやり直せるので安心です。
    部品の足を曲げたり切ったりするのにラジオペンチやピンセット、ニッパーも要りますね。
  • テスター
    正常に動作していない時、9Vの電圧が掛かっていない等の問題を発見できます。
    (誰ですか、指をなめてから触ったら分かるって言ったのは😖)

電子工作をする

電子部品

必要な部品は以下の一覧表の通りです。「重要度」欄は お試しで簡易にやりたい人向け(重要度A)と、本格的に始めたい人向け(重要度B)で分類しています。
(単価は2021/09/12現在のものです。詳細は各部品のリンク先よりご確認ください。リンク先で「タイムアウト」等の表示が出たらリロードしてください)
また、ブレッドボード等カラーバリエーションも色々とあるようですので、好みに合う物を探してみてください。

No.重要度名称仕様数量単価
Q1 A,B MOSFET 2N7000 1 52
R1,2 A,B 抵抗10kΩ 1/4W 10kΩ 2 4
A 配線用ケーブル(ブレッドボード用が便利) オス-メス 適量 189
オス-オス 適量
B配線用ケーブル 電線 適量
IC1 A ブレッドボード(基盤、ソケットの代わり) 色はお好みで 1 231
BICソケット ELK028 1 1,069
ユニバーサル基盤(3x7cm) 3×7cm 1 94
POW1 A 9V角型 電池(100均でも買えます) 1 110
9V電池スナップ 006P用 1 100
BDC-DC昇圧コンバーター DC-DC 1 850
C1 Bセラミックコンデンサ(あればより安心できます)50V 0.1μF 1 84

電子部品の購入は秋月電子が有名ですが、少量の購入なら、ネコポスが使える共立エレショップがお得です。

回路図

こういうものを作ります。

GPIO 2 ICSPDAT GPIO 4 ICSPCLK GPIO22 /MCLR,Vpp +3.3V R110kΩ Q1 2N7000 G D S POW1 +9V R210kΩ Raspberry Pi IC1 ICソケット

簡単に説明しますと、「2N7000」というMOSFETは電気のスイッチの役割をしており、ラズパイGPIO22ピンから出力された3.3Vの信号を、9Vの信号に変換してPICマイコンの/MCLR信号に入力するようにしています。

実装

それでは実装です。上記回路図を元にブレッドボードやユニバーサル基盤に実装するのですが、ここで注意すべきは5点です。

  1. 電子部品のMOSFETにはピンの順番に意味(G,D,S)があります

    画像引用元:メーカー公式 2N7000データシートPDF
  2. 電子部品の抵抗には向きはありません
  3. Raspberry PiのGPIOの番号とピン番号は同じではありません
  4. PICマイコンの大きさによって、ICSPDAT等のピンの番号は変わりますが、位置は変わらないものがあります(PIC12F1822とPIC16F1823等)

    画像引用元:メーカー公式 日本語資料 PIC12(L)F1822/PIC16(L)F1823 データ シートPDF
  5. ラズパイと9V電池との電圧を合わせるために、GNDと9Vのマイナスを接続させます

ブレッドボードに実装した場合の例は、下記のようになります。

Q1 C1 IC1 R1 R2 POW1

ブレッドボードの穴は、内部で(a~e)(f~j)(電源 +、ー列)がそれぞれ接続されています

本格的に実装したものがこちらです。
 裏面
 表面。
PICマイコンを挿す位置を間違えないよう、赤いシールと黒い線で目印を付けています。

これを使ったプログラムの書き込みについては、後編に続きます。

参考

こちらの記事を参考にさせていただきました。
neuralassemblyのメモ: Raspberry PiのGPIOを用いてPICマイコンに書き込みをしてみた