原创 关于智能充电器ADC采样

2009-10-8 22:49 2655 4 4 分类: MCU/ 嵌入式
智能充电器中 我们使用了8个ADC通道采样 2路温度检测 2路电池电压检测 2路电池电流检测 一路MCU内部温度检测 一路VREF电压检测
使用的是DMA连续传输模式
目前使用的是采样16轮 然后去掉16组数据中的最大值最小值 做均值滤波
效果还是很不错的
基本上VREF数值稳定不动 偶尔变动1mv  呵呵
比如我的板子上 VREF 是1207mv   偶尔会出现1208mv 和1206mv  跳动的次数很少很少
基本是稳定在1207  呵呵···

STM32的采样时间是可调的,有8种选择,按周期算为:
1.5+12.5=14
7.5+12.5=20
13.5+12.5=26
28.5+12.5=41
41.5+12.5=54
55.5+12.5=68
71.5+12.5=84
239.5+12.5=252  

这些可以在参考手册 reference manual上查看的到

我们使用的是选择APB2时钟为36MHz,并选择ADC预分频系数=8,则ADC的时钟频率是4.5MHz,即每个周期0.222us;选择ADC采样转换周期(55.5+12.5=68),可得到15.086us的采样转换周期。

// PCLK2 = HCLK
RCC_PCLK2Config(RCC_HCLK_Div2);

/* ADCCLK = PCLK2/6 */
RCC_ADCCLKConfig(RCC_PCLK2_Div8);

一次采样是15.086usus
8通道 全部采集一次是 15.086*8 = 120.768us
8通道16轮采样 所需要的时间是 120.768*16 = 1932.288us    约等于 1933us
attachimg.gif 点击看大图

这个是手册上关于采样时间的说明

这个是板子上跑的运行截图

attachimg.gif 点击看大图
.
.

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条