打印

ADC采样频率及时间怎么确定?

[复制链接]
15701|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzifeng|  楼主 | 2011-11-4 13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问:ADC采样频率及时间怎么确定?
1、ADCCLK的时钟可以为PCLK2/2(4、6、8)
    PCLK2可以为HCLK/2(4、8、16)
    HCLK可以为SYSCLK/1(2、4、8、16...、512)
那么ADCCLK的时钟范围在SYSCLK~SYSCLK/65536都可行?
2、在数据手册中有描述,通过ADC_SMPR1(ADC_SMPR2)可设置通道的采样时间,那固件库里的ADC_RegularChannelConfig也是对这些寄存器进行设置的吗?
3、该怎么设置ADC的采样时间呢?
开启AD中断,观察I/O口的状态:
adc_count++;
if((adc_count & 0x01)==0x00)
{
    GPIO_ResetBits(GPIOD, GPIO_Pin_2);
}
else
{
    GPIO_SetBits(GPIOD, GPIO_Pin_2);
}


1)、ADCCLK采用SYSCLK,ADC_RegularChannelConfig最低可设置为ADC_SampleTime_71Cycles5(I/O口翻转正常),但是 ADC_SampleTime_55Cycles5以下就不行了
2)、ADCLK采用SYSCLK/16,ADC_RegularChannelConfig最低可设置为ADC_SampleTime_28Cycles5(I/O口翻转正常),但是 ADC_SampleTime_13Cycles5以下就不行了

TCONV = 采样时间+ 12.5个周期,这个71Cycles5跟28Cycles5的具体含义是什么呢?在不同的ADCCLK,ADC_RegularChannelConfig该如何设置呢?
沙发
yinyangdianzi| | 2011-11-4 15:14 | 只看该作者
MARK

使用特权

评论回复
板凳
grissiom| | 2011-11-4 15:18 | 只看该作者
手册上说,ADC 的最高采样频率是 14M 吧……

使用特权

评论回复
地板
zzifeng|  楼主 | 2011-11-4 15:52 | 只看该作者
手册上确实这么写...
不过我前面看的手册没写这个
刚看了另外的一个手册,才有记录这个内容...

那么,第2、3点的呢?麻烦指点下,谢谢了

使用特权

评论回复
5
grissiom| | 2011-11-4 17:59 | 只看该作者
第二、三点我还没用到,不怎么清楚唉……

使用特权

评论回复
6
airwill| | 2011-11-5 09:34 | 只看该作者
这是 ADC 的采样时间设置.
ADC_SampleTime_28Cycles5  就是 28.5 个ADC 时钟
ADC_SampleTime_71Cycles5  就是 71.5 个ADC 时钟

那么怎么样来设置这个参数呢.
大家知道, ADC 里面是有个 采样保持的电容的. 在 ADC 转换前, 需要让这个电容上的电压 = 输入端口的电压的.
因为电容在电路里是个储能元件. 所以, AD 采样时, AD 端口和外部是有能量交换的(电容充电或者放电).
然而, 连接到 AD 端口的外部模拟信号, 是内部阻抗的. 这个阻抗将影响电容充电的时间.
所以要调整采用时间, 以满足充电, 那么具体怎么调整这个参数呢?
本人实测, 通常, 对于 1K 以内阻抗的模拟信号可以用 1.5 个周期.
然后, 对于象内部温度传感器这样的信号, 阻抗很大, 得加很大的采样时间.
对于一般运放上过来的信号, 可以用 1.5 个周期的时间
其他的信号, 也可以用逐次增加的办法, 测试最佳的时间.

使用特权

评论回复
7
李富贵| | 2011-11-6 12:37 | 只看该作者
手册上说,ADC 的最高采样频率是 14M 吧……
grissiom 发表于 2011-11-4 15:18

错,ADCCLK最高14M,采样至少要1.5个ADCCLK,转换要12.5个ADCCLK,所以最高采样频率是1M!!!

使用特权

评论回复
8
grissiom| | 2011-11-6 20:20 | 只看该作者
嗯,我错了,其实我指的就是 ADCCLK

使用特权

评论回复
9
zzifeng|  楼主 | 2011-11-7 11:09 | 只看该作者
6# airwill
还不是很清楚...
想再请教下下面的两个问题:
1、ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_*Cycles5)中的ADC_SampleTime_*Cycles5是不是对ADC_SMPR1(ADC_SMPR2)寄存器内容进行更改?
2、ADCCLK跟ADC_RegularChannelConfig中的ADC_SampleTime_*Cycles5的设置有着怎样的一种关系,在不同的ADCCLK下,
ADC_SampleTime_*Cycles5设置为多少才好呢?

使用特权

评论回复
10
lizhengjie| | 2016-5-28 19:08 | 只看该作者
airwill 发表于 2011-11-5 09:34
这是 ADC 的采样时间设置.
ADC_SampleTime_28Cycles5  就是 28.5 个ADC 时钟
ADC_SampleTime_71Cycles5  就 ...

很好,学习了

使用特权

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

本版积分规则

5

主题

22

帖子

1

粉丝