マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「内蔵EEPROMの使い方」についてです。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初心者から多く寄せられる質問です。
マイコンには、EEPROMが内蔵されているものがあります。この内蔵EEPROMはどのように使えば良いのでしょうか? 内蔵フラッシュメモリのようにブートローダーを使って書き込むのでしょうか? それとも内蔵RAMのようにアドレスを指定して書き込むのでしょうか? 読み出す場合は、どのように読み出せばいいのでしょうか?
また、内蔵EEPROMのメリット/デメリットを教えてください。
マイコンに内蔵されているEEPROMの仕様は、製品ごとに異なります。ここでは、STマイクロエレクトロニクス(以下、ST)の汎用32ビットマイコン「STM32L1シリーズ」*1)に内蔵されているEEPROMを例にして解説します。
EEPROMは、メモリマップ上に割り当てられています。そのため、内蔵RAM(以下、RAM)のようにアドレスを指定してアクセスすれば、簡単に読み書きができます。図1にSTM32L152マイコンのメモリマップ上のEEPROMの位置を示します。この場合、EEPROMは”0x0808 0000”から”0x0808 4000”のアドレスに割り当てられています。
もちろん、ブートローダーを使って、アドレスを指定して書き込むこともできます。
ただし、リセット直後のEEPROMは書き込みが保護されているため、書き込む前に保護を解除する必要があります。
EEPROMの扱い方はRAMに似ていますが、電気的特性は大きく異なります。EEPROMの書き込みと消去にはミリ秒単位の時間が必要です。図2にSTM32L152マイコンの書き込み時間と消去時間を示します。この場合、EEPROMに書き込み操作をした後、最大3.94ミリ秒待ってからでないと正確なデータを読み出せません。
*1)STM32L1シリーズ
Copyright © ITmedia, Inc. All Rights Reserved.