2296082_ja-JP

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

2296082_ja-JP

2296082_ja-JP

同期モードのFlexIO SPIマスターが動作しない

FlexIO SPI MASTER チャネルを同期モードで設定しようとしましたが、正しく動作しません。

私はSpi_Transfer_S32K396 (LPSPI マスター + FLEXIO スレーブ) の例から始めました。S32K396_BGA_DC1 の現在のバージョンで動作するようにピン配置をわずかに変更しました (デフォルトの例は動作しません。ピン配置が PHY コネクタと競合しています)。これは機能します。

次に、要件に合わせてワード長を変更し、 sout が sin にループバックされた LPSPI マスターのみを使用しました。それも効きます。

次に、FLEXIO インターフェースをマスターとして再構成し、LPSPI2 で使用されるのと同じ同期 API を使用して呼び出します。何かが行われているように見えますが、受信バッファにはゼロのみが返されます。これは、同期モードで FLEXIO SPI インターフェースを使用しようとしている他のコードでも確認されています。

次に、DMA に関連するすべてを無効にしました。Rm モジュールを削除し、Mcl で DMA サポートを無効にしました。Spi で DMA サポートを無効にします。しかし、その後転送がハングし、受信シフト レジスタから準備完了の通知がまったく受信されなくなります。

IsShifterFlagRaised = Flexio_Mcl_Ip_GetShifterStatus(Base, RxShifterIndex);

常に false を返します (RTD FlexIO SPI ドライバ内)。

FLEXIO SPI がこのようにハングする原因は何でしょうか?私の理解では、受信シフト レジスタは同じクロックでクロックされるため、問題なく動作するはずです。

flexio レジスターを見ると、非常に混乱します。CSタイマー(1)の構成は非常に奇妙に見えます。たぶんこれが問題です。さらに調査します。

注: 最終目標は、SPI よりも少し複雑な別のプロトコル用のカスタム FlexIO ドライバーを作成することです。SPI 実装を足がかりとして使用して、FlexIO をより深く理解します。

Re: FlexIO SPI Master in syncronous mode not working

CSタイマーの設定は正しいようです。タイマーの関係について私のほうで誤解していました。SOそれは問題ではありません。

Re: FlexIO SPI Master in syncronous mode not workingゴミはゴミではない。SPI チャネルのデータ幅を更新するのを忘れていました。Re: FlexIO SPI Master in syncronous mode not working

新しい.mexでやり直しましたファイルであり、それはある程度機能します。

問題は2つありました。SPI の例では、DMA が無効になっている場合、Mcl の初期化に失敗し、PRE/POST ビルド構成タイプに関して Mcl 構成に何らかの問題が発生していました。

現在唯一の問題は、受信データの未使用ビットにゴミが含まれていることです。少し予想外ですが、ブロックするものではありません。

Tags (1)
No ratings
Version history
Last update:
‎01-21-2026 02:25 AM
Updated by: