当サイトのコンテンツはご自身の判断と責任においてご利用ください。営利目的の利用は固くお断りします

更新2022/05/05

内蔵EEPEOMを利用する

本章では、そのPIC16F690のEEPROMをプログラムでどのように扱うのかを説明します。

制御系マイコンには必須の不揮発メモリー

マイコンは、電源をオフにするとプログラムの処理結果等を保存しているRAMの内容は消えてしまいます。
ところが、制御系に限らず処理系システムは、電源がオフになる直前の状態や、変更された設定を保存したい場合がよくあります。
電源を切るとデータが消えてしまう揮発性のRAMだけでマイコンが構成されていると、次に電源オンした時に全てそれらのデータが不明となってしまいます。
つまり、処理の連続性に問題が出るため大変不都合です。
そういう時は、電源オフでもデータを保持する不揮発性のメモリーがあると大変便利です。

EEPROM

EEPROMは、電源を切っても消えない不揮発性のメモリーの一種で、上記の電源オフで保持必要なデータなどを保存するためのメモリーです。
EEPROMは、読み書きの速度が他の不揮発性メモリーに比べ早いという特徴があります。
大容量品には不向きなため、フラッシュメモリーのようにプログラムを保存するというような大規模保存用途には向きません。
マイコンなど小規模システムの途中データ保持用として使われます。
PIC16F690の内蔵EEPROMは256バイトの容量を持っています。
だたし、内蔵EEPROMは、外部から直接書き込み・読み込みはできません。
全てプログラムで読み書きを行う必要があります。

(Microchip Technology PIC16F690 Data Sheet より抜粋)
尚、PIC16F690で作る汎用モジュールを前提としています。

PIC16F690の内蔵EEPROMを使う手順

PIC16F690のEEPROMに保持されているデータを読み出す手順例です。
内蔵EEPROMにはアドレスが割当てられており、指定できる範囲は 0x00-0xff となります。

 (以下1行目から順番に処理)
 ・EEADRレジスタにアドレスをセットします
 ・EEPGD=0
 ・RD=1
 ・EEDATレジスタの内容を読み取ります。

次に、EEPEOMに1バイト書き込む手順です。
 (以下1行目から順番に処理)
 ・EEIE=0
 ・EEIF=0
 ・EEADRにアドレスセット;
 ・EEDATに書き込みたいデータ1バイトをセット
 ・EEPGD=0
 ・WREN=1
 ・GIE=0
 ・EECON2=0x55
 ・EECON2=0xAA
 ・WR=1
 ・GIE=1
 ・WREN=0
 ・WRを読み出し1になるまで待機

上記2つの手順で読み書きできます。
わざわざ自分でEEPROM読み書きプログラムを書くのも面倒という場合は、PIC16F690汎用CソースコードのEEPROMの読み書き関数を使用してください。

(最新)

(中の人)


電子回路とファームウェア専門の元エンジニアが、初心者の頃の疑問や勉強・経験で知った「そうだったのか」を2009年から書いています。 ⇒続き

ページの先頭へ戻る
シェア
Tweet このエントリーをはてなブックマークに追加