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

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

3天内不再提示

STM32 ADC模拟看门狗过程实现

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

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

STM32
ADC基本上都支持interwetten与威廉的赔率体系 看门狗功能,即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

    文章

    17148

    浏览量

    351193
  • adc
    adc
    +关注

    关注

    98

    文章

    6498

    浏览量

    544639
  • STM32
    +关注

    关注

    2270

    文章

    10900

    浏览量

    356000
收藏 人收藏

    评论

    相关推荐

    STM32中的独立看门狗和窗口看门狗是什么

    在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本上分为两大类:独立看门狗
    的头像 发表于 02-20 17:47 2741次阅读
    <b class='flag-5'>STM32</b>中的独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>是什么

    stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

    本文为您讲解STM看门狗时间计算(时限)与频率计算,独立看门狗和窗口看门狗的特性、区别与联系。
    发表于 10-10 10:41 8766次阅读

    什么是stm32看门狗?独立看门狗和窗口看门狗工作原理解析

    stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗
    的头像 发表于 11-06 11:48 2.8w次阅读
    什么是<b class='flag-5'>stm32</b><b class='flag-5'>看门狗</b>?独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>工作原理解析

    STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)

    stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。看门狗主要作用是可用来检测和解决由软件错误引起的故障;当计数器达到给定
    发表于 11-09 17:17 8445次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>看门狗</b>配置(独立<b class='flag-5'>看门狗</b>IWDG和窗口<b class='flag-5'>看门狗</b>WWDG)

    STM32看门狗配置详情解说

     stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。独立看门狗有自己独立的40Khz时钟,不存
    发表于 11-13 11:17 4466次阅读
    <b class='flag-5'>STM32</b>的<b class='flag-5'>看门狗</b>配置详情解说

    基于STM32、FreeRTOS 实现硬件看门狗+软件看门狗监测多任务的方法

    基于STM32、FreeRTOS实现硬件看门狗+软件看门狗监测多任务的方法
    的头像 发表于 03-12 10:11 9396次阅读

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

    STM32芯片的ADC模块往往都支持模拟看门狗功能,即可以对单个或多个通道开启模拟转换值的监测。当模拟
    的头像 发表于 08-29 16:16 6965次阅读
    <b class='flag-5'>STM32</b>芯片如何使用片内参考电压<b class='flag-5'>实现</b><b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b>

    如何实现模拟看门狗

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

    stm32看门狗的特点是什么

    stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。
    的头像 发表于 07-22 11:08 4059次阅读

    STM32 ADC模拟看门狗及其应用

    STM32 ADC模拟看门狗及其应用(电源威廉希尔官方网站 期刊是什么级别期刊)-模拟看门狗特性允许应用程序检
    发表于 08-04 18:12 29次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>ADC</b><b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b>及其应用

    STM32CubeMX配置ADC模拟看门狗实现掉电保存——基于(STM32G070+STM32CubeMX+HAL库+ADC模拟看门狗

    实验目的:通过STM32CubeMX进行简单配置生成HAL库实现ADC模拟看门狗,以达到单片机掉电保存Flash。一、
    发表于 12-03 09:36 10次下载
    <b class='flag-5'>STM32</b>CubeMX配置<b class='flag-5'>ADC</b><b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b><b class='flag-5'>实现</b>掉电保存——基于(<b class='flag-5'>STM32G070+STM32</b>CubeMX+HAL库+<b class='flag-5'>ADC</b><b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b>)

    STM32:独立看门狗、窗口看门狗的配置

    STM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同。
    发表于 02-08 16:15 18次下载
    <b class='flag-5'>STM32</b>:独立<b class='flag-5'>看门狗</b>、窗口<b class='flag-5'>看门狗</b>的配置

    STM32中的独立看门狗和窗口看门狗

    一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本上分为两大类:独立
    的头像 发表于 12-22 16:58 2154次阅读

    详解独立看门狗实现原理

    这里以大家熟悉的STM32为例给大家讲解一下独立看门狗的配置以及工作过程STM32F10xxx内置两个看门狗:独立
    发表于 12-22 17:01 3247次阅读

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

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