チームの皆さん、こんにちは。
私たちは、i.MX8MP EVK構成に基づいたi.MX8MPカスタムボードを使用しています。
i.MX8MP EVKでは、ECSPI2を通じてSPIデバイスを接続しています。既存のEVKデバイスツリー構成では、SPI通信は正常に動作しており、オシロスコープ上で期待されるSCLK波形を観測できます。
私たちのカスタムボードでは、SPIインターフェースがECSPI2ではなくECSPI1に接続されています。
そこで、デバイスツリーの設定をECSPI1を使用するように変更しました。しかし、ECSPI1では、SCLKピンで期待される/正しいSPIクロックパルスを観測することができません。
様々なデバイスツリー構成を試してみましたが、問題は解決しません。
1. 既存のECSPI2構成に類似したECSPI1
コントローラーをECSPI2からECSPI1に変更し、対応するECSPI1のpinctrlグループを作成しました。これにはSCLK、MOSI、MISO、CSが含まれます。
2. 別々のCS pinctrlグループ
また、別のpinctrl_ecspi1_csを定義してECSPI1のpinctrlグループと組み合わせて使うことも試みました。
3. 明示的なECSPI1ピン多重化構成
ECSPI1のピンを明示的に定義することも試みました。
しかし、ECSPI1では、期待されるSPIクロックパルスを観測することができませんでした。
i.MX8MPでECSPI1を設定する際に、&ecspi1を有効にしてECSPI1のSCLK/MOSI/MISO/CSピンを設定する以外に、デバイスツリーやpinctrlの変更が必要かどうかを知りたいです。
特に、ECSPI1を正しく動作させるために、ECSPI1固有のpinctrl、clock、IOMUX、またはその他のデバイスツリー構成を追加する必要があるでしょうか?
同じSPI構成がECSPI2でも動作するため、インターフェースをECSPI2からECSPI1に移す際に追加設定が必要かどうかを理解したいです。ご指導ありがとうございます。
こんにちは 、
添付ファイルにdtsファイルがありますのでご確認ください。
こんにちは、 @SWETHA1さん
ECSPI1に関するdtsファイルを共有してください。
B.R
こんにちは@pengyong_zhangさん
以下に観察結果を示します。
1. 提案された変更を適用した場合のロジックアナライザーの結果
2. 以前に添付した dts の上に以下のパッチを使用した際のもう 1 つの観察結果
上記のグラフはこの変化とともに観察されました
pinctrl_ecspi1: ecspi1grp {
FSL,ピン = <
MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK 0x80
MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI 0x80
MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO 0x80
>;
};
提案された変更により、時計は予想通りではない可能性があります。
こんにちは、 @SWETHA1さん
dtsファイルを確認したところ、以下のエラーが見つかりました。
1. ECSPIピンが再利用されたため、ピン使用の競合が発生しています。この部品を取り外すか、再利用のために別のピンを使用してください。
pinctrl_ecspi1: ecspi1grp {
fsl,pins = <
MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK 0x48
MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI 0x48
MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO 0x48
>;
};
pinctrl_uart3: uart3grp {
fsl,pins = <
MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX 0x140
MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX 0x140
MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS 0x140
MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS 0x140
>;
};
2. ECSPI1のチップセレクト(CS)構成に矛盾があります。以下のコードに変更してください。
pinctrl_ecspi1_cs: ecspi1cs {
fsl,pins = <
MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09 0x40000
>;
};
B.R