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


PICBASICコンパイラ

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

[第213回]



●PIC16F627(8)logianaで解析

毎々書いておりますように当記事は私の備忘録を兼ねております。
忘れてしまわないうちに整理して書くことを基本にしております。
大体において過ぎてしまったことを何日か遅れで書くことになります。
今回のPIC16F627のBULK ERASEについても実際にはすでに解決しております。
ですので今更解決に至る試行錯誤のあれこれについてまで書かずともよいようなものですけれど。
そういう試行錯誤についても整理して書いておくことが後になって思わぬ役に立ったりいたします。
お読みいただく立場からすればもどかしい気持ちかもしれませんがしばしお付き合いをお願いいたします。

さて。
LOGIANAということになりますと当社製品のCPLD LOGIANAを使うべきところなのですが。
なにげにカメレオンロジアナを使ってしまいます。
そのココロは後ほど。
下がカメレオンロジアナの画面です。



PICKITUでPIC16F627にERASEをかけるところをキャッチしています。
サンプリングクロック5MHzはちょっときつかったようです。
PROBE00がPGC(クロックパルス)でPROBE01がPGD(データ)ですがPGCがうまく取れなくてつぶれてしまったところが出てきました。
せめて10MHz(0.1μs)は欲しいところです。
それでもなんとかコマンドを読み取ることができました。
上の画像はERASEの先頭のところで最初の’00’コマンド(Load Configuration)です。
記録データの最後は26msでその間に以下のコードが解読できました。
00 0000 Load Configuration ”0000”
06      Increment Address
06      Increment Address
06      Increment Address
06      Increment Address
06      Increment Address
06      Increment Address
04 07A0 Read Data from Program Memory ”07A0”
ここまででまだ先頭から234μsのところなのですがこのあと記録できた最後の26msまでずっとクロック、データとも出力されていませんでした。
最後のReadコマンドはDevice IDの読み出しで07A0はPIC16F627のDevice IDです。


[出典]Microchip Technology Inc.PIC16F62X EERROM Memory Programming Specification

サンプリングクロック5MHzでやっと26msまでの記録ができただけです。
ここまでで記録できたのはERASEに入ったばかりのところで本来はERASEとは関係のない最初のDevice IDの読み出しのところがやっと記録できただけですからこれではERASEの解析には全く役に立ちません。
さらに言うとサンプリングクロック5MHzはぎりぎりのクロックなので正確にパルスを記録しようとすると10MHzで記録しなければなりません。
すると記録できるのは5MHzの半分の13msの範囲だけです。
ちなみに自前のCPLD LOGIANAではなくてカメレオンロジアナを使った理由はその記録時間にありました。
カメレオンロジアナのRAMは131Kb×32bのRAMです。
これに対してCPLD LOGIANAは32Kb×8b(62256)です。
単純に前者の1/4の記録容量しかありません。
10MHzではわずか3msしか記録できません。
それではいかにも短いだろうということでカメレオンロジアナを使ったのですが。
実はPIC16F627をERASEしたときのPICKITUの実行状況を目視すると完了まで1秒ほどの間LEDが点滅していました。
つまり解析するためには最長1secほどの記録時間が必要ということになります。
それじゃあカメレオンロジアナでも歯が立ちません。
五十歩百歩です。
うむむむ。
ロジアナを使えば解析できると思ったのに。
考えが浅かったか。
さて。
どうする?

PICBASICコンパイラ[第213回]
2025.2.7 upload

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