0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32芯片如何使用片内参考电压实现模拟看门狗

茶话MCU 来源:ST MCU 信息交流 作者:ST MCU 信息交流 2020-08-29 16:16 次阅读

STM32芯片ADC模块往往都支持模拟看门狗功能,即可以对单个或多个通道开启模拟转换值的监测。当模拟通道ADC值超出设定的阈值时可以产生模拟看门狗事件并可触发看门狗中断。【注:下面截图或数据都是基于STM32L4系列芯片的,其它STM32系列与其类似。】

结合上图,当选定的ADC通道的转换结果比设置的阈值上限还高或比设定的阈值下限还低时都可以通过硬件触发模拟看门狗事件或中断。

假设现有STM32用户有这样一个应用需求,他希望STM32的供电电压低于一定程度时就提示低压报警,然后软件将进行相关处理。

关于这个应用需求,我们就可以利用片内的一个参考电压和模拟看门狗来实现。

我们知道,STM32芯片内部都内置了一个比较稳定的内部参考电压,即VREFINT。它的电压值一般在1.2v上下,每颗芯片之间可能存在差异。该电压信号固定与某ADC通道在片内相连。ST公司在芯片出厂时对所有芯片的这个内部参考电压都做了ADC转换值的准确测量,得到一个校准值。测量是在常温条件下,ADC参考电压vdda=vref+为3.0V的条件下进行,结果存储在特定地址。

下图是STM32L4系列芯片的数据手册中对VREFINT的ADC校准值的测试条件及其存放地址的信息

我们通过读出芯片特定存储地址的VREFINT转换值,进而可以求算出它的具体电压值。我从手边一块STM32L4开发板读取相应地址的内容,如下面截图所示:

我们从图中可知VERFINT的ADC值为0x067c,据此可以反求出它的电压值:【这里是12位ADC分辨率,据资料可知校准测试时的VDDA=3V。后面都以该芯片数据展开】

0xfff:3.0 = 0x067c:VREFINT

根据上式可以得到该芯片的VREFINT为1.216v。

在较宽泛的芯片供电范围内,该内部参考电压值是个比较稳定而准确的数据。现在假设目前的应用场景满足VDDA=VDD,VDD在使用过程中会随时间慢慢下降,当VDD低到一定程度时需告警并需软件提前做些处理。

尽管VDDA/VDD在变,但VDDA始终是ADC模块的基准电压,它对应的ADC值始终是满量程值【0xfff】,另外VREFINT的电压值也没变,不过随着VDDA的变化,VREFINT所对应ADC值会一直在变化。但在任一时刻下面的关系式总是成立的【当然,电源电压至少要保障芯片能正常工作】:

VDDA:4095 = VREFINT:Adc_vrefint

上式中的Adc_vrefint为VREFINT在当前VDDA条件下所对应的ADC值,VREFINT为前面计算出来的电压值1.216v.

不难理解,对于同一VREFINT,随着VDDA的不断走低,它所对的转换值则是不断走高。

假设当VDDA低到2.65V时告警,我们可将上式中的VDDA换成2.65v,即可求出VREFINT此时所对应ADC值,经计算此时Adc_vrefint等于1879。也就是说,当VREFINT的所对应的ADC转换值等于1879时,VDDA就降到了2.65V.当VREFINT的转换值大于1879时,意味着VDDA比2.65V还要低。【具体使用时可以考虑一定裕量】

基于上述原理,我们开启VREFINT通道的模拟看门狗功能,拟定出合适的模拟看门狗的阈值。结合刚才的描述,1879就可以做VREFINT通道模拟看门狗的阈值上限,当VREFINT的转换值大于1879时就会产生模拟看门狗事件及中断。

下图是使用STM32CubeMx进行相关配置的部分截图。

上面主要基于STM32芯片和一个特定应用需求,大致介绍了如何使用片内参考电压实现模拟看门狗的基本思路,同时也顺便介绍了基于内部参考电压对芯片电源进行监测的方案。当然,有人可能注意到了,有关芯片电源监测话题前面也专门分享过,但没提模拟看门狗的内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    540

    浏览量

    70251
  • adc
    adc
    +关注

    关注

    95

    文章

    5646

    浏览量

    539394
  • STM32
    +关注

    关注

    2239

    文章

    10669

    浏览量

    348698

原文标题:ADC模拟看门狗应用方案介绍

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浅析STM32之独立看门狗与窗口看门狗

      STM32之独立看门狗与窗口看门狗总结  一、独立看门狗  STM32 的独立看门狗由内部专
    发表于 07-21 07:09

    看门狗基本介绍

    我采用得是STM32F10RC 参考得是STM32普中科技的给出得例子:(这里给出网址)1、基本介绍 包含有两个看门狗,独立看门狗:IWDG 窗口
    发表于 07-30 08:25

    看门狗是什么 看门狗的功能

    STM32的独立看门狗概述看门狗是什么看门狗的功能独立看门狗所需的环境独立看门狗工作原理
    发表于 07-30 08:07

    使用STM32看门狗

    STM32 高级定时器-PWM简单使用STM32看门狗2010-04-10 17:37:02|分类:STM32|标签:|字号大中小 订阅STM3
    发表于 07-30 07:09

    模拟看门狗

    模拟看门狗简介STM32F1中带有的模拟看门狗功能,允许应用程序检测输入电压是否超出事先定义的
    发表于 08-02 08:43

    STM32看门狗的作用

    本文主要介绍了STM32看门狗的作用,分别介绍了独立看门狗和窗口看门狗的原理和实现
    发表于 08-02 09:45

    什么是看门狗 为什么要看门狗

    什么是看门狗?为什么要看门狗看门狗可不是那个入侵手机的游戏在STM32中,它具有"看家"的功能所谓"看家",意思就是察觉到异常,就马上反应过来,反馈给主人
    发表于 08-02 10:59

    一文读懂什么是模拟看门狗

    什么是模拟看门狗STM32F1模拟看门狗相关配置函数有哪些?如何去配置STM32F1
    发表于 08-16 06:10

    怎样去模拟STM32看门狗中断呢

    怎样去模拟STM32看门狗中断呢?如何去设置电压高低电平的阈值呢?
    发表于 09-14 07:01

    浅析STM32的独立看门狗与窗口看门狗

    怎样去启动STM32的独立看门狗?窗口看门狗库函数如何实现用中断的方式来喂狗呢?
    发表于 09-18 09:17

    STM32芯片模拟看门狗是怎么回事呢

    什么是看门狗STM32芯片模拟看门狗是怎么回事呢?与独立看门狗有关系吗?它是怎么工作的?
    发表于 09-18 08:41

    模拟看门狗是什么

      看门狗的功能大家都知道,而这个模拟看门狗又是什么东西呢?  简单的说就是这个模拟看门狗可以实时监控ADC采样的数据,当采样的数据值小于设
    发表于 01-27 07:19

    STM32 ADC模拟看门狗及应用

    模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高低阈值,用户可以预先设定个模拟看门狗的上下限
    发表于 09-08 06:26

    如何实现模拟看门狗

    作者:逸珺 转自:STM32 对于看门狗大家或许不陌生,但对于模拟看门狗有的朋友可能就不甚了解了。本文来聊聊模拟
    的头像 发表于 10-23 14:51 4909次阅读
    如何<b class='flag-5'>实现</b><b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b>?

    STM32 ADC模拟看门狗及其应用

    STM32 ADC模拟看门狗及其应用(电源技术期刊是什么级别期刊)-模拟看门狗特性允许应用程序检测输入
    发表于 08-04 18:12 29次下载
    <b class='flag-5'>STM32</b> ADC<b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b>及其应用