SSブログ

PIC12F675 失ってしまったキャリブレーションデータを再生するには [電子工作一般]

メモ書きとして記す。

内部OSCを持つPIC12F675は、単純イレースやオプション設定を間違うと、内部OSCの発振周波数を補正するためのキャリブレーションデータを失ってしまう。
キャリブレーションデータはメーカー出荷時にあらかじめFLASHの最終番地にCONFIGデータと共に書かれており、14ビット(1ワード)の下位6ビットが相当する。

下記のWebにこの救済方法が記されている。
http://www.geocities.jp/orange_denshi/writer509alpha.html

テストプログラムをターゲットに書き込み、周波数(クロックの1/4、つまり1MHz)と、シリアル出力される表示(キャリブレーションに設定している値)を見ながら失ったキャリブレーションデータを探索する。適合する周波数になる状態が見つかったら、表示されている値をメモしておきライターで書いてやれば良い。
PIC12F675はキャリブレーションを使用することで、内部クロックの周波数偏差を5%以内に追い込めると書かれている。実際にやってみると、1MHzに対して±5KHz以内になる設定値が必ず存在した。温度ばらつきもあるだろう。

周波数カウンターを推奨されていたが、自分の持っているカウンターは20年くらい前に校正したっきりなので、オシロのリードアウトを使用して周波数を合わせた。キャリブレーションデータが0xFFになっていると、最大で1.4倍程度の発振周波数になることを確認した。

完全イレースすると、最終番地のデータは0x3FFFになる。(全データが1で埋められて全番地0x3FFFになる)
キャリブレーションデータを上書きしてしまうと(たとえば0xFF)、最終番地のデータは0x34FFになる。
0xFFは秋月のPICライターV4の初期値。他のチップをREADしてから書き込みすると、そのチップのデータが
反映されてしまうため、上書きで無効なデータを書いてしまったのかどうかの判断が付かなくなる。

発振回路内蔵PICを使用するときは、むやみにイレース操作をしてはならない。
 イレースするときは最終アドレスのデータをメモしておく。
書き込みオプション設定では、「PIC内部のキャリブレーションデータを使用する」を有効にしておく。
 ライティング動作時に、あらかじめ書かれているキャリブレーションデータを待避して書き戻す動作をする。
 ただし、ライティングエラーが出たら書き戻しに失敗する場合も考えられる。できるだけ、キャリブレーション
 データをメモしておくなり、失わないような作業をすることが推奨される。

nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

EUが開ける夜AKIBA ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。