内部発振周波数
先日、パルスの発生プログラムを作りました。精度は必要ないので内蔵4MHz(12F629は4MHzのみ)を利用します。端子もあまり使わないので8ピンのIC=12F629を使いました。
GP0=LED
GP1=コントロール出力
GP2=Stop SWの入力3つのI/Oを使ってパルス発振をさせて見ました。念のため波形をチエックすると、パルス幅が予定の1mSecのはずが何故か883uSecになっています。
どうも発振周波数が4MHzではない感じです。そこでマニアルを読み直すとチューニング説明がありました。CALIBRATING THE INTERNAL OSCILLATOR bsf STATUS, RP0 ;Bank 1 call 3FFh ;Get the cal value movwf OSCCAL ;Calibrate bcf STATUS, RP0 ;Bank 0これをSoftに入れてICに焼いて試してみると、今度はパルス幅は998uSecになりました。ほぼ予定の1mSecになりホッとしました。
但し、シュミレータを動かすとcallで行ったきりで戻ってきません、慌てましたがここを削除すれば正常に動作します。後どう対応すればよいのか不明です、しばらくこのまま使う予定です。動作は未確認です
他のPICは細かく調べてないので分かりません。もし合わないならその時考えることにして今回はこの程度とします。
ちなみに883/1000(uSec)=13%ほど周波数は高くなっていました。電圧を変化させても変わりがありません
電圧変動には強いようです、内部は低い周波数で発振してPLL技術でUPしているのかもしれません。
とすると!出来るだけ電圧は下げて使うことを考えても良さそうです、この辺は次のテーマとして考えてみたいです。2007/JUL/5
もどる [MAIN MENU]