マイコン内蔵フラッシュメモリの書き込み&消去動作:Q&Aで学ぶマイコン講座(55)(3/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。55回目は、初級者の方からよく質問される「マイコンに内蔵されたフラッシュメモリの書き込み&消去動作」についてです。
フラッシュメモリの書き込みフロー
フラッシュメモリのフローティングゲートに電子(ホットエレクトロン)を注入する際は、過剰注入にならないよう注意する必要があります。なぜなら、過剰注入によりフローティングゲートが劣化してしまうからです。
実際の製品ではデータシートに記載されていますが、フラッシュメモリの書き換え回数には限度があります。これは、フローティングゲートが書き換え操作によってダメージを受け、徐々に劣化するからです。過剰注入を行ってしまうと、フローティングゲートにさらにダメージを与え、劣化を増長してしまいます。そのため、書き換えの際には最適な状態で電子の注入を止めなければなりません。
さらに、マイコンはデバイスごとにその最適値が微妙に異なります。そのため、少しずつ電子を注入してその都度メモリセルの閾値をチェックし、閾値が最適値になった時に注入を止める必要があります。
図4に、ごく一般的なフラッシュメモリの書き込みフローを示します。なお、このフローは特定の製品のものではなく、書き込み操作を理解するためのイメージフローです。(注意:書き込みフローの詳細は各マイコンメーカーで異なり、ノウハウや特許などが関わってくるため、ユーザーに公開されることはありません)
フローの解説
1.フラッシュメモリを書き込みモードに設定します。
2.書き込み開始アドレスを設定します。(マイコンによって、書き込み単位がアドレス単位かページ単位かで異なります。仮にアドレス単位で書き込むとすると、1バイト=8ビットに対して1度に書き込みを行います)
3.注入する電子の最適な総量と、1回で注入する電子の最適量は各マイコンの開発段階で決定されますが、ここでは総量を100%とし、1回で注入する量をn%と仮定します。単純計算では1アドレスに100÷n回注入すれば書き込み終了となりますが、実際はデバイス間のバラツキにより注入回数(注入量)が前後します。
4.閾値をチェックしながら数回に分けて電子を注入します。注入完了の閾値も各マイコンで適正値が決められます。
5.閾値が規定値に達したら、次のアドレスの書き込みに移ります。このルーティンを最終アドレスまで行います。
6.実際にマイコンを動作させる際は読み出しモードで読み出すため、書き込み時の閾値チェックとは別に最終確認を行います。ここではフラッシュメモリを読み出しモードに設定し、書き込んだ全アドレスを読み出して期待値と比較し、全アドレス(全ビット)が一致することを確認します。
7.途中の過程で、「何度書いても閾値が規定値に達しない場合」と「読み出しモードで読み出した値と期待値が異なる場合」は、フラッシュメモリが異常であると判断し、異常終了(書き込みエラー)となります。
フラッシュメモリのトリミング
先ほど、電子の注入量にはマイコンごとにバラツキがあると説明しました。そのバラツキを調整するために、個々のマイコンの書き込みの最適量(n%の量)や閾値の最適値を出荷時にチェックして、フラッシュメモリの中に保存しておきます。そして、マイコンが市場に出た後、保存した値を基準にして実際の書き込みをマイコン自体で行います。
出荷時にLSIテスターなどを使って、これらの値をチェックしてフラッシュメモリの中に保存することを、「トリミング」と呼びます。実際の呼び方は各マイコンメーカーで異なりますが、行っている内容はほぼ同じです。保存されているパラメータやその内容はユーザーに公開する必要がありませんので、ユーザーは知ることができません。
電源遮断が起きたら、何が起きるか?
多く寄せられる質問の一つである「書き込みや消去中に電源が遮断された場合、メモリ内部はどのような状態になるのですか?」については、図4に示すフローのどこで電源が遮断されるかによって異なります。確率的には、注入を繰り返している時に遮断することが多く、この場合は、電源が遮断された時点で電子が注入されていたメモリセルが中途半端な書き込み状態になります。
電源が回復しても途中から書き込みを再開することはできないため、一度フラッシュメモリの内容を全消去して、再度書き込む必要があります。
また、マイコン自体に電源遮断時の対応機能を備えている製品はまれなため、マイコンの周辺回路(特に電源回路)に無停電の回路を設ける方法が一般的な対策となります。
(次の記事を読む)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マルチコアマイコンとシングルコアマイコンの違い
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。54回目は、中級者の方からよく質問される「マルチコアマイコンとシングルコアマイコンの違い」についてです。 - 電源の電圧をマイコン内蔵A-Dコンバーターで測定する裏技
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。53回目は、中級者の方からよく質問される「電源の電圧をマイコン内蔵A-Dコンバーターで測定する裏技」についてです。 - マイコンのメモリマップの読み方
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。52回目は、初心者の方からよく質問される「マイコンのメモリマップの読み方」についてです。 - NMI(ノンマスカブル割り込み)って何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。51回目は、初心者の方からよく質問される「NMI(Non-maskable interrupt/ノンマスカブル割り込み)って何?」についてです。 - マイコンで信号の周波数をppmレベルで測定する裏ワザ
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。50回目は、中級者の方からよく質問される「マイコンで信号の周波数をppmレベルで測定する裏ワザ」についてです。 - 最も効果的なノイズ対策がついに判明!? よくあるEMS対策を比較する【実験編】
すでにマイコンを使い込まれている上級者向けの技術解説の連載「ハイレベルマイコン講座」。前回は、【準備編】としてノイズの基礎知識とノイズの対策方法を復習し、それらの基礎知識をベースにした実験方法を説明した。今回は、【実験編】として実験の使用機材など、環境の説明と実際の実験結果を示し、その結果に対してEMS耐性改善効果の高い対策方法を考察する。