denshikobo’s blog

PICプログラミングやPCの操作で感じた日々の由無し事を綴ります

Pic_coloにRESETモニタ機能を加えた

Pic_colo_Thereminを5Vで動かそうとして、暫く嵌まりました。
 
VddをUSB電源(5V)から直接とって、DAC1のVref+にVddを接続するとPIC STATUSがERRORになるという症状に見舞われました。Pic_coloコンソールとPic_coloデバッガ間の通信異常です。何が起きているのか全く分からず、(やむなく禁じ手の)Pickit3で動作を調べてみると、Vref+にVddを接続したときにResetが掛かっていました。
 
とりあえず状況は分かりましたが・・・
 
 『Pickit3無しでPICのプログラム開発が出来る』と謳っているのに、これでは形無しです。orz
 
そこで、PCONレジスタの値をpcon_reg(@0x0e8)にコピーする機能と、Pic_coloデバッガが起動した回数をreset_counter(@0x0e9)に記録する機能を新たに追加しました。User_FrameからPICのメモリを操作する機能は既に組み込んであるので、これだけでRESETモニタの完成です。

f:id:denshikobo:20180128140209p:plain

1 set_val 0xe8 0000で初期化する(completeが返ってくる)
2 メイン・コンソールのResetをクリックする
3 get_val 0xe8 2でpcon_regとreset_counterを読み取る(1b01が返ってくる)
4 DAC1のVref+にVddを接続する(PIC STATUS ERRORになる)
5 Vref+の接続を除く(PIC STATUS IDLEになる)
6 get_val 0xe8 2でpcon_regとreset_counterを読み取る(1c85が返ってくる)
 
/PORと/BORが落ちているのでVddの瞬停が起きていること、reset_counterが0x85なので何度もResetを繰り返していることなどが分かるようになりました。
 
『Pickit3無しでReset状況が分かる』というのが大変重要なポイントです。
 
3.3Vのレギュレータを通せばDAC1のVref+にVddを接続しても大丈夫なので、Pic_colo_Thereminの電源は3.3Vにして、超音波センサーの信号は分圧して受けることにします。
 
ひとしきりジタバタしましたが、Pic_coloのデバッグ機能がまた一つ向上したので、まぁ良しとしましょう。
 
やれやれ