OpenEdv-开源电子网

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

STM32G0 SPI2 波特率问题

[复制链接]

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
发表于 2020-6-8 17:36:55 | 显示全部楼层 |阅读模式
100金钱
最近再搞STM32G070RBY6 用到SPI,外设是AD8400,外接25M晶振,用STM32CUBEMX 设置最大频率HCLK 为64M的时候,波特率分频从2-256,IO口频率从GPIO_SPEED_FREQ_LOW-GPIOGPIO_SPEED_FREQ_VERY_HIGH四种速度,都不行。


最后把最大频率HCLK设置为40M,波特率分频设置为2,IO口频率设置成GPIO_SPEED_FREQ_LOW,这样就行了,想不通为什么会这样,特来求教

LR42%]@G1{I~O_G_$QK]RZD.png
{Y_4B~{]K21$(A@A}8S8`)M.png

最佳答案

查看完整内容[请看2#楼]

而我用STM32H743这个芯片接AD8400的时候,只要速度设置小于50M,用(25M,12.5M)两种速度的时候,IO配置为GPIO_SPEED_FREQ_MEDIUM,这样都没问题,所以我怀疑是不是G0这个芯片的HAL库可能有BUG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
 楼主| 发表于 2020-6-8 17:36:56 | 显示全部楼层
而我用STM32H743这个芯片接AD8400的时候,只要速度设置小于50M,用(25M,12.5M)两种速度的时候,IO配置为GPIO_SPEED_FREQ_MEDIUM,这样都没问题,所以我怀疑是不是G0这个芯片的HAL库可能有BUG
回复

使用道具 举报

3

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2017-8-23
在线时间
234 小时
 楼主| 发表于 2020-6-8 17:41:04 | 显示全部楼层
AD8400 SPI速率最大支持50M,理论上我的SPI设置小于50M就行,实际上不是这种现象
回复

使用道具 举报

8

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
439
金钱
439
注册时间
2018-12-21
在线时间
126 小时
发表于 2020-6-8 17:52:01 | 显示全部楼层
你说的不行未必是真的不行。SPI支持50MHz没错,你检查你的寄存器配置,包括IO速度寄存器和实际的SPI波特率配置。
还有高频SPI对信号完整性有很高要求,你知道这个名词的概念吗?检测硬件连线设计,用示波器查看实际输出波形是否有问题,比如拖沓的边沿,或者振铃之类的情况。
之前我用一个OLED屏幕也是,用SPI驱动,刷新率一高就花屏,查了半天程序都没用最后发现是用的杜邦线有问题导致SPI传输误码使得功能异常。
回复

使用道具 举报

8

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
439
金钱
439
注册时间
2018-12-21
在线时间
126 小时
发表于 2020-6-8 17:54:26 | 显示全部楼层
库函数有没有bug不知道,但是你应该用J-link进行调试,打好断点,逐步执行,观察关键寄存器是否配置正确。库函数虽然免除直接写寄存器值的麻烦,但是真要debug不会通过寄存器值分析故障是不行的。
回复

使用道具 举报

2

主题

172

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3142
金钱
3142
注册时间
2014-11-29
在线时间
183 小时
发表于 2020-6-9 09:41:03 | 显示全部楼层
顶………………
lutigers
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 12:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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