找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6986|回复: 16
打印 上一主题 下一主题
收起左侧

STC15W系列单片机ADC有内部参考电压吗?

[复制链接]
跳转到指定楼层
楼主
       上个帖子,说因为3.6V升压12V,然后在降5V给单片机供电,也用做ADC参考电压,这样升降压电源波动很大,造成ADC数值很不稳定。坛友都说15W系列单片机有内部参考电压,我是小白回头看了手册还是没找到说明。下面的图11脚是不是大家说的内部参考电源?这个不是要外接一个电源吗?       我用的是15W408AS


51hei截图20210926172523345.jpg (150.06 KB, 下载次数: 89)

51hei截图20210926172523345.jpg

51hei截图20210926173910406.jpg (197.3 KB, 下载次数: 96)

51hei截图20210926173910406.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2021-9-26 18:17 来自手机 | 只看该作者
什么都不用接,内部参考电压在内部,大约是1250nv,具体大小可以看isp检测信息,每片不同。只要p1as=0,就是测的内部电压,基于vcc为1023的,内部电压,所以你测出512说明vcc是2.5v测出256,说明vcc是5v,所以,vcc接锂电,你就直接得到了锂电电压。s
回复

使用道具 举报

板凳
ID:624769 发表于 2021-9-26 20:17 | 只看该作者
刚才,手机打字不方便,就简单得回了一下。
上一篇你提问时,已经和你说过,STC15系列也好,8系列也好,只要没有带Vref 引脚的,接不接外部参考电压,没什么区别,反之,对VCC的稳定(是稳定,不是精确)要求是非常高的。上次没有展开说,就这次和你捋一下原因。
有Vref 引脚,测量ADC的时候,满值(1023,有的是4095)是以外部参考电压Vref引脚的电压作为标准,所以,无论你VCC如何波动,只要你的外部参考电压,足够稳定,你测量到的ADC结果,就是稳定的。
而没有Vref引脚,无论你是通过内部参考电压,做参考,还是外部ADC引脚接一个参考电压,在每次测量的时候,ADC满值的1023,都是针对当前的VCC电压而言的,那么,你说当你VCC在4.9V~5.1V波动的情况下,你每次测量的ADC值,是不是都会上下浮动? 即便你用内部的参考电压,或者外部接一个参考电压。当你需要测量外部电压的时候,都需要测量两次,一次是用VCC测量参考电压,一次是用VCC测量你需要知道电压的被测电压。问题的关键是,你需要确保这两次测量的时候,VCC是没有变化的。做不到这点,你的参考电压哪怕再精准,被测电压哪怕再稳定,最后得出的结果也是频繁跳跃的。
经过我15W401AS系列 15W4k系列,8A系列,8G系列,8H系列的各系列验证,当电池供电的情况下,通过ADC测量内部基准电压的时候,返回值是极其稳定的,数值几乎是恒定不动的(个人以为,测量ADC,数值稳定,精准重要的多,数值有偏差可以后期修正,不稳定是最麻烦的),比测量TL431(接在AD口)得到值要稳定的多(低2位~低3位会跳动)。当然,前面已经说了,Vref引脚另论。
所以,我才会建议你,单片机直接锂电池供电,你测量内部基准电压就能知道锂电池电压,省事,还省IO口。最后,15W是宽电压,电池完全不需要降压到3.3V,你上篇帖子说要降压到3.3V是没有任何意义的。
回复

使用道具 举报

地板
ID:401564 发表于 2021-9-26 21:18 | 只看该作者
数据手册898页有说明
这个单片机我以前做LED手电的时候用过,就是想通过内部参考电压来进行低电压指示和自动关机,但内部参考电压每片都有可能不一样的,所以,经常出现低电压指示不一样的情况,
误差最大可以达到0.2V
所以,每片要使用这个内部参考电压之前都要进行测量才能正确的使用,很麻烦,后来才改用STC8G系列的
回复

使用道具 举报

5#
ID:123289 发表于 2021-9-27 11:09 | 只看该作者
让采样传感器(如分压电阻)使用的电源,与AD的参考电源,是同一个电源。也是一种方式。
回复

