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

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

3天内不再提示

CMP功能介绍及应用实例

我快闭嘴 来源:AT32 MCU 雅特力科技 作者:AT32 MCU 雅特力科技 2022-09-30 11:37 次阅读

CMP特性

比较器迟滞程度可配

定时器输出作为比较器消隐源

比较器输出极性可配

比较器输出速度可配

比较器同相和反相输入源可选:

— I/O引脚

— 内部参考电压和三个系数分压值(1/4,1/2,3/4)

支持输出重定向功能:

— 普通I/O

— 定时器断路输入TMRx_BRK

— 定时器输入捕获TMR_CH

— 定时器输出比较参考值清零TMR_CH_CLR

结合EXINT产生中断,从低功耗模式唤醒

CMP可用于多种功能,包括:

模拟信号触发从低功耗模式唤醒

模拟信号调节

与定时器的PWM输出结合使用时,组成逐周期的电流控制环路

CMP功能介绍

CMP功能框图

图1. CMP功能框图

bc135fe0-4070-11ed-b1c7-dac502259ad0.png

迟滞

寄存器CMP_CTRLSTS的CMPHYST[1:0]控制比较器迟滞输出,该功能可避开噪声信号带来的虚假传输信号,如果不需要迟滞,可以关闭掉。 图2. 比较器迟滞

bc439868-4070-11ed-b1c7-dac502259ad0.png

输出消隐功能

寄存器CMP_CTRLSTS的CMPBLANKING[2:0]位用于选择比较器消隐窗口的来源,该功能可以用于防止电流调节在PWM起始时刻产生的尖峰电流。 图3. 比较器输出消隐

bc6b7676-4070-11ed-b1c7-dac502259ad0.png

干扰滤波器

干扰滤波器可以用来滤除毛刺和噪声干扰。

滤波器的敏感性由H_PULSE_CNT和L_PULSE_CNT 位控制。滤波器的敏感性会影响相同的连续采样的数量,在滤波器输入上检测到此类连续采样时,才能将某信号电平变化视为有效切换。例如H_PULSE_CNT=2和L_PULSE_CNT=1时干扰滤波器时序图,如下:

图4. 干扰滤波器时序图

bcb9c740-4070-11ed-b1c7-dac502259ad0.png

注:因为滤波器采样数据需要时钟,系统在深度睡眠模式下关闭比较器时钟,因此,要让比较器在深度睡眠模式下工作,必须在进入深度睡眠模式前关闭滤波器(G_FILTER_EN寄存器中的GFE=0)。

CMP中断

比较器输出从内部连接到扩展中断和事件控制器,能够产生中断或事件。该机制还可以用于退出低功耗模式。

比较器通过EXINT线21来产生中断或事件。

应用实例

下面介绍了比较器的三个应用实例,分别是:

输出消隐功能

干扰滤波功能

深度睡眠模式唤醒

这三个实例演示了比较器的用途,并介绍了它们与定时器等外设联合工作的方式,为了方便用户快速入门使用AT32F421xx的比较器,本文档介绍的三个应用实例的工程代码都可以在BSP软件包的AT32F421_Firmware_Library_V2.x.xprojectat_start_f421examplescmp中获取到,以下三个实例对应工程名称分别为:blanking,glitch_filter和deep_sleep_mode。

注:所有project都是基于keil 5而建立,若用户需要在其他编译环境上使用,请参考AT32xxx_Firmware_Library_V2.x.xprojectat_start_xxx emplates中各种编译环境(例如IAR6/7,keil 4/5)进行简单修改即可。

输出消隐功能

前面提到了输出消隐的功能,下面来看一下这个功能的具体用法,首先我们需要在TMR1/3/15中选择一个TMR_CHx来作为比较器的消隐窗口,这里需要相应的配置好CMP_CTRLSTS中的CMPBLANKING位来进行选择。由于没有单独的使能位,只要此位非0就表示开启了blanking功能。这里我们选择TMR1_CH1的输出比较PWM模式1来作为CMP的消隐窗口,外部输入100kHz的方波来模拟CMP同相输入端。则可以得到如下波形: 图5. 输出消隐波形

bceada06-4070-11ed-b1c7-dac502259ad0.png

干扰滤波功能

对于干扰滤波功能也使用TMR来做一个辅助测试,使用TMR1的PWM模式来模拟CMP同相输入信号,然后完成对CMP比较后的输出波形的滤波。配置方式如下:

配置TMR1_CH1为PWM模式2,频率468.7KHz,周期2.1333us,占空比50%

CMP滤波配置为H_PULSE_CNT=63,L_PULSE_CNT =0,即滤掉64个PCLK的高电平

连接TMR1_CH1(PA8)与CMP_NINV(PA1)

在主频120mHz时,每个PCLK周期为8.33ns,64个PCLK就是533.33ns,CMP滤波前高电平时长为1066.66ns,则CMP滤波后高电平占空比减半,即为25%占空比。但是,以上仅为理论值,实际测试发现最终输出会有误差,这是由于CMP输出有一定的偏移,在无滤波的情况下实际CMP输出的高电平长度会比输入多26ns,偏移量会随着输入频率的增加而增加,最多26ns。实测得到的波形如下:

图6. 干扰滤波波形

bd3da0ec-4070-11ed-b1c7-dac502259ad0.png

深度睡眠模式唤醒

利用比较器的以下两个特性:

CMP极性选择逻辑和输出端口的重定向工作独立于PCLK时钟

CMP输出可以连接到EXINT线21

可以将MCU从深度睡眠模式唤醒,只需要在使能CMP的基础上,将EXINT 21配置为中断或事件模式即可。需要注意的是在退出深度睡眠模式后需要重新配置系统时钟,具体配置方法请参考BSP提供的example。 图7. 深度睡眠模式唤醒

bd6373bc-4070-11ed-b1c7-dac502259ad0.png

审核编辑:汤梓红

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

    关注

    14

    文章

    1633

    浏览量

    107086
  • 定时器
    +关注

    关注

    23

    文章

    3237

    浏览量

    114436
  • CMP
    CMP
    +关注

    关注

    6

    文章

    141

    浏览量

    25937

原文标题:AT32讲堂030 | AT32F421 CMP使用指南

文章出处:【微信号:AT32 MCU 雅特力科技,微信公众号:AT32 MCU 雅特力科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    INA205 cmp1复位引脚拉高、cmp1 in没有输入的情况下,cmp1 out会输出高电平,为什么?

    在初始化阶段,INA205 cmp1复位引脚拉高、cmp1 in没有输入的情况下,cmp1 out会输出高电平 ,请问是什么原因
    发表于 07-30 06:55

    CH32X035 运放OPA和比较器CMP的应用

    一、关于CH32X035介绍CH32X035内置USB和PD PHY,20KB RAM,62KB FLASH,支持USB Host主机和USB Device设备功能、USB PD及Type-C快充
    发表于 09-11 16:20

    AT32F415 CMP使用指南

    这篇应用笔记描述了怎么使用AT32F415xx的比较器(CMP)。AT32F415系列内置两个超低功耗比较器CMP1和CMP2,可以用于多种功能,包括:外部模拟信号的监测控制及从低功耗
    发表于 10-24 07:38

    AT32F421 CMP使用指南

    AT32F421 CMP 使用指南描述了怎么使用AT32F421xx的比较器(CMP)。AT32F421系列内置一个超低功耗比较器CMP,它可用作独立器件(I/O上提供了全部接口),也可以与定时器结合使用。
    发表于 10-24 08:07

    SiC单晶片CMP超精密加工技术现状与趋势

     综述了半导体材料SiC抛光技术的发展,介绍了SiC单晶片CMP技术的研究现状, 分析了CMP的原理和工艺参数对抛光的影响,指出了SiC单晶片CMP急待解决的技术和理论问题,并对其发展
    发表于 10-21 15:51 0次下载

    比较器(Comparator_CMP介绍

    K60(Rev6-Ch35-CMP)(中文)
    发表于 01-07 16:31 0次下载

    CMP设备市场及技术现状

    CMP设备市场及技术现状
    发表于 09-15 08:48 42次下载

    浅析CMP比较指令

    6.11 CMP比较指令 1.指令的编码格式 CMP(Compare)比较指令使用寄存器Rn的值减去operand2的值,根据操作的结果更新CPSR中相应的条件标志位,以便后面的指令根据相应的条件
    发表于 10-18 13:38 2次下载
    浅析<b class='flag-5'>CMP</b>比较指令

    Amlogic的实例介绍

    第三方实例介绍 - Amlogic
    的头像 发表于 08-23 02:05 5179次阅读

    CMP401/CMP402:23 ns和65 ns低压比较器数据表

    CMP401/CMP402:23 ns和65 ns低压比较器数据表
    发表于 04-23 10:36 0次下载
    <b class='flag-5'>CMP</b>401/<b class='flag-5'>CMP</b>402:23 ns和65 ns低压比较器数据表

    在APT32F172中使用CMP的应用范例

    本文介绍了在APT32F172中使用CMP的应用范例,基于 APT32F172 完整的库文件系统,可以很方便的对 CMP 进行配置。 注意事项
    发表于 06-02 15:13 0次下载
    在APT32F172中使用<b class='flag-5'>CMP</b>的应用范例

    nvim-cmp Neovim补全插件

    ./oschina_soft/nvim-cmp.zip
    发表于 05-23 09:29 1次下载
    nvim-<b class='flag-5'>cmp</b> Neovim补全插件

    CMP特性、功能介绍及应用实例

    比较器同相和反相输入源可选:— I/O引脚— 内部参考电压和三个系数分压值(1/4,1/2,3/4)
    的头像 发表于 08-05 09:41 4373次阅读

    cmp是什么意思 cmp工艺原理

    CMP 主要负责对晶圆表面实现平坦化。晶圆制造前道加工环节主要包括7个相互独立的工艺流程:光刻、刻蚀、薄膜生长、扩散、离子注入、化学机械抛光、金属化 CMP 则主要用于衔接不同薄膜工艺,其中根据工艺
    发表于 07-18 11:48 1.5w次阅读
    <b class='flag-5'>cmp</b>是什么意思 <b class='flag-5'>cmp</b>工艺原理

    化学机械研磨抛光CMP技术详解

    本文介绍了半导体研磨方法中的化学机械研磨抛光CMP技术。
    的头像 发表于 02-21 10:11 2076次阅读
    化学机械研磨抛光<b class='flag-5'>CMP</b>技术详解