【经验分享】使用kinetis芯片自测VDD电压
本帖最后由 FSL_TICS_Robin 于 2014-7-18 13:50 编辑使用kinetis芯片自测VDD电压
本文以KL25为例,其他型号类似,讲解如何使用芯片内部的bandgap以及ADC相结合,实现对芯片VDD电压的检测,这样可以跟踪实际VDD的电压,防止芯片电压过低。尤其适用于电源使用的是电池的情况。
硬件平台: FRDM-KL25
代码平台:官方的LQRUG_bme_ex2
原理及思想:
当VDDA和VREFH连接在一起的时候,使用内部的bandgap 电压,这个电压为1V,作为ADC的输入,然后倒推实际的VDDA电压,这里配置转换模式为16位单端模式,倒推VDDA的公式为:
VDDA=(Vbg*65535)/Conversion result (1)
其中:VDDA就是实际芯片的电压
Vbg:bandgap电压为1V
Conversion result:以1Vbandgap为输入时,对应得到的AD转换结果。
实际代码配置:
本实验是在官方的LQRUG_bme_ex2的基础上加以修改,主要修改点有三点:
1,选择BANDGAP 为ADC的输入,则将ADC0_CHANB配置为0X1B.具体选择参考RM中的下图:
2:配置ADC的转换模式为单端16位模式
ADC0_CFG1 |= ADC_CFG1_MODE(3);
3:打开bandgap模块。
PMC_REGSC |= 0X01;//OPEN BANDGAP
经过以上3点配置,然后根据公式(1)的计算方法就可以实现电压的采集了。
代码请查看附件,或者自行根据官方例程修改。
实际测试结果为:
万用表测试:VDDA=2.92
软件测试结果如下:
和实际稍微有些偏差,原因是内部的bandgap电压范围为(0.97V 到1.03V).所以,这种方法适合初略测试。
如果大家还有其他好的方法,欢迎一起交流!
**** Hidden Message *****
PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营的飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。 欢迎大家提出自己的好方法! 感谢楼主的经验分享!
看看代码。 感谢楼主的经验分享! 下载,学习下 省了取样电阻 如果是内部的bandgap电压引起的误差,
同一颗料,bandgap电压是相对稳定的吗?
如果是,可以做个校准,校准参数存好,电源电压就准了 swap2013 发表于 2014-7-29 13:52
如果是内部的bandgap电压引起的误差,
同一颗料,bandgap电压是相对稳定的吗?
如果是,可以做个校准,校准 ...
从KL25的数据手册KL25P80M48SF0上看bandgap电压有范围最小0.97典型1.00最大1.03
思路很巧妙。 还好有Vbg 来实现 飞思卡尔在pmu上很行啊 回复看一下!
页:
[1]