PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第189回]
●PIC16F1827(2)VDD FIRST
あけましておめでとうございます。
本年もよろしくお願いいたします。
昨年から年をまたいでの続きです。
PIC WRITERとしてPIC16Fも対象にすることにしたその手始めに選んだのはPIC16F84でもなくPIC16F628でもなくPIC16F1827でした。
PIC16F1827は前者2種に比べれば段違いな高機能です。
それでいて価格ははるかに安い。
ということでその型に合う用途としては近年はもっぱらPIC16F1827を使っています。
しかしPIC WRITERのターゲットとしてPIC16F型としてPIC16F1827を最初に選択したのはそういうことが理由ではありません。
相当昔に開発されたPIC16F84がおそらく最も書き込みプログラムがシンプルで容易なのではないかと考えたのですが。
DataSheetをざっと見たところ特にBulk Eraseのあたりが何回読んでも意味不明でひょっとするとミスプリントではと疑われる下りがありました。
今としてはおそらく通常使うことがないであろうPIC16F84を最初に手がけなくてはならない理由がある訳でもありませんからそれは後ほどじっくりさわってみることにしました。
すると次は順序としてはPIC16F628ということになります。
ところがこれもなかなかに扱い難いものであることが判明しました。
それは通常モードとプログラムモードとを区別するための電源の投入順序の問題です。
PIC16F628はPIC WRITERにセットしたときに書き込み用の高電圧VHHを使わないで通常のVDD電圧のみを使って書き込みを行なう低電圧書き込みモードとVHH電圧で書き込みをおこなう高電圧書き込みモードを選択するための方法としてVDDとVHHの投入順序を規定しています。
こちらがPIC16F628です。
[出典]Microchip Technology Inc.PIC16F628 Flash Memory Programming Specification
高電圧書き込みを行なうためにはVDDよりも先にVHHを立ち上げなくてはなりません(FIGURE 2−2)。
そんなあ。
そうするためにはVHHだけではなくてVDDを制御するための回路が必要になります。
もっともそれはトランジスタ1本あればできることなのですけれど。
歳を取ってくると年々ものぐさになってきます。
面倒なことは出来るだけ避けたいとつい考えてしまいます。
こちらはPIC16F1827です。
[出典]Microchip Technology Inc.PIC18F2XK20/4XK20 Flash Memory Programming Specification
おお。
PIC16F1827ならば高電圧書き込みモードについてはVDDとVHHの投入順序は問わないとあります。
そうでしょう。そうでしょう。
そうあるべきです。
しからば低電圧書き込みモードにエントリするためには?
その条件としてはConfigのLVPビットが1であることが必須です(工場出荷時のデフォルト値)。
ここを0にすると高電圧書き込みモードオンリーになります。
なお高電圧書き込みモードはこのビットを無視します。
なるほど。納得。
さらに。
1.VDD投入後はMCLR=Lにします。
2.特定のキーデータ(32ビット)を送ります。
低電圧書き込みモードにエントリするための手続きはそれだけ手間がかかりますが、書き込みを行なうためにはどうせコマンドやらデータやらをいっぱい送らなければいけない訳ですからそんなキーコードを送るくらいは朝飯前のことでありましょう。
第一PIC WRITERにはVHH電圧回路を搭載していますから低電圧書き込みのための機能などはなから無用のことです。
全然ノープロブレムであります。
こちらはその波形図です。
[出典]Microchip Technology Inc.PIC16F1827 Flash Memory Programming Specification
ということで最初のターゲットとしてPIC16F1827を採用したのでありましたが。
ことはそれだけで済んだのではありませんでした。
次回に続きます。
PICBASICコンパイラ[第189回]
2025.1.1 upload
前へ
次へ
ホームページトップへ戻る