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
    +关注

    关注

    147

    文章

    19262

    浏览量

    405280
  • 恩智浦
    +关注

    关注

    14

    文章

    6145

    浏览量

    155295

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AD9653采样存在毛刺噪声是什么原因?

    毛刺现象。我使用IODELAY寻找了中间采样点,并且使用了测试码进行了对齐,但是还是会出现这种现象,可能是什么原因。
    发表于 05-25 07:49

    DAC8560:16位超低毛刺电压输出数模转换器的深度剖析

      电子设计领域,数模转换器(DAC)是连接数字世界和模拟世界的关键桥梁。今天,我们将深入探讨TI公司的DAC8560,这是一款16位、超低毛刺、电压输出的数模转换器,具有诸多出色的特性,适用于
    的头像 发表于 11-28 13:44 878次阅读
    DAC8560:16位超低<b class='flag-5'>毛刺</b>电压输出数模转换器的深度剖析

    蜂鸟处理器上进行RT-Thread+ESP8266 wifi模块开发

    本队伍编号CICC3042,本文介绍蜂鸟处理器上运行RT-Thread实时操作系统,并进行ESP8266wifi模块开发。 蜂鸟配套的sdk中提供了RT-Thread的移植 https
    发表于 10-31 09:02

    Sycotec汽车轮毂去毛刺主轴:柔性精密加工的原理解析

    汽车轮毂的制造流程中,去毛刺工序是决定轮毂安全性、外观质感与装配精度的关键环节,而驱动去毛刺工具高效运转的核心部件——汽车轮毂去毛刺主轴,则堪称这一工序的“动力心脏”。无论是铝合金轮
    的头像 发表于 10-21 11:28 447次阅读
    Sycotec汽车轮毂去<b class='flag-5'>毛刺</b>主轴:柔性精密加工的原理解析

    使用 APx500 软件检测音频毛刺与信号丢失

    在数字音频播放系统中,音频毛刺和信号丢失无疑是最令人困扰的问题之一。当一个设备丢失一个采样点时,这意味着什么?这意味着一个采样点被跳过,从那一刻起,整个波形时间上向左平移了一个采样瞬间。如果播放
    的头像 发表于 10-20 09:02 866次阅读
    使用 APx500 软件检测音频<b class='flag-5'>毛刺</b>与信号丢失

    机器人加装Sycotec 4060 ER-S电主轴,破解不锈钢去毛刺难题

    不锈钢加工领域,去毛刺工序始终是影响产品质量、生产效率与成本控制的关键环节。不锈钢材质因硬度高、韧性强,传统去毛刺方式如人工打磨、普通机床处理等,普遍存在效率低下、精度不足、一致性差以及
    的头像 发表于 10-10 09:38 621次阅读
    机器人加装Sycotec 4060 ER-S电主轴,破解不锈钢去<b class='flag-5'>毛刺</b>难题

    4036 DC-T-ER11浮动主轴汽车轮毂去毛刺中的解决方案

    汽车轮毂经机加工后,会产生残留毛刺或飞边。由于汽车轮毂是一个不规则的曲面,去毛刺加工尤为困难。传统人工去毛刺不仅效率低下、费时费力,且导致轮毂质量参差不齐,无法满足现代企业生产需求。速科德
    的头像 发表于 08-22 11:06 904次阅读
    4036 DC-T-ER11浮动主轴<b class='flag-5'>在</b>汽车轮毂去<b class='flag-5'>毛刺</b>中的解决方案

    请问如何在keil μVision 5上进行ARM编译器的代码优化?

    如何在keil μVision 5上进行ARM编译器的代码优化?
    发表于 08-20 07:37

    锂离子电池毛刺控制的要求及检测

    锂离子电池完成装配封口前最怕金属粉尘、杂质、水分和毛刺。极片毛刺会引起的内部短路,因此涉及到锂电池的安全问题,是锂电池制造过程中非常关键的管控项目。毛刺的控制也一直是业内人士关注的焦
    的头像 发表于 08-05 17:54 2058次阅读
    锂离子电池<b class='flag-5'>毛刺</b>控制的要求及检测

    基于卡尔曼滤波的无刷电机转矩脉动抑制研究

    数据处理算法,卡尔曼滤波器同时具备良好的滤波特性。因此文章分析永磁无刷直流电动机数学模型的基础上,提出了一种基于卡尔曼滤波的无刷直流电机转矩脉动抑制
    发表于 07-29 16:13

    如何在树莓派 AI HAT+上进行YOLO姿态估计?

    大家好,接下来会为大家开一个树莓派5和YOLO的连载专题。内容包括四个部分:树莓派5上使用YOLO进行物体和动物识别-入门指南树莓派5上开启YOLO姿态估计识别之旅!如何在树莓派AIHAT+
    的头像 发表于 07-20 20:34 1343次阅读
    如何在树莓派 AI HAT+<b class='flag-5'>上进行</b>YOLO姿态估计?

    如何在树莓派 AI HAT+上进行YOLO目标检测?

    大家好,接下来会为大家开一个树莓派5和YOLO的连载专题。内容包括四个部分:树莓派5上使用YOLO进行物体和动物识别-入门指南树莓派5上开启YOLO姿态估计识别之旅!如何在树莓派AIHAT+
    的头像 发表于 07-19 08:34 2060次阅读
    如何在树莓派 AI HAT+<b class='flag-5'>上进行</b>YOLO目标检测?

    铝铸件去毛刺加工,用SycoTec浮动去毛刺主轴

    现代制造业中,铝铸件因其质量轻、强度高、耐腐蚀性好等性能,被广泛应用于航空航天、汽车制造、电子设备等众多领域。然而,铝铸件在生产过程中,不可避免地会产生毛刺。这些毛刺不仅影响铝铸件的外观质量,还可
    的头像 发表于 07-16 09:40 609次阅读
    铝铸件去<b class='flag-5'>毛刺</b>加工,用SycoTec浮动去<b class='flag-5'>毛刺</b>主轴

    粗糙度的滤波值是怎么设置的?

    微观不平度的信息。本文将详细探讨粗糙度滤波值的设置方法与依据。 滤波原理与类型 表面轮廓包含了形状误差、波纹度和粗糙度等不同尺度的几何特征,滤波的本质是通过数学算法对轮廓数据
    的头像 发表于 07-03 09:46 1244次阅读
    粗糙度的<b class='flag-5'>滤波</b>值是怎么设置的?

    超声波清洗机对于微小毛刺的去除效果如何?

    微小毛刺的存在会对产品品质、安全造成隐患,因此对于一些行业而言,去除毛刺是特别重要的工序。传统的清洗方法可能无法彻底解决毛刺问题,但是超声波清洗机能够有效地去除微小
    的头像 发表于 07-02 16:22 841次阅读
    超声波清洗机对于微小<b class='flag-5'>毛刺</b>的去除效果如何?