SPI Slave 接收和传输垃圾

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

我正在使用安装在AURIX™ Triboard TC3x7 评估 上的TC387QPTDA5235_868_5_BOARD 作为 SPI 通信 (QSPI0) 中的主站。我有一个安装在AURIX™ AURIX™PSOC4_HVPA_LITE_KITKIT_A2G_TC387_MOTORCTRV2 评估 TC375TPTDA5235_915_5_BOARD EVAL_2K4W_ACT_BRD_S7,它 作为 SPI 通信 (QSPI4) 中的从机。

我有两个问题:

1) SPI 从机正在接收和传输垃圾。 我正在通过 Saleae 逻辑分析器嗅探 SPI 线路,我能看到 Master 发送了正确的数据,但是在从机端调试 RXEXITD 寄存器时,我能看到里面装满了垃圾(附件是 qspi4_regdump.txt)。 奴隶还向主人传送垃圾。 我附上了一张 Saleae 追踪的照片(SPIlog.png),可以看出 Master 正在发送 0xAA 0xBB 0xCC 0xDD(应该如此),但是,奴隶返回的是垃圾(它应该返回相同的字节,0xAA 0xBB 0xCC 0xDD)。
注意:寄存器转储是在DMA 接收中断时捕获的
2) 每次接收时,我的状态寄存器中都会出现这个 0x100 错误(SLSI 放错了停用位置(从模式))。 我不确定这个错误是什么意思。 我的理解是,主站关闭使能信号还为时过早(在从机完成传输之前),但是在Saleae日志中,很明显,使能信号和从机传输同时结束。

如有必要,我可以提供有关我的配置和软件的更多信息。

预先感谢您的支持

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/SPI-Slave-receiving-and-transmitting-junk/td-p/683599

0 点赞
4 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨尼古拉,

你在使用 iLD 还是裸机?

你能分享主配置吗?

最诚挚的问候,

埃里克

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/SPI-Slave-receiving-and-transmitting-junk/m-p/687249

0 点赞
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,谢谢你的回答。

我同时附上了主寄存器和从机寄存器转储-请注意两点:

1) 从属寄存器转储与附加的第一个寄存器转储不同,这是因为我尝试将常量 Q、A、B、C 设置为与主寄存器相同。 这有意义吗? 我不确定这个设置是否适用于从机模式。

2) 调试器为从属寄存器值提供的描述具有误导性(尚未更新),这些值应该是正确的。

即使更新了配置,接收问题仍然存在。 我在从属状态寄存器中仍然经常出现 SLSI 放错位置的停用(从属模式)错误。你能告诉我这个错误是什么意思吗?

提前谢谢

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/SPI-Slave-receiving-and-transmitting-junk/m-p/687718

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

我忘记回答你的第一个问题了—— > 我使用 iLLD 进行常规模块配置,只用于从机我直接写入 ECON Q、A、B 和 C 以及 GLOBALCON.TQ 的寄存器。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/SPI-Slave-receiving-and-transmitting-junk/m-p/687760

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

顺便说一句,我正在使用以下策略在从属端接收:

我已经配置了一个采用 RX 批处理模式的 CPU 中断,阈值为 0(当 RXFIFO 的等级大于 0 时触发中断),在中断正文中我将带有 ifxqspi_spislave_readReceiveFIFO () 的 RXFIFOEXIT 读取到缓冲区。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/SPI-Slave-receiving-and-transmitting-junk/m-p/687791

0 点赞