主题中讨论的其他器件: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 过早关闭的情况下更改了从器件引脚的上拉/下拉值、也会出现相同的症状。
我们应该如何解决这个问题?
我做了很多测试、但我仍然不知道原因。
可以帮帮我吗?