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

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

3天内不再提示

在 FlexIO上进行毛刺滤波的方法

恩智浦MCU加油站 来源:未知 2023-10-19 11:25 次阅读

简介

FlexIO 模块在 i.MX RT 系列 MCU 中被广泛采用,它提供了高度灵活的配置方法,可以模拟多种不同的通信协议,如UARTI2C、 SPI、I2S等。

硬件基于RT1010-EVK,软件基于 SDK2.13.0。

FlexIO需要毛刺滤波的原因

以使用 FlexIO 模拟 UART 为例,其在理论上可以支持很高的波特率,但在每个 bit 只会进行一次采样。单次采样会由于毛刺的存在,导致错误数据被接收。对于这种情况,可以使用额外的定时器设计一个毛刺滤波器,以避免错误的发生。

使用定时器进行毛刺滤波的基本原理

假设有一个方波信号,其频率为 2 Hz,定时器时钟频率为 1000 Hz,其波形如
在信号传输的场景中,由于存在干扰,会产生一系列的毛刺,这些毛刺会在仅有一次的采样过程中导致错误的传输值。带有随机毛刺的方波信号波形
为了消除这些毛刺,在 FlexIO 中引入一个定时器,按照以下配置来设置定时器的控制寄存器TIMCFG:

• 定时器工作在16bit模式

• 定时器的触发源选择来自输入引脚

• 定时器的引脚配置为输出

• 定时器一直使能且从不关闭 (TIMENA = 0, TIMDIS= 0)

• 当定时器的输入与输出相等时,定时器处于reset状态 (TIMRST = 0x3)

• 定时器的输出不受 reset 引脚影响,初始状态可以是0 或者是 1 (TIMOUT = 0 or 1)

• 定时器的初始计数值等于 filter_width 减 1 (TIMCMP = filter_width – 1)

• filter_width 是输入信号持续稳定才能更新输出信号的周期数且必须大于1

通过设置不同的初始计数值,定时器可以被用于过滤信号中的高频毛刺,同时也会为滤波后的信号带来filter_width *时钟周期的时间延迟。当初始计数值为 10 时,初始信号与滤波后的信号如所示。

定时器能够完成滤波的原因在于:在信号发生跳变时,计数值才会从初始值开始递减,即定时器的输入状态与输出状态不相同,定时器退出reset 状态开始计数。当16 位计数器等于 0 并递减时,定时器输出切换并且计数器从比较寄存器重新加载。因此,如果信号的跳变保持的时间小于filter_width *时钟周期 的时间,会导致计数值还未降低到 0 就被重置,输出信号就会保持原先的电平,短时间的信号跳变就会被过滤掉。

定时器在进行毛刺滤波时,其输出引脚在芯片内部连接到其他移位器和定时器,因此即便这一引脚在设备级别(IOMUXC)未被启用也可以实现滤波功能。

对RT1010 GPIO输出的方波信号

进行毛刺滤波

在 i.MX RT1010 芯片上,可以对用 GPIO 输出方波信号,输入到 FlexIO 的定时器。

• GPIO_08 被配置为输出方波信号

• GPIO_11 被配置为 FlexIO 定时器的输入引脚

• GPIO_12 被配置为 FlexIO 定时器的输出引脚

FlexIO 的定时器可以对 TIMCFG 寄存器进行配置,从而改变其对输入信号的的响应。

将 TIMOUT 段配置为 00b,可以将定时器的初始输出值设置为 1,且在 reset 时会保持输出值不变。

将 TIMDEC 段配置为 00b,可以在每个时钟周期对计数值递减。

将 TIMRST配置为 11b,可以在输入值等于输出值时重置计数值。在代码中,可以将 FlexIO 的定时器进行如下配置:

通过如上的定时器配置,可以轻松实现章节3中提到的定时器配置条件,从而使定时器工作为一个毛刺滤波器。



END



更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号




NXP客栈


恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。





长按二维码,关注我们


恩智浦MCU加油站


这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。


长按二维码,关注我们



原文标题:在 FlexIO上进行毛刺滤波的方法

文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

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

    关注

    146

    文章

    16019

    浏览量

    343649
  • 恩智浦
    +关注

    关注

    14

    文章

    5715

    浏览量

    100779

原文标题:在 FlexIO上进行毛刺滤波的方法

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

