[研电赛技术支持]

GD32 采样率 采样时间 转换时间 时钟频率如何设置

[复制链接]
1713|12
手机看帖
扫描二维码
随时随地手机跟帖
EDAStarer|  楼主 | 2020-7-8 13:27 | 显示全部楼层 |阅读模式
GD32 采样率 采样时间 转换时间 时钟频率如何设置,它们之间是什么关系

使用特权

评论回复
EDAStarer|  楼主 | 2020-7-8 13:33 | 显示全部楼层
我想用ADC0去采集外部1M的模拟信号,那么我的ADC0的采样率是不是必须为1M

使用特权

评论回复
sonicll| | 2020-7-8 14:13 | 显示全部楼层
ADC时钟是从AHB或者APB2分频得到的,可以用rcu_adc_clock_config()函数设置。
采样时间是可以设置的,转换时间是硬件固定的,大部分型号的转换时间是12.5个时钟周期(具体值需要看手册),采样时间加转换时间就是一次采样需要的总时间;假设APB2时钟为56MHz,ADC时钟设置为4分频,14MHz,采样时间配置为1.5周期,采样一次的时间就是(1.5+12.5)/14000000=1us,如果使用连续采样,没有空闲时间,采样速率就是1Msps。
你要采样1MHz的模拟信号的话,按照采样定理,采样速率需要大于信号频率的2倍,所以你需要ADC采样速率大于2Msps才可以

使用特权

评论回复
EDAStarer|  楼主 | 2020-7-8 15:42 | 显示全部楼层
sonicll 发表于 2020-7-8 14:13
ADC时钟是从AHB或者APB2分频得到的,可以用rcu_adc_clock_config()函数设置。
采样时间是可以设置的,转换 ...

多谢

使用特权

评论回复
EDAStarer|  楼主 | 2020-7-8 15:54 | 显示全部楼层
sonicll 发表于 2020-7-8 14:13
ADC时钟是从AHB或者APB2分频得到的,可以用rcu_adc_clock_config()函数设置。
采样时间是可以设置的,转换 ...

使用GD32F303CC器件。APB2时钟120MHz,ADC时钟为30MHz(4分频)。8bit转换精度,对应的转换时间为8.5个时钟周期。采样时间配置为1.5时钟周期。算下来,采样一次的时间为(1.5+8.5)时钟周期=10*1/30000000=333.3ns。采样连续采样,外部信号触发(1MHz),采样速率为1Msps。
这样是否可行

使用特权

评论回复
EDAStarer|  楼主 | 2020-7-8 15:56 | 显示全部楼层
EDAStarer 发表于 2020-7-8 15:54
使用GD32F303CC器件。APB2时钟120MHz,ADC时钟为30MHz(4分频)。8bit转换精度,对应的转换时间为8.5个时 ...

D:\M1C1_Mini_V3\ADC采样.png
ADC采样.png

使用特权

评论回复
sonicll| | 2020-7-8 16:10 | 显示全部楼层
EDAStarer 发表于 2020-7-8 15:54
使用GD32F303CC器件。APB2时钟120MHz,ADC时钟为30MHz(4分频)。8bit转换精度,对应的转换时间为8.5个时 ...

我前面说的连续采样是指开启ADC的连续采样模式,这种模式只要触发一次就会连续采样,不需要一直给触发信号。8位分辨率,1.5采样周期,ADC时钟30MHz,开启连续模式,实际采样速率是3Msps,如果不使用ADC自己的连续采样模式,用你提供的外部1MHz周期信号来触发采样,那么采样速率是1Msps

使用特权

评论回复
一叶倾城wwq| | 2020-7-9 17:43 | 显示全部楼层
一般比你采集的信号快就好了,看需要。

使用特权

评论回复
drer| | 2020-8-3 18:24 | 显示全部楼层
需要深入理解时钟啊

使用特权

评论回复
gwsan| | 2020-8-3 18:25 | 显示全部楼层
原来是这样

使用特权

评论回复
kxsi| | 2020-8-3 18:25 | 显示全部楼层
我也学习一下

使用特权

评论回复
nawu| | 2020-8-3 18:25 | 显示全部楼层
楼主是这样解决问题的吗

使用特权

评论回复
qcliu| | 2020-8-3 18:26 | 显示全部楼层
我去试试去

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

52

帖子

0

粉丝