打印
[STM32L0]

学习笔记+记录STM32L053的ADC采样内部电压Vrefint反推计算VDD

[复制链接]
3043|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WoodData|  楼主 | 2019-12-24 23:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    STM32L053芯片有一个内部的参照电压,典型值是1.2V,在芯片内部连接到ADC1的通道17。可以通过采样该通道数值反推出电源VDD的电压大小。这个在电池供电或者在使用ADC采集电压使用外部参考电压时,如果外部电压变化,则采样的电压将也会发生改变,导致基准电压改变而导致ADC电压出现偏差。因此在该芯片上查看datasheet后得知,厂家已经在出厂时将类似于基准电压的值写在flash中。该值的环境:25°C, VDD = 3V时的情况,可以直接内存地址访问读取。
下面图中就是STM32L053的校准值内存地址。

   


//电压计算
#define VREFINT_CAL_ADDR                 ((uint16_t*) ((uint32_t) 0x1FF80078)) //
uint32_t ComputeVrefVdda(void)
{
        uint32_t vdda;
        vdda = (*VREFINT_CAL_ADDR);
        vdda *= 3000;
        vdda /= Vrefint_ADValue_ch17;//当前Vrefint通道17的采样值。

        return(vdda);
}


原理就是下面等式:
                *VREFINT_CAL_ADDR                   Vrefint_ADValue_ch17
1.2V  = ------------------------------- * 3V  = ------------------------------------- *VDDA
                         2^12                                        2^12   






使用特权

评论回复
沙发
mmuuss586| | 2019-12-28 10:14 | 只看该作者

支持支持

使用特权

评论回复
板凳
guanjiaer| | 2020-1-17 15:24 | 只看该作者
非常感谢分享

使用特权

评论回复
地板
heimaojingzhang| | 2020-1-17 15:27 | 只看该作者
非常感谢分享

使用特权

评论回复
5
keaibukelian| | 2020-1-17 15:41 | 只看该作者
非常感谢分享

使用特权

评论回复
6
labasi| | 2020-1-17 16:03 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
paotangsan| | 2020-1-17 16:26 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
8
renzheshengui| | 2020-1-17 16:38 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
9
xiaoqizi| | 2020-1-17 16:50 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
10
wowu| | 2020-1-17 16:52 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
11
wakayi| | 2020-1-17 16:53 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

119

主题

4603

帖子

27

粉丝