FPGA外部触发信号毛刺产生及滤波

1、背景

        最近在某个项目中,遇到输入给FPGA管脚的外部触发信号因为有毛刺产生,导致FPGA接收到的外部触发信号数量多于实际值。比如:用某个信号源产生1000个外部触发信号(上升沿触发方式)给到FPGA输入IO,实际上FPGA内部逻辑判定接收到的触发信号数量大于1000个,且数量为随机性。因为毛刺的产生的个数具有随机性。

2、原理图设计

外部触发信号经过Buffer器件(74HCT125D)输入端整形后,输出端DIO1_IN连接到FPGA的输入管脚。

3、测试过程

        外部上升沿触发信号特征为:高电平脉宽为10us,上升沿时间为5us,故该触发信号对于数字IO输入信号而言,属于一个上升时间缓慢的输入信号。远远不满足输入信号的上升/下降转换时间指标要求。参见下图所示。

 实测发现,这个上升时间缓慢的输入信号会导致Buffer(74HCT125D)器件额外产生一个上升沿毛刺。以前没有遇到过这种情况,这次算是增加了一个经验。

 上图中,I_SYNC_DIO_IN1为FPGA管脚,用于接收经过BUFFER器件的外部触发信号。由上图可知,在ila触发时刻附近,I_SYNC_DIO_IN1先有一个上升沿毛刺,持续时间约30ns,然后才是真正的外部触发信号。

I_sync_dio_in1_rising_cnt为抓取已检测到的上升沿数量 - 滤波前。

S_sweep_trigin_cnt为抓取已检测到的上升沿数量 - 滤波后。

4、解决方法

1、增加软件滤波方式:已知上升沿毛刺持续时间为30ns,软件滤波窗口时间设定为300ns,滤波结果是OK的,参见上图S_sweep_trigin_cnt信号,为滤波后的结果。

2、更换硬件BUFFER器件:选型输入信号的上升/下降转换时间指标要求时间长的器件。

实际工程中,最终解决方案为:上述两种方式同时采用,从而确保功能的可靠性和抗干扰性。 

5、参考连接

1、CMOS器件的输入信号上升时间为什么不能太长?

2、https://www.icxbk.com/ask/detail/18132.html   stm32的单片机识别的高低电平?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/66344.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作:MODBUS通讯协议知识

工作:MODBUS通讯协议知识 一、Modbus三种通讯分类 Modbus TCP/IP 使用网口通讯,更多是用于快速网络设备,如机器人,上位机视觉。 Modbus RTU 使用RS232或者RS485/RS422接口,通讯方式是串口通讯,是直接传输…

《论文阅读13》Efficient Urban-scale Point Clouds Segmentationwith BEV Projection

一、论文 研究领域: 城市级3D语义分割论文:Efficient Urban-scale Point Clouds Segmentationwith BEV Projection清华大学,新疆大学2021.9.19论文github论文链接 二、论文概要 2.1主要思路 提出了城市级3D语义分割新的方法,将…

云服务监控解决方案

云监控是追踪、警报和报告性能指标的过程,目的是全面了解云服务和资源。应用程序管理器具有分析混合云和多云基础架构以及托管在其上的应用程序的性能所需的所有必要功能,它使管理员能够主动发现云服务的性能瓶颈,并在它们影响最终用户之前快…

2023国赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米,宽为12米&…

数据结构:交换排序

冒泡排序 起泡排序,别名“冒泡排序”,该算法的核心思想是将无序表中的所有记录,通过两两比较关键字,得出升序序列或者降序序列。 算法步骤 比较相邻的元素。如果第一个元素大于第二个元素,就交换它们。对每一对相邻…

关于MPU6050的VLOGIC引脚作用

关键字:MPU6X0X、 MPU6050、数字逻辑电平、VLOGIC 框图: 一、VLOGIC引脚作用? VLOGIC引脚主要用于设置为I2C供电引脚,以保证正确的I2C通信。 The bias and LDO section generates the internal supply and the reference voltages and cu…

编译iOS系统可用的FFmpeg

在进行编译之前,需要做一些准备工作安装必备文件: 1 安装 gas-preprocessor FFmpeg-iOS-build-script 自动编译脚本需要使用到 gas-preprocessor . 执行 sudo git clone https://github.com/bigsen/gas-preprocessor.git /usr/local/bin/gas sudo c…

Docker 方式 部署 vue 项目 (docker + vue + nginx)

1.安装好 nginx 。 2. 把 vue 项目的源码克隆到确定目录下。用 git 管理,所以直接 git clone 到既定目录就行了。 如我的目录是:/root/jiangyu/projects/gentle_vue/gentle_vue_code 。 3. 项目打包: npm run build 复制 会自动生成 dist…

若依框架权限管理的RBAC模型介绍

若依框架的权限管理功能是基于【RBAC】来实现的,即:系统中所有的权限,都是基于角色来控制的。框架对权限的控制,不仅支持菜单的功能,还支持菜单中的每一个按钮的权限控制   RBAC(基于角色的访问控制&#…

Maven介绍,部署在eclipse中

目录 一.Maven介绍 1,什么是maven? 2. 为什么maven会在企业中大量使用? 3.没有使用maven的前后区别? 4.maven在Java开发中的实际效果图 二.maven部署在eclipse中 1.下载maven在其官方网址下载(当然实际下载也要根据个人的…

数据结构-带头双向循环链表的实现

前言 带头双向循环链表是一种重要的数据结构,它的结构是很完美的,它弥补了单链表的许多不足,让我们一起来了解一下它是如何实现的吧! 1.节点的结构 它的节点中存储着数据和两个指针,一个指针_prev用来记录前一个节点…

如何通知学生分班结果?这个代码源轻松搞定

传统通知学生分班结果的方式相对来说比较繁琐,同时也存在出错的风险。首先,传统方式通常是通过纸质通知单的形式将分班结果发放给学生。这就需要学校花费一定的人力和物力来打印、分发通知单,而且还需要确保通知单能够准确地送到每个学生手中…