在
智能充电器中 我们使用了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
这个是手册上关于采样时间的说明
这个是板子上跑的运行截图
.
.
文章评论(0条评论)
登录后参与讨论