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


PICBASICコンパイラ

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

[第223回]



●PIC16F84A(1)怪奇現象???

およそ10日ぶりの更新になってしまいました。
ずっと出口の見えない苦闘の毎日でした。
こんなに苦しんだのは久し振りです。
と言ってもこればっかりに没頭していたわけではありません。
ほかにもやらなければならないこと、やりたいことなどがそれこそゴマンとあっていつものことながらホームページの更新にまで手が回りませんでした。
といいますかまさかの怪奇現象に振り回されて何をどう書いたらよいのかというのが実情でありました。
あれこれ思いつくだけの策を試してそれでも駄目でとうとう万事休すとほぼ諦めかけたのでありましたが。
いやいや長い人生の中で得た経験から、きっと解決に至る道がみつかるはず。
諦めたらいかん。
投げ出してしまいたい気持ちをぐっと抑えてあと一歩の頑張りと。
そうしましたら。
ついに本日になりまして、やっと霧が晴れました。
以下がことの顛末です。

今から振り返ってみれば今までも首をかしげるところはあったのですが、それでもPIC16F627とPIC16F84についてはなんとかなってきました。
前回の終わりに書きましたように手元にかなり沢山所有しているPIC16F84A(Aがついたバージョンです)についても試してみることにしました。
MicrochipのドキュメントではPIC16F84とPIC16F84Aでは書き込みプログラムの一部に相違はあるものの大体は一まとめにして説明がなされているので、まあざっとテストをして簡単に終れるはず。
軽い気持ちで取り掛かったのでありましたが。
んなに簡単には終らないのですよ。私の人生は。
おお。
悪魔よ。
まずはお気楽な気持ちで書き込み済みのPIC16F84Aからプログラムコードを読み出してみましたら。
なんじゃあ、こりゃあ????
:020000040000FA
:100000000528FF3FFF3FFF3FFF3F831660050B00C2
:100010008312210885001020A20B0B28A1030928B8
:1000200000000000000000000000000000000000D0
:1000300000000000000000000000000000000000C0
:1000400000000000000000000000000000000000B0
:1000500000000000000000000000000000000000A0
:100060000000000000000000000000000000000090

おばけがでたあ。
怪奇現象であります。
未書き込みエリアは3FFFのはずなのにみごとに00が並んでいます。
それに書き込み済みのプログラムコードもなんだかおかしい。

念のため同じPIC16F84Aを秋月のPICKITUで読み出してみますと。
:020000040000FA
:100000000528FF3FFF3FFF3FFF3F83168501860125
:100010008312210885001020A20B0B28A1030928B8
:100020003E30A0008606A00B12280800FF3FFF3FCD
:10003000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FD0
:10004000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FC0
:10005000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FB0
:10006000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FA0

ちゃんとまともに読み出せます。
つうことは製作中のPIC WRITERに問題があるということになります。
しかし。
PIC16F627もPIC16F84もこんなおかしなことにはならなかったはず。
念のためにもう一度PIC16F627もPIC16F84も試してみましたがちゃんとまともに読み出せます。
ひょっとするとVpp電圧が足りんのか、とか起動時のVppの立ち上がりに問題があるのかなどと考えてあれこれ試してみたのですが一向にまともになってくれません。
そのうちに、なんと。
おお。
悪魔よ。悪霊よ。
お願いだから、もうどこかに行って頂戴!
こんな具合になってしまいました。
:020000040000FA
:10000000FF3F0000000000000000000000000000B2
:1000100000000000000000000000000000000000E0
:1000200000000000000000000000000000000000D0
:1000300000000000000000000000000000000000C0
:1000400000000000000000000000000000000000B0
:1000500000000000000000000000000000000000A0
:100060000000000000000000000000000000000090

でも秋月のPICKITUならば変わらず普通に読み出せます。
もう書き込み済みのPIC16F84Aをテストするのはあきらめて消去済みのPIC16F84Aを読んでみましたら。
おお。
読めた!
いや。
おかしい。
:020000040000FA
:10000000FF3FFF3FFF3FFF3FFF3FFF3F6005FF3FD9
:10001000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FF0
:10002000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FE0
:10003000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FD0
:10004000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FC0
:10005000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FB0
:10006000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FA0

最初のデータ行、アドレス0000の終わり近くに6005があります。
なんじゃあ。
こりゃあ。
もう思考回路は焼ききれてしまいそう…。
しかし。
焼ききれそうな脳細胞の奥のどこかでちらつくものが。
ううう。
はて。
何だっけ。
この数値。
どこかで見たことがあるような。
PICのメモリでは6005はLHが逆になっています。
正しい読みに直すと0560。
おお。
ひょっとすると、あれか?
やっぱり、あれでありました。

PIC16F84AのDevice IDは056Xです。
先頭から順にひいふうみいと数えてみると、おお7番目です(アドレスは0からなので6になります)。
しかし。
おかしいじゃないの。
Device IDのアドレスは2006H。
それはLoad Configコマンドを実行しなければ読み出せないはず。
そんなものはまだ実行しておりませぬ。
パワーオンリセット直後でMCLRにVppを供給したところですから当然USER PROGRAMエリアの先頭アドレス0000〜のはず。

さらにさらに。
日が変わって次の日に読み出せなくなってしまったプログラム書き込み済みのPIC16F84Aを性懲りもなく読み出してみましたら。
おお。
読み出せた!
が。
しかし。
やっぱりおかしい。
:020000040000FA
:10000000FF3FFF3FFF3FFF3FFF3FFF3F6005FB3FDD
:10001000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FF0
:100020003E30A0008606A00B12280800FF3FFF3FCD
:10003000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FD0
:10004000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FC0

本来USER PROGRAMエリアの先頭アドレス0000〜のはずのところにはやっぱり6005が。
そしてその後ろにはなんとFB3Fが!
すでに書きましたように6005(0560)はPIC16F84AのDevice ID(アドレス2006)です。
そしてその後ろのアドレス2007にはConfigがあります。
このプログラムの場合Configデータは3FFB(メモリ内配置ではFB3F)です。
どういうわけかアドレス0000〜のところを読み出しているはずなのに2000〜の値が出てきます。
そしてアドレス0030になってやっと本来のUSER PROGRAMが出てきます。
同じPIC16F84Aを秋月のPICKITUで読み出したところは上の方でお見せしていますが比較のために再掲します。
:020000040000FA
:100000000528FF3FFF3FFF3FFF3F83168501860125
:100010008312210885001020A20B0B28A1030928B8
:100020003E30A0008606A00B12280800FF3FFF3FCD
:10003000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FD0
:10004000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FC0
:10005000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FB0
:10006000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FA0

まさに怪奇現象、超常現象でありました。
おお。神よ。
これは試練でありますか。
お願いだから。
こおいうのはもうやめてちょうだい。

PICBASICコンパイラ[第223回]
2025.3.2 upload

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