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


PICBASICコンパイラ

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

[第227回]



●PIC16F84A(5)CPLDロジアナで確認

いったい何がおきているのか。
なぜ/PICRD1で0000が返ってきてしまうのか。
Windows側のプログラムもPIC WRITERのプログラムも繰り返し確認したのですがそんなおかしなことになる要素は全くみつかりません。
とにかく最初の起動時に異常が起きることが多いという点に何かわけがありそうです。
いったい何が起きるのかそれをロジアナで確認してみたところ異常な現象が確認できました。
下がその画像です。



CPLDロジアナで記録した/PICRD1を実行したときの波形です。
PROBE0がPGC(クロック)です。
PROBE2がPGD(データ)です。
PROBE0(PGC)の最初の立下りから記録が開始されます。
PGCの最初の1クロックの立下りが0μsです。
最初はデータ部が全部0のLoad Configコマンドです。
PGCが連続して22個出力されています(最初の1クロックは0μsの前にありますから見えているのは21クロックです)。
その間PGDはずっとLになっています。
コマンド部(000000)とデータ部(最初に1ビットの0、続いて下位8ビット00000000、続いて上位6ビット000000、最後に1ビットの0)です。
最後のクロックは80μsのところです。
その次から6回のIncrement Addressコマンド06(ビット列は下位ビットから送出されるので011000になる)が送出されるはずなのですが2ビット目(90μsのところ)で突然クロック出力がなくなっています。
ロジアナの画面はそこで終っているように見えますがこのあとずっと最後までPGCもPGDもLのままです。
これだけを見るとWindowsプログラムかPIC WRITERプログラムに異常が発生してそこでハングアップしてしまったようにも思えますがPIC WRITERプログラムがハングアップしていない証拠にそのあと普通にデバイスIDとConfigデータをUSB送出しています。
そのデータが全部0なのはおそらくPGDラインがLになりっぱなしだからです。
何らかの原因でPGCとPGDのラインがLになってしまっているようにみえます。
おそらくそのことにPIC(PIC18F13K50)は気がつかないでPGCを出しているつもりでPGDを読み取っているのではないかと思います(なぜそんなことが?ありえないと思うのですが…)。

続いてもう一度/PICRD1を実行すると今度はまともな値が返ってきます。
ロジアナの記録を見ても異常はありません(下の画像)。



さきほどは90μsのところで信号が途切れてしまったのですが今回はまともです。
この後ろの波形も確認したのですがちゃんとIncrement Addressコマンドのコードがふつうに出力されています。

念のためにPIC16F84についてもテストをしてみました。
こちらは最初からまともな値が返ってきます(下の画像)。



PIC16F84の場合デバイスIDは設定されていないようで3FFFが返ってきます。

さて。
異常は確認できましたが…。
これからどうしましょう。

PICBASICコンパイラ[第227回]
2025.3.7 upload

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