找回密码
 立即注册
查看: 1744|回复: 12

怎么利用内部15通道的Bandgap电压来测量外部电压

[复制链接]

该用户从未签到

1

主题

15

回帖

55

积分

注册会员

积分
55
发表于 2023-3-13 16:51:34 | 显示全部楼层 |阅读模式
 各位大师们,MCU是STC8H1K08,VREF是接到VCC的5V上的,怎么利用内部15通道的Bandgap电压来测量外部电压,外部电压是用ADC12来检测,有相关的计算公式或是参考代码吗?谢谢!
回复 送花

使用道具 举报

该用户从未签到

547

主题

9120

回帖

1万

积分

管理员

积分
14127
发表于 2023-3-13 17:02:24 | 显示全部楼层


请参考
1.png

该用户从未签到

1

主题

15

回帖

55

积分

注册会员

积分
55
 楼主| 发表于 2023-3-13 17:12:36 | 显示全部楼层
  我看了这个参考程序是检测电源电压VCC的,没有检测外部其它ADC口的电压的,所以有点不是很明白,要检测其它AD口的电压要怎么处理,谢谢解答!

该用户从未签到

547

主题

9120

回帖

1万

积分

管理员

积分
14127
发表于 2023-3-13 18:38:08 | 显示全部楼层
你没看完:
1.png

2.png
3.png


该用户从未签到

1

主题

15

回帖

55

积分

注册会员

积分
55
 楼主| 发表于 2023-3-13 19:12:49 | 显示全部楼层
好的,明白,谢谢!

该用户从未签到

45

主题

2847

回帖

6402

积分

超级版主

积分
6402
发表于 2023-3-13 22:49:08 | 显示全部楼层
利用内部15通道的Bandgap电压来校准外部电压,外部电压是用ADC12来检测:
读取ADC12,读取ADC15,则输入电压 = BGV * ADC12/ADC15。
为了避免浮点运算,转成整数运算,比如BGV取1.19V,则输入电压 = (u32)1190*ADC12/ADC15,结果单位为mV,比如结果为2355,则为2.355V。

该用户从未签到

1

主题

15

回帖

55

积分

注册会员

积分
55
 楼主| 发表于 2023-3-14 14:52:45 | 显示全部楼层
好的,解答得非常祥细,非常感谢!

该用户从未签到

1

主题

15

回帖

55

积分

注册会员

积分
55
 楼主| 发表于 2023-3-14 15:32:11 | 显示全部楼层
还有个地方不是很明白,这个BGV电压从ROM中读取出来,固定的1.19V还是一个变化的电压呢?会受电压变化的影响吗?

点评

BGV电压从ROM中读取出来的是生产测试时的实际电压,固定的1.19V是额定电压(Normal),这BGV在MCU2.5~5.5V供电时,其变化一般会小于1%。  详情 回复 发表于 2023-3-14 16:06

该用户从未签到

45

主题

2847

回帖

6402

积分

超级版主

积分
6402
发表于 2023-3-14 16:06:23 | 显示全部楼层
本帖最后由 梁工 于 2023-3-14 16:07 编辑
qjy822 发表于 2023-3-14 15:32
还有个地方不是很明白,这个BGV电压从ROM中读取出来,固定的1.19V还是一个变化的电压呢?会受电压变化的影 ...

BGV电压从ROM中读取出来的是生产测试时的实际电压,固定的1.19V是额定电压(Normal),这BGV在MCU2.5~5.5V供电时,其变化一般会小于1%。
如果你的VREF要更高的精度和更小的温度系数,请外挂基准。好的基准一般比MCU贵得多。

该用户从未签到

1

主题

15

回帖

55

积分

注册会员

积分
55
 楼主| 发表于 2023-3-14 17:20:37 | 显示全部楼层
好的,明白,目前这个精度已经够用了,谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-4-20 06:56 , Processed in 0.067653 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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