HOME  > 電子工作

PIC32MX270F256Bを用いてPICマイコンに書き込む(スマホ操作対応版)

図1

はじめに

 PIC32MX270F256BのUSB機能(シリアル通信)を使わずに、CH340Eを用いてシリアル通信を行うシステムを制作しましたのでご紹介します。
 CH340Eを利用することにより、スマホで操作できるようになります。
 なお、PIC32MX270F256Bのプログラムメモリが足りず、プログラムを3つに分けました。

用意するもの

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

回路図

回路図
 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バス用レベル変換モジュール(PCA9306)を利用します。プルアップ抵抗は、1kΩが実装されています。


ソフトウェア

pickleという、Raspi(Linux)でPICマイコンにプログラムの書き込みを行うソフトウェアがあります。

pickle

 C言語で書かれていますので、これをPICマイコンPIC32MX270F256Bに移植を試みます。本体は、ほぼ、そのまま使用し、INPUT側のインターフェースの部分とOUTPUT側のインターフェースの部分を書き換えます。 MPLAB X IDEで開発しました。プログラムコードを公開します。PIC32MX270F256Bのメモリ不足のため、3つに分けました。

もう一つ書き換えた箇所があります。それは、ヒープメモリです。元のプログラムは、Linux環境で豊富にヒープメモリが使えますが、マイコンの場合、限られています。 そこで、MicroSDの記憶領域を利用しました。


(2025.10.15更新)
プログラムコード 8bit用(p12,p14,n14,p16,n16)
  HEXファイル 8bit用(p12,p14,n14,p16,n16)

プログラムコード 16bit用(p24)
  HEXファイル 16bit用(p24)

プログラムコード 32bit用(p32)
  HEXファイル 32bit用(p32)

*コンパイラの設定
  コンパイラ: MPLAB XC32 Compiler (v4.30)

書き込み(PC操作)

 下記のように、PCとUSB接続(仮想COM、UART)して、PCより操作して、プログラム(hexファイル)をPICマイコンに書き込みます。

1)自作PICライタとPICマイコンを接続します。PIC書き込みアダプタを利用すると便利です。

2)HEXファイルをmicroSDに書き込み、それを自作PICライタに挿入します。

3)PCとUSB接続(仮想COM、UART)して、PCより操作して、プログラム(hexファイル)をPICマイコンに書き込みます。 シリアル通信で行単位送信モードが使えるシリアルモニタソフトを使って操作できますが、自作の書き込みソフトも作成しました。


Windows用書き込みソフト(2025.10.15更新)


PC側より、自作の書き込みソフトを起動し、COMポートを設定します。

ポートを設定します。それ以外はデフォルトのままで良いです。

hexファイルのタイプを選択します。

まず、PICマイコンの素性を読み込みます。
「PIC16F753」であることが分かります。

microSDに入っているhexファイルが表示されます。

PICマイコンに書き込むhexファイルを選択します。
ここでは、「PIC16F753.hex」を選びます。

書き込みが成功しました。
書き込み時間は、2.417秒です。

書き込み(スマホ操作)

 下記のように、スマホとUSB接続(Android 3.1以上:USB Host API)して、スマホより操作して、プログラムをPICマイコンに書き込みます。

1)自作PICライタとPICマイコンを接続します。PIC書き込みアダプタを利用すると便利です。

2)プログラム(hexファイル)をmicroSDに書き込み、それを自作PICライタに挿入します。

3)スマホとUSB接続(Android 3.1以上:USB Host API)して、スマホより操作して、プログラム(hexファイル)をPICマイコンに書き込みます。 Serial USB Terminalなどを使って操作できますが、自作の書き込みアプリも作成しました。


android用書き込みアプリ(2025.10.26更新)


※SONY製 KDDI SOV42で動作確認をしています。

終わりに

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

このページのトップへ