打印
[Kinetis]

【经验分享】使用kinetis芯片自测VDD电压

[复制链接]
6004|42
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 FSL_TICS_A 于 2014-3-25 17:13 编辑

使用kinetis芯片自测VDD电压
本文以KL25为例,其他型号类似,讲解如何使用芯片内部的bandgap以及ADC相结合,实现对芯片VDD电压的检测,这样可以跟踪实际VDD的电压,防止芯片电压过低。尤其适用于电源使用的是电池的情况。
硬件平台: FRDM-KL25
代码平台:官方的LQRUG_bme_ex2
原理及思想:
VDDAVREFH连接在一起的时候,使用内部的bandgap 电压,这个电压为1V,作为ADC的输入,然后倒推实际的VDDA电压,这里配置转换模式为16位单端模式,倒推VDDA的公式为:
VDDA=(Vbg*65535)/Conversion result    1
其中:VDDA就是实际芯片的电压
Vbgbandgap电压为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.所以,这种方法适合初略测试。
如果大家还有其他好的方法,欢迎一起交流!
游客,如果您要查看本帖隐藏内容请回复

相关帖子

沙发
FSL_TICS_ZJJ|  楼主 | 2014-2-19 10:48 | 只看该作者
欢迎大家提出自己好的方案。

使用特权

评论回复
板凳
FSL_TICS_A| | 2014-2-20 11:28 | 只看该作者
好贴啊,支持一下!!

使用特权

评论回复
地板
攻城狮| | 2014-2-20 17:26 | 只看该作者
谢谢楼主分享,学习啊!

使用特权

评论回复
5
Imakey| | 2014-2-20 22:54 | 只看该作者
楼主k60方面有没有类似的教程?

使用特权

评论回复
6
FSL_TICS_ZJJ|  楼主 | 2014-4-9 16:05 | 只看该作者
Imakey 发表于 2014-2-20 22:54
楼主k60方面有没有类似的教程?

亲,K60的思路是一样的。

使用特权

评论回复
7
xinyinxing| | 2014-4-9 17:28 | 只看该作者
学习了,感谢楼主分享!

使用特权

评论回复
8
xinyinxing| | 2014-4-15 14:53 | 只看该作者
这个正好是今天发的改变vdd电压测试温度工程中的一部分!

使用特权

评论回复
9
fyzhuhui| | 2014-6-8 20:46 | 只看该作者
这个要用一下。非常好。

使用特权

评论回复
10
FSL_TICS_Robin| | 2014-6-9 10:17 | 只看该作者
fyzhuhui 发表于 2014-6-8 20:46
这个要用一下。非常好。

如果大家使用L系列产品,可以关注【FTF技术培训课程】下一代Kinetis K系列-K2,及L系列MCU介绍
三,Kinetis L系列新特性
更高主频和更大memory
ROMwith Boot Loader
BlackBox可放BLE、Zigbee的stack 通过API调用
Crystal-lessUSB  内部高精度48MHz时钟源
HighSpeed I2C  可达1Mbps
1.2VInternal Voltage Reference可供ADC
FlexIO可同时模拟2个串行接口

今后新产品将添加1.2V的内部电压参考:D

使用特权

评论回复
11
hypear| | 2014-7-6 09:12 | 只看该作者
thanks

使用特权

评论回复
12
caijun_2012| | 2014-7-21 08:55 | 只看该作者
:)

使用特权

评论回复
13
choosechan| | 2014-10-25 22:53 | 只看该作者
厉害,学习了。

使用特权

评论回复
14
Mcuzone_xyz| | 2014-10-27 12:58 | 只看该作者
这个不错,bandgap为0.97V-1.03V的话,实际测得的偏差最大就是0.06V。如果用内部的Vref_out 1.2V的话,精度还可以更高。

使用特权

评论回复
15
ysszhk| | 2014-11-11 16:50 | 只看该作者
:(

使用特权

评论回复
16
FSL_TICS_ZJJ|  楼主 | 2014-11-12 09:20 | 只看该作者
ysszhk 发表于 2014-11-11 16:50

有问题,可以直接发帖交流哦。

使用特权

评论回复
17
ysszhk| | 2014-11-12 17:45 | 只看该作者
我用kl02在keil中ADC0用软件触发实现了这个,昨天有点捉急,所以发了一个哭脸,给的例程,说实话,不够精简,改的有点费劲,不过是个好资源,帮了我很多。要不我的ADC采样难得调通。

使用特权

评论回复
18
tengyong1012| | 2014-11-13 10:33 | 只看该作者
谢谢分享

使用特权

评论回复
19
wangyangele| | 2014-11-28 00:34 | 只看该作者
good

使用特权

评论回复
20
bndanshen| | 2015-1-20 22:47 | 只看该作者
这个必须看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

165

主题

5069

帖子

88

粉丝