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内部のキャリブレーションデータを使用する」を有効にしておく。
ライティング動作時に、あらかじめ書かれているキャリブレーションデータを待避して書き戻す動作をする。
ただし、ライティングエラーが出たら書き戻しに失敗する場合も考えられる。できるだけ、キャリブレーション
データをメモしておくなり、失わないような作業をすることが推奨される。
内部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内部のキャリブレーションデータを使用する」を有効にしておく。
ライティング動作時に、あらかじめ書かれているキャリブレーションデータを待避して書き戻す動作をする。
ただし、ライティングエラーが出たら書き戻しに失敗する場合も考えられる。できるだけ、キャリブレーション
データをメモしておくなり、失わないような作業をすることが推奨される。
コメント 0