2395751_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2395751_ja-JP

2395751_ja-JP

S32K312 EVB - LPSPIハードウェアPCS0を使用したSDカードSPI初期化

こんにちは、

私はRTD 6.0.0(Non-AUTOSAR Lpspi_ Ipドライバー)を使って、S32K312 EVB上でSPI経由でSDカードドライバーを実装しています。

SD物理層簡略仕様書によると、SPI初期化シーケンスは次のとおりです。

  1. 電源投入後はCSレベルをHIGHに維持してください。
  2. 少なくとも74個のクロックパルスを生成します(私は0xFFを10バイト送信することで80個のクロックを送信しています)。
  3. CS LOW を引いてください。
  4. CMD0 (0x40 00 00 00 00 95) を送信します。
  5. カードが「R1 = 0x01」と応答するまで、0xFFでポーリングしながらCSをLOWに保ってください。

私の問題は、ハードウェア制御のPCS0に関するものです。

ハードウェアPCS0でLpspi_Ipドライバを使用する場合、SPI転送中にLPSPIペリフェラルによってPCS信号が自動的にアサッサーされます。そのため、SD仕様で求められるCSをHIGHに保ち、その後CMD0とCS LOWを保持しながら最初の80クロックパルスを生成できません。

私には以下の質問があります。

  1. S32K312 LPSPIペリフェラルは、SPIクロックを生成しながらPCSを非アクティブ(HIGH)に保つことに対応していますか?
  2. SDカードの初期化シーケンス中にPCSを手動で制御したり、一時的にハードウェアPCSを無効化したりするための、Lpspi_Ip APIやレジスタ設定、または推奨される方法はありますか?
  3. そうでない場合、推奨されるアプローチは、SDカードのCSピンをGPIOとして構成し、SCK、MOSI、およびMISOのみにLPSPIを使用しながら手動で制御することでしょうか?

また、NXPがS32K3シリーズでSPIを介したSDカード通信を示すリファレンス実装、アプリケーションノート、サンプルプロジェクト、SDK/RTDの例があれば、ぜひ教えていただけますか?

よろしくお願いします。

Re: S32K312 EVB - SD Card SPI Initialization using LPSPI Hardware PCS0

こんにちは、 @parvathitp

PCS(周辺チップセレクト)信号はLPSPIモジュールによって制御されるよう設計されています。ハードウェアPCSを選択すると、SPIフレーム転送中にLPSPIペリフェラルによって自動的にアサッティングおよびデアッサートされます。

LPSPIモジュールに割り当てられているハードウェアPCS信号を手動で制御するための専用APIは提供されていません。したがって、あなたが言及したように、この場合の最良の方法はCSピンをGPIOとして設定することです。

この構成では、CS信号はSIUL2/GPIO APIを介して制御され、その制御はユーザーの責任となります

現在、この正確な実装を示すS32K3専用のアプリケーションノート、例プロジェクト、参考文書は存在しません。


BR、VaneB

タグ(1)
評価なし
バージョン履歴
最終更新日:
5 時間前
更新者: