2024.12.15
前へ
次へ
ホームページトップへ戻る


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第180回]



●CONFIG

PICを全消去すると実装されているフラッシュメモリはFFになります。
しかしCONFIGだけはビットによって1であったり0であったりします。
全消去によりCONFIGの値は工場出荷時の初期値になるようです。
全消去によってFFになるのは一見すれば明らかなのですが0になったり1になったりするのでは本当に正しく消去されたのか、それともそうではないのかが一見しただけではわかりません。
/ERASEコマンドが正しく機能していることを確認するためにも、落ち着いたらもう少し追求してみようと思っていました。
ここまでPIC WRITERについて検証を進めてきてやっとなんとか一区切りついたようなので、この辺でCONFIGについて簡単にまとめておきたいと思います。
CONFIGについては[第165回]に書いています。
その前には[第70回]にも書きました。
その時点ではさらに進んで追求するだけの時間や余裕がなくて「おかしいなあ」と思うことについてもそれ以上掘り下げることなく過ぎてしまいました。
今回はもう少しだけ追求してみたいと考えています。
過去記事、特に[第165回]に書いたCONFIG4LのXINSTビットについてはDataSheetの記載ミスではないかということを書いてそれで終りました。
確かに記載ミスのようなのですが、PIC18F13K50、PIC18F14K50のCONFIG4Lにはそれ以外にもおかしなところがありそうです。
[第165回]に書いたとおりPIC18F13K/14K50DataSheetのCONFIG4Lの記載は何らかの事情で実際と異なるところがあります。
今のところ実用上は問題は無いようなので深堀りするほどのことではないかもしれません。
ま。
軽くわかったことの整理ノートのつもりです。
[第165回]では確認が甘いところがありました。
そこでは秋月のPICKITU互換PICプログラマでPIC18F13K50とPIC18F14K50の消去後のブランクチェックをしたときの画像をお見せしています。
画像を見ながらの説明として右上のConfigurationのCONFIG4Lの値が13Kは45であるのに対して14Kは05だと書いています。
ここが違っていました。
今回は秋月のPICKITU互換PICプログラマでHEXファイルを作成して確認してみました。

画面下方左はERASE後に作成したPIC18F13K50のHEXファイルで右は14K50のHEXファイルです。
いずれも85になっています。
念のためにMPASM SuiteのP18F13K50.incとP18F14K50.incもあわせて表記しました。
いずれもXINSTビットはビット6になっています。
参考までに[第165回]で引用したDataSheetの該当箇所を再掲します。

[出典]Microchip Technology Inc.PIC18F1XK50 DATA SHEET

DataSheetのCONFIG4Lを見る限りではXINSTはビット6で初期値は’0’です。
それはそうだとしてもそれならビット7は’−’なので’0’のはず。
なのに13K50も14K50も消去後のCONFIG4Lは’85’でビット7は’1’です。
いずれも上に書きましたように秋月のPICKITU互換PICプログラマでPIC18F13K50とPIC18F14K50の消去後に作成したHEXファイルです。
なのに同時に秋月プログラマに表示されたCONFIGの値は13Kが’45’で14Kが’05’。
なんだか二重に間違っているようです。
ちなみに。
こちらはPIC WRITERで/ERASE後に/PICRDFコマンドを実行して作成したHEXファイルです。

どちらも’85’になっています。

ま。
こういうこともたまにはあることなので、これ以上取り立てて騒ぐことも無いようなお話です。
軽く備忘録として書いておきます。

PICBASICコンパイラ[第180回]
2024.12.15 upload

前へ
次へ
ホームページトップへ戻る