STM32
直播中

靓仔峰

9年用户 1129经验值
擅长:可编程逻辑
私信 关注
[问答]

STM32G070挂载4个设备,切换SPI极性和相位之后,第一个字节SCLK只有7个,MOSI数据也不对是为什么?

大家下午好,我是用的逻辑分析仪来分析这个SPI传输
设备极性是:【哪个沿取数据,空闲电平】  【0,0】   【0,1】     【1,1】
正常的数据,是有8个沿,不正常的数据,只有7个。

不正常的数据,只有7个SCLK。一字节8个,每个字节之间的空隙比正常的clk间隔大一些,所以第一个字节是少了一个SCLK,而且MOSI上发送的数据的也不对


请问这是什么原因导致的?大家有遇到类似的吗?或者有什么排查是思路吗



回帖(2)

杨叶

2024-3-15 11:27:51
从逻辑上讲,第一次发出数据后,数据正常,那么修改配置再发送也应该正常,不应该缺失个数。
那么很大的可能来自于中间切换。 SPI重新配置时或者停止时需要注意当前状态,不要在数据没发送完时去停止或修改SPI。 楼主可以注意一下这点。
举报

京五环以外

2024-3-15 15:21:34
你好!根据你的描述,SPI传输中出现了一些问题,包括SCLK只有7个边沿和MOSI数据不对。这可能是由于以下原因之一导致的:

1. 配置错误:首先,请确保正确配置了SPI总线的极性和相位。其中,极性决定了数据采样的时机,相位决定了数据采样的边沿。对于常见的SPI设备,一般使用CPOL = 0和CPHA = 0的模式。如果你的设备采用其他模式,需要相应地进行配置。

2. 时间参数错误:确保SPI总线的时钟频率设置正确,并且与被访问设备的时钟要匹配。如果时钟频率设置不正确,也可能导致数据传输错误。

3. 信号线接触问题:检查SPI信号线的连接和接触性,确保其良好连接。如果信号线接触不良,可能导致数据传输错误。

4. 总线负载过重:检查总线的负载情况,确保不超过支持范围。如果总线负载过重,可能导致信号失真和数据传输错误。

5. 电源问题:检查供电电源是否稳定,不会出现电压波动等问题。电源问题可能影响设备正常工作。

如果以上方法无法解决问题,你可以尝试使用示波器或逻辑分析仪进行详细的信号分析,以确定具体出错的地方。另外,你也可以查阅STM32G070的相关文档和例程,了解更多关于SPI配置和使用的细节。

希望这些信息能对你有所帮助!如果你还有其他问题,请随时向我提问。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分