PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第171回]
●PIC18F14K22でまさかのエラー
PIC18F14K22の書き込みテストについては[第72回]に書いています。
昨年8月の記事です。
PIC WRITER回路は今動作テストをしているものと同じ基板ですが、その記事の中でそれを制御しているのはPICではありません。
ND80Z3.5の82C55入出力コネクタ26pinに接続してZ80のプログラムでテストをしました。
あらためて記事を読んでみますとPIC18F13K50用の書き込みプログラムで正しく書き込みができたと書いています。
それならこのところテストをしてきたPIC18F13K50に書き込んだPIC WRITERプログラムでも同じように書けて当然、ということでごく軽い気持ちで今回PIC18F14K22の書き込みテストを行いました。
ところが。
まさかのエラーです。
なんと/ERASEが全く駄目。
全然クリアされません。
んな、ばかな。
まさか入口でこけてしまうなんて。
ありえない展開です。
またしてもまるっと2日ほど混乱の闇の中でもがくことになりました。
そもそもPIC18F13K50もPIC18F14K50もそしてPIC18F2450もPIC18F2550もPIC18F4550も特に問題にならずに全消去、書き込み、ベリファイまでできているのになぜPIC18F14K22では全消去すらできないのか。
勿論過去記事も調べ当時のノートも確認しました。
PIC18F14K22に書き込みテストをしたときのND80Z3.5のログが残っていたのでそれも確認しました。
その様子は[第72回]の画面ショットでも確認できます。
なぜなのか?
ICには微妙な差異があってそれはDataSheetからは見えない場合があります。
まあ、クセのようなものでありますね。
アナログっぽいところがあります。
ひょっとすると、そこか。
昨年テストを行なったND80Z3.5版はND80Z3.5にPIC WRITER基板を接続していました。
電源はND80Z3.5に接続した+5V2Aの電源です。
一方いま行なっているPICBS01にPIC WRITER基板を接続しての書き込みテストでの電源はUSBケーブルを経由してWindowsパソコンから供給される+5Vmax500mA。
容量としては十分ですが供給電圧が微妙に低い可能性があります。
その可能性を疑ってPIC WRITER回路のDC/DC回路にちょいと抵抗を追加して本来Vpp=9Vのところを10Vほどに吊り上げてテストをしてみました。
ちょいとオーバーですが多分この程度なら大丈夫だろうという、これは長い間の経験から得た感触です。
最近のICはちょいとオーバーしたくらいの電圧では滅多に壊れたりはしません。
ええ。大抵は、ですけれど。
そうしたら。
おお。
ぬぁんと。
消去できてしまいました。
それならば、ということで。
まずはプログラムデータを通常の+9Vで書き込んでみましたら。
やっぱりだめ。
全然書き込みできません。
然らば。
えーい。
面倒なり。
いっそのこと。
Vppを禁断の+12Vにして/ERASE、/PICWR、/VERIFYをやってしまいました。
ええ。
Vpp+9VmaxのPIC18F14K22に。
なんとも乱暴な話ですが。
すると。
おお。
書き込みもベリファイもできてしまったではありませぬか。
が。
しかし。
一部ですがベリファイエラーが起きている?
下がそのときのログです。
logfile piciolog\1204174630.txt open *** pic i/o *** picio-30 connected >/hload bs14k22_a.hex loading bs14k22_a.hex ... i=4107,binbfend=1813 >/erase endcode=01 >/erase endcode=01 >/picwr startcode=01 i=6,b=2,[04]0000*i=14,b=4,[00]0000*i=22,b=4,[00]0008*i=42,b=16,[00]0020*i=62,b=16,[00]0030*i=82,b=16,[00]0040*i=102,b=16,[00]0050*i=122,b=16,[00] 0060*i=142,b=16,[00]0070*i=162,b=16,[00]0080*i=182,b=16,[00]0090*i=202,b=16,[00]00a0*i=222,b=16,[00]00b0*i=242,b=16,[00]00c0*i=262,b=16,[00] 00d0*i=282,b=16,[00]00e0*i=302,b=16,[00]00f0*i=322,b=16,[00]0100*i=342,b=16,[00]0110*i=362,b=16,[00]0120*i=382,b=16,[00]0130*i=402,b=16,[00] 0140*i=422,b=16,[00]0150*i=442,b=16,[00]0160*i=462,b=16,[00]0170*i=482,b=16,[00]0180*i=502,b=16,[00]0190*i=522,b=16,[00]01a0*i=542,b=16,[00] 01b0*i=562,b=16,[00]01c0*i=582,b=16,[00]01d0*i=602,b=16,[00]01e0*i=622,b=16,[00]01f0*i=642,b=16,[00]0200*i=662,b=16,[00]0210*i=682,b=16,[00] 0220*i=702,b=16,[00]0230*i=722,b=16,[00]0240*i=742,b=16,[00]0250*i=762,b=16,[00]0260*i=782,b=16,[00]0270*i=802,b=16,[00]0280*i=822,b=16,[00] 0290*i=842,b=16,[00]02a0*i=862,b=16,[00]02b0*i=882,b=16,[00]02c0*i=902,b=16,[00]02d0*i=922,b=16,[00]02e0*i=942,b=16,[00]02f0*i=962,b=16,[00] 0300*i=982,b=16,[00]0310*i=1002,b=16,[00]0320*i=1022,b=16,[00]0330*i=1042,b=16,[00]0340*i=1062,b=16,[00]0350*i=1082,b=16,[00]0360*i=1102,b=16,[00] 0370*i=1122,b=16,[00]0380*i=1142,b=16,[00]0390*i=1162,b=16,[00]03a0*i=1182,b=16,[00]03b0*i=1202,b=16,[00]03c0*i=1222,b=16,[00]03d0*i=1242,b=16,[00] 03e0*i=1262,b=16,[00]03f0*i=1282,b=16,[00]0400*i=1302,b=16,[00]0410*i=1322,b=16,[00]0420*i=1342,b=16,[00]0430*i=1362,b=16,[00]0440*i=1382,b=16,[00] 0450*i=1402,b=16,[00]0460*i=1422,b=16,[00]0470*i=1442,b=16,[00]0480*i=1462,b=16,[00]0490*i=1482,b=16,[00]04a0*i=1502,b=16,[00]04b0*i=1522,b=16,[00] 04c0*i=1542,b=16,[00]04d0*i=1562,b=16,[00]04e0*i=1582,b=16,[00]04f0*i=1602,b=16,[00]0500*i=1622,b=16,[00]0510*i=1642,b=16,[00]0520*i=1662,b=16,[00] 0530*i=1682,b=16,[00]0540*i=1702,b=16,[00]0550*i=1722,b=16,[00]0560*i=1742,b=16,[00]0570*i=1762,b=15,[00]0580*i=1774,b=8,[00]0590*i=1780,b=2,[00] 2040*i=1786,b=2,[04]0000*i=1793,b=3,[00]0001*i=1799,b=2,[00]0005*i=1809,b=6,[00]0008*vfend >/verify inbfend=0 startcode=01 i=6,b=2,[04]0000[01]*i=14,b=4,[00]0000[01]*i=22,b=4,[00]0008[0f]*verify error! 8,9a-0b i=42,b=16,[00]0020[01]*i=62,b=16,[00]0030[01]*i=82,b=16,[00]0040[01]*i=102,b=16,[00]0050[01]*i=122,b=16,[00]0060[01]*i=142,b=16,[00] 0070[01]*i=162,b=16,[00]0080[01]*i=182,b=16,[00]0090[01]*i=202,b=16,[00]00a0[01]*i=222,b=16,[00]00b0[01]*i=242,b=16,[00]00c0[01]*i=262,b=16,[00] 00d0[01]*i=282,b=16,[00]00e0[01]*i=302,b=16,[00]00f0[01]*i=322,b=16,[00]0100[01]*i=342,b=16,[00]0110[01]*i=362,b=16,[00]0120[01]*i=382,b=16,[00] 0130[01]*i=402,b=16,[00]0140[01]*i=422,b=16,[00]0150[01]*i=442,b=16,[00]0160[01]*i=462,b=16,[00]0170[01]*i=482,b=16,[00]0180[01]*i=502,b=16,[00] 0190[01]*i=522,b=16,[00]01a0[01]*i=542,b=16,[00]01b0[01]*i=562,b=16,[00]01c0[01]*i=582,b=16,[00]01d0[01]*i=602,b=16,[00]01e0[01]*i=622,b=16,[00] 01f0[01]*i=642,b=16,[00]0200[01]*i=662,b=16,[00]0210[01]*i=682,b=16,[00]0220[01]*i=702,b=16,[00]0230[01]*i=722,b=16,[00]0240[01]*i=742,b=16,[00] 0250[01]*i=762,b=16,[00]0260[01]*i=782,b=16,[00]0270[01]*i=802,b=16,[00]0280[01]*i=822,b=16,[00]0290[01]*i=842,b=16,[00]02a0[01]*i=862,b=16,[00] 02b0[01]*i=882,b=16,[00]02c0[01]*i=902,b=16,[00]02d0[01]*i=922,b=16,[00]02e0[01]*i=942,b=16,[00]02f0[01]*i=962,b=16,[00]0300[01]*i=982,b=16,[00] 0310[01]*i=1002,b=16,[00]0320[01]*i=1022,b=16,[00]0330[01]*i=1042,b=16,[00]0340[01]*i=1062,b=16,[00]0350[01]*i=1082,b=16,[00]0360[01]*i=1102,b=16,[00] 0370[01]*i=1122,b=16,[00]0380[01]*i=1142,b=16,[00]0390[01]*i=1162,b=16,[00]03a0[01]*i=1182,b=16,[00]03b0[01]*i=1202,b=16,[00]03c0[01]*i=1222,b=16,[00] 03d0[01]*i=1242,b=16,[00]03e0[01]*i=1262,b=16,[00]03f0[01]*i=1282,b=16,[00]0400[01]*i=1302,b=16,[00]0410[01]*i=1322,b=16,[00]0420[01]*i=1342,b=16,[00] 0430[01]*i=1362,b=16,[00]0440[01]*i=1382,b=16,[00]0450[01]*i=1402,b=16,[00]0460[01]*i=1422,b=16,[00]0470[01]*i=1442,b=16,[00]0480[01]*i=1462,b=16,[00] 0490[01]*i=1482,b=16,[00]04a0[01]*i=1502,b=16,[00]04b0[01]*i=1522,b=16,[00]04c0[01]*i=1542,b=16,[00]04d0[01]*i=1562,b=16,[00]04e0[01]*i=1582,b=16,[00] 04f0[01]*i=1602,b=16,[00]0500[01]*i=1622,b=16,[00]0510[01]*i=1642,b=16,[00]0520[01]*i=1662,b=16,[00]0530[01]*i=1682,b=16,[00]0540[01]*i=1702,b=16,[00] 0550[01]*i=1722,b=16,[00]0560[01]*i=1742,b=16,[00]0570[01]*i=1762,b=15,[00]0580[01]*i=1774,b=8,[00]0590[01]*i=1780,b=2,[00]2040[01]*i=1786,b=2,[04] 0000[01]*i=1793,b=3,[00]0001[01]*i=1799,b=2,[00]0005[01]*i=1809,b=6,[00]0008[01]*vfend >/exit リモート接続を終了しました logfile closed at Wed Dec 04 17:49:23 2024 |
ベリファイの最初の行でエラーが起きています。
i=22,b=4,[00]0008[0f]*verify error! 8,9a−0bです。
アドレス0008です。
もとのデータが9Aのところ0Bだというのですが。
下位4ビットの”A”が書き込み不足で”B”になるというのはありえないことではないとも思えますが上位4ビットの”9”が”0”つうのはちょいとありえない。
なんじゃこりゃあ。
それで書き込んだPIC18F14K22を秋月のPICプログラマにかけてREADしてHEXファイルを作成しました。
そのファイルをもとのHEXファイルと比較してみましたら。
もういちど。
なんじゃこりゃあ。
左側がもとのHEXファイルで右側が書き込んだPIC18F14K22からREADして作成したHEXファイルです。
矢印の3箇所で相違が出ています。
しかしベリファイでエラーになったのは一番上の1箇所のみ。
下の2箇所については後に相違のわけとベリファイエラーにならなかった理由がわかってきます。
まずは注目したい一番上のアドレス0008のところです。
左側のもとのファイルでは0008以下のデータはその次の行の9AEF02F0の4バイトです。
それが右側では0BC0E9FFになっているばかりではなく本来なら何も書き込みされていない(値はFFである)はずのそのうしろのアドレス000C〜000Fにも意味不明の値があります。
よく見るとやはり書き込んでいないはずのアドレス0004〜0007にもFFではない値があります。
さらにさらによく見てみるとアドレス0008に書かれるはずの9AEF02F0がなんと本来書かれるはずのないその次の0018に書かれているではありませんか!
本来かけてはならない+12Vをかけてしまったための異常なのか?
それにしてはただの異常書き込みというよりは何か意味が隠れているような謎の書き込みのように思えます。
こ、これは。
悪魔が私を試しておるのか!
この難問を解けとのたもうているのか!
むむ。
快刀がほしい。
悪魔よ、去れ。
いい加減に去ってちょうだい!
次回に続きます。
PICBASICコンパイラ[第171回]
2024.12.5 upload
前へ
次へ
ホームページトップへ戻る