This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS3137:SPI 通信期间的数据损坏问题。

Guru**** 2542960 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1350762/tms570ls3137-data-corruption-problem-during-spi-communication

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

尊敬的所有人。

为了以防万一、我会提一个问题。
我有两个 TMS570LS3137ZWT 开发套件、并正在测试 SPI 通信、同时将一个用作 SPI3主器件、另一个用作 SPI5从器件。

Halcogen 设置值如下所示。
1.驱动器使能:启用 SPI3驱动器、启用 SPI5驱动器
2. PINMUX:MIBSPI3、MIBSPI5检查
3. SPI3 (主器件)
- SPI3全局:主机模式,内部时钟检查
- SPI 数据格式-数据格式0:波特率2000、Charlen 8
- SPI3端口:SOMI (输入、上拉)、SIMO (输出、上拉)、CLK (输出、 PULLUP)、SCS[0](输出,上拉)
4. SPI5 (从器件)
- SPI5全局:全部未选中
- SPI 数据格式-数据格式0:波特率2000、Charlen 8
- SPI5端口:SOMI[0](输出,下拉),SIMO[0](输入,下拉),CLK (输入, 下拉)、SCS[0](输入,无拉)

该测试是一个无限重复的测试、在该测试中、SPI 主器件向从器件发送12个字节的数据、而接收数据的从器件准备12个字节的数据并将其发送给主器件。

SPI 主设备和从设备都为 GPIO 分配一个中断引脚、并在发生中断时执行上述操作。

顺序如下。
主器件数据准备->中断引脚低电平->从器件到从器件的数据传输&中断引脚高电平->从器件上发生中断->数据读取和数据传输准备->中断引脚低电平->从从器件到主器件的数据传输&中断引脚高电平

通过这种方式,数据是无限交换的,但它是良好的,但随后出现了一个问题。

主器件发送0xb2、0xAA、0xbb、0xcc、0xdd、 0xFF、0x12、0x34、0x56、0x78、 向从器件发送0x90数据、从器件会很好地接收该数据、并且在特定的时间段之后、0xAA、0xef、0x33、0x77 0xbb、0xFC、0x48、0xD1、0x59、 0xe2、0xb2、0x00都是按此方式接收的。

特定的时间可以是几十分钟或几十小时。
当从器件接收到不正确的数据时、它将始终接收到上述值。

即使我在 CLK 过早关闭的情况下更改了从器件引脚的上拉/下拉值、也会出现相同的症状。

我们应该如何解决这个问题?
我做了很多测试、但我仍然不知道原因。

可以帮帮我吗?