原创 N76E003 使用bandgap测量供电电压

2021-1-21 15:41 5506 46 4 分类: MCU/ 嵌入式 文集: N76E003使用
N76E003 可以使用单节锂电池直接供电。不需要使用任何AD通道,利用内部集成的带隙参考源可以测量供电电压
带隙参考源 bandgap 标称电压为 1.22V,ADC的参考源为单片机供电电压,当供电电压变化时,测得的Bandgap电压值会不一样。
可以使用公式:  供电电压 = 1.22*4095/Bandgap采样值 求出供电电压。
下面的代码是启动Bandgap 进行AD转换,最后获得小数点后两位的电压值。
  1. Enable_ADC_BandGap;</span>
  2. clr_ADCF;
  3. set_ADCS; // Each time ADC start trig signal
  4. while(ADCF == 0);
  5. i = 0;
  6. tempstr[i++]='V';tempstr[i++]='a';tempstr[i++]='l';tempstr[i++]=':';
  7. // 供电电压 = 1.22*4095/Bandgap采样值
  8. temp = ADCRH;
  9. temp <<= 4;
  10. temp += (ADCRL & 0x0F); // 取得带隙采样值
  11. temp1 = 49959 % temp; // 取得余数
  12. temp1 *= 10;
  13. temp1 = temp1 / temp; // 得到小数位
  14. temp = 49959 / temp; //扩大10倍 12.2*4095 Bandgap
  15. BatVolt = temp; // 保存电池电压
  16. tempstr[i++]= '0' + temp / 10;
  17. temp %= 10;
  18. tempstr[i++]= '.';
  19. tempstr[i++]= '0' + temp;
  20. tempstr[i++]= '0' + temp1;
  21. tempstr[i++]= 'V';
  22. tempstr[i++]= '\r';tempstr[i++]= '\n';tempstr[i++]= '\0';
  23. Send_Str_To_UART0(tempstr,i);

作者: southcreek, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-408807.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论2条评论)

登录后参与讨论

yzw92 2021-1-22 06:23

谢谢楼主分享

curton 2021-1-21 18:22

学习了

欢迎点击


论坛> >机器人/工业电子> >工业电子与自动化


https://mbb.eet-china.com/forum/topic/85437_1_1.html
相关推荐阅读
southcreek 2024-07-08 11:38
接地不良导致的故障分析
这个电路的控制板需要连接显示板和识别板。5V 供电和串行控制连到显示板,显示板再连接到识别板。识别板上电位器使用一个LDO供电,将输入的5V转成3.3V。当电位器滑动时,输出电压在0~3.3V之间。...
southcreek 2024-06-26 09:15
【EMC整改】带辅助加热的滴速控制器辐射抗扰整改
这个滴速式的输液泵使用一个红外线发射和接收装置,当有液滴通过时,会扰动检测信号,识别这个扰动检测到液滴滴下,获得滴壶中的液滴速度,调整阀门大小,实现输液速度控制。控制器还配备一根加热条,用于输液时对药...
southcreek 2024-06-06 08:52
QT 使用QSettings 操作ini文件配合表格操作
这个项目可以演示 使用QSetting 读取或写入 ini文件。并使用tablewidget 显示。Ini文件的格式如下,这个文件可以事先编写。也可以在程序中生成。有一个大类,下面有一个小类使用等号设...
southcreek 2024-05-27 16:18
差分输入ADC的单端到差分转换器驱动设计
单端信号需要转换成差分信号,以便使用ADC进行转换。这个就所谓的ADC驱动电路。需要的结果为Vp = Vcm + Vi/2Vn = Vcm – Vi/2这样 Vp – Vn = Vi使用简单的加法器和...
我要评论
2
46
关闭 站长推荐上一条 /2 下一条