使用道具 举报

6#
ID:879348 发表于 2021-9-27 14:54 | 只看该作者
它有一个通道电压,但是每个差别比较大,需要在烧录程序的时候设置获得这个值保存在特定地址,然后根据这个值反推其他通道电压
回复

使用道具 举报

7#
ID:401564 发表于 2021-9-27 15:01 | 只看该作者
188610329 发表于 2021-9-26 20:17
刚才,手机打字不方便,就简单得回了一下。
上一篇你提问时,已经和你说过,STC15系列也好,8系列也好,只 ...

8A系列,8G系列,8H系列这三个的内部参考电压是稳定而且是相对固定的,可以用来作为参考电压来测量VCC的电压
唯独15W系列不行,虽然它内部参考电压也是稳定的,但每一片之间并不是固定的1.27V,最大误差可以达到0.2V,所以,直接用锂电池供电,然后就测量VCC电压是不行的
至少是要先进行一次校正,在15W数据手册中,不止一次的强调要在VCC很精准的情况先测量内部参考电压,然后保存到EEPROM中,而8A系列,8G系列,8H系列是没有这个说明的
我之前就是用15W来DIY几个小手电的,也是想通过内部参考电压来测量电池电压的,但是,5个单片机之间的误差最大的就是0.2V,改用8G系列就可以直接测量了
回复

使用道具 举报

8#
ID:608872 发表于 2021-9-27 16:35 | 只看该作者
188610329 发表于 2021-9-26 20:17
刚才,手机打字不方便,就简单得回了一下。
上一篇你提问时,已经和你说过,STC15系列也好,8系列也好,只 ...

      非常感谢你的回答。我用4位半万能表测12V经7805降压的5V,电压显示是稳定没有波动,看来是电源纹波影响ADC的稳定,这个需要示波器才能判断了。
       下面是数据手册给的读取内部参考电压列程,读取到内部参考电压后,怎么反推出锂电池VCC电压呢。还有你说的省IO口,是不是ADC第9通道首次读取到内部参考电压后,就可以设置为普通IO复用吗。
