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

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

3天内不再提示

使用STM32ADC看门狗测量出待测信号

麦辣鸡腿堡 来源:茶话MCU 作者:茶话MCU 2023-07-17 10:31 次阅读

我们在做ADC应用时,有些场合需要精确测量出待测信号的数据,有时可能并不关心ADC结果多准确,只要满足某个范围即可,这时我们就可以考虑使用STM32ADC看门狗功能了。

STM32 ADC基本上都支持模拟看门狗功能,即ADC模块对被检测的模拟通道的转换结果基于硬件对其合法性、安全性进行监测。我们可以设置被监测通道的转换结果合法性检查的上下阈值,若结果处于阈值之外则视为异常,并可以触发中断。

尤其有些场合,我们可能使用到数个ADC通道,8个、10个甚至更多,同时程序还需要基于各通道的转换结果进行合法性或安全性监测,此时使用ADC模拟看门狗功能就很方便。我们可以先让模拟看门狗做第一步把关,只有出现异常数据时才去进一步检查确认。不然的话,每次一批数据出来后,我们得逐个去检查合法性。一般来讲,多数情况下异常可能只是偶尔、个别通道发生,这样每次转换完成后总是不分青红皂白地去逐一检查、确认,显然有点浪费时间,啰嗦无益,这也会影响系统性能。

我这里使用STM32L4开发板,简单演示下实现过程,供有需要的人士参考。

这里只开启ADC1模块的8个规则通道,使用DMA传送转换结果,并设置模拟看门狗。使用CubeMx图形化配置工具进行工程配置。

图片

我只启用了模拟看门狗1,针对8个规则通道的转换结果进行实时监测。【当然你可以有其它更为灵活的设计。各个STM32系列这个地方不完全一样。】

图片

开启ADC模拟看门狗的中断。

图片

代码里设置一个记录ADC结果异常的标志Flag_ADC_Abnormal,若发生结果异常会在ADC中断对该标志变量赋非0值。

图片

在主循环里若发现异常标志非0,然后去进一步做所有ADC结果的确认。

图片

上面演示过程中监测到一个异常数据,触发了模拟看门狗中断,ADC结果异常标志被赋0xff值,会做进一步异常数据的确认。

我在上面采用的一个模拟看门狗对8个通道的结果进行监测,如果一轮扫描转换下来出现多个异常数据,会触发几次中断呢?

不妨基于同一开发板验证下。我加个ADC中断次数累计变量ADC_Res_CNT,并把阈值下限调整为1200,其它不动。【见下图】

图片

然后进行测试,得到下面结果。

图片

从结果看,除了2个数据正常外其它均异常,故一轮转换下来发生了6次中断,显然我们可以根据中断次数进一步判断一轮转换下来的异常通道数。【注:这里ADC配置为单次扫描模式,DMA配置为Normal模式。】

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

    关注

    146

    文章

    16022

    浏览量

    343682
  • adc
    adc
    +关注

    关注

    95

    文章

    5653

    浏览量

    539498
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348856
收藏 人收藏

    评论

    相关推荐

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

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

    什么是stm32看门狗stm32看门狗分为哪几类?

    什么是stm32看门狗stm32看门狗分为哪几类?独立看门狗与窗口看门狗有哪些异同点?
    发表于 07-23 06:36

    看门狗电路

    一、独立看门狗STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,
    发表于 07-30 06:02

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

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

    使用STM32看门狗

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

    看门狗的功能是什么

    看门狗简介看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。因此要不断进行喂狗,防止系统复位。STM32看门狗
    发表于 08-02 08:07

    stm32之独立看门狗与窗口看门狗总结 精选资料分享

    一、独立看门狗STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环
    发表于 08-02 07:23

    stm32-看门狗(独立看门狗,窗口看门狗)精选资料分享

    基于野火教程的看门狗。实验器材:stm32c8t6,LED灯,按键一个。实验一:独立看门狗1. 实验原理。2.实验代码讲解。3.实验现象。实验二:窗口看门狗1. 实验原理。2.实验代码
    发表于 08-02 08:07

    STM32看门狗的作用

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

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

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

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

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

    独立看门狗与窗口看门狗介绍

    嵌入式工程师成长之路(八)之两只看门狗独立看门狗与窗口看门狗第一部分:stm32STM32 内部自带了 2 个
    发表于 12-07 10:41

    STM32看门狗简介

    一、什么是看门狗看门狗是防止我们的程序跑飞了,而看门狗的作用就是在特定的时间段里去喂狗,然后我们的CPU就知道了我们的程序还在运行二、STM32
    发表于 01-10 07:02

    STM32 ADC模拟看门狗应用演示过程

    我们在做ADC应用时,有些场合需要精确测量出待测信号的数据,有时可能并不关心ADC结果多准确,只要满足某个范围即可,这时我们就可以考虑使用STM32
    的头像 发表于 07-08 14:30 1870次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>ADC</b>模拟<b class='flag-5'>看门狗</b>应用演示过程

    STM32 ADC模拟看门狗过程实现

    我们在做ADC应用时,有些场合需要精确测量出待测信号的数据,有时可能并不关心ADC结果多准确,只要满足某个范围即可,这时我们就可以考虑使用STM32
    的头像 发表于 07-13 10:28 2212次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>ADC</b>模拟<b class='flag-5'>看门狗</b>过程实现