EEPROMとは?仕組み・用途をわかりやすく解説|I2C/SPI製品比較と書換耐性・設計ポイント

EEPROMとは何か — 基本定義と歴史的背景

EEPROM(Electrically Erasable Programmable Read-Only Memory)は、電気的に内容を書き換え・消去が可能な不揮発性メモリの一種です。読み出したデータは電源断後も保持されるため、設定情報やキャリブレーション値、シリアル番号などの長期保持に適しています。歴史的には、EPROM(紫外線で消去するタイプ)やPROM(書き込み後は変更不可)といった不揮発メモリの進化系として登場し、EPROMのように紫外線窓を必要とせず、システム内で直接書き換えできる点が大きな利点です。

内部構造と動作原理(浮遊ゲートと電荷の制御)

EEPROMの基本セルは、浮遊ゲート(floating-gate)を持つMOSFETに基づいています。浮遊ゲートは薄い絶縁層で隔てられており、ここに電子を注入(プログラム)するとゲート電圧の閾値が変わり、「0/1」を表現します。電子の注入や除去は主に以下の方式で行われます:

  • ホットエレクトロン注入(hot-electron injection):高電圧を印加してチャネル内の電子を浮遊ゲートに注入する方式。
  • フォウラー–ノードトンネル(Fowler–Nordheim tunneling):強い電界下で電子が絶縁層をトンネルさせる方式で、消去や書込みに用いられることが多い。

これらの現象により、個々のセルを選択して電気的に書き換えが可能となります。

EEPROMと類似メモリとの比較(ROM、EPROM、フラッシュ)

代表的な比較ポイントは次の通りです:

  • EPROM:紫外線で一括消去するタイプ。個別の消去不可。EEPROMは電気的に個別消去・書換可。
  • フラッシュメモリ:ブロック単位(セクタ/ページ)で消去するため高速かつ高密度。EEPROMはバイト/ワード単位での消去・書込みが可能で、細かい更新に向くが密度は低い。
  • SRAM/DRAM:揮発性メモリで電源断で内容消失。EEPROMは不揮発性。

設計上の選択は、必要な書換頻度、容量、コスト、書込単位(バイトかブロックか)などで決まります。

代表的な用途

  • 機器の設定値やユーザー設定の保持(例:IoTデバイスのWi‑Fi設定など)
  • 工場出荷時の校正値、キャリブレーションデータ
  • シリアル番号や製造情報の保存
  • ブートローダや小規模ログ(イベントカウンタなど)の保存
  • 組み込みマイコン内蔵の小容量不揮発メモリとしての利用

I2C/SPIなどのパッケージ化されたEEPROM製品

EEPROMは外付けデバイスとしてI2C(例:24Cxx系)やSPI(例:25xx系)で広く使われています。I2Cタイプはバス共有が容易で複数デバイス接続に便利、SPIはより高速なデータ転送が可能です。これらのデバイスはメーカーや容量により「ページサイズ(page write)」や「書込み時間」、「アドレス方式(8bit/16bit)」などの仕様が異なります。一般にページ書込みは16〜64バイト程度が多いですが、製品によって差があります。

性能指標:書換耐性(耐久)とデータ保持期間

主な性能指標は「書換耐性(書込み回数)」「データ保持(retention)」「書込み/消去時間」です。一般的な値の目安は以下です(製品により大きく異なるため、設計時は必ず該当データシートを参照してください):

  • 書換耐性:10万回(1×10^5)〜100万回(1×10^6)程度が一般的。近年のEEPROMでは多くが10^5〜10^6のレンジをうたっています。
  • データ保持期間:10年〜数十年(製品や動作温度に依存)。メーカーは典型値として数十年〜100年相当を保証する場合もありますが、温度や書込み履歴で劣化が進みます。
  • 書込み時間:数ミリ秒〜数十ミリ秒/バイトのオーダー(ページ書込みでまとめて書くと効率化できる)。

