超ローコストPICWRITERの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
「PICBASICコンパイラ」からスピンオフ!!
過去記事を参照することなどを考えて該当する過去記事は「PICBASICコンパイラ」のまま連載回もそのままとします。
以後は前回記事からの流れで[第236回]からとします。
「PICBASICコンパイラ」はなるべく早く連載を再開したいと考えています。
PICはローコスト、高機能で種類も豊富なお手軽マイコンですがプログラムを書き込むためのWRITERが必要です。
それをできるだけ安価に作ってしまおうというプロジェクトです。
最終的には製品化を考えています(組立キット、完成品)。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第291回]
●PIC16F54(9)リバースエンジニアリング(5)
前回の続きです。
前回は秋月のPICプログラマでPIC16F54に書き込みを行なっているときのPGCとPGDのパルスを記録してその最初のところの解析をしました。
[inc]No.202からデータ(プログラム)の書き込みが始まって[inc]No.211の後最後の[00][08]をWRITEしたところまでを説明しました。
その後はまた[inc]がずっと続いています。
[inc]No.412まで続いた後[ff][0f]を4回WRITEしています。
4回WRITEしていることから見ておそらくUSER IDのWRITEだと考えられます。
ちょいと頼りない表現なのはそのところまでの[inc]の回数に疑問があるからです。
前回書きましたように[inc]No.202の実行によってプログラムカウンタが示すアドレスは000になり、そこからユーザープログラムのWRITEが行なわれました。
ここでPIC16F54にWRITEしているテストプログラムではUSER IDは指定していません。
何も指定していないときには秋月のPICプログラマは[FF][0F]をUSER IDアドレスにWRITEするようです。
PIC16F54のUSER IDのアドレスは200〜203の4ワードです。
アドレス000が[inc]No.202の実行後ですからアドレス200は[inc]No.402の実行後になるはずです。
ところが上の記録では[inc]No.は412ですから10H(16)回[inc]が多く実行されています。
意味不明です。
秋月のPICプログラマの書き込みプログラムに起因する何かのせいでそうなっているのだとしか考えられません。
これはおかしいのですがPIC16F54の場合アドレス200〜203以外へのWRITEは無視される(アドレスのイメージとして200〜203へのWRITEになる?)らしいので結果としてそれでもよいようです。
[出典]Microchip Technology Inc. PIC16F5X Memory Programming Specification
実はおかしなところはこの後にも出てきます。
そのあたりについても書くつもりだったのですが本日も時間がなくなってしまいました。
相変わらず多忙です。
続きは次回に書くことにいたします。
超ローコストPICWRITERの製作[第291回]
2025.5.31 upload
前へ
次へ
ホームページトップへ戻る