外付けEEPROM
外付けEEPROMは、マイコンやSoCにI2CやSPIで接続して少量データを不揮発保持するためのシリアルEEPROMである。設定パラメータ、キャリブレーション値、製造情報、エラーログなど、電源断でも保持が必要だが書換え頻度や容量が小さいデータに適する。フラッシュに比べてバイト単位の書込みが可能で、ページ書込みと内部自動消去により扱いやすい。一般に書換え耐性は10^5〜10^6回、データ保持年数は温度条件により20〜100年程度が目安で、産業機器や車載、家電など広く用いられる。
原理と特徴
EEPROMセルはフローティングゲートに電荷を蓄えることで論理状態を保持する。シリアルEEPROMでは内部にアドレスレジスタとページバッファを持ち、READ/WRITE/STATUSなどの基本操作でアクセスする。フラッシュのような大きなブロック消去を必要とせず、アドレスを指定してバイト単位またはページ単位で直接書換えできる点が運用上の利点である。一方で書込みごとに内部タイム(tWR≒3〜10ms)が発生し、その間はビジー状態となる。
通信方式(I2C/SPI)
I2C接続の24xx系では7-bitアドレスとA0〜A2のアドレスピンで複数デバイスを同一バスに増設できる。速度はStandard(100kHz)、Fast(400kHz)、Fast-mode Plus(1MHz)、High-speed(3.4MHz)等に準拠する。SPI接続の25xx系はCSで選択し、WREN/WRDI、READ、WRITE、RDSRなどのオペコードを用いる。SPIはクロック数十MHzまで到達しやすく、高速読出しに有利である。WPピンやHOLDピンを備えた品種も多い。
書き込み動作と耐久設計
ページサイズは16〜128B程度が一般的で、ページ境界を跨ぐと自動的に折返す実装もある。書込み完了待ちはステータスレジスタや「Acknowledge Polling」で判定する。耐久性確保のため、頻繁に更新するデータはウェアレベリングやローリング(世代管理)を用い、電源断に備えて「2相コミット(無効→書込み→有効フラグ)」やCRC付与で一貫性を担保する。tWR中は電圧降下に弱いため、十分なデカップリングと電源監視(リセットIC)が望ましい。
容量とアドレッシング
容量は1〜512Kbit級が流通し、型番「24C02(2Kbit)」「24C64(64Kbit)」のように示される。ワードアドレスは容量に応じて1〜2B化し、16Kbit超では2Bアドレスが一般的である。大容量を仮想的に分割してバンク切替を行う品種もある。用途に応じ、製品識別、製造履歴、設定、ログなどの領域を論理パーティション化し、TLV(Type-Length-Value)形式で拡張性を確保すると保守が容易である。
保護機構と信頼性
WPピンによる全域/一部ライトプロテクト、ステータスビットによるソフト保護、出荷時ロック領域などを備える場合がある。ESDやサージ耐量、動作温度範囲は品種差が大きく、車載ではAEC-Q100準拠デバイスが選好される。高温下では保持年数が短くなるため、ライフサイクル設計で温度プロファイルを考慮し、データの冗長化や定期的なリフレッシュ読み出し・再書込み戦略を併用する。
回路実装とレイアウト
I2CではSDA/SCLのプルアップ抵抗をバス容量と立上り時間要件から決定し、不要な寄生容量を減らす配線が重要である。クロックやデジタル立上りが急峻なSPIはリターンパスを短く保ち、CS・SCK・MOSI・MISOのクロストークを抑える。電源は0.1µF+1µFの近接デカップリングを推奨し、WPやHOLDは未使用時も明確にプルして不定化を避ける。長配線や多段分岐ではシリーズ抵抗でリンギングを緩和する。
データ設計とフォーマット
実運用では構造化が信頼性を左右する。例えば、ヘッダ(バージョン・サイズ・CRC)、ペイロード(設定や係数)、フッタ(ミラーCRC/終端子)を定義し、世代N/N-1の二重化とジャーナル領域でロールバック可能にする。ログはリングバッファ化して書込み回数を分散し、セクションごとに更新周期を分離する。識別子や校正係数はTLV化し、将来の項目追加に耐えるようにする。
セキュリティ上の注意
シリアルEEPROMは物理的な改ざん耐性が高くないため、秘密鍵やルート・オブ・トラストの格納には適さない。機器の真正性やブート検証にはTPMやセキュアエレメントを用い、EEPROM側は公開情報、デバイスID、非機微なポリシー等の保持に留める。必要に応じてMACや署名で整合性検証を行い、リプレイ防止のためにカウンタやノンスを併用する。
I2Cのプルアップ設計の目安
目標立上り時間trに対し、Rpull-up≲tr/(0.847·Cb)が目安となる。バス容量Cbが200pF、tr上限300nsならR≲1.77kΩとなり、電流やEMIとのトレードオフで2.2kΩ〜4.7kΩ程度を選定する。分散配置より一点集中の方が見通しがよいが、枝線が長い場合は局所プルアップも検討する。
Acknowledge Pollingの実装
書込み発行後、デバイスがACKを返すまでREAD(または再START+スレーブアドレス)を反復する。ポーリング間隔は数百µs程度から開始し、最大tWRを越えない範囲で打切る。タイムアウト時は電源瞬断やバス障害を疑い、再初期化や領域退避を行う。
フラッシュ/FRAMとの比較
フラッシュは大容量・低単価だがブロック消去が必須で書換え管理が煩雑である。FRAMはほぼ瞬時書込み・高耐久(10^10回級)が利点だが容量単価が高い。小容量・細粒度更新が多い用途ではEEPROMが依然として取り回しに優れる。