AN 763: インテル® Arria® 10 SoCデバイスのデザイン・ガイドライン

ID 683192
日付 8/14/2020
Public
ドキュメント目次

4.5.4. SD/MMCおよびeMMCカード・インターフェイスのデザイン・ガイドライン

ガイドライン: SD/MMCの電源イネーブルがデザインで使用されている場合は、電源イネーブルが正しく機能することを保証します。それには、次の回避策の1つを実装することが必要です。

SD/MMCの電源イネーブルは、ロジックHighでSD/MMCカードへの電源を有効にし、ロジックLowで電源を無効にするように機能することを目的としています。ただし、SD/MMCの電源イネーブル (SDMMC_PWR_ENA_HPS) 信号とBSEL[1] 信号は、同じ専用I/Oピンを共有します。SD/MMCカードからブートを行う際は、パワーオンリセット中にBSEL[1] がLowに引き下げられ、ブートROMによって第2ステージ・ブート・ローダーがフラッシュからオンチップRAMにコピーされないようにします。

この問題には、回避策のオプションが3つあります。
  • ボード上で電源イネーブルをHighに強制する
  • GPIOを使用して電源イネーブルを制御する
  • ボード上で電源イネーブルラインを反転させ、ソフトウェアが電源を無効 (SDMMC_PWR_ENA_HPSをHigh) にした際に、ボードで信号を反転させてカードをオフにする

ガイドライン: 1.8VでのSDカードの動作を使用する場合は、電圧変換トランシーバーが適切に実装されていることを確認します。

SDカードは、最初は3Vで動作します。一部のカードは、初期化後に1.8Vに切り替えることができます。さらに、一部のMMCカードは、1.8Vと3.3Vの両方で動作することができます。HPS I/Oは固定電圧レベルを使用しており、動的に変更することができないため、1.8Vで動作可能なカードでは、レベルシフトと分離をサポートするトランシーバーが必要です。

Intel Arria 10 Hard Processor System Technical Reference ManualのSD/MMC Controller内のVoltage Switchingの章で示されているガイドラインに従います。一部のMMCカードは、1.8VのI/O動作のみで動作することができ、最初の3.0Vでの動作は必要ありません。このような場合は、レベルシフターは必要ありません。

表 9.  レベルシフターを必要とするSDカードの実装
HPS I/Oバンクの電圧 SDカードの電圧 レベルシフターの必要性
3.0V 3.0V なし
3.0V 1.8V あり
1.8V 3.0V あり
1.8V 1.8V あり

ガイドライン: 初期のIDモードとデータ転送モード、および通常の動作でのタイミングが考慮されていることを確認します。

SDカードは、最初に最大400KHzの周波数でIDプロセス時は動作します。デバイスが識別されると、ブートROMはデータ転送モードに切り替わります。このモードでは、クロックは最大12.5MHzで動作することができます。通常、第2ステージ・ブート・ローダーは、最大動作周波数の50MHzまでさらにインターフェイス速度を上げます。

詳細は、Intel Arria 10 Hard Processor System Technical Reference Manualの付録「Booting and Configuration」に記載されている「SD/MMC Controller Clock Options Based on CSEL and HPS_CLK fuse settings」の表を参照してください。

ガイドライン: HPSがリセットされる際に、SD/MMCカードがリセットされるようにします。

システムをSD/MMCから起動できるようにするには、HPSがリセットされるたびにSD/MMCカードもリセットされることを保証し、メモリーカードがブートコードで想定されている状態になるようにします。