找回密码
 立即注册
查看: 355|回复: 6

软件如何测量STC8G系列共电电压

[复制链接]
  • TA的每日心情
    开心
    2023-11-28 15:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    8

    回帖

    55

    积分

    注册会员

    积分
    55
    发表于 2023-11-28 15:41:42 | 显示全部楼层 |阅读模式
    STC8G1K系列,供电电压通过VCC输入, 软件如何测量当前的VCC 值?
    查看数据手册, 没有发现有VCC的ADC 通道. 这里咨询一下。

    回复 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9567

    回帖

    1万

    积分

    管理员

    积分
    14057
    发表于 2023-11-28 15:56:27 | 显示全部楼层
    截图202311281556237682.jpg
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3058

    回帖

    6895

    积分

    超级版主

    积分
    6895
    发表于 2023-11-28 16:50:05 | 显示全部楼层
    STC8系列都通用的方法:测量15通道的ADC值即可计算出VCC,10位ADC为:VCC = 1.19*1024/ADC15,12位ADC为: VCC = 1.19*4096/ADC15。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-28 15:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    8

    回帖

    55

    积分

    注册会员

    积分
    55
     楼主| 发表于 2023-11-30 17:40:23 | 显示全部楼层
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-28 15:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    8

    回帖

    55

    积分

    注册会员

    积分
    55
     楼主| 发表于 2023-11-30 17:50:00 | 显示全部楼层
    本帖最后由 zhuqingtao 于 2023-11-30 18:03 编辑

    但还是有个疑问, 查看数据手册, 在计算 GPIO 的输入电压 Vin 的时候,要读1.19的 ADC (通道15) 和 Vin的 ADC (例如通道14),
    VIN = ADC_Vin * 119 / ADC_15, 要取得两个ADC的值,
    但计算 供电电压VCC 时, 为什么 只读取 通道15 的ADC?  VCC 管脚输入的ADC 不需要了吗?

    点评

    ADC的参考电压是VCC,即ADC读到的值是某一通道电压与VCC的比值。 当我们考虑单独一个通道时, ADC(x) = res * V(x) / VCC (式1) 或 V(x) = ADC(x) * VCC / res 其中res为分辨率,10位ADC时 res = 2^10 = 102  详情 回复 发表于 2023-11-30 18:36
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 16:59
  • 签到天数: 164 天

    [LV.7]常住居民III

    9

    主题

    310

    回帖

    3789

    积分

    荣誉版主

    积分
    3789
    发表于 2023-11-30 18:36:12 | 显示全部楼层
    zhuqingtao 发表于 2023-11-30 17:50
    但还是有个疑问, 查看数据手册, 在计算 GPIO 的输入电压 Vin 的时候,要读1.19的 ADC (通道15) 和 Vin ...

    ADC的参考电压是VCC,即ADC读到的值是某一通道电压与VCC的比值。

    当我们考虑单独一个通道时,
    ADC(x) = res * V(x) / VCC        (式1)

    V(x) = ADC(x) * VCC / res
    其中res为分辨率,10位ADC时 res = 2^10 = 1024 ,12位ADC则是 res = 2^12 = 4096 。

    但此时我们并不知道VCC准确的值,因此无法计算通道电压V(x)。
    不难想到,如果我们有一个稳定且确定的电压值(即通道15),那么有
    ADC(15) = res * V(15) / VCC        (式2)
    其中 V(15) = 1.19 V 已知。

    将(式1)与(式2)相除,则有
    ADC(x) / ADC(15) = V(x) / V(15)

    V(x) = ADC(x) * V(15) / ADC(15)
    也就是你写出的式子

    但此时我们需要的是VCC,上述方式是将VCC消去的方法
    注意到(式2)中除了VCC外均为已知量,则可以变形求得VCC
    VCC = res * V(15) / ADC(15)

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2023-11-28 15:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    8

    回帖

    55

    积分

    注册会员

    积分
    55
     楼主| 发表于 2023-12-1 09:12:16 | 显示全部楼层
    回复 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-21 21:24 , Processed in 0.064153 second(s), 56 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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