HOME  > 電子工作

PICマイコンPIC32MX270F256Bを用いてPICマイコンに書き込む

図1

はじめに

PICkit3を使わずに、PICマイコンPIC32MX270F256Bを用いてPICのプログラムを書き込むシステムを制作しましたのでご紹介します。

用意するもの

制作に必要なものは下記の通りです。



回路図

 PICマイコンに書き込みを行うための回路は下図のようになります。
 書き込みを行うのに「VDD」、「VSS(GND)」、「ISCPDAT」、「ISCPCLK」、「MCLR」という5つのピンを用います。 MCLRピンにPICマイコンの動作電圧より高い電圧(12V、9V、5V)の信号を与える必要があります。 また、ISCPDATピン、ISCPCLKピンとPICマイコンPIC32MX270F256Bの電圧が異なるため、レベル変換する必要があります。
 1)USBから出力される5Vを、12Vに変換する必要があります。そのために、MAX662 DIPモジュールを利用します。
 2)12Vから9Vをつくるには、三端子レギュレーター LM78L09を利用します。
 3)5Vから3.3Vをつくるには、低損失レギュレーター LP2950L-3.3Vを利用します。
 4)3.3V→12V,9V,5Vのレベル変換するのには、MOSFET 2N7000を利用します。
 5)3.3V←→5Vのレベル変換するのには、I2Cバス用レベル変換モジュール FXMA2102を利用します。

【ポイント】
 レベル変換モジュールに何を選択するか、またプルアップ抵抗の抵抗値を何にするかによって、高周波数信号の波形がなまってくる。 色々なPICマイコンへの書き込みで試したが、FXMA2102でもいける。プルアップ抵抗の抵抗値はPICマイコンPIC32MX270F256Bでは4.7kΩがいいようだ。
回路図

ソフトウェア

pickleという、Raspi(Linux)でPICの書き込みを行うプログラムがあります。

pickle

 C言語で書かれていますので、これをPICマイコンPIC32MX270F256Bに移植を試みます。本体は、ほぼ、そのまま使用し、INPUT側のインターフェースの部分とOUTPUT側のインターフェースの部分を書き換えます。 MPLAB X IDEで開発しました。プログラムコードを公開します。PIC32MX270F256Bのメモリ不足のため、3つに分けました。
 もう一つ書き換えた箇所があります。それは、メモリです。元のプログラムは、Linux環境で豊富にヒープメモリが使えますが、マイコンの場合、限られています。 そこで、MicroSDに書き込むようにしました。

(2024.3.13更新)
Program Source 8bit用(p12,p14,n14,p16,n16)
  HEXファイル 8bit用(p12,p14,n14,p16,n16)
Program Source 16bit用(p24)
  HEXファイル 16bit用(p24)
Program Source 32bit用(p32)
  HEXファイル 32bit用(p32)

書き込み

 最後に、書き込みを行います。
  1)PICマイコンPIC32MX270F256BとPICマイコンを接続します。PIC書き込みアダプタを利用すると便利です。
  2)HEXファイルをmicroSDに書き込み、それをmicroSDソケットに挿入します。
  3)下図のように、PCとUSB接続して、PCより操作して書き込みを行います。

Windows用EXEファイル(2024.4.7更新)

図5

終わりに

以上です。この他にも、M5Stackを利用して書き込むシステムを制作したり、Raspberry Piを利用して書き込むシステムを制作したりしてます。

このページのトップへ