2403199_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2403199_ja-JP

2403199_ja-JP

カスタムボード上でECSPI1が期待されるSPIクロックを生成しない


チームの皆さん、こんにちは。

私たちは、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に移す際に追加設定が必要かどうかを理解したいです。ご指導ありがとうございます。



Re: ECSPI1 does not generate expected SPI clock on custom board

こんにちは 、
添付ファイルにdtsファイルがありますのでご確認ください。

Re: ECSPI1 does not generate expected SPI clock on custom board

こんにちは、 @SWETHA1さん

ECSPI1に関するdtsファイルを共有してください。

B.R

Re: ECSPI1 does not generate expected SPI clock on custom board

こんにちは@pengyong_zhangさん
以下に観察結果を示します。
1. 提案された変更を適用した場合のロジックアナライザーの結果

SWETHA1_1-1786532293061.png


2. 以前に添付した dts の上に以下のパッチを使用した際のもう 1 つの観察結果

SWETHA1_0-1786532274946.png

上記のグラフはこの変化とともに観察されました
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
>;
};

提案された変更により、時計は予想通りではない可能性があります。

Re: ECSPI1 does not generate expected SPI clock on custom board

こんにちは、 @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

Re: ECSPI1 does not generate expected SPI clock on custom board前回の回答にもう少し詳細を追加します。
観察結果1:提案されたDTS変更を適用した後に得られた結果。しかしながら、SPIクロック波形は依然として期待どおりではなく、SPI信号全体の挙動も期待される結果と一致しない。

観察2:MISOをフローティング状態にすると、CSに2つの望ましくないスパイクが現れますが、これは望ましい動作ではありません。CSは最初は低く抑えられます。CSをDTSを介してハイレベルに駆動するように設定した場合でも、最初は期待どおりハイレベルに駆動されますが、トランザクションが完了すると、CSは再びローレベルに戻ってしまうようです。

この件についてのご見解を共有し、今後の進め方を教えていただけませんか
Tags (1)
No ratings
Version history
Last update:
Saturday
Updated by: