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

    文章

    17141

    浏览量

    351099
  • 恩智浦
    +关注

    关注

    14

    文章

    5857

    浏览量

    107408

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

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

收藏 人收藏

    评论

    相关推荐

    TLC7524的DAC产生一个正弦波,每个电平的跳变间隙都会出现小的毛刺,是正常的吗?

    ,随着频率的上升,毛刺似乎更大了; 上图是100khz的波形,似乎开关毛刺已经影响到了正常波形; 整个硬件参照TLC7524手册来设计,因为有时会输出方波和三角波,所以没有添加滤波器,下图为设计框图 请问TI专家,有没有什么
    发表于 12-24 08:10

    PWM信号的滤波和处理方法

    PWM(脉冲宽度调制)信号的滤波和处理是电子设计中常见的任务,旨在将PWM信号转换为更平滑的直流信号或去除不需要的噪声和波动。以下是对PWM信号的滤波和处理方法的介绍: 一、PWM信号的滤波
    的头像 发表于 11-18 17:41 1463次阅读

    为什么DAC8830输出100mV正弦波的时候毛刺这么大?

    的Vout引脚接了一个电容C101 进行滤波,然后经过电压跟随器后再经过R69 , C93进行滤波。 但是我用示波器测试到C93两端的正弦波波形很大
    发表于 11-15 06:30

    I2C噪声毛刺滤波

    电子发烧友网站提供《I2C噪声毛刺滤波.pdf》资料免费下载
    发表于 10-08 14:39 5次下载
    I2C噪声<b class='flag-5'>毛刺</b><b class='flag-5'>滤波</b>

    使用突发序列器模式ADS8686S上进行平均来降低相位延迟

    电子发烧友网站提供《使用突发序列器模式ADS8686S上进行平均来降低相位延迟.pdf》资料免费下载
    发表于 09-20 10:57 0次下载
    使用突发序列器模式<b class='flag-5'>在</b>ADS8686S<b class='flag-5'>上进行</b>平均来降低相位延迟

    用AD623做应变调理电路,正弦波动和高频毛刺产生的原因和避免的方法

    示意图中的图2所示。 我采用的方法和效果:经过检测所有器件都工作正常,我输出端加上了一个截止频率为100Hz的4阶低通滤波器,可以很好的滤除高频毛刺,但对50Hz的正弦波动没有效果,
    发表于 09-10 08:03

    对信号进行滤波处理的方法

    滤波处理是信号处理中的一个重要环节,它可以帮助我们从噪声中提取有用的信号,提高信号的质量和可靠性。 1. 信号滤波的基本原理 信号滤波的基本原理是利用滤波器对信号
    的头像 发表于 08-25 14:47 686次阅读

    陷波滤波器怎么进行滤波

    陷波滤波器(Notch Filter)是一种电子滤波器,其主要功能是特定频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果。这种滤波
    的头像 发表于 08-21 14:04 624次阅读

    滤波滤波的本质:信号时频特性的选择与处理|维爱普电源滤波

    滤波滤波的本质是信号的时频特性处理,即根据信号中不同频率成分的特性,对信号进行选择性处理,以达到去除噪声、干扰和杂波等目的,从而提高信号的质量和稳定性。 滤波
    的头像 发表于 06-11 11:05 443次阅读
    <b class='flag-5'>滤波</b>器<b class='flag-5'>滤波</b>的本质:信号时频特性的选择与处理|维爱普电源<b class='flag-5'>滤波</b>器

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

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

    如何利用PCIEd2000开发平台和28dr上进行数据交互?

    我现在的d2000和28dr已经是pcie物理互联了,我该怎么样去通过pcie来在这两个板子上进行数据的传输呢?
    发表于 02-27 16:34

    Cirrus Logic与英特尔和微软全新的PC参考设计上进行合作

    Cirrus Logic 近日与英特尔和微软全新的PC参考设计上进行合作。该设计将采用Cirrus Logic的高性能音频和电源技术以及英特尔即将推出的代码为Lunar Lake的客户端处理器。
    的头像 发表于 02-27 13:49 433次阅读

    FPGA处理编码信号进行毛刺滤波方法实现

    利用处理编码信号时,一般较为理想的环境下可以很方便进行计算,判断等。
    的头像 发表于 02-21 14:46 1580次阅读
    FPGA处理编码信号<b class='flag-5'>进行</b><b class='flag-5'>毛刺</b><b class='flag-5'>滤波</b>的<b class='flag-5'>方法</b>实现

    5g滤波器调试方法

    的调试方法、如何快速准确地识别滤波器性能问题等。本文将详细介绍5G滤波器调试的方法,包括设计、制造和验证。 一、滤波器调试前的设计准备
    的头像 发表于 01-09 15:01 1487次阅读

    5g滤波器调试方法有哪些

    5G滤波器调试方法主要包括以下几种常见的方法: 一、频域法 频域法是一种基于频率响应特性的滤波器调试方法。它通过对信号的频谱
    的头像 发表于 12-27 11:44 1458次阅读