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

[复制链接]
16743|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 | 显示全部楼层
grissiom 发表于 2011-11-4 15:18 | 显示全部楼层
手册上说,ADC 的最高采样频率是 14M 吧……
 楼主| zzifeng 发表于 2011-11-4 15:52 | 显示全部楼层
手册上确实这么写...
不过我前面看的手册没写这个
刚看了另外的一个手册,才有记录这个内容...

那么,第2、3点的呢?麻烦指点下,谢谢了
grissiom 发表于 2011-11-4 17:59 | 显示全部楼层
第二、三点我还没用到,不怎么清楚唉……
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 个周期的时间
其他的信号, 也可以用逐次增加的办法, 测试最佳的时间.
李富贵 发表于 2011-11-6 12:37 | 显示全部楼层
手册上说,ADC 的最高采样频率是 14M 吧……
grissiom 发表于 2011-11-4 15:18

错,ADCCLK最高14M,采样至少要1.5个ADCCLK,转换要12.5个ADCCLK,所以最高采样频率是1M!!!
grissiom 发表于 2011-11-6 20:20 | 显示全部楼层
嗯,我错了,其实我指的就是 ADCCLK
 楼主| 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设置为多少才好呢?
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

粉丝
快速回复 在线客服 返回列表 返回顶部