こんにちは、
私はRTD 6.0.0(Non-AUTOSAR Lpspi_ Ipドライバー)を使って、S32K312 EVB上でSPI経由でSDカードドライバーを実装しています。
SD物理層簡略仕様書によると、SPI初期化シーケンスは次のとおりです。
私の問題は、ハードウェア制御のPCS0に関するものです。
ハードウェアPCS0でLpspi_Ipドライバを使用する場合、SPI転送中にLPSPIペリフェラルによってPCS信号が自動的にアサッサーされます。そのため、SD仕様で求められるCSをHIGHに保ち、その後CMD0とCS LOWを保持しながら最初の80クロックパルスを生成できません。
私には以下の質問があります。
また、NXPがS32K3シリーズでSPIを介したSDカード通信を示すリファレンス実装、アプリケーションノート、サンプルプロジェクト、SDK/RTDの例があれば、ぜひ教えていただけますか?
よろしくお願いします。
こんにちは、 @parvathitp
PCS(周辺チップセレクト)信号はLPSPIモジュールによって制御されるよう設計されています。ハードウェアPCSを選択すると、SPIフレーム転送中にLPSPIペリフェラルによって自動的にアサッティングおよびデアッサートされます。
LPSPIモジュールに割り当てられているハードウェアPCS信号を手動で制御するための専用APIは提供されていません。したがって、あなたが言及したように、この場合の最良の方法はCSピンをGPIOとして設定することです。
この構成では、CS信号はSIUL2/GPIO APIを介して制御され、その制御はユーザーの責任となります。
現在、この正確な実装を示すS32K3専用のアプリケーションノート、例プロジェクト、参考文書は存在しません。
BR、VaneB