PICマイコン書込み時のVPP、VDDラインの挙動を改善する
こんにちはリゲル・インテリジェンスです。
一応の完成を見たPicWriterUSBですが、ずっと気になっていた電源ライン(VPP、VDD)の回路を変更して動作の改善を図ります。元の回路では下記のような問題を感じていました。
- USB5V→VDD3.3Vを生成するレギュレータのコントロール端子にてON/OFF制御を行っていたが、3.3Vの立上り、立下がりに時間がかかるため、それぞれ1msec、100msecのウェイトを追加していた。
- VPP9Vのレギュレータはコントロール端子が無く後段にスイッチ(レベルシフタ)を入れているため、VDDのようなON/OFF時間の問題は無いが、リセット時やUSB接続直後のRP2040の挙動の影響でVPP9Vもバタバタ動いてしまう。(実動作には問題無さそうだが、、)
- VDD3.3Vの制御が甘いので、PICマイコンのプログラミング時にはVDD first entry modeを使用してVDD3.3Vが立上がるのを十分待ってからVPP9Vを与えることでプログラミングモードに入れている。これは出来ればVPP first entry modeを使いたい。(PICマイコンが不必要に動くことを防ぐため)
これらを改善するため回路の変更を行いました。この変更に伴いRP2040のVPP、VDDコントロール端子(P3、P4)はロジックが反転となります。
回路の変更を行い、VPP first entry/VPP last exit modeに動作を変えた場合のVPP/VDDの波形です。
(CH1:VPP、CH2:VDD)
![vpp_1st_entry](https://rigel-i.com/blog/wp-content/uploads/2022/11/vpp_1st_entry.jpg)
VPP first entry mode
![vpp_last_exit](https://rigel-i.com/blog/wp-content/uploads/2022/11/vpp_last_exit.jpg)
VPP last exit mode
PIC16F1823のスペック上はTENTS(VPPの立上り→VDDの立上り間の時間)=100nsec、TEXIT(VDDの立下がり→VPPの立下がり)=1μsecですが、かなり余裕を持たせています。1回のプログラミングにつき1度ずつだけですので全体的な処理時間への影響は少ないでしょう。
また、VDDの立下がりが鈍っていますがこれは接続するPICマイコン側の電源容量によります。今回の測定ではPICマイコンのパスコンを0.1μF、放電抵抗を1KΩにしています。
ビルド済みのバイナリ(.uf2)ファイルはこちらからダウンロード出来ます。
変更を加えたPicWriterUSBにてPIC16F1823のEEPROMを含む全域を書換えた場合のログです。変更前に比べて90msec程早くなりました。
コメント