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


超ローコストPICWRITERの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
「PICBASICコンパイラ」からスピンオフ!!
過去記事を参照することなどを考えて該当する過去記事は「PICBASICコンパイラ」のまま連載回もそのままとします。
以後は前回記事からの流れで[第236回]からとします。
「PICBASICコンパイラ」はなるべく早く連載を再開したいと考えています。
PICはローコスト、高機能で種類も豊富なお手軽マイコンですがプログラムを書き込むためのWRITERが必要です。
それをできるだけ安価に作ってしまおうというプロジェクトです。
最終的には製品化を考えています(組立キット、完成品)。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第253回]



●PIC16F84Aのテスト

前回はPIC16F627のテストをしました。
過去記事を確認してみたところPIC16F627については断続的にですがずいぶんたくさん書いています。
最初に書いたのは[第200回](2025/1/19)で最後は[第232回](2025/3/12)です。
PIC16F627と前後しながらPIC16F84とPIC16F84Aについても書いてきました。
PIC16F84は[第205回](2025/1/28)が最初で最後は[第230回](2025/3/10)です。
PIC16F84Aは[第223回](2025/3/2)が最初で最後は[第229回](2025/3/9)です。
2ヶ月近くの間試行錯誤をやっていたことになります。
なにをやってるんでしょうねぇというようなものですが行きつ戻りつしながら徐々に焦点が定まってきた感があります。
最終的にPIC16F84A用のWRITERプログラムとして集約したのですが、同じWRITERプログラムでPIC16F627とPIC16F84も対応できることを確認しています。
今回の合体版WRITERプログラムでPIC16F627がREAD/WRITEできたということはPIC16F84AもPIC16F84もREAD/WRITEできるはずです。
ということで今回はPIC16F84Aのテストです。
PIC16F84も同じプログラムでできるはずなのですがPIC16F84はDEVICE IDがありません([第250回])。
なのでPIC16F84については別の扱いを考えることにします。

下はPIC16F84Aのテストを行なったときのログです。
最初に/PICIDCKでDEVICE IDを読み出しました。
続いて/PICRDを実行しました。
logfile piciolog\0406144546.txt open
*** pic i/o ***
picio-30 connected
>/picidck
400C[60][05][FF][3F][03][00]
>/picrd
400E[60][05][FF][3F]
type=04,uadrs=00
[08]
0000[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0010[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0020[10][03][00][03][00][03][00][03][00][03][00][03][00][03][00][03][00]
0030[10][03][00][03][00][03][00][03][00][03][00][03][00][03][00][03][00]
0040[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0050[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]


07D0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
07E0[10][03][00][03][00][03][00][03][00][03][00][03][00][03][00][03][00]
07F0[10][03][00][03][00][03][00][03][00][03][00][03][00][03][00][03][00]
[01]
type=04,uadrs=01
[08]
400E[FF][3F][03][00]
[10]
>

あれ?
何かおかしなことになっていますね?
PIC16F84Aは複数個を使ってあれこれテストをしてきたので、このPIC16F84Aはたまたまイレギュラーな状態で書き込みテストをしたままになっていたのかもしれません。
もう記憶にありません。

とりあえず/ERASEを実行してからもう一度/PICRDを実行しました。

>/erase
400E[FF][3F][03][00]
>/picrdf
400E[FF][3F][03][00]
type=04,uadrs=00
[08]
0000[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0010[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0020[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0030[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0040[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0050[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]


07D0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
07E0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
07F0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
[01]
type=04,uadrs=01
[08]
400E[FF][3F][FF][3F]
[10]
>

消去できました。
/ERASEはテストOKです。

/HLOADを実行してテスト用のHEXファイルをロードしたあと/PICWRを実行し続いて/VERIFYを実行しました。
>/hload 16f84test.hex
loading 16f84test.hex ...
i=167,binbfend=68
>/picwr
400E[FF][3F][FF][3F]
i=6,b=2,[04]0000
[05][04][02][00][00][00][00][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
[01]
i=12,b=2,[00]0000
[05][00][02][00][00][05][28][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
[01]
i=22,b=6,[00]000a
[05][00][06][00][0A][83][16][85][01][86][01][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
[01]


i=64,b=2,[00]400e
[05][00][02][40][0E][FB][3F][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
[03]
picwrend

>/verify
inbfend=0
400E[FF][3F][FF][3F]
i=6,b=2,[04]0000
[06][04][02][00][00][00][00][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
(01)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)
i=12,b=2,[00]0000
[06][00][02][00][00][05][28][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
(02)(05)(28)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)
[o][o]


i=64,b=2,[00]400e
[06][00][02][40][0E][FB][3F][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
(10)(FB)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)
[o][o]
vfend
error=0
>

ベリファイの結果はerror=0になりました。

念のため/PICRDFを実行しました。
>/picrdf 16f84test250406.hex
400E[FB][3F][FF][3F]
type=04,uadrs=00
[08]
0000[10][05][28][FF][3F][FF][3F][FF][3F][FF][3F][83][16][85][01][86][01]
0010[10][83][12][21][08][85][00][10][20][A2][0B][0B][28][A1][03][09][28]
0020[10][3E][30][A0][00][86][06][A0][0B][12][28][08][00][FF][3F][FF][3F]
0030[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0040[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]


07D0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
07E0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
07F0[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
[01]
type=04,uadrs=01
[08]
400E[FB][3F][FF][3F]
[10]
>/exit

PIC16F84AもテストOKです。

超ローコストPICWRITERの製作[第253回]
2025.4.7 upload

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