硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1027|回复: 7
收起左侧

[STM32H7] H745单片机TIM12触发SPI2+DMA1给F407单片机传输数据,20kHz帧数时,出现漏帧现象,大约会连续性的漏100帧!

[复制链接]

1

主题

10

回帖

13

积分

新手上路

积分
13
发表于 2023-1-16 18:10:39 | 显示全部楼层 |阅读模式
大家好!
问题概述:我最近在调试H745单片机的SPI,其目的是与片外DAC(TLV5630)通讯,目前测试阶段先用F407单片机作为从机接收H745单片机发来的数据,但是出现了漏帧现象(连续性漏100帧)。
详情:H745单片机配置为SPI2+DMA1的方式,数据的传输由TIM12同步触发,触发频率为20kHz,DMA配置为Circular模式、设置的数据传输数量为4(16bit的数据)。当DMA将数组中的4个数据发送到SPI2的TXDR寄存器后会进入DMA1的传输完成中断,在中断中,我会将数组中的数据更新,然后退出中断。这些都配置完成后,在F407接收端接收到的数据一直漏帧,大约每漏100帧数据才能接收到1帧数据,如下图所示。注意!每次均会发送4个数据,第1个数据为进入DMA传输完成中断的次数,第2、3和4个数据分别为0、1和2。
最后,在TIM12的同步触发频率设置为20kHz时就会出现上述现象,当TIM12的同步触发频率设置为200Hz时就能正确的接收数据,如果TIM12的同步触发频率比200Hz高,例如1kHz时也会出现漏帧现象!!!
希望大家能关注一下我的问题,并提出建议,感谢!!!感谢!!!
IMG_20230116_170733.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2023-1-17 10:15:39 | 显示全部楼层
你的SPI主从机的SPI配置上拉电阻都加上没,建议加上,效果好。

速度快了不正常,你的从机是不是处理不及时,导致丢包,如果是的话,考虑DMA方式。
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2023-1-17 11:14:51 | 显示全部楼层
eric2013 发表于 2023-1-17 10:15
你的SPI主从机的SPI配置上拉电阻都加上没,建议加上,效果好。

速度快了不正常,你的从机是不是处理不及 ...

主机和从机都是采用的DMA方式,我用万用表测试主机的NSS、CLK和MOSI引脚的频率,结果为NSS—20kHz、CLK—1.28MHz以及MOSI—约110kHz,我怀疑是主机发送的问题,如果设置TIM12触发频率为200Hz的话通讯就正常,没有丢帧现象。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2023-1-18 08:39:56 | 显示全部楼层
LXW 发表于 2023-1-17 11:14
主机和从机都是采用的DMA方式,我用万用表测试主机的NSS、CLK和MOSI引脚的频率,结果为NSS—20kHz、CLK— ...

Cache问题注意了没。
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2023-1-19 14:59:07 | 显示全部楼层
eric2013 发表于 2023-1-18 08:39
Cache问题注意了没。

硬汉哥,您SPI2+DMA+驱动片外DAC8563上面需要注意的问题我都注意了。程序里面我开启了Cache,不过在每次进入DMA传输完成中断后,我都会执行缓存清除操作,这个是没问题的。现在问题就是最快只能到200帧,再高就会漏帧,就和上面帖子里面描述的一样。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2023-1-20 01:00:10 | 显示全部楼层
LXW 发表于 2023-1-19 14:59
硬汉哥,您SPI2+DMA+驱动片外DAC8563上面需要注意的问题我都注意了。程序里面我开启了Cache,不过在每次 ...

这个还是后面示波器转包测试下吧。另外就是你的从机什么都不做,仅仅记录接收次数试试。

200Hz确实速度太慢了。
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
发表于 2023-1-28 13:50:45 | 显示全部楼层
查一下主spi的速率吧。配置为20KHZ时,100帧出现一次正确的,配置为200hz时,能正确传输,这两种配置中,能够正确传输的时间间隔都是5毫秒,这是一个值得注意的点
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2023-2-3 20:11:30 | 显示全部楼层
用示波器看了,发送端没问题,接收端的问题!现在使用片外DAC(TLV563)做从机时输出正常。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 21:16 , Processed in 0.171868 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表