2174955_ja-JP

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

2174955_ja-JP

2174955_ja-JP

S32K3: LPSPIマスタースレーブ転送

こんにちは、S32K3チーム

私はこの評価ボードを使用しています:--
https://www.nxp.com/design/design-center/development-boards-and-designs/S32K312EVB-Q172

私はこの IP 例を実行しました:---
DMA を使用するマスターとしての LPSPI2。

この例では、DMA を使用して 12 バイトを送受信するために LPSPI2 マスターを使用します。
MOSI MISO がループバックでハードウェアにコネクテッド。
https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K312-SPI-Transmit-amp-Receive-Using-DMA-...


ここで、この例を変更したいと思います:--
LPSPI-2 (マスター)--> LPSPI-1 (スレーブ)



次のドライバの例を変更しました:--
lpspi-1スレーブのピン設定を追加しました
DMA マルチプレクサ
DMA
LPSPI-1が追加されました



添付のソースコードは、LPSPI_2 (マスター) を使用してデータを送信します。
-->-->LPSPI-1 (スレーブ) でデータを受信するためのコードを追加できますか。
マスターはデータを送信し、スレーブは同じデータを受信します。



よろしくお願いいたします。
ディネシュ

RTDRe: S32K3 : LPSPI MASTER slave transfer

こんにちは、 @Dinesh_Guleria さん

1. ボーレート = 2kHzの場合:

次回 if((Master __callback==1)&&(Slave__ callback==1)) で Lpspi_Ip_AsyncTransmit() の呼び出しを実行する前に遅延時間を追加すると、問題が解決されることが分かりました。

その後、遅延時間を使用する代わりに、以下のようなチェックステートメントをいくつか追加したところ、プロジェクトは機能しました。プロジェクトを添付しました。

DanNguyenDuy_0-1760288017747.png

2. ボーレートを高くする場合、先ほども申し上げたように、 DMA で LPSPI1 と 2 の両方を使用する場合はハードウェアの制限があるため、プロジェクトでボーレートを高くすることはできません。

よろしくお願いいたします。

ダン

Re: S32K3 : LPSPI MASTER slave transfer

こんにちは、 @Dinesh_Guleria さん

ボーレートを高くする場合は、チャネル DMA_IP_HW_CH_2 および 3 (LPSPI1 - スレーブ) に DMA_IP_LEVEL_PRIO1 を設定し、チャネル DMA_IP_HW_CH_0 および 1 (LPSPI2 - マスター) に DMA_IP_LEVEL_PRIO0 を設定することをお勧めします。その後、すべての DMA チャネルに対して「プリエンプションを有効にする」を有効にします。

よろしくお願いいたします。

ダン

Re: S32K3 : LPSPI MASTER slave transfer

HSEクロックを60MHzに変更しました-->


その後、この値を変更すると、エラーが削除されました:--

Dinesh_Guleria_1-1759838381115.png


LPSPI で受信したデータ:--

Dinesh_Guleria_2-1759838440549.png


しかし、あなたのサンプルコードはSPIのボーレート --> 20000 でのみ動作します

--> 1 MHZ spi ボーレートが機能しません。

よろしくお願いいたします。
ディネシュ

Re: S32K3 : LPSPI MASTER slave transfer

こんにちは@DanNguyenDuy

プロジェクトをテストしました。マスターからスレーブに送信されるデータを受信できました。

APIS_SLOW_CLKはHSE_CLKと比率(1/2または1/4)を持つため


HSE クロックを 60 MHz に変更した瞬間 :--

Dinesh_Guleria_1-1759836095029.png



LPSPI でエラーが発生し始めます:--

Dinesh_Guleria_0-1759836076016.png

-->私のプロジェクトでは、LPSPI_2、LPSPI_1を使用しています。

HSE クロックを --> 60 MHZ に変更します。LPSPIでこのエラーが発生します -->プロジェクト内


S32DS がなぜこのように動作するのか、貴社でテストしていただけますCANか?


このエラーが発生する理由を教えてください。


よろしくお願いいたします。
ディネシュ

Re: S32K3 : LPSPI MASTER slave transfer

こんにちは、 @Dinesh_Guleria さん

