全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

开年干货来袭:PLB实现滤波器

时间:2025-02-08 13:38

人气:

作者:admin

标签: PLB  滤波器  mcu 

导读:概述HPMicroMCU的TRIGMUX具有滤波功能,为部分输入信号提供了数字滤波器,支持滤刺模式、延时模式、滤峰模式和滤谷模式。但这滤波器仅针对外部从引脚的输入信号,不能对内部的信号进...

概 述

HPMicro MCU的TRIGMUX具有滤波功能,为部分输入信号提供了数字滤波器,支持滤刺模式、延时模式、滤峰模式和滤谷模式。但这滤波器仅针对外部从引脚的输入信号,不能对内部的信号进行滤波。

为了解决这一问题,本组件使用PLB实现了滤波器,同样支持滤刺模式、延时模式、滤峰模式和滤谷模式,通过配置TRIGMUX,既能够对外部引脚输入信号进行滤波,又能够对能够连接到TRIGMUX的信号进行滤波。

滤波器设计介绍


滤刺模式(Rapid Change Mode)


滤波器输入翻转后,输出也会立即翻转,之后会在一定时间内无视滤波器的输入。这个模式下,滤波器输出会紧随输入,同时会避免输出信号出现毛刺。

f3d66ba0-e5de-11ef-9434-92fbcf53809c.png

概要设计

- 该设计分为2级,第1级为TYPE_B逻辑单元(输出OUT0作为锁存信号),第2级为TYPE_A逻辑单元。

-TYPE_B的设计

原始信号的边沿信号作为PLB TYPE_B逻辑单元的输入信号IN0;PLB输出信号为OUT0,同时作为PLB TYPE_B逻辑单元的输入信号IN1;PLB输出信号为OUT1,同时作为PLB TYPE_B逻辑单元的输入信号IN2;定义真值表如下:

IN2IN1IN0Operation
000cnt值保持不变
001cnt值加1
010cnt值加1
011cnt值加1
1xxcnt值从cmp0中获取,cmp0的值为0

OUT0的输出逻辑为:cnt值跟cmp0相比较,当cnt值大于cmp0时,out0输出为1,否则为0。OUT1的输出逻辑为:cnt值跟cmp1相比较,当cnt值大于等于cmp1时,out1输出为1,否则为0。cmp1的数值可设置,就是用户需要定义的延时时间,单位为 plb clock tick;cnt初始值为0。

-TYPE_A的设计

原始信号作为PLB TYPE_A逻辑单元的输入信号IN0;原始信号的边沿信号作为PLB TYPE_A逻辑单元的输入信号IN1;TYPE_B逻辑单元的输出信号OUT0作为TYPE_A逻辑单元的输入信号IN2;TYPE_A逻辑单元的输出信号OUT0作为TYPE_A逻辑单元的输入信号IN3;定义真值表如下:

IN3IN2IN1IN0Out0
00x00
00111
11xx1
10x11
10000
10100
01xx0
00011

OUT0即为滤波后的输出信号。

延时模式(Delay Mode)


滤波器输入翻转后需要保持一定时间,滤波器输出才会翻转。

f3fb14d2-e5de-11ef-9434-92fbcf53809c.png

概要设计

-原始信号作为PLB TYPE_B逻辑单元的输入信号IN0,原始信号的边沿信号作为PLB TYPE_B逻辑单元的输入信号IN2;

-PLB输出信号为OUT0,同时作为PLB TYPE_B逻辑单元的输入信号IN1;

-定义真值表如下:

IN2IN1IN0Operation备注
000cnt值保持不变稳定态
001cnt值加1
010cnt值减1
011cnt值保持不变稳定态
100cnt值加1信号抖动
101cnt值从cmp1中获取,cmp1的值为0上升沿
110cnt值从cmp2中获取,cmp2的值为2*cmp0下降沿
111cnt值减1信号抖动

-OUT0的输出逻辑为:cnt值跟cmp0相比较,当cnt值大于等于cmp0时,out0输出为1,否则为0。cmp0的数值可设置,就是用户需要定义的延时时间,单位为 plb clock tick;

-cnt初始值为0;

-OUT0即为滤波后的输出信号。

滤峰模式(Stable Low Mode)


滤波器输入置逻辑0后,需要保持一定时间,滤波器输出才会置逻辑0,而滤波器输入置1,滤波器输出会立即置1。

f4149b3c-e5de-11ef-9434-92fbcf53809c.png

概要设计

-原始信号作为PLB TYPE_B逻辑单元的输入信号IN0;

-PLB输出信号为OUT0,同时作为PLB TYPE_B逻辑单元的输入信号IN1;

-定义真值表如下:

IN1IN0Operation
x1cnt值从cmp1中获取,cmp1的值为0
10cnt值加1
00cnt值保持不变

-OUT0的输出逻辑为:cnt值跟cmp0相比较,当cnt值小于cmp0时,out0输出为1,否则为0。cmp0的数值可设置,就是用户需要定义的延时时间,单位为 plb clock tick;

-cnt初始值为cmp0;

-OUT0即为滤波后的输出信号。


滤谷模式(Stable High Mode)

滤波器输入置逻辑1后,需要保持一定时间,滤波器输出才会置逻辑1,而滤波器输入置0,滤波器输出会立即置0。

f433ce26-e5de-11ef-9434-92fbcf53809c.png

概要设计

-原始信号作为PLB TYPE_B逻辑单元的输入信号IN0;

-PLB输出信号为OUT0,同时作为PLB TYPE_B逻辑单元的输入信号IN1;

-定义真值表如下:

IN1IN0Operation
x0cnt值从cmp1中获取,cmp1的值为0
01cnt值加1
11cnt值保持不变

-OUT0的输出逻辑为:cnt值跟cmp0相比较,当cnt值大于等于cmp0时,out0输出为1,否则为0。cmp0的数值可设置,就是用户需要定义的延时时间,单位为 plb clock tick;

-cnt初始值为0;

-OUT0即为滤波后的输出信号。

使用介绍

在应用程序中的CMakeLists.txt中添加如下内容,使能PLB滤波器组件:

set(CONFIG_HPM_PLB_FILTER 1)

应用程序调用如下API进行配置:

voidplb_filter_init(filter_config_t*cfg)

具体可参考 hpm_sdk/samples/drivers/plb/filteroutput 示例

以上内容来自:https://kb.hpmicro.com/2024/12/27/plb实现滤波器/

先楫社区坚持开源共享、互惠互利,贴近每一个开发者,一步一个脚印,一点一滴积累,为成为更好的我们而不断努力。

心之所向,锐意进取,星辰大海,恣意成长。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信