请问: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该如何设置呢? |