萌新的FPGA学习之触摸屏控制LED实验
触摸屏控制LED实验
触摸按键主要可分为四大类:电阻式、电容式、红外感应式以及表面声波式。根据其属性的不同,每
种触摸按键都有其合适的使用领域。
电阻式触摸按键由多块导电薄膜按照按键的位置印制而成,但由于耐用性较差且维护复杂,目前使用
率较低;红外感应式触摸按键通过红外扫描来识别按键位置,一般在较恶劣的环境下使用;表面声波式触
摸按键利用声波扫描来识别是否按下,使用寿命长,较适合公共场所的 POS 机,无人售货机等处使用。
电容式触摸按键:这种按键的诞生主要是为了克服电阻式按键耐用性差的不足所提出的。电容式触摸
按键采用电容量为评判标准,其感应区域可穿透绝缘外壳(玻璃、塑料等)20mm 以上。其灵敏度和可靠
性不会因环境条件的改变或长期使用而发生变化,具有防水、强抗干扰能力强、适应温度范围广以及使用
寿命长等优点,是现代使用最广泛,发展最迅速的一种触摸按键。
接下来,我们具体的了解一下电容触摸按键的构造和工作原理。
电容触摸按键主要由按键 IC 部分和电容部分构成。按键 IC 部分主要由元器件供应商提供,用于将电
容的变化转换为电信号。电容部分指的是由电容极板,地,隔离区等组成触摸按键的电容环境。
任何两个导电的物体之间都存在着感应电容,在周围环境不变的情况下,该感应电容值是固定不变
的。如下图所示,手指接触到触摸按键时,按键和手指之间产生寄生电容,使按键的总容值增加。
我们先使用电容信号进行分析
开发板上所使用的触摸 IC 型号为 AR101(或者 JL223B,和 AR101 完全兼容),它可以通过 OP1 和OP2 两个引脚选择不同的工作模式:OP1 拉低时,OUT 引脚输出信号高电平有效;OP1 拉高时,OUT 输出信号低电平有效。当 OP2 拉低时,触摸 IC 工作在同步模式(类似于非自锁的轻触按键),即触摸时输出有效电平,松开后输出无有效电平;OP2 拉高时触摸 IC 工作在保持模式(类似于自锁按键),即检测到触摸操作后输出有效电平,松开后,输出电平保持不变。当再次检测到触摸操作时,输出电平变化并继续保持。
OP1主要控制OUT的输出模式 当OP拉低 OUT输出高 OP拉高 OUT输出低
OP2主要控制 触摸IC的工作模式 OP2拉低 同步模式 松手电平还原 OP2拉高 非同步 松手不还原
实验任务 :
本节的实验任务是使用触摸按键控制 LED 灯的亮灭,开发板上电后 LED 为点亮状态,手指触摸后LED 熄灭;当再次触摸时,LED 点亮。
我们看到其实想要的使用模式是OP2
本实验中我们取触摸按键信号的上升沿来控制 LED 灯亮灭。
接下来我们详细研究下 verilog 中怎么判断上升沿和下降沿。取一个信号的上升沿或下降沿信号,可以
通过将信号 delay 后,然后将原信号和 delay 信号,通过不同的与非操作,获取上升沿信号或下降沿信号。
always @ (posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n) begin
raw_data_d0 <= 1'b0;
end
else begin
raw_data_d0 <= raw_data;
end
end
我们将两次延迟的时间进行对比
//捕获 raw_data 端口的上升沿,得到一个时钟周期的脉冲信号assign posedge = (~raw_data_d0) & raw_data;
raw_data 是现在的时间
raw_data_d0 这是延迟之后的时间 (其实是上一个时间)
我们看取上升沿的变化 raw_data=1 前一个时刻=0 这样就完成了上升
//捕获 raw_data 端口的下降沿,得到一个时钟周期的脉冲信号
assign negedge = (~raw_data) & raw_data_d0;
以上就是 verilog 中的端口信号取沿的实现过程,但在实际采样中,上述操作会存在亚稳态问题,为了正确取沿并且解决端口信号亚稳态的现象,我们可以将初始信号 raw_data 延迟两次(打两拍),然后将第一延迟的信号与第二次延迟的信号按上述方法获取上升沿或者下降沿信号。