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


超ローコストPICWRITERの製作

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

[第257回]



●PIC16F1827のテスト

PIC16F1827は[第188回][第199回]で説明をしました。
このPICはPIC16F用のPIC WRITERの最初のターゲットとして選んだPICで更に言えば昨年の最終回から今年の年明けをまたぐ回から書き始めたいわば記念すべきPICです。
でありますのに。
悲しいことにそもそもこのPIC16F1827の存在そのものをすっかりきれいさっぱり忘れてしまっておりました。
相当に危機的な状況であります。
ええ。
DEVICE IDの確認もしていませんでした。
DEVICE IDについては[第250回]で説明をしました。
そこにPIC16F1827はありません。
だめじゃん。
ということで今回はPIC16F1827のWRITERプログラムを組み込むことにしました。
あらためて確認してみたところ有り難いことに前回説明しましたPIC16F1503と全く同じWRITERプログラムでいけることがわかりました。
それなら話は簡単です。
PIC16F1827のDEVICE IDをプログラムで認識させるだけであとは既存のプログラムにつなげばそれでOKです。
下はPIC16F1827のDEVICE IDです。

[出典]Microchip Technology Inc. PIC16F1826/27 Memory Programming Specification

PIC16F1827のDEVICE IDは27AX/27BXです。

下はPIC16F1827のテストを行なったときのログです。
最初に/PICIDCKでDEVICE IDを読み出し続いて/PICRDFを実行しました。
logfile piciolog\0410111326.txt open
*** pic i/o ***
picio-30 connected

>/picidck
400C[A7][27]
>/picrdf
400E[A7][27][E4][3F]
type=04,uadrs=00
[08]
0000[10][05][28][FF][3F][FF][3F][FF][3F][FF][3F][23][00][8C][01][8D][01]
0010[10][21][00][8C][01][8D][01][F0][30][99][00][22][00][22][08][8C][00]
0020[10][15][20][A3][0B][10][28][A2][03][0E][28][0A][30][A1][00][1B][20]
0030[10][A1][0B][17][28][08][00][64][30][A0][00][00][00][00][00][00][00]
0040[10][FF][30][8D][06][A0][0B][1D][28][08][00][FF][3F][FF][3F][FF][3F]
0050[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0060[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[E4][3F][FF][3F]
[10]
>

DEVICE IDとして27A7が読み出されました。
続いて実行した/PICRDFでは以前に行なったテストのときに書き込んだプログラムが読み出されました。
/PICRDはOKです。

続いて/ERASEを実行したあともう一度/PICRDFコマンドを入力しました。
>/erase
400E[E4][3F][FF][3F]
>/picrdf
400E[E4][3F][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][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]


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]
>

全て消去されたことが確認できました。

/HLOADを実行してテスト用のHEXファイルをロードしたあと/PICWRを実行し続いて/VERIFYを実行しました。
>/hload 1827testg.hex
1827testg.hex cannot open
>/hload 16f1827testg.hex
loading 16f1827testg.hex ...
i=287,binbfend=118
>/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)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)
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]


i=114,b=2,[00]0010
[05][00][02][00][10][FF][3F][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
(10)(03)(00)(02)(00)(10)(01)(01)(00)(4A)(03)(FF)(3F)(FF)(3F)(FF)(3F)
picwrend

>/verify
inbfend=0
400E[03][00][02][00]
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)(03)(00)(02)(00)(10)(01)(01)(00)(4A)(03)(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)(02)(00)(10)(01)(01)(00)(4A)(03)(FF)(3F)(FF)(3F)(FF)(3F)
[o][o]


i=114,b=2,[00]0010
[06][00][02][00][10][FF][3F][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
(10)(FF)(3F)(A0)(32)(6D)(16)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)(FF)(3F)
[o][o]
vfend
error=0
>

ベリファイでerror=0になりました。

念のため/PICRDFを実行しました。
>/picrdf 16f1827testg250410.hex
400E[FF][3F][A0][32]
type=04,uadrs=00
[08]
0000[10][05][28][FF][3F][FF][3F][FF][3F][FF][3F][23][00][8C][01][8D][01]
0010[10][21][00][8C][01][8D][01][F0][30][99][00][22][00][22][08][8C][00]
0020[10][15][20][A3][0B][10][28][A2][03][0E][28][0A][30][A1][00][1B][20]
0030[10][A1][0B][17][28][08][00][64][30][A0][00][00][00][00][00][00][00]
0040[10][FF][30][8D][06][A0][0B][1D][28][08][00][FF][3F][FF][3F][FF][3F]
0050[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0060[10][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F][FF][3F]
0070[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[E4][3F][FF][3F]
[10]
>/exit


以上でPIC16F1827のテストは完了です。

超ローコストPICWRITERの製作[第257回]
2025.4.11 upload

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