2025.6.22
前へ

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


超ローコストPICWRITERの製作

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

[第308回]



●PIC12F1612

今回からはいよいよ新しいフェーズに突入します。
PIC12F1612は8pinのPICです。


[出典]Microchip Technology Inc. PIC12F1612/16F1613 Data Sheet

8pinのPICは[第259回]でPIC12F629を扱いました。
なんたって8pinですからそれで出来ることはたかだか知れているという認識でした。
事実PIC12F629はI/Oポートの入出力とタイマーの機能があるほかはアナログコンパレータが使える程度のシンプルなPICです。
今回のPIC12F1612もそれに毛が生えた程度のもの、という先入観だったのですが。
なかなかにどうして機能てんこ盛りのすごいPICのようです。


[出典]Microchip Technology Inc. PIC12F1612/16F1613 Data Sheet

まず最初に目についたのは「Only 49 Instructions」というところです。
あれ?
PIC12F/16FにしてはInstructionが多い?
PIC12F629は35 Instructionsです([第259回])。
PICは命令数が少ないことがウリだったはずで今までさわってきたPIC12F/16Fは大体その程度でした(PIC18Fはかなり命令の種類が多くなります)。
タイマーの機能も充実しているようです。
ADCだけではなくて8bitですけれどDACも使えます。


[出典]Microchip Technology Inc. PIC12F1612/16F1613 Data Sheet

それを全部8pinでやってしまうというのですからすごい!
ですけれどとりあえずはいつものように簡単なタイマーサブルーチンを作ってパルス出力のテストをしてみることにします。
ざっと確認したところWRITERプログラムはPIC12F629と同じTYPE=3でいけそうです。
それならPIC12F629のときに使ったテストプログラムをWRITEするのが手っ取り早い。
と考えたのですが考えが甘過ぎたことが後でわかります。

いつものようにログです。
まずはデバイスIDを確認しました。
PIC12F1612のデバイスIDは3058です。
続いて/HLOADコマンドでPIC12F629TEST.HEXをロードして/PICWRを実行した後/VERIFYを実行しました。
logfile piciolog\0618215604.txt open
*** pic i/o ***
picio-30 connected
>/picidck
400C[58][30]
>/pictype=3
pictype=33
[03][01][00][00]
>/hload pic12f629test.hex
loading pic12f629test.hex ...
i=200,binbfend=82
>/picwr
400E[03][01][00][00]
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)(03)(01)(00)(00)(0E)(01)(2C)(84)(FF)(03)(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]
(10)(01)(00)(02)(00)(00)(00)(00)(00)(02)(03)(FF)(3F)(FF)(3F)(FF)(3F)

i=72,b=6,[00]0030
[05][00][06][00][30][A1][0B][16][28][08][00][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
(10)(01)(00)(06)(00)(30)(00)(00)(00)(36)(03)(FF)(3F)(FF)(3F)(FF)(3F)
i=78,b=2,[00]400e
[05][00][02][40][0E][F5][3F][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
(10)(03)(00)(02)(40)(0E)(00)(00)(00)(36)(03)(FF)(3F)(FF)(3F)(FF)(3F)
picwr end

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

i=78,b=2,[00]400e
[06][00][02][40][0E][F5][3F][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF]
(10)(FD)(3F)(FF)(3F)(FF)(3F)(DC)(31)(E8)(1D)(FE)(3E)(FF)(3F)(FF)(3F)
[x][o]error!
vfend
error=1
>

ベリファイの結果error=1が表示されましたがこれはPIC12F629と同じです([第262回]参照)。

ということで無事にテストプログラムも書き込めたようなのでPIC12F629で使ったテスト回路にセットしてパワーONしたのですが。
ウンともスンとも言ってくれません。
LEDは消えたままでした。

超ローコストPICWRITERの製作[第308回]
2025.6.22 upload

前へ

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