2174955_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2174955_zh-CN

2174955_zh-CN

S32K3 : LPSPI 主站从站传输

你好 S32K3 团队,

我正在使用这个评估板:—
https://www.nxp.com/design/design-center/development-boards-and-designs/S32K312EVB-Q172

我做了这样一个 IP 示例:---
LPSPI2作为主站使用 DMA。

该示例使用 LPSPI2 Master 传输 & 使用 DMA 接收十二个字节。

https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K312-SPI-Transmit-amp-Receive-Using-DMA-...


现在我想修改这个示例:--
LPSPI-2 (Master)--> LPSPI-1 (SLave)



我修改了以下驱动程序的示例:--
添加了 lpspi-1 从站的引脚设置
DMA MUX
DMA
添加了 LPSPI-1



所附源代码使用 LPSPI_2(主站)发送数据。
-->您能否在>--> LPSPI-1(从站)上添加 接收数据的代码。
主站将发送数据& ,从站将接收同样的数据。



问候,
Dinesh

RTDRe: S32K3 : LPSPI MASTER slave transfer

嗨,@Dinesh_Guleria、

1. 波特率 = 2kHZ:

我检测到,如果我在下次调用 lif ((Master __callback==1)&&(Slave__ callback==1)) 中添加延迟时间 lpsiP_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 通道启用"Enable Preemption" 。

顺祝商祺!

丹

Re: S32K3 : LPSPI MASTER slave transfer

我将 HSE 时钟改为 --> 60 MHZ


然后我更改了这个值,错误消除了:----

Dinesh_Guleria_1-1759838381115.png


通过 LPSPI 接收到的数据 :--

Dinesh_Guleria_2-1759838440549.png


但您的示例代码只适用于 SPI 波特率 --> 20000

对于 --> 1 MHZ spi 波特率不起作用。

问候,
Dinesh

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 会出现这种情况......?


请说明为什么会出现这个错误?


问候,
Dinesh

Re: S32K3 : LPSPI MASTER slave transfer

嗨,@Dinesh_Guleria、

您是否在 DMA_IP_HW_CH_2 和 DMA_IP_HW_CH_3 中启用了"Enable Preemption" ?

请确保您的连接正确无误,如附图所示。

我在 S32DS 和 Trace32 调试器上都进行了测试,结果都通过了;但我发现 Trace32 调试器比 S32DS 调试器更稳定。因此,我建议您使用 T32 调试器,而不是 S32DS 调试器。

如果没有 Trace32 调试器,可以尝试在 S32DS 3.6 调试器版本上重新调试,而不是 3.5 调试器版本。

顺祝商祺!

丹

Re: S32K3 : LPSPI MASTER slave transfer

嗨,丹,

很抱歉这么晚才回复,我上周休假了。


请使用PE Micro 调试器进行检查。

我测试了你的代码我在两块板上测试过。

我甚至更换了新电线。

我重新确认了我的连接,使用的引脚是一样的 :---

Dinesh_Guleria_2-1759750515368.png




代码卡在这里...... :--

Dinesh_Guleria_0-1759750423752.png


我移除了在 Power On 主板上测试过的调试器 &。
发光二极管从不发光,代码如下:---

Dinesh_Guleria_0-1759751249197.png




但您的代码在我这里不起作用


,
Dinesh

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


但从属回调永远不会被点击& ,因为从属端没有收到数据。

请查看我更新的代码。

问候,
Dinesh

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

MISO - PTB-2 (White)<-----------> SOUT - PTA18

SCLK - PTB-29(蓝色)<-----------> SCLK - PTA19

CS-0 - PTB-25 (Black)<-----------> CS-0 - PTA11

船上连接:--

Dinesh_Guleria_2-1758779860724.jpeg


Dinesh_Guleria_4-1758779907527.jpeg




从属程序从未收到任何数据& 代码卡在这里 :--

Dinesh_Guleria_0-1758779301403.png


请说明代码中缺少了什么?

问候,
DInesh

标记 (1)
无评分
版本历史
最后更新:
‎11-21-2025 06:12 AM
更新人: