開発にはS32K3X4EVB-T172を使用しています。
LPSPI3 を使用して FS26 と通信できないことがわかったので、サンプル コードでこの状況を再現しました。
交換したい
LPSPI3_PCS0 = 110 = PTB17 <> LPSPI0_PCS0 = 95 = PTB0
LPSPI3_SCK = 7 = PTD1 <> LPSPI3_SCK = 7 = PTD1
LPSPI3_SIN = 111 = PTD20 <> LPSPI0_SIN = 97 = PTC9
LPSPI3_SOUT = 8 = PTD0 <> LPSPI0_SOUT = 94 = PTB1
配線方法は以下の通りです。
LPSPI3_SCK = J37、番号1、LPSPI0_SCK = J2、番号21に接続
LPSPI3_SIN = J39、番号14、LPSPI0_SIN = J2、番号15に接続
LPSPI3_SOUT = J37、番号3、LPSPI0_SOUT = J2、番号18に接続
LPSPI3_PCS0 = J4、番号5、LPSPI0_PCS0 = J2、番号24に接続
既知の障害点は、Sbc_fs26_InitDevice 内の Sbc_fs26_GetDeviceState が FS_STATES_INVALID を返すことです。
ただし、Spi_SyncTransmit を使用すると、CSB が低く引き下げられることがわかります。これは正しいようです。
CSB
MOSI
設定を確認しましたが、どこに問題があるのかわかりません。添付ファイルは、LPSPI0 が LPSPI3 に変更されていることを除いて、サンプル コードとほぼ同じです。
公式の例では、FS26 と通信するためにどの SPI を使用していますか?
LPSPI0の使用
LPSPI0を削除してから以下のドッキングを実行しました。
LPSPI0_PCS0 = 95 = PTB0 = J2 (上位24) LPSPI3_PCS0 = 110 = PTB17 = J4 (下位5)
LPSPI0_SCK = 98 = PTC8 = J2 LPSPI3_SCK = 7 = PTD1 = J37 LPSPI3_SCK = 7 = PTD1 = J37
LPSPI0_SIN = 97 = PTC9 = J2 (上位15) LPSPI3_SIN = 111 = PTD20 = J39 (中間14)
LPSPI0_SOUT = 94 = PTB1 = J2 (LPSPI3_SOUT = 8 = PTD0 = J37 に接続)
ただし、FS26は通信できません。
これはコード移植の問題ではありません。非常に大きなコードパッケージがあり、LPSPI3がFS26と通信できないという問題が発生しています。質問しやすいように、FS26のサンプルコードを使用し、FS26との通信をLPSPI0からLPSPI3に変更しました。しかし、LPSPI3がFS26と通信できないという同じ問題が依然として発生しています。Spi_SyncTransmitを呼び出すと、CSBとMOSIに対応する応答が表示されます。そのため、原因がわかりません。
使用 LPSPI0
LPSPI0_PCS0 = 95 = PTB0
LPSPI0_SCK = 98 = PTC8
LPSPI0_SIN = 97 = PTC9
LPSPI0_SOUT = 94 = PTB1
クリスマス休暇期間中は、サポートの応答時間は通常より長くなる場合がありますのでご了承ください。ご理解のほどよろしくお願いいたします。
私が見た説明は、私が行っている RTD 上での SPI 通信転送であり、サポートを超える点があります。