第一步:通过ADC的第9通道测试Bandgap电压的ADC测量值
ADC_RES=0;
PIASF=0x00; II不设置PIASF,即可从ADC的第9通道读取内部Bandgap电压的ADC测量值
ADC_CONTR =ADC_POWER|ADC_SPEEDLL;
Delay(2);
ADC_CONTR=ADC_POWER|ADC_SPEEDLL10|ADC_START;
_nop_0;
_nop_0;
_nop_0);
_nop_O;
while (I(ADC_CONTR&ADC_FLAG);
ADC_CONTR &=~ADC_FLAG;
ADCbg =ADC_RES;
/I清除结果寄存器
/IADC上电并延时
/1等待4个NOP
//等待ADC转换完成
/1清除ADC标志
II第二步:通过ADC的第2通道测试外部输入电压的ADC测量值
ADC_RES= 0;
PIASF=0x02;
/1清除结果寄存器
1/设置P1.1口为模拟通道
回复

使用道具 举报

9#
ID:608872 发表于 2021-9-27 16:35 | 只看该作者
Y_G_G 发表于 2021-9-26 21:18
数据手册898页有说明
这个单片机我以前做LED手电的时候用过,就是想通过内部参考电压来进行低电压指示和自 ...

谢谢,找到说明了
回复

使用道具 举报

10#
ID:608872 发表于 2021-9-27 17:29 | 只看该作者
Y_G_G 发表于 2021-9-27 15:01
8A系列,8G系列,8H系列这三个的内部参考电压是稳定而且是相对固定的,可以用来作为参考电压来测量VCC的电 ...

VCC首次用精准稳定的5V,测试出内部参考电压并保存到EEPROM,次后如果VCC不稳定,用首次读到的内部参考电压和外部ADC对比,是不是就不受VCC影响呢
回复

使用道具 举报

11#
ID:624769 发表于 2021-9-27 18:18 | 只看该作者
yinnan128 发表于 2021-9-27 17:29
VCC首次用精准稳定的5V,测试出内部参考电压并保存到EEPROM,次后如果VCC不稳定,用首次读到的内部参考电 ...

没用的, 比如,你VCC 5V 的时候,测到内部基准电压是 0x40, 代表 1.25V,    你VCC 4V时  再测内部电压,就要 0x6A 了,   所以,你只能,每次去测内部电压, 并且保证, 测内部电压时,和外部电压时,你的VCC 不发生变化。
回复

使用道具 举报

12#
ID:624769 发表于 2021-9-27 18:28 | 只看该作者
Y_G_G 发表于 2021-9-27 15:01
8A系列,8G系列,8H系列这三个的内部参考电压是稳定而且是相对固定的,可以用来作为参考电压来测量VCC的电 ...

8 系列内部 参考电压,现对 15系列的确每个批次 +- 要少,
但是,没有什么实际意义,最终你要确切的电压,还是必须要每一片读一下出厂的测试数据,或者,你自己测量给出校正值。

但是,在依靠内部电压为参考,去测量外部电压时,还是要重新测量内部电压,来知道当前的VCC电压值,还要保证,测量内部电压,算出VCC电压,到利用这个算出来的VCC电压,测量外部电压这个过程,VCC不产生变化,这才是没有Vref 引脚的单片机的硬伤。 其实,保证了,VCC的稳定之后,8系列也好,15系列也好,ADC这块,本质上没有什么区别,无非,一个要每一台读出基准电压的具体数值直接用1.25V误差有点大,,一个计算不测量,直接用1.19V最多业就是 千分之五的误差。业就这个区别而已。
回复

使用道具 举报

13#
ID:401564 发表于 2021-9-28 01:14 | 只看该作者
188610329 发表于 2021-9-27 18:28
8 系列内部 参考电压,现对 15系列的确每个批次 +- 要少,
但是,没有什么实际意义,最终你要确切的电压 ...

不知道你想说什么
15系列和8系列在内部参考电压的使用上是有本质区别的
通过内部参考电压测量VCC不需要进行两次的ADC,只要进行一次内部参考的ADC就可以知道当前的VCC是多少了,当你得到内部参考电压的数字量之后,再和1.19V进行运算,就可以知道当前的VCC是多少了
回复

使用道具 举报

14#
ID:401564 发表于 2021-9-28 01:19 | 只看该作者
yinnan128 发表于 2021-9-27 17:29
VCC首次用精准稳定的5V,测试出内部参考电压并保存到EEPROM,次后如果VCC不稳定,用首次读到的内部参考电 ...

对的
第一校准之后,把当前的内部参考电压写入EEPROM之后,以后,不管VCC是多少,都可以通过内部参考电压来测量VCC,精度就和8G系列是一样的了
不推荐,太麻烦了
但如果你是一定要这么做,那最好是增加一个校准程序和按键或者串口通讯之类的,方便一次性完成和批量生产
回复

使用道具 举报

15#
ID:608872 发表于 2021-9-28 10:19 | 只看该作者
Y_G_G 发表于 2021-9-28 01:14
不知道你想说什么
15系列和8系列在内部参考电压的使用上是有本质区别的
通过内部参考电压测量VCC不需要 ...

1.19V这个电压是怎么来的呢?
回复

使用道具 举报

16#
ID:401564 发表于 2021-9-28 10:49 | 只看该作者
yinnan128 发表于 2021-9-28 10:19
1.19V这个电压是怎么来的呢?

1.19V是STC8G内部参考电压值
1.27V是STC15W内部参考电压值
回复

使用道具 举报

17#
ID:608872 发表于 2021-9-28 15:09 | 只看该作者
188610329 发表于 2021-9-27 18:28
8 系列内部 参考电压,现对 15系列的确每个批次 +- 要少,
但是,没有什么实际意义,最终你要确切的电压 ...

刚试了下,烧录器5V直接供电单片机和LCD1602,断开12V升压SX1308的5V供电。ADC数值非常稳定,一点不跳动。但一接SX1308的供电(没有如何负载),ADC马上不稳定。SX1308开关频率是固定1.2M,看来需要重新布局PCB降低干扰,或更换频率低的升压IC
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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