組み込みメモリの基礎:EEPROM、FRAM、eMMC、SDカード
DigiKeyの北米担当編集者の提供
2019-10-16
マイクロコントローラベースのあらゆる組み込みシステムで主要な要素となるのがメモリです。たとえば、volatile変数をすべて保持し、バッファを作成し、各種のアプリケーションスタックを管理するには、十分な量のRAMが必要です。組み込みシステムにRAMが重要であるのと同様に、開発者にはアプリケーションコード、不揮発性データ、構成情報を保存する場所も必要になります。
問題は、不揮発性メモリ技術のオプションが拡大していることで、アプリケーションに適したメモリがどれかを判断するのが難しくなりつつあることです。
この記事では、さまざまな技術を紹介します。また、ON Semiconductor、Adesto Technologies、Renesas、ISSI、Cypress Semiconductor、Advantech、GigaDevice Semiconductor、Silicon Motionなどのサプライヤの例を利用して、開発者がメモリの種類ごとの特性を理解しやすくします。さらに、タイプごとに最適なケースについて説明し、開発者がそれらを効果的に使用できるようにします。
組み込みシステムのEEPROMおよびFRAM
組み込みシステムに加える最も一般的なメモリデバイスとして最初に考えられるのはEEPROMです。この不揮発性メモリは、組み込みアプリケーションのシステム構成パラメータの保存によく使用されます。たとえば、CANバスなどのネットワークに接続されるデバイスでは、CAN IDをEEPROMに保存します。
EEPROMには、組み込みシステムの開発に適した特性がいくつかあります。
- 物理的なフットプリントの小ささ
- 比較的安価
- 標準的なビットレート100K~1000Kビット/秒
- 標準化された電気的インターフェース
- I2CおよびSPIインターフェースを標準でサポート
現在、DigiKeyウェブサイトのEEPROMクイック検索には、EEPROMベンダー9社の5,800種類を超える各種EEPROMが表示されています。たとえば、ON SemiconductorのCAT24C32WI-GT3は32Kビット(4KB)EEPROMデバイスで、8ピンSOICパッケージで提供され最大1MHzの速度でI2Cバスに接続できます(図1)。
図1:CAT24C32WI-GT3はON Semiconductorの1KビットEEPROMで、I2CまたはSPIポートを介してマイクロコントローラに接続し構成データおよびアプリケーションデータを保存できます。(画像提供:ON Semiconductor)
EEPROMで興味深いのは、場合により実際のマイクロコントローラにも含まれることです。たとえば、RenesasのR7FS128783A01CFM#AA1 32ビットマイクロコントローラには4KBのオンボードEEPROMが搭載されており、開発者が利用できます。
これは構成のニーズが4KB以内に収まることを前提としています。収まらない場合は、開発者は外部デバイスを使用するか、またはマイクロコントローラのフラッシュメモリを使用して別のEEPROMをエミュレートする必要があります。
EEPROMは広く使われている反面、潜在的な短所がいくつかあります。
- 標準で1,000,000回の消去/書き込みサイクルに制限される
- 約500ナノ秒(ns)の書き込みサイクル
- セルの書き込みに複数の命令が必要
- データ保持は10年以上(最近では100年以上が一般的)
- 放射線の影響を受けやすく動作温度が高い
EEPROMは多くの用途で問題なく機能しますが、自動車、医療、宇宙システム産業など高信頼性が求められる用途では、FRAMなど堅牢性の高いメモリソリューションの使用が望まれます。
FRAMは「強誘電体ランダムアクセスメモリ」の略で、EEPROMメモリよりも優れた利点がいくつかあります。
- 高速(書き込みサイクルは50ns未満)
- より多くの書き込みサイクル(EEPROMの100万回に対して1兆回以上)
- 低電力(必要な動作電圧は1.5V)
- より高い放射線耐性
FRAMはEEPROMと同様のメモリサイズで提供されています。たとえば、Cypress SemiconductorのFRAMファミリは4Kビットから4Mビットの範囲に対応します。FM25L16B-GTRは16Kビットで(図2)、8ピンSOICパッケージで提供され最大20MHzで動作できます。
図2:CypressのFRAMファミリには4Kビットから4Mビットまでのメモリサイズの範囲があり、SPIを介してマイクロコントローラに接続し構成データやアプリケーションデータを保存できます。FM25L16B-GTR(写真)は最大20MHzで動作します。(画像提供:Cypress Semiconductor)
上位製品では、Cypress SemiconductorのCY15B104Q-LHXITが4Mビットのメモリサイズで、最大40MHzのインターフェース速度をサポートします(図3)。このFRAMメモリで目を引く機能として以下のようなものがあります。
- データ保持期間:151年間
- 100兆読み取り/書き込みサイクル
- シリアルフラッシュおよびEEPROMの直接ハードウェア置き換え品
ご想像どおり、FRAMはEEPROMよりも高価なので、用途に適切なメモリを選択する際には、デバイスが動作する環境要因を慎重に検討することが重要です。
図3:CY15B104Q-LHXITは4Mビットデバイスで最大40MHzで動作し、4Kビットから4Mビットまでの範囲をカバーするCypress FRAMファミリに属します。(画像提供:Cypress Semiconductor)
組み込みシステムのフラッシュ、eMMC、およびSDカード
組み込みシステムのフラッシュメモリは、さまざまな目的に使用できます。まず、外付けフラッシュは内蔵フラッシュメモリを拡張するために使用し、アプリケーションコード用に使用可能なメモリを増やせます。これは一般的にSPIフラッシュモジュール、たとえばGigaDevice SemiconductorのGD25Q80CTIGRなどを使用して行います(図4)。マイクロコントローラがSPIインターフェースを介してサポートできれば、GD25Q80CTIGRは内蔵メモリを8Mビット拡張するために使用できます。
図4:GigaDevice Semiconductor LimitedのGD25Q80CTIRフラッシュメモリを使用して、SPIポートを介し内蔵フラッシュ容量を8Mビット拡張できます。(画像提供:GigaDevice Semiconductor Limited)
次に、外付けフラッシュは、EEPROMまたはFRAMを使わずに構成情報やアプリケーションデータを保存するために使用できます。外付けフラッシュチップを代わりに使用することで、BOMコストを削減したり、アプリケーションからの保存データ用に内蔵メモリを増強したりすることもできます。マイクロコントローラのペリフェラルおよびメモリマップは、この外付けフラッシュを含むように構成できるので、開発者は、EEPROMまたはFRAMとのインターフェースに必要になるドライバへのカスタム呼び出しを特に行う必要なく、外付けフラッシュに簡単にアクセスできます。
この目的に使用する外付けフラッシュデバイスの例として、Adesto TechnologiesのAT25SF161があります(図5)。このデバイスはキューSPI(QSPI)インターフェースを使用します。QSPIは通常のSPIプロトコルのエクステンションで、システムのデータスループットを高めることができます。これは、1回のトランザクションで大量のデータを保存または取得する必要がある開発者にとって非常に魅力的な機能です。
QSPIは、QSPIペリフェラル内のCPU介入を取り除き、インターフェースを標準の4ピン(MOSI、MISO、CLK、CS)から6ピン(CLK、CS、IO0、IO1、IO2、IO3)に変更することで機能します。これにより4ピンを入出力に使用できます(従来のSPIでは2ピン)。
図5:Adesto TechnologiesのAT25SF161外付けフラッシュメモリデバイスは、内蔵フラッシュ拡張のために使用できます。QSPIインターフェースを備えており、データの保存と取得を高速化できます。(画像提供:Adesto Technologies)
最後に、フラッシュを使用してアプリケーションデータとペイロード情報を保存できます。たとえば、GPSシステムではすべてのGPSマップがプロセッサでローカルに保存されるわけではなく、代わりにSDカードやeMMCデバイスなどの外付けメモリストレージデバイスが使用されます。これらのストレージメディアはSPIまたは専用のSDIOインターフェースを介してマイクロコントローラに接続し、外付けメモリデバイスとの効率的なインターフェースを実現できます。
たとえばISSIのIS21ES04G-JCLI eMMCは、マイクロコントローラのSDIOインターフェースに直接接続して32Gビットのフラッシュストレージをデバイスに追加できます(図6)。
図6:ISSI eMMCフラッシュモジュールには32Gビットのメモリがあり、SPIまたはSDIOを介してホストに接続できます。(画像提供:ISSI)
電気的インターフェースの観点では、SDカードとeMMCデバイスは同じです。つまり、いずれのデバイスもパッケージは異なるものの、同じコモンピンを使ってマイクロコントローラへ接続しているのです。とはいえ、これら2つのメモリタイプは互いにまったく異なると言えます。SDカードと比較すると、eMMCには基本的に以下の相違点があります。
- より堅牢で物理的に破損しにくい
- より速いインタラクション
- より高価
- ボードにはんだ付けされ取り外し不可
ユーザーがメモリを取り外す必要がない場合は、eMMCを使用するとより堅牢なソリューションになりますが、エンドアプリケーション次第です。いずれの場合も、開発者はメモリを慎重に選択する必要があります。すべてのメモリはまったく同等には作られていないからです。
たとえば、車載用サブシステムでは、メモリの信頼性に対する実績や認証の面で標準的なフラッシュデバイスよりも高度な基準が求められます。このような用途の場合、開発者には、Silicon MotionのSM668GE4-AC 4GB eMMCモジュールなど、車載用に認証を受けたメモリが検討対象になるでしょう。
またSDカードについては、やはりeMMCと同様にすべてのSDカードが同等に作成されているわけではないので、開発者は購入するデバイスに細心の注意を払う必要があります。またカードの速度クラスと動作温度をよく調べることが欠かせません。たとえば、ほとんどのSDカードの温度定格は0~70˚Cで、これは民生用電子機器に適しています。
さらに、期待される最大インターフェース速度を示す速度クラスが、カードごとに割り当てられています。たとえば画像を保存するアプリケーションに使用するカードの場合、クラス2のカードは、AdvantechのHDビデオ用に設計されたクラス10のカード、SQF-MSDM1-4G-21C SQFlash 4GB microSDカードなどよりも遅くなります。
図7:AdvantechのSQF-MSDM1-4G-21C SQFlash microSDカードは4GBのメモリ容量で、ハイエンドのクラス10速度定格を備えます。(画像提供:Advantech Corp)
メモリ選択のヒントとコツ
組み込み製品に適した正しいメモリタイプとインターフェースを選択するのは、容易ではありません。以下に、開発者がアプリケーションに適切なメモリを選ぶ際に考慮すべき「ヒントとコツ」を示します。
- メモリの動作条件を次のように明確に特定します。
- 期待される消去/書き込みサイクル
- 温度、振動、放射線などの環境的な条件と要因
- データロード要件
- アプリケーションでメモリを支障なく使用するために必要なビットレートの最小値、希望値、最大値を規定します。
- 規定した目的のビットレートに最適なメモリインターフェースタイプを選択します。
- 車載用システムや宇宙システムなどの過酷な環境条件の場合は、車載用に認定されたメモリ、または放射線耐性のあるメモリを選択します。
- ブレイクアウトボードを使用して、選択したメモリデバイスをマイクロコントローラ開発キットと統合してテストします。
これらのヒントに従い、開発者は各自の組み込みアプリケーションに適切なメモリを選択できます。
まとめ
現在、開発者には幅広い不揮発性メモリデバイスの選択肢があり、アプリケーションコードから構成情報に至るデータを保存するために使用できるデバイスを選ぶことができます。これまで述べたように、開発者はアプリケーションごとのニーズを慎重に評価し、それらのニーズとコストが最適なバランスになるように、メモリタイプとインターフェースを慎重に選択する必要があります。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。