OpenEdv-开源电子网

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

STM32H743ADC时钟问题,望解答

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-8-5
在线时间
10 小时
发表于 2019-11-13 14:05:33 | 显示全部楼层 |阅读模式
1金钱
参考手册上说,两个时钟源选择,内核时钟源和外设时钟源(AHB),但STM32CubeMX上为什么只有来自内核时钟源的三个时钟,是来自AHB的时钟源有什么特殊含义吗?而且无论使用哪个时钟源,实际ADC转换完成的速度与理论计算,差不都差了10CLK,实在不解

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

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-8-5
在线时间
10 小时
 楼主| 发表于 2019-11-15 11:11:50 | 显示全部楼层
回复

使用道具 举报

4

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2019-6-15
在线时间
36 小时
发表于 2019-11-15 14:15:55 | 显示全部楼层

关于ADC的时钟把这张截图的内容看懂就能明白了。
手册里面说了ADC有两个ADC时钟方案:一个是adc_hclk,另一个是adc_ker_ck
其中adc_hclk=AHB1=200M,可以通过ADCx_CCR 寄存器CKMODE[1:0]进行选择分频系数,分频之后给ADC内核使用
adc_ker_ck这个时钟被选择作为ADC内核时钟的话,就需要先把对应的时钟使能并且需要将ADCx_CCR 寄存器CKMODE[1:0]位置为00,adc_ker_ck时钟有三个时钟源可供选择分别是HSI, PLL2, PLL3,之后再通过
ADCx_CCR 寄存器中的 PRESC[3:0] 位设置分频系数。
你仔细看HAL的ADC初始化函数的时钟部分你就可以发现的。
ADC时钟.png
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-8-5
在线时间
10 小时
 楼主| 发表于 2019-11-15 16:00:35 | 显示全部楼层
mvvm 发表于 2019-11-15 14:15
关于ADC的时钟把这张截图的内容看懂就能明白了。
手册里面说了ADC有两个ADC时钟方案:一个是adc_hclk,另 ...

懂的,但实际转换时间和理论计算确实不符
回复

使用道具 举报

4

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2019-6-15
在线时间
36 小时
发表于 2019-11-15 16:04:48 | 显示全部楼层
这我就没测试过,你是怎么测试的?快点慢点很重要吗,能按照预期采 不就行了吗
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-8-5
在线时间
10 小时
 楼主| 发表于 2019-11-15 17:38:56 | 显示全部楼层
mvvm 发表于 2019-11-15 16:04
这我就没测试过,你是怎么测试的?快点慢点很重要吗,能按照预期采 不就行了吗

用SYSTICK,当然有关系,很重要,比如配置50M,它实际跑30M,那就很难受了
回复

使用道具 举报

4

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2019-6-15
在线时间
36 小时
发表于 2019-11-15 17:46:45 | 显示全部楼层
ffff8 发表于 2019-11-15 17:38
用SYSTICK,当然有关系,很重要,比如配置50M,它实际跑30M,那就很难受了

我之前测试1M采样率,没啥问题呀
回复

使用道具 举报

4

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2019-6-15
在线时间
36 小时
发表于 2019-11-15 17:48:15 | 显示全部楼层
mvvm 发表于 2019-11-15 17:46
我之前测试1M采样率,没啥问题呀

采样率你根据中断频率测不就可以的吗?不需要用systick来测量吧
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-8-5
在线时间
10 小时
 楼主| 发表于 2019-11-15 18:03:29 | 显示全部楼层
mvvm 发表于 2019-11-15 17:48
采样率你根据中断频率测不就可以的吗?不需要用systick来测量吧

这样简单,只要测得开始的时候到EOC置位1的时候,就🆗了
回复

使用道具 举报

10

主题

97

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
486
金钱
486
注册时间
2019-12-6
在线时间
151 小时
发表于 2020-9-30 16:45:34 | 显示全部楼层
mvvm 发表于 2019-11-15 14:15
关于ADC的时钟把这张截图的内容看懂就能明白了。
手册里面说了ADC有两个ADC时钟方案:一个是adc_hclk,另 ...

AHB1=200M ,ADCx_CCR 寄存器CKMODE[1:0]只能设置1分频 2分频 4分频 那么分频下来最少都是200/4=50M  , m7 m4内核ADC时钟不能超过36M ,这还怎么给ADC作为时钟源捏
回复

使用道具 举报

7

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2019-2-17
在线时间
10 小时
发表于 2021-9-10 14:59:23 | 显示全部楼层
陶佳不哭 发表于 2020-9-30 16:45
AHB1=200M ,ADCx_CCR 寄存器CKMODE[1:0]只能设置1分频 2分频 4分频 那么分频下来最少都是200/4=50M  , m7 ...

时代变了::::::
BOOST位控制

00: used when ADC clock ≤ 6.25 MHz

01: used when 6.25 MHz < ADC clock frequency ≤ 12.5 MHz

10: used when 12.5 MHz < ADC clock ≤ 25.0 MHz

11: used when 25.0 MHz < ADC clock ≤ 50.0 MHz
回复

使用道具 举报

4

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2019-11-12
在线时间
77 小时
发表于 2021-9-10 15:33:51 | 显示全部楼层
你是怎么计算时间的呢, ad时钟又不代表每次采集的频率。 自己设定的采样时间还要加上固定的转换时间才行。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 23:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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