PIC三昧(25) CONFIGビット読めていた、フェイントU-bit PIC16F18855

Joseph Halfmoon

前回、Flashの中の「コードとは別な空間」にあるDevice IDは読めたけれども、CONFIGURATIONビットが読めないと混乱しました。しかし、よくよく調べてみたら実は読めていたことが判明。MCCの提示した値が読めるものと思っていたところ、実機では異なる値が読めることが判明。ようやく腑に落ちました。

※『PIC三昧』PIC関係の記事総目次はこちら

※作業はMicroChip社の統合開発環境 MPLAB X IDEと、その上で走るコンフィギュレーションツールMCC Classic を使用して行っています。ターゲット・マイコンはPIC16F18855です。

結論から言えば

MCCクラシックのConfigurationビットの設定画面で提示されている値は未実装ビットUを0として読んだときの値です。一方実機では、未実装ビットUは1として読めます。よって例えばMCCクラシックの画面上でCONFIG1が

0x2964

と表示されていた場合、CONFIG1のUbitは1だとして上記にORすると

0x3FEC

が実際に実機上で読み取れる値です。

MCCクラシック上で読める値

前回期待していたのは、以下のMCCクラシックの設定画面に見える黄色のマーカ部分の値でした。

 

しかし、CONFIG1の未実装ビットを1として補うと 0x2964ではなく0x3FECです。また、CONFIG2の場合は、0x3EE3にあらずして0x3FFFです。

実機上の値

前回のテストプログラムで読めた値が以下です。CONFIG1、CONFIG2のところにバッテンしてしまいましたが、上記の解釈すると「正しい」です。CONFIG_READ_Results

末尾のCONFIG5についても0x3FFFでOKっす。MCCだと0x3ですが。

MCCクラシックのUビットの解釈に騙されたっ。ま、分かって良かったケド。

PIC三昧(24) Device ID読めるがCONFIG読めない? PIC16F18855 へ戻る

PIC三昧(26) PIC16F18855、CWGでハーフ・ブリッジ駆動波形を生成 へ進む