これまで様々なPICを利用してきました.そして,それぞれなんとなく利用できて来ましたが,今回,TKM-Hの動作確認をしている中でハマったことがありましたので,恥ずかしながらここに書こうと思います.
それはダウンロードおよびリセットのときに訪れました.TKM-HではメインマイコンであるRXマイコンでリセットがかかると,PICも一緒にリセットするように設計しました.具体的には,RXマイコンのボードに搭載されたリセットICの信号をPICのMCLRとつないであります.このリセットについては大変うまく行っております.しかし,どういうわけか,RXマイコンと接続されているとPICへダウンロードできないという問題が発生しました.もう少し正確に言えば,PICKit3がターゲットデバイスを見つけられないような症状でした.
いろいろと考えた結果,リセットICからの信号とPICのMCLRをANDゲートに通してからPICのMCLRへつなげばよいのではと考え,実際に試してみました.結果はだめでした.むしろ,このような回路構成にすると,RXマイコンと接続していなくてもPICへダウンロードできなくなってしまいました.そこで気づいたのです.
PICへダウンロードするとき,MCLRとともにVppがあることに.
Vppからはダウンロード時におよそ12[V]程度の電圧が出るようになっており,この電圧によってPIC内部のEPROMへダウンロードしているのです.
以前,PICへの書込みには秋月電商のライタを使っていましたが,そのときにはかなりの電圧(アダプタが15[V]位だったような?)をかける必要があるんだなぁ,程度に考えていました.そして,近年ではPICKit2や3によって手軽にダウンロードできるようになったわけです.しかし,ライタが変わってもPICの内部構造に変更はありません.つまり,書き込むときにはやはり12[V]程度の電圧をかける必要があるのです.PICKitではこれを(たぶん)昇圧などで行っているのでした.
先ほど試行したANDゲートを通してしまうと,Vppがかからなくなってしまうため,書き込むことすらできなくなってしまっていたわけです.
結局,PICへのダウンロードと通常時を切り分けるため,スイッチを回路に入れることにしました.ていうか,これまでスイッチが入っていなかったため,ダウンロード時にリセットICへ12[V]位の電圧がかかっていたということになります.壊れていなければよいのですが,今のところ大丈夫そうです.