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

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

3天内不再提示

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

先楫半导体HPMicro 2025-02-08 13:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概 述

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实现滤波器/

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

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

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

    关注

    147

    文章

    18643

    浏览量

    388268
  • 滤波器
    +关注

    关注

    162

    文章

    8361

    浏览量

    184843
  • PLB
    PLB
    +关注

    关注

    0

    文章

    5

    浏览量

    9515
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    梳状滤波器以及积分梳状滤波器的FPGA实现

    作者:lee 在实现多级CIC滤波器前我们先来了解滑动平均滤波器、微分、积分以及梳状滤波器
    的头像 发表于 11-21 09:57 6689次阅读
    梳状<b class='flag-5'>滤波器</b>以及积分梳状<b class='flag-5'>滤波器</b>的FPGA<b class='flag-5'>实现</b>

    数字滤波器的设计和实现

    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器实现包括滤波器结构选择和
    的头像 发表于 10-31 10:38 2360次阅读
    数字<b class='flag-5'>滤波器</b>的设计和<b class='flag-5'>实现</b>

    fir滤波器的设计和实现

    对于fir滤波器,已经在前面的文章中记录了仿制DIY&关于MATLAB中滤波器设计工具的使用心得记录),其设计和实现都非常简单。如果在嵌入式系统中可以满足且有必要实时iir运算,那么
    发表于 12-22 08:29

    有源滤波器中数字低通滤波器的设计及其DSP实现

    有源滤波器中数字低通滤波器的设计及其DSP实现摘要:介绍了基于瞬时无功功率理论的ip iq 谐波检测方法及对低通滤波器的要求,分析讨论了数字低通滤波
    发表于 05-13 17:19 90次下载

    基于Matlab的FIR带通滤波器设计与实现

    本文通过介绍一种借助Matlab的FDATOOL滤波器设计分析软件,设计了一种FIR数字带通滤波器,并对一段含噪语音信号进行滤波。利用汇编语言编程,在DSP上实现了该
    发表于 07-26 10:45 3w次阅读
    基于Matlab的FIR带通<b class='flag-5'>滤波器</b>设计与<b class='flag-5'>实现</b>

    基于FPGA的FIR滤波器设计与实现

    基于FPGA的FIR滤波器设计与实现,下来看看
    发表于 05-10 11:49 39次下载

    详细解析滤波器的定义,滤波器的特性,滤波器的工作原理,滤波器的分类,滤波器的典型电路原理图

    滤波器的基础是谐振电路,只要能构成谐振电路组合就可实现滤波器滤波器有4种基本原型,即低通滤波器、带通
    发表于 05-03 16:20 2w次阅读
    详细解析<b class='flag-5'>滤波器</b>的定义,<b class='flag-5'>滤波器</b>的特性,<b class='flag-5'>滤波器</b>的工作原理,<b class='flag-5'>滤波器</b>的分类,<b class='flag-5'>滤波器</b>的典型电路原理图

    FIR滤波器的FPGA设计与实现

    ,结合MATLAB软件提供的专用数字滤波器设计工具包FDATOOL,以及QuartusⅡ软件提供的FIR核实现快速、便捷的设计FIR滤波器的几个具体实验,得出结论证实了熟练使用FDATOOL工具和FIR核比直接编写代码设计FIR
    发表于 12-21 14:53 14次下载
    FIR<b class='flag-5'>滤波器</b>的FPGA设计与<b class='flag-5'>实现</b>

    高斯滤波器的原理和实现

    高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。
    发表于 09-01 11:09 9156次阅读
    高斯<b class='flag-5'>滤波器</b>的原理和<b class='flag-5'>实现</b>

    空间滤波器matlab实现

    空间滤波器的调整取决于滤波器的类型,比如均值滤波器可以调整滤波器的大小,中值滤波器可以调整滤波器
    发表于 02-16 09:40 1273次阅读
    空间<b class='flag-5'>滤波器</b>matlab<b class='flag-5'>实现</b>

    低通滤波器与匹配滤波器的区别

    低通滤波器和匹配滤波器的主要区别在于:   1.低通滤波器是一种滤波器,它可以抑制高频信号,使低频信号得以通过,从而实现对音频信号的频
    发表于 02-16 17:44 3210次阅读

    高通滤波器和低通滤波器的关系

    高通滤波器和低通滤波器是互补的,它们可以组合使用,从而实现更复杂的滤波功能。例如,可以将高通滤波器和低通
    发表于 02-17 17:47 5814次阅读

    腔体滤波器和介质滤波器的区别

    腔体滤波器和介质滤波器都是常见的微波滤波器,它们的主要区别在于工作原理和实现方式。
    发表于 02-27 11:44 5047次阅读

    如何设计有源滤波器?有源滤波器如何选型?

    有源滤波器是一种类型的模拟电路实现一个电子滤波器使用的活性组分,通常是放大器。滤波器设计中包含的放大器可用于改善滤波器的成本、性能和可预测性
    的头像 发表于 11-07 08:07 2380次阅读
    如何设计有源<b class='flag-5'>滤波器</b>?有源<b class='flag-5'>滤波器</b>如何选型?

    emi滤波器是什么滤波器

    会对电子设备的正常工作产生影响,甚至导致设备损坏。因此,EMI滤波器在电子设备中具有非常重要的作用。 EMI滤波器的原理 EMI滤波器的基本原理是利用滤波器对电磁波进行选择性传输或阻断
    的头像 发表于 08-25 15:59 3051次阅读