!!!求430读取VDD管脚上的电压值的代码!!!

2019-03-24 10:18发布

求430读取VDD管脚上的电压值的代码,哪位大大有的,可否参考一下。
我想读取430VDD管脚上的电压值来粗略判断3.6V的锂电池的剩余电量,
不知道这种方法可行否,只要很粗略的判断(比如低电量通知)就行了。
另外,这样子是否无需改动外部任何电路?不用参考电阻或者分压电阻什么的?因为我只要读VDD管脚上的电压值。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
强仔00001
1楼-- · 2019-03-25 10:06
dcexpert 发表于 2015-4-21 10:50
一般可以这样做,将ADC的基准参考设置为VDD,然后去读取内部的基准电压。因为内部基准相对是一个恒定值,这样就可以反推出VDD的电压了,这样是不需要改动电路的。

但是如果是锂电池,电压超过了3.6V,就不能直接连到VDD上,可以串联二极管降压。如果不需要精确电压,只需要一个告警门限,通常用比较器就行。

新技能get
强仔00001
2楼-- · 2019-03-25 12:25
没做过这方面的,你可以把VDD接到AD口来读取数据,然后转换电压值吧
qiushenghua
3楼-- · 2019-03-25 17:17
 精彩回答 2  元偷偷看……
qiushenghua
4楼-- · 2019-03-25 21:19
下面这段代码摘自某个程序,使用MSP430G2452实现电源电压检测部分。

其中ADC_Interrupt为宏定义,用于判断唤醒MCU的中断源确系ADC中断,说明ADC转换完成。
需要在ADC中断服务里将MCU从低功耗工作状态中唤醒。

  1.                         //测电压
  2.                         ADC10CTL1 = INCH_11;
  3.                         ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON+ ADC10IE;
  4.                         ADC10CTL0 |= ENC + ADC10SC;
  5.                         LPM3;
  6.                         if(ADC_Interrupt)
  7.                         {
  8.                                 ADC_value = ADC10MEM;
  9.                                 ADC10CTL0 &= ~ENC;
  10.                                 if(ADC_value==0x3ff)
  11.                                 {
  12.                                         ADC10CTL0 &= ~ENC;
  13.                                         ADC10CTL1 = INCH_11;
  14.                                         ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + REF2_5V + ADC10IE;
  15.                                         ADC10CTL0 |= ENC + ADC10SC;
  16.                                         LPM3;
  17.                                         if(ADC_Interrupt)
  18.                                         {
  19.                                                 ADC_value = ADC10MEM;
  20.                                                 ADC10CTL0 &= ~ENC;
  21.                                                 Vcc=(ADC_value>>1)+(ADC_value<<1);
  22.                                         }
  23.                                 }
  24.                                 else
  25.                                 {
  26.                                         ADC_value+=ADC_value>>1;
  27.                                         Vcc=ADC_value;
  28.                                 }
  29.                         }
复制代码
helloxieyu
5楼-- · 2019-03-25 22:12
又是“qiushenghua”大大帮忙,问题解决了,谢谢啦!
helloxieyu
6楼-- · 2019-03-26 01:52
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章