ADC采样频率的计算

因为又要做和毕设相关的内容,发现答辩时候老师特别喜欢问采样频率,那么ADC的采样频率是多少呢?

因为做的压力传感器阻值变化的ADC采集 再通过标定公式转换成压力值。

首先补充一下: ADC的中转换时间是   

Tconv = 采样时间 + 12 个周期

当然也有说是+12.5个周期的 ,但是大概是这个数,我的资料上12  所以暂时用12个周期。

那个采样时间 根据库函数发现一般有:

/** @defgroup ADC_sampling_times 
  * @{
  */ 
#define ADC_SampleTime_3Cycles                    ((uint8_t)0x00)
#define ADC_SampleTime_15Cycles                   ((uint8_t)0x01)
#define ADC_SampleTime_28Cycles                   ((uint8_t)0x02)
#define ADC_SampleTime_56Cycles                   ((uint8_t)0x03)
#define ADC_SampleTime_84Cycles                   ((uint8_t)0x04)
#define ADC_SampleTime_112Cycles                  ((uint8_t)0x05)
#define ADC_SampleTime_144Cycles                  ((uint8_t)0x06)
#define ADC_SampleTime_480Cycles                  ((uint8_t)0x07)
#define IS_ADC_SAMPLE_TIME(TIME) (((TIME) == ADC_SampleTime_3Cycles) || \
                                  ((TIME) == ADC_SampleTime_15Cycles) || \
                                  ((TIME) == ADC_SampleTime_28Cycles) || \
                                  ((TIME) == ADC_SampleTime_56Cycles) || \
                                  ((TIME) == ADC_SampleTime_84Cycles) || \
                                  ((TIME) == ADC_SampleTime_112Cycles) || \
                                  ((TIME) == ADC_SampleTime_144Cycles) || \
                                  ((TIME) == ADC_SampleTime_480Cycles))
/**
  * @}
  */ 

3个、15个、28个、56个、84个、112个、144个、480个。一般情况不单纯追求采样频率,采样周期越长,信息越真实,提高精确度。我发现之前的程序选的是480个采样周期 

u16 Get_Adc2(u8 ch,u8 nb)   
{
	  	//设置指定ADC的规则组通道,一个序列,采样时间
	ADC_RegularChannelConfig(ADC2, ch, 1, ADC_SampleTime_480Cycles );	//ADC1,ADC通道,480个周期,提高采样时间可以提高精确度			    

	ADC_SoftwareStartConv(ADC2);		//使能指定的ADC1的软件转换启动功能	
	 
	while(!ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC ));//等待转换结束

	return ADC_GetConversionValue(ADC2);	//返回最近一次ADC1规则组的转换结果
}

ADC的时钟,是通过系统时钟 分频得来的 ,这里一般不超过36MHZ,所以四分频到21MHZ。

ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4;
//ADCCLK=PCLK2/4=84/4=21Mhz,ADC时钟最好不要超过36Mhz 

在补充一下 外部晶振8MHZ的,在system_stm32f4xx.c文件里,通过PLL_M=8,PLL_N=336,PLL_P=4, 已经将系统时钟PCLK设置为84M。

言归正传,因此我的最小采样频率  : 21M/(480+12) = 42683HZ;

这样老师在提问的时候也特么能理直气壮忽悠个数了。

下一次讲一下用的九轴JY901怎么用32采集和设置采样频率,JY901有自己的数据产生频率,所以不太一样。头疼!

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值