EEPROMデータメモリへのデータ書き込み

【EEPROMデータメモリ】

多くのPICデバイスには、フラッシュメモリでできたデータメモリが独立に用意
されています。これをEEPROMデータメモリと呼んでいます。

このEEPROMデータメモリにあらかじめ定数を書き込んでおくには、どのように
したら良いかという課題です。
つまり、PIC内蔵EEPROMデータメモリに初期値をあらかじめ書き込みたい」
という場合の
プログラムでの記述方法の説明です。

【EEPROMデータメモリの扱い】

ミッドレンジのPICの場合、データメモリのEEPROMは、PICの中のメモリ
アドレス空間で、
下図のようにプログラムメモリの後ろ側に割り付けられ
ています。

 EEPROMはデータメモリなのですが、プログラムメモリのアドレス体系の
中に組み込まれているので注意が必要です。






ハイエンドのPIC18Fシリーズの場合には、この開始アドレスが「0xF00000」
となっています。

この開始アドレスの情報は、各PICデバイスごとの、Programming Specification
の中に記述があります。


【アセンブラでの記述方法】

アセンブラ命令を使ってEEPROMデータを確保するためには、「DE」と
いうアセンブラの
擬似命令を使い、下記のように記述します。
バイナリデータはもちろんですが、文字列も定数として確保することができます。
各データは1バイトデータとして順次確保されます。





【C言語での記述方法】

C言語の場合には、プリプロセッサを使う必要があり、それぞれのコンパイラで
記述方法は異なっています。
例えばCCS社のCコンパイラの場合には、下記のように記述します。





【確保データの確認方法】

これらコンパイルした結果、EEPROMにデータが確保できたかどうかは、
MPLABViewメニューでEEPROMを選んで表示内容で確認できます。
例えば上記
C言語の例では、下図のようになります。
この例でわかるように
C言語の場合の文字列には自動的に配列の最後に00
自動挿入されます。






【プログラマで書き込む】

実際に上記でコンパイルした結果を書き込むためには、プログラマの設定が
必要です。


MPLAB ICD2の場合
 MPLABのメニューから、Programmer → Settingで開く下記ダイアログで
図のようにEEPROMにチェックを入れる必要があります。









      目次へ