HOME > 電子工作
Orange Pi Zero 2Wを用いてPICマイコンに書き込む
はじめに
PICkit3を使わずに、Orange Pi Zero 2Wを用いてPICマイコンにプログラムを書き込むシステムを制作しましたのでご紹介します。
Rapberry Piではなく、わざわざ、Orange Pi Zero 2Wを用いるのは、Rapberry Piと違い、USBがType-Cだからです。
Rapberry Piではなく、わざわざ、Orange Pi Zero 2Wを用いるのは、Rapberry Piと違い、USBがType-Cだからです。
用意するもの
制作に必要なものは下記の通りです。
- Orange Pi Zero 2W
- PICマイコン。VPP電圧は、12V、9V、5Vに対応。ロジック電圧は、5V、3.3Vに対応。
- ガーバーファイル:PCBWayなどに、基板製造依頼してください。
- Raspberry Pi Zero用アクリルケースを1つ:一部を使う
- スペーサー M3 11.2mm TP-11.2を4つ
- スペーサー M3 5mm TP-5SMを4つ
- 3mmプラネジ(5mm)を4つ
- プラスチックナット+連結(6角ジョイント)スペーサー(10mm)セットを4セット
- 1x5ピン ピンソケット(メス・L型) SSW-105-02-G-S-RAを1つ
- スライドスイッチSS-14MDH2を1つ:12V、9V、5Vの切り替え
- スライドスイッチ ISH-1260-HA-Gを1つ:5V、3.3Vの切り替え
- MAX662 DIPモジュールを1つ:12Vの昇圧に用います
- 積層セラミックコンデンサー 0.22μF50V X7R 5mmを2つ:12Vの昇圧に用います
- 積層セラミックコンデンサー 4.7μF50V X7S 5mmを2つ:12Vの昇圧に用います
- MOSFET 2N7000を1つ:3.3V→12V,9V,5Vのレベル変換に用います
- 三端子レギュレーター 9V100mA HTC製 LM78L09を1つ:12Vから9Vをつくる
- 積層セラミックコンデンサー 0.1μF250V X7R 5mmピッチを1つ:12Vから9Vをつくる
- 積層セラミックコンデンサー 0.33μF50V X7R 5mmを1つ:12Vから9Vをつくる
- I2Cバス用双方向電圧レベル変換モジュール(FXMA2102)を1つ:3.3V←→5Vのレベル変換に用います
- カーボン抵抗(炭素皮膜抵抗) 1/6W10kΩを4つ:プルアップ抵抗
- カーボン抵抗(炭素皮膜抵抗) 1/6W330Ωを3つ
- カーボン抵抗(炭素皮膜抵抗) 1/6W100Ωを1つ
- ピンソケット (メス) 2×20 (40P)を1つ
- ピンヘッダ 2×20 (40P)を1つ
回路図
PICマイコンに書き込みを行うための回路は上図のようになります。
書き込みを行うのに「VDD」、「VSS(GND)」、「ISCPDAT」、「ISCPCLK」、「MCLR」という5つのピンを用います。 MCLRピンにPICマイコンの動作電圧より高い電圧(12V、9V、5V)の信号を与える必要があります。 また、ISCPDATピン、ISCPCLKピンとOrange Pi Zero 2Wの電圧が異なるため、レベル変換する必要があります。
書き込みを行うのに「VDD」、「VSS(GND)」、「ISCPDAT」、「ISCPCLK」、「MCLR」という5つのピンを用います。 MCLRピンにPICマイコンの動作電圧より高い電圧(12V、9V、5V)の信号を与える必要があります。 また、ISCPDATピン、ISCPCLKピンとOrange Pi Zero 2Wの電圧が異なるため、レベル変換する必要があります。
1)Orange Pi Zero 2Wから出力される5Vを、12Vに昇圧する必要があります。そのために、MAX662 DIPモジュールを利用します。
2)12Vから9Vをつくるには、三端子レギュレーター LM78L09を利用します。
3)3.3V→12V,9V,5Vのレベル変換するのには、MOSFET 2N7000を利用します。
4)3.3V←→5Vのレベル変換するのには、I2Cバス用レベル変換モジュール FXMA2102を利用します。
レベル変換モジュールに何を選択するか、またプルアップ抵抗の抵抗値を何にするかによって、高周波数信号の波形がなまってきます。 色々なPICマイコンへの書き込みで試しましたが、FXMA2102でもいけます。プルアップ抵抗の抵抗値はOrange Pi Zero 2Wでは10kΩがいいようです。
ソフトウェア
pickleという、LinuxでPICマイコンにプログラムの書き込みを行うソフトウェアがあります。
pickle
このシステムで使用したGPIOを設定するconfigファイルを公開します。
configファイル
Raspberry Piと同じように使うには、少少手間がかかります。Raspberry Piと同じように使える設定をしたディスクイメージを用意したので、お使いください。
使い方は、Raspberry Piとは違い、右端のUSBとPCをケーブル1本でつなぎます。そして、「ssh pi@orangepi.local」もしくは「ssh pi@169.254.100.100」でSSH接続します。 ユーザー名は「pi」で、パスワードは「orange」です。ちなみに「root」のパスワードは「1234」です。
hexファイルをOrange Piに移すには、エクスプローラーで「¥¥orangepi.local」もしくは「¥¥169.254.100.100」を開いて入れてください。
ディスクイメージ (KIOXIA マイクロSDカードで確認済)
ドライバ (※USB接続するにはRaspberry Piと同じドライバが必要)
pickle
このシステムで使用したGPIOを設定するconfigファイルを公開します。
configファイル
Raspberry Piと同じように使うには、少少手間がかかります。Raspberry Piと同じように使える設定をしたディスクイメージを用意したので、お使いください。
使い方は、Raspberry Piとは違い、右端のUSBとPCをケーブル1本でつなぎます。そして、「ssh pi@orangepi.local」もしくは「ssh pi@169.254.100.100」でSSH接続します。 ユーザー名は「pi」で、パスワードは「orange」です。ちなみに「root」のパスワードは「1234」です。
hexファイルをOrange Piに移すには、エクスプローラーで「¥¥orangepi.local」もしくは「¥¥169.254.100.100」を開いて入れてください。
ディスクイメージ (KIOXIA マイクロSDカードで確認済)
ドライバ (※USB接続するにはRaspberry Piと同じドライバが必要)
書き込み
下記の方法で、PICマイコンにプログラムを書き込みます。
1)1x5ピン ピンソケットとPICマイコンを接続します。PIC書き込みアダプタを利用すると便利です。
2)sambaを導入してWindowsからOrange Pi Zero 2Wのフォルダが見えるようにして、プログラム(hexファイル)をmicroSDに書き込みます。
3)下図のように、PCとUSB接続して、プログラム(hexファイル)をPICマイコンに書き込みます。
終わりに
以上です。この他にも、M5Stackを利用して書き込むシステムを制作したり、Raspberry Piを利用して書き込むシステムを制作したりしてます。