楽天市場
[無料でホームページを作成] [通報・削除依頼]

PIC16F EEPROM エミュレーション


EPROMを塔載しないPIC16F(12F/10F)のフラッシュメモリーを使用して
フラッシュメモリー上に仮想EEPROMを作成する試み。

<考え方/仕様>
?EEPROM領域として64ワードx2ページを使用する。

?PIC16Fの1ワードは14ビットなので、EEPROMデータを下位8ビットに書き込み、
上位6ビット(0x00~0x3F)をアドレスとしてデータの識別に使用する。
※使用可能なアドレスは0x00~0x3Eの63個、アドレス0x3Fはページの識別に使用するため除外。

?EEPROMの書き込みと読み出しに128ワード、?で示したデータに128ワードの計256ワードを使用。

?レジスタ使用数7

?機能
?) initial_eeprom
ページ0とページ1を全て消去する。

?)read_eeprom
アドレスを指定し、指定されたアドレスのEEPROMデータを取得する。
※同じアドレスで書き込まれたデータはあとから書かれたデータが読み出される。

?) write_eeprom
アドレス、データを指定し、EEPROMデータを書き込む。
※ページがデータで一杯になると、書き込まれたデータを整理し、別のページに移動。
元のページを全消去する。

?) erase_eeprom
アドレスを指定し、0xFFをEEPROMデータとして書き込む。

?デバイス対応
PMADRHの存在するバンクを指定することにより、全てのEEPROM非保有デバイスに対応。

;    +---------------+--------------------------+-------------+
;    |   Device       | PMADRH/L,PMADRH/L | PMCON1/2 |
;    +---------------+--------------------------+-------------+
;    |  PIC10F32X  |            BANK 0          |    BANK 0  |
;    +---------------+--------------------------+-------------+
;    |  PIC12F617  |            BANK 1          |    BANK 1  |
;    +---------------+--------------------------+-------------+
;    |  PIC16F72X  |            BANK 2          |    BANK 3  |
;    +---------------+--------------------------+-------------+
;    |  PIC16F75X  |            BANK 3          |    BANK 3  |
;    +---------------+--------------------------+-------------+
;    |  PIC16F1XXX |           BANK 3          |    BANK 3  |
;    +---------------+--------------------------+-------------+


最新版ダウンロード先

最新版では使用レジスタ(RAM)数を2まで低減しています。

Bequest333のページ(別館)

http://hp.vector.co.jp/authors/VA058115/

https://drive.google.com/file/d/1CMlPemqRZar8JgtAsgeB6zCNU45Nv1Ao/view?usp=drivesdk

PIC10F322テストプログラム
img_20131022-135823.jpg

メモリマップとソースコード変更点
img_20131022-135953.jpg

機能1.EEPROMへの書き込み
img_20131022-140118.jpg

機能2.EEPROMの消去と読み出し
img_20131022-140253.jpg

機能3.EEPROMの初期化
img_20131022-140411.jpg































































.