DMA_IP_HW_CH_2 および DMA_IP_HW_CH_3 で「Enable Preemption」を有効にしましたか?

添付画像のとおり接続が正しいことを確認してください。

S32DS と Trace32 デバッガーの両方でテストし、合格しました。ただし、Trace32 デバッガーの方が S32DS デバッガーよりも安定していることがわかりました。SO、S32DS デバッガーの代わりに T32 デバッガーを使用することをお勧めします。

Trace32 デバッガーをお持ちでない場合は、3.5 デバッガー バージョンではなく、S32DS 3.6 デバッガー バージョンで再度デバッグを試みることができます。

よろしくお願いいたします。

ダン

Re: S32K3 : LPSPI MASTER slave transfer

こんにちは、ダン。

先週休暇をとっていたので返事が遅くなってごめんなさい。


PE Micro デバッガーを使用して確認していただけますか?

あなたのコードをテストしました。2つのボードでテストしました。

新しいワイヤーも交換しました。

接続を再確認しましたが、使用されているピンは同じです:---

Dinesh_Guleria_2-1759750515368.png




コードがここに詰まっています... :--

Dinesh_Guleria_0-1759750423752.png


デバッガーを削除し、ボードの電源を入れてテストしました。
以下のコードでは LED が点灯しません :---

Dinesh_Guleria_0-1759751249197.png




しかし、あなたのコードは私の側では動作しません


よろしくお願いいたします。
ディネシュ

Re: S32K3 : LPSPI MASTER slave transfer

こんにちは、 @Dinesh_Guleria さん

上記の接続でプロジェクトをデバッグし、テストに合格しました。

DanNguyenDuy_0-1759314100758.png

DMA_IP_HW_CH_2とDMA_IP_HW_CH_3でも「プリエンプションを有効にする」を有効にしました。

よろしくお願いいたします。

ダン

Re: S32K3 : LPSPI MASTER slave transfer

こんにちは、 @Dinesh_Guleria さん

画像を見ると、S32K312EVB ボードに間違ったピンをコネクテッドしたようです。

もう一度接続を確認していただけますか?

LPSPI2_SOUT - PTB3: J412.20 <--> LPSPI1_SIN - PTA20: J38.4
LPSPI2_SIN - PTB2: J412.11 <--> LPSPI1_SOUT - PTA18: J3.8
LPSPI2_SCK - PTB29: J412.8 <--> LPSPI1_SCK - PTA19: J38.1
LPSPI2_PCS0 - PTB25: J3.6 <--> LPSPI1_PCS0 - PTA11: J4.2

よろしくお願いいたします。

ダン

Re: S32K3 : LPSPI MASTER slave transfer

コードを修正しました:--

これらの割り込みを有効にしました:--

Dinesh_Guleria_1-1758780483211.png





マスター送信、コールバック取得ヒットのコールバック ハンドラーを追加しました:---

Dinesh_Guleria_2-1758780540968.png


Dinesh_Guleria_0-1758780429207.png


しかし、スレーブ コールバックはヒットせず、スレーブではデータが受信されません。

更新されたコードを見つけてください。

よろしくお願いいたします。
ディネシュ

Re: S32K3 : LPSPI MASTER slave transfer

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

参考例を参考にしてサンプルコードを修正しました --> Lpspi_Flexio_Ip_Transfer_S32K344


私はピンをこのようにコネクテッドしました:--

Dinesh_Guleria_1-1758779567427.png

マスター(LPSPI-2)スレーブ(LPSPI-1)

MOSI - PTB-3(紫)<-----------> SIN - PTA20

味噌 - PTB-2(白) <-----------> 南 - PTA18

SCLK - PTB-29 (青) <-----------> SCLK - PTA19

CS-0 - PTB-25(ブラック) <-----------> CS-0 - PTA11

ボード上の接続:--

Dinesh_Guleria_2-1758779860724.jpeg


Dinesh_Guleria_4-1758779907527.jpeg




スレーブはデータを一切受信せず、コードがここで停止します :--

Dinesh_Guleria_0-1758779301403.png


コードに何が欠けているかを提案してください。

よろしくお願いいたします。
ディネシュ

Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 06:16 AM
Updated by: