首页>>科技 >>内容

cmp平台的主要功能,CMP功能介绍及应用实例

发布时间:2023-08-07 10:36:38编辑:温柔的背包来源:

很多朋友对cmp平台的主要功能,CMP功能介绍及应用实例不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

cmp平台的主要功能,CMP功能介绍及应用实例

CMP特性比较器迟滞度可与定时器输出匹配作为比较器消隐源,比较器输出极性可与比较器同相和反相输入源匹配:-I/O EXINT-内部参考电压和三个系数分压值(1/4、1/2、3/4)支持输出重定向功能:-普通I/O-定时器断开输入TMRx _ BRK—-定时器输入捕获TMR。

CMP可以用于许多功能,包括:由模拟信号触发从低功耗模式唤醒。当模拟信号调节与定时器的PWM输出结合时,它形成逐周期电流控制环路。介绍了CMP功能。CMP功能框图图1。迟滞寄存器CMP_CTRLSTS的CMP功能框图CMPHYST [1: 0]控制比较器的迟滞输出,可以避免噪声信号引起的传输信号错误,不需要迟滞时可以关闭。图二。比较器的迟滞输出消隐功能

CMP_CTRLSTS寄存器中的CMP blanking [2: 0]位用于选择比较器空白窗口的源,该功能可用于防止电流调节在PWM开始时产生峰值电流。图3。比较器输出消隐干扰滤波器干扰滤波器可用于滤除毛刺和噪声干扰。

滤波器的灵敏度由H_PULSE_CNT和L_PULSE_CNT位控制。过滤器的灵敏度会影响相同连续样本的数量。只有当在滤波器输入端检测到这种连续样本时,信号电平变化才能被认为是有效的切换。例如,当H_PULSE_CNT=2,L_PULSE_CNT=1时,干涉滤波器的时序图如下:图4。干涉滤波器的时序图。

注意:由于滤波器需要时钟来采样数据,系统会在深度睡眠模式下关闭比较器时钟。因此,为了让比较器在深度睡眠模式下工作,必须在进入深度睡眠模式前关闭滤波器(G_FILTER_EN寄存器中的GFE=0)。CMP中断比较器的输出在内部连接到扩展中断和事件控制器,后者可以产生中断或事件。该机制也可用于退出低功耗模式。比较器通过EXINT线21产生中断或事件。应用示例

下面是比较器的三个应用实例,分别是:输出消隐功能、干扰过滤功能和深度睡眠模式唤醒。

这三个例子演示了比较器的使用,并介绍了它们与定时器等外设配合工作的方式。为了方便用户快速上手,使用了AT32F421xx的比较器。本文介绍的三个应用实例的工程代码可以从BSP软件包的at32f 421 _ Firmware _ Library _ v2 . x . XprojectAT _ Start _ f421 examples CMP中获得。下面三个例子对应的工程名称是:blanking、glitch_filter、deep_sleep_mode。

注:所有项目都基于keil 5。如果用户需要在其他编译环境中使用,请参考at 32 XXX _ firmware _ library _ v2 . x . x project _ start _ xxxtemplates中的各种编译环境(如IAR6/7、keil 4/5)进行简单修改。输出消隐功能

前面提到了输出消隐的功能。我们来看看这个函数的具体用法。首先,我们需要选择TMR1/3/15中的一个TMR_CHx作为比较器的消隐窗口,我们需要相应地配置CMP_CTRLSTS中的CMPBLANKING位来进行选择。由于没有单独的使能位,只要该位不为0,就意味着消隐功能开启。这里我们选择TMR1_CH1的输出比较PWM模式1作为CMP的消隐窗口,外部输入一个100kHz的方波来模拟CMP的同相输入。

可以得到下面的波形:图5。输出消隐波形。

干扰滤波功能也是利用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(被滤除。

当主频为120mHz时,每个PCLK周期为8.33ns,64个pclk为533.33ns,CMP滤波前的高电平持续时间为1066.66ns,那么CMP滤波后的高电平占空比减半,为25%占空比。但是,以上只是理论值。实际测试发现最终输出会有误差。这是因为CMP输出有一定的偏移。在不滤波的情况下,实际CMP输出的高电平长度会比输入长26ns,失调会随着输入频率的增加而增加,最高可达26ns。测得的波形如下:图6。干扰过滤波形。

深度睡眠模式下的唤醒利用了比较器的以下两个特性:CMP极性选择逻辑和输出端口重定向独立于PCLK时钟工作。CMP输出可以连接到EXINT 21线将MCU从深度睡眠模式唤醒,只需要在使能CMP的基础上配置EXINT 21为中断或事件模式。应当注意,退出深度睡眠模式后,需要重新配置系统时钟。具体配置方法请参考BSP提供的例子。图7。深度睡眠模式唤醒审计唐子红

以上知识分享希望能够帮助到大家!