設計上の注意点とベストプラクティス

  • 頻繁な書込みを避ける:EEPROMは有限回の書換耐性があるため、ログの頻繁書込み等ではサーキュラバッファ+インデックスやウェアレベリング、書込み回数を記録して偏りを避ける工夫が必要です。
  • 電源断対策:書込み中の電源断でセルが中途半端な状態になる可能性があるため、書込み完了確認(ACKの監視や読み戻し検証)や電源監視(スーパーキャパ/電池)を導入することが推奨されます。
  • ブロック/ページ単位でのアクセス最適化:小さな単位で連続的に書く場合はページ書込みを活用して書込み回数と時間を削減する。
  • ソフトウェア側の保護:書込み禁止ピン(WP)やソフトウェアロック、複数バンク冗長化で誤消去や誤書込みを防ぐ。

マイコン内蔵EEPROMとフラッシュのエミュレーション

昔ながらのAVRやPICなどのマイコンには専用の内部EEPROMが搭載されているものがあり、外付け不要で便利です。一方で低コストマイコンでは専用EEPROMを廃してフラッシュ領域をソフトウェアでエミュレーション(EEPROMエミュレーション)する手法が採られます。エミュレーションではフラッシュ特有のブロック消去や限られた耐久性を吸収するためのページ管理やウェアレベリングアルゴリズムが用いられます。

EEPROMとフラッシュ/NANDの違い(設計上の選択基準)

  • 用途別:少量データの頻繁更新→EEPROM。大容量データ保存(ファームウェア、ログ)→フラッシュやNAND。
  • 書込み単位:EEPROMはバイト単位で書換可能、フラッシュはページ/ブロック単位。
  • コストと密度:同容量ではフラッシュの方が低コストで高密度。
  • 耐久性:小容量EEPROMは同容量のフラッシュより耐久性が高い場合があるが、NANDフラッシュは耐久性が低く、ウェアレベリングが必須。

他技術との比較(FRAM、MRAMなど)

近年ではFRAM(FeRAM)やMRAM、ReRAMといった新しい不揮発メモリも登場しています。これらはEEPROMに比べて書込み速度が速く、書換耐性が高い(ほぼ無制限に近い)ため、頻繁なログ用途や高耐久用途で注目されています。とはいえ、コストや入手性、容量面でEEPROMが依然として有利な場面は多いです。

実務でよく見る製品例と規格

  • I2C EEPROM:MicrochipやST、NXPの24Cxxシリーズ(例:24C02、24C64)
  • SPI EEPROM:Microchipの25xxシリーズなど(例:25LC512)
  • マイコン内蔵EEPROM:Atmel(現Microchip)AVRの内蔵EEPROM、Microchip PICの一部シリーズなど

各製品はデータシートにページサイズ、最大書換回数、保持期間、消費電流、動作電圧などが詳細に記載されています。設計時は必ずデータシートを参照してください。

実装時のチェックリスト(まとめ)

  • 必要容量とインターフェース(I2C/SPI/内蔵)を決定する
  • ページサイズとアドレス方式を確認する(ランダムリードの方法など)
  • 書換耐性・保持期間を評価し、必要なら冗長化やウェアレベリングを設計する
  • 書込み中の電源断対策(完了確認、電源監視)を実装する
  • ソフトウェアでの書込み回数管理とログ戦略を考慮する(重要データは複製して保存)

まとめ

EEPROMは、少量の不揮発データを柔軟に保存・更新する用途に最適なメモリ技術です。浮遊ゲートセルを用いることで電気的に個別書換が可能であり、I2C/SPIのようなインターフェースを介して簡単に外付け利用できます。一方で書換耐性や書込み時間、容量当たりのコストなどの制約があるため、用途によってはフラッシュや新しい不揮発メモリ技術との比較検討が必要です。実装時はデータシートの仕様確認、書込み回数管理、電源断対策などの基本的な設計配慮を忘れないようにしましょう。

参考文献