查看: 3875|回复: 5

[求助] 【经验交流】使用kinetis芯片自测VDD电压

[复制链接]

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-2-19 10:46:59 | 显示全部楼层 |阅读模式
 
 本文以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
软件测试结果如下:
ADC conversion for potentiometer started, press any key to stop ADC conversion

  R0A=   22534
  Vdd=    2908
  R0A=   22523
  Vdd=    2909
  R0A=   22533
  Vdd=    2908
  R0A=   22526
  Vdd=    2909
  R0A=   22516
  Vdd=    2910
  R0A=   22531
  Vdd=    2908
  R0A=   22528
  Vdd=    2909
  R0A=   22535
  Vdd=    2908
  R0A=   22517
和实际稍微有些偏差,原因是内部的bandgap电压范围为(0.97V 到1.03V).所以,这种方法适合初略测试。
 
如果大家还有其他好的方法,欢迎一起交流!
 
我知道答案 目前已有5人回答

kl25_adc_bandgap.rar

3.06 MB, 下载次数: 27, 下载积分: 威望 1

回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
 楼主| 发表于 2014-2-19 10:49:55 | 显示全部楼层

RE:[经验交流]使用kinetis芯片自测VDD电压

欢迎大家提出自己的好方法!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6022
    最后登录
    2020-9-28
    发表于 2014-2-19 11:18:33 | 显示全部楼层

    回复:[经验交流]使用kinetis芯片自测VDD电压

    很不错的方法,大家手头有板子的可以测试一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    118

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    227
    最后登录
    1970-1-1
    发表于 2014-2-19 21:10:35 | 显示全部楼层

    回复:[经验交流]使用kinetis芯片自测VDD电压

    学习一下KL25的ADC
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    705

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1745
    最后登录
    1970-1-1
    发表于 2014-6-9 09:31:44 | 显示全部楼层

    RE:【经验交流】使用kinetis芯片自测VDD电压

    感谢楼主的原创分享,很有用!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    新手上路

    Rank: 1

    积分
    10
    最后登录
    2015-11-6
    发表于 2014-11-26 18:08:06 | 显示全部楼层
    不好意思, 想请教一下, 我是使用 FRDM-KL26Z 的开发版, 环境是 CodeWarrior
    在 ADC 的设定, 可以将 Bandgap 作为 ADC source, 也将 ADC 的转换模式设为单端16位模式, 但不知道如何将 Bandgap 开启, 找不到设定方式, 代码似乎也无帮助, 可否给些建议或方向~~thx!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-19 03:26 , Processed in 0.092452 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表