- 我在NXP MCU S32K344 LPSPI模块(控制器)和Holt HI-35930(外设)之间通信时遇到问题。
该代码正在写入 2 个帧,每个帧为 8 位字。通过 LPSPI 连接到 ARINC 通信设备 HI-35930。我已确认所有设置均正确。cpol = 0,cpha = 0,LSBF = MSB,BYSW=否,RXMSK,TXMSK =0,TCR[FRMSZ]=7。
该代码使用 TRC[CONT 和 TRC[CONTC] 位来控制 PCS。PCS 在整个 2 帧序列中保持钳位,请参见图片。同样,时钟在这两帧画面中脉动。SOUT 信号包含预期数据,帧 1 = 操作码 0x80,帧 2 = 虚拟数据 0x00
问题出在SIN上。没有备份数据。(操作码 0x80 用于读取寄存器,我预期其中至少有一位设置为高电平)。
RXCOUNT 在每一帧都会递增,最大值为 2。
-使用相同的设置,我将相同的操作码和数据连接成一个 16 位帧,设置 TRC[CONT 和 TRC[CONTC] = 0,因为只有一个帧 TRC[FRMSZ]=15。传输正常,SIN 返回真实数据。
你觉得这里出了什么问题?
黄色 - PCS信号
粉色 - 时钟信号
蓝色 - SIN 至 MCU
绿色 - 来自 MCU 的 SOUT
MOSI 和 MISO 的数据为空。你的SPI总线硬件原理图设计正确吗?
你好@ekmas-19 ,
你描述这次传输发送了 2 个字节——0x80 和 0x00。然而,示波器清楚地显示为 2 个 32 位字,中间有很小的间隙,而不是 2 个 8 位帧。你能解释一下吗?
关于帧间间隙——这是预期行为。CONT = 1 仅保持帧间 CS/PCS 钳位;它不影响 SCK。时钟的行为与 CONT = 0 时完全相同。
此致,
丹尼尔