收藏 人收藏

    评论

    相关推荐

    无铅锡膏焊接后,边缘有毛刺和玷污的原因有哪些?

    一般在我们SMT锡膏印刷完成之后进行贴片,虽然在锡膏贴片中并没有什么问题,有时进行SMT回流焊接出炉后,会发现无铅锡膏表面上会有一些毛刺、拉尖或脏污,边缘并不是很平整,而遇到这样的问题该怎么办
    的头像 发表于 04-02 16:54 305次阅读
    无铅锡膏焊接后,边缘有<b class='flag-5'>毛刺</b>和玷污的原因有哪些?

    永磁同步电机采样的电流很不平滑,还有很多毛刺怎么解决?

    最近在研究ST的电机库,用的永磁同步电机,发现采样的电流很不平滑,还有很多毛刺,导致采样电流转换到dq轴电流时,q轴电流一直在给定电流附近波动,请教一下这可能的原因是什么呢?需要进行滤波处理吗?如果需要什么
    发表于 04-01 07:24

    怎么用示波器观察信号毛刺

    信号毛刺是指信号中出现的突然幅度变化,通常表现为信号波形上的尖峰或震荡。这种现象可能会导致电子设备的不稳定性,甚至影响设备的正常运行。为了准确观察信号毛刺并找出其原因,使用示波器是一种常见的方法。本文将介绍如何使用示波器观察信号
    的头像 发表于 12-26 15:04 522次阅读
    怎么用示波器观察信号<b class='flag-5'>毛刺</b>?

    双面无毛刺冲裁如何实现(一种消除毛刺的加工方法

    冲裁加工时总是会产生毛刺,很难消除掉,因此,经常在加工后进行毛刺来消除毛刺。鉴于分型面的问题,最近使用去毛刺的方式有增加的趋势.
    的头像 发表于 12-12 14:17 295次阅读
    双面无<b class='flag-5'>毛刺</b>冲裁如何实现(一种消除<b class='flag-5'>毛刺</b>的加工<b class='flag-5'>方法</b>)

    PCB钻孔毛刺产生的原因及毛刺的危害

    连接不同层之间的导电通路。然而,钻孔过程中可能会产生毛刺,这对PCB的质量和性能会带来许多危害。本文将详尽、详实、细致地分析PCB钻孔毛刺产生的原因及毛刺的危害。 首先要了解的是,PCB钻孔的过程是通过机械钻头
    的头像 发表于 12-07 14:24 1762次阅读

    如何最小化毛刺尺寸?如何控制毛刺方向?

    ,以及最小化毛刺尺寸和控制毛刺方向的方法。 一、毛刺的形成原因: 毛刺是制品表面或边缘的突起物,其形成主要有以下原因: 1. 切削工艺:刀具
    的头像 发表于 12-07 14:24 280次阅读

    什么是毛刺毛刺的大小和方向 如何测量毛刺的尺寸?

    什么是毛刺毛刺的大小和方向 如何测量毛刺的尺寸?如何检查已去除的毛刺毛刺是指由于加工工艺或其他原因产生的金属表面上的不平整区域或小尖刺
    的头像 发表于 12-07 14:24 1829次阅读

    FPGA | 竞争冒险和毛刺问题

    输出信号的建立时间内会发生冒险,而在输出信号的保持时间内是不会有毛刺信号出现的。如果在输出信号的保持时间内对其进行“采样”,就可以消除毛刺信号的影响。 4、吸收法增加输出滤波
    发表于 11-02 17:22

    压铸铝去毛刺用SycoTec浮动主轴怎么样

    浮动主轴压铸铝去毛刺技术是一种高效、精准的去毛刺方法,通过旋转切割工具和主轴相对运动来去除压铸铝制品表面的毛刺。该技术具有减少加工时间和成本、提高加工精度、适用于不同形状和材料的工件等
    的头像 发表于 09-18 14:46 402次阅读
    压铸铝去<b class='flag-5'>毛刺</b>用SycoTec浮动主轴怎么样

    电感的毛刺现象是什么意思?如何解决感应毛刺

    毛刺现象是我们每一个电子爱好者避之唯恐不及的,今天我们来学习一个毛刺现象以及如何规避它,进而掌握电感升压的原理。
    的头像 发表于 08-15 14:53 2364次阅读
    电感的<b class='flag-5'>毛刺</b>现象是什么意思?如何解决感应<b class='flag-5'>毛刺</b>?

    简谈FPGA的竞争冒险和毛刺问题

    对其进行“采样”,就可以消除毛刺信号的影响。 4、吸收法增加输出滤波输出端接上小电容C可以滤除毛刺。但输出波形的前后沿将变坏,在对波
    发表于 05-30 17:15

    如何在i.MXRT1176上使用FlexIO模拟SRAM接口?

    我正在寻找有关如何配置 FlexIO 以模拟 RT1176 和 FPGA 之间的 SRAM 接口的示例。我有一个 16 位并行数据总线,用于读取和写入 FPGA 上的内存映射寄存器。我有 CLK
    发表于 05-29 07:41

    在i.MX RT10xx使用FlexIO实现XY2-100振镜控制协议

    本文介绍了如何使用i.MX RT系列芯片上的FlexIO实现XY2-100激光振镜控制协议。FlexIO模块是NXP Kinetis和i.MX RT系列MCU的片上外设。
    的头像 发表于 05-18 09:21 4014次阅读
    在i.MX RT10xx使用<b class='flag-5'>FlexIO</b>实现XY2-100振镜控制协议

    求分享一下FlexIO时序图吗?

    我们设计中使用 S32K144 64 引脚封装 uC。所以我们使用 FlexIO SPI 作为从属配置。 如下所述,我们正在使用 SPI 从模式的引脚 密码引脚名称 3个引脚中的 FlexIO
    发表于 05-04 08:17

    波形出现毛刺的原因 如何消除示波器波形毛刺 驱动波形尖峰如何处理

    示波器波形毛刺通常是由信号本身带来的噪声或者示波器本身的问题造成的。下面是一些减少示波器波形毛刺方法
    发表于 05-02 09:55 1.9w次阅读