nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

PIC16F88 INTCLKの怪解ける

エラッタの資料にはINTOSCのクロックに応じて待ち時間ルーチンが示されてましたが、この際FORUMで書かれていた1秒程度待つのだよ、を採用。念を入れ、OSCCONの設定前後に入れたら、問題は回避されました。C2ステップ以後では解消と書いてあるが、この間秋月から買ったチップは刻印08年であり、まあ古いはね。ということでDELAY関数をたくさん入れて、試行錯誤途中に2400bpsにしました。
ちびっと不思議なのは、ADC値を読んでPCに出すコードでこのエラッタに引っかかりましたが、その前のUARTからめったらやたらASCII文字を出すコードでは問題なかったのです。その秘密はコンパイラがメインに入る前に吐き出す設定処理にあるので・・・・。

1.PIC16F88でINTCLKを選んだときクロック立ち上がり時に内部設定が安定するまで時間が掛かるというエラッタがある。
2.立ち上げの後4ms経ってから、さらに60msまてとか8MHzの場合は低い周波数で立ち上げてから切り替えろとか言う。
http://ww1.microchip.com/downloads/jp/DeviceDoc/jp011913.pdf

やっとこれでPIC16F88のUARTとADCを使えました。更にやってみたい機能としてTIMERでのSLEEPからのウェイクアップなんて難しのがあるが、それはちょっと後回しですね。