OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2783|回复: 4

关于STM32的SPI2工作在从机时注意

[复制链接]

44

主题

260

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2012-3-8
在线时间
29 小时
发表于 2017-8-30 11:47:43 | 显示全部楼层 |阅读模式
1金钱
STM32手册指出,所有SPI最高工作频率是18M,但测试发现:S3C2416作为主机提供位时钟,STM32的SPI2作为从机,使用DMA传输,传输前有读空移位寄存器。

1、8M时钟,通信稳定
2、9.6M时钟,通信稳定
3、12M时钟,大概率出现位错误
4、16M时钟,出现位错误的概率小于工作在12M时钟的时候


而用STM32的SPI1则没有以上问题,大胆猜测,由于SPI1的总线时钟是SPI2的两倍,对SCLK的容错性较高。

暂得结论:
1、SPI2作为从机时,也许是可以工作在18M的,但对于主机提供的SCLK时钟占空比要求比较严格,而测试使用的S3C2416提供的SCLK占空比不是50%,故SPI2作为从机时通信时钟最好不要超过9M。
2、当项目中同时使用两个SPI时,速度高的使用SPI1,另一个使用SPI2。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-8-30 12:27:38 | 显示全部楼层
测试得这么详细..厉害,厉害.
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-8-31 01:02:41 | 显示全部楼层
代码问题可能多点吧
回复

使用道具 举报

44

主题

260

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2012-3-8
在线时间
29 小时
 楼主| 发表于 2017-9-6 15:08:02 | 显示全部楼层
正点原子 发表于 2017-8-31 01:02
代码问题可能多点吧

其他什么都没改,只是把通信的接口从SPI2换到SPI1,当然还有DMA通道,其他配置没有变过(没有其他工作代码、中断等,单单测SPI)。就不再出现上述问题。
另外使用SPI2通信出现问题的时候,我用逻辑分析仪(50M采样率)看过,现象是位偏移,例如STM32的Tx数据0x55有时候会变成0xA8左移了3位(Buffer中0x55后面的数据是0x00,所以左移后变成0xA8),这样的现象是代码出问题做不到的吧。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2018-8-19
在线时间
5 小时
发表于 2018-8-20 09:27:01 | 显示全部楼层
有源程序吗?可以分享来参考吗?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 17:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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