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

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

3天内不再提示

MM32如何使用比较器产生中断

MCU开发加油站 来源:未知 作者:邓佳佳 2018-03-21 17:01 次阅读
比较器简介1

在实际应用过程中有时候我们需要去判断两个变化的电压大小,在不同变化时需要做出不同的反应,这时候我们就可以用到比较器。MM32系列芯片内嵌两个通用比较器COMP1和COMP2, 比较器为通用的可编程电压比较器,支持两个独立的比较器。可独立使用(适合所有终端上的I/O),也可与定时器结合使用。它们可用于多种功能,包括:• 由模拟信号触发低功耗模式唤醒事件• 调节模拟信号• 与 DAC 和定时器输出的 PWM 相结合,组成逐周期的电流控制回路

比较器功能描述2

1、比较器输入输出介绍:

比较器框图如下,以COMP1为例,从图中可以看出PA0 – PA7口可连接到比较器的正向输入端,PA4 - PA7口及内部参考电压和三个等分电压值(1/4, 1/2, 3/4)可连接到比较器的反向输入端。比较器输入的 I/O 引脚必须在 GPIO 寄存器中设置为模拟模式。输出端可以重定向到一个 I/O 端口或多个定时器输入端,从而触发不同事件。

2、比较器时钟

COMP 时钟控制器提供的时钟与 PCLK 同步(APB2 时钟)。在使用比较器之前,要先使能 RCC 控制器中的时钟使能控制位。

3、比较器的中断:

比较器的输出可以内部连接到外部中断和事件控制器。每个比较器有自己的 EXTI 信号,能产生中断或事件。COMP1对应外部中断线19,COMP2对应外部中断线20。

4、功耗模式:

在具体应用中可以通过调整比较器功耗和响应时间得到最优的结果。

COMPx_CSR 寄存器的 MODE[1: 0]位有下面几种设置:

• 00:高速/高功耗 • 01:中速/中等功耗 • 10:低速/低功耗 • 11:极低速/极低功耗

5、 比较器锁定机制:

比较器能用于安全的用途,比如过流或者过热保护。在某些特定的安全需求的应用中,有必要保证比较器设置不能被无效寄存器访问或者程序计数器破坏所改变。为了这个目的,比较器控制和状态寄存器可以设为写保护(只读)。一旦设置完成, LOCK 位必须设为 1,这导致整个 COMPx_CSR 寄存器变成只读,包括 LOCK 位在内。写保护只能被 MCU 复位所清除。

6、 迟滞现象:

比较器的可配置迟滞电压能防止无效的输出变化产生的噪声信号。在不需要强制迟滞电压的情况下迟滞现象可以被禁止。通过配置COMPx_CSR 寄存器 HYST[1:0]可以设置比较器迟滞电压。

比较器的迟滞现象如下图:

比较器触发中断实验主要代码分析3

本实验以MM32L073为例,比较器配置代码如下图:

中断配置及中断服务子函数如下图所示:

实验结果4

理论分析:使用信号发生器通过PA1输入频率为1Hz,高电平1.2V,低电平0V的方波,在输入信号由低电平变化为高电平(大于1/4Vrefint)时比较器会产生一个上升沿信号输出高电平,在输入信号由高电平变化为低电平(小于/4Vrefint)时比较器会产生一个下降沿输出低电平,由于设置的外部中断为上升下降沿触发,所以Led会以每0.5S翻转一次。

实验现象:LED以0.5s闪烁,可以通过示波器观察时间,与理论分析符合


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

    关注

    14

    文章

    1633

    浏览量

    107087
  • 中断
    +关注

    关注

    5

    文章

    895

    浏览量

    41384

原文标题:MM32如何使用比较器产生中断

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用IfxCpu_disableInterrupts后,STM无法产生中断是为什么?

    在代码中使用了IfxCpu_disableInterrupts后,STM无法产生中断(无法进入中断ISR函数)
    发表于 02-04 06:54

    MM32 电源管理

    工作的情况。PDR功能是在VDD电压由高向低下降越过规定的阀值后,将在芯片内部产生复位。MM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。通过电源控制寄存中的PLS[12:9]位来设定
    发表于 11-16 15:43

    MM32 TIM编码模式

    外部接口逻辑。但是,一般使用比较将编码的差动输出转换到数字信号,这大大增加了抗噪声干扰能力。编码输出的第三个信号表示机械零点,可把它连接到一个外部
    发表于 02-08 16:40

    MM32如何使用比较产生中断

    使用。它们可用于多种功能,包括:由模拟信号触发低功耗模式唤醒事件调节模拟信号与 DAC 和定时输出的 PWM 相结合,组成逐周期的电流控制回路本文主要介绍一下如何通过比较产生中断
    发表于 03-09 09:55

    MM32 可编程电压监测(PVD)

    比较来监控电源,这几位选择监控电压的阀值。 通过设置 PVDE 位来使能 PVD。 该事件在内部连接到外部中断的第16线,如果该中断在外部中断寄存器中是使能的,该事件就会
    发表于 04-12 17:43

    MM32 SysTick定时

    来源 灵动MM32一、系统滴答SysTick定时 《Cortex-M3权威指南》中对SysTick的描述,SysTick定时被捆绑在NVIC中,用于产生SYSTICK异常(异常号
    发表于 05-31 14:57

    关于STM32产生中断的问题

    这里的产生中断是独立的LIN中断还是基于USART的? 如果是基于USART的请问当LBD=1;LBDIE=1(产生中断);时。通过USART口接收到的第一个数应该是0X55吧。我们应该把他忽略掉吗?
    发表于 11-15 11:45

    是否可以通过传感自检产生中断

    大家好,我想测试LSM6DS3传感中断而不进行任何移动。您知道是否可以通过传感自检产生中断?如果我编写一个低中断阈值并启动传感
    发表于 03-01 13:30

    如何在没有使用DigBuf模块的情况下从比较的输出中产生中断

    你好!如何在没有使用DigBuf模块的情况下从比较的输出中产生中断?在路由到DigBuf之后,是否可以在使用之前和之前使用相同的转换来获得两个中断?我读过有关柏树文献的相关资料,但没
    发表于 06-03 07:27

    PSoC低压检测何时产生中断

    PSoC 4100/4200系列PSoC 4架构的TRM,001-85634启号文件。*a3.3.2.3低压检测(LVD)何时产生中断?只有在事件当电源电压低于监测水平或在状态是积极的吗?
    发表于 09-12 08:46

    MM32 eMiniBoard免费试用

    固件开发平台与内嵌的 MM32-LINK-OB 仿真, 构成灵动 MM32 Cortex-M0/M3 MCU 完整的开发生态。了解更多>>
    发表于 03-20 14:04

    STM8时钟产生中断的原因是什么?

    STM8时钟产生中断的原因
    发表于 11-12 07:54

    MM32系列微控制

    MM32系列是灵动微电子于2020年推出的新一代通用MCU平台,旨在为客户提供更高性能、更低功耗、更高可靠性、稳定性和健壮性的微控制。全新MM32硬件上与经典MM32全兼容,保留了2
    发表于 09-02 08:16

    如何在电源电压下降时产生中断

    你好如何在电源电压下降时产生中断
    发表于 12-30 06:27

    系统芯片设计—中断产生及处理流程

    中断控制器是系统芯片中用于中断源收集,屏蔽和优先级管理的IP核。产生中断信号的部件称为中断源,中断产生
    的头像 发表于 08-12 14:46 3181次阅读