[FPGA]

【银杏科技ARM+FPGA双核心应用】SL2S-25E系列十一——GPIO输入

[复制链接]
1718|1
手机看帖
扫描二维码
随时随地手机跟帖
heart蓝色CD|  楼主 | 2022-4-22 18:05 | 显示全部楼层 |阅读模式
一、爆靓照
11362627d5399f9e.png
二、实验简介
       SL2S-25E 的 I/O 单元包含 1 个双向 I/O 换从器和三个寄存器;可以使用 I/O 单元用于输入、输出或双向数据路径。
iCore3L 上有一个按键和 FPGA 相连,原理图如图中所示。从原理图中可以看到,按键未按下时,FPGA 引脚接 3.3V,引脚电平为高。当按键按下后,FPGA 引脚与地导通,此时 FPGA 引脚电平为低。那么,判断按键是否按下的方法就是将与按键相连的引脚作为输入引脚,并检测此引脚的电平,当电平为低时,表示按键按下。
5637562627d60a6e25.png
       当检测到按键按下,设计代码功能为控制与 LED 相连的引脚电平为低,此时点亮 LED。从而实现按键控制 LED 状态的功能。即通过检测 FPGA·KEY 引脚的电平变化,判断按键的状态,继而控制 LED 的亮灭。
       在按键按下和松开的过程,电平并不是理想的立即从高到低或者从低到高变化的。在跳变的过程中,是有抖动的,持续大概 10ms 左右。抖动会影响 FPGA对按键状态的正确判断,因此在设计中要对按键动作做消抖处理。处理方式分物理消抖和软件消抖。物理消抖则是通过并联电容,消除抖动噪声。软件处理则是通过延时处理,跳过抖动阶段,再读取按键状态,从而实现按键消抖操作。
7428862627d659c8e0.png
      如图中所示,在实际的按键动作中,按下和松开的瞬间,电平跳变的过程中是有抖动存在的;在硬件设计中可以通过并联电容削减抖动造成的影响。在软件设计中可以采用延时消抖的方式进一步消除抖动的影响。
       延时消抖的实现方式也较为简单,当 FPGA 检测到与按键相连的引脚出现下降沿之后开始计时,约 40ms 后再次检测与按键相连引脚的电平;如果电平与之前不同,则判别为有按键按下。这样通过延时的方式跳过抖动阶段,检测稳定后的电平状态,从而降低抖动对电平判断的影响,识别真正的按键动作。
同理,按键松开的动作也可以通过这种方式进行检测。在按键按下的状态,检测电平的上升沿,待出现上升沿后,开始计时;延时 40ms 后检测电平状态,从而判断按键是否松开。
三、资料包下载(实验源码+详细文档说明)
1、源代码
游客,如果您要查看本帖隐藏内容请回复

2、实验指导书
iCore3L实验指导书十一.pdf (743.89 KB)

使用特权

评论回复

相关帖子

sjl666518| | 2023-3-22 16:32 | 显示全部楼层
谢谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

92

主题

223

帖子

25

粉丝