发新帖

[原创] 【正点原子开拓者FPGA开发板试用体验】+触控流水灯

[复制链接]
发表于 2019-2-9 16:05:26
| 1521 查看 | 0 回复
本帖最后由 捷波 于 2019-2-11 00:28 编辑

        流水灯,对于熟悉单片机编程的朋友们来说是再熟悉不过了,只要借助单片机的CPU控制其GPIO,大家都能轻松做出各种花式流水灯方案。可是如果不用单片机,而用FPGA,你还会做流水灯吗?又能做出多少种酷炫的玩法呢?这里将给大家带来一个基于FPGA的触控流水灯方案,通过触摸按键的方式实现流水灯的效果,实验中使用的是正点原子新出品的开拓者FPGA开发板。

       在上一篇试用体验的文章中,我们看到开拓者FPGA开发板在硬件上最大限度地沿用了正点原子在单片机开发板上设计的外围电路,所以这款FPGA开发板的外设配置也是非常丰富。不过这次我们需要用到的只是板载的LED。在开拓者FPGA开发板上布置了四个红色LED,其与FPGA的连接方式如下图所示:
       LED端口的引脚配置如下表所示:


       上图是触摸按键电路,因触摸IC AR101的OP1、OP2引脚均接地,因此当手指按在触摸按键TPAD上时,TOUT管脚输出高电平,松开后输出低电平。需要注意的是,TOUT信号并没有直接连接到FPGA的引脚,而是连接到开发板上的P4插座的TOUT引脚上,旁边的TPAD才是和FPGA引脚相连。所以,在做这个触摸按键试验时,需要使用短路帽将P4插座上的TPAD和TOUT短接。TPAD脚与FPGA的F8脚相连。

       在官方提供的1_Verilog.rar压缩包中可以看到有44个例程,并且正点原子官方还提供了多达1100页的详细开发指南,内容涉及按键、LED、RAM、UART、VGA、AUDIO、SD、LCD、ETH等多种外设。

       本次我们要做的触控流水灯试验,也是从其中的例程——触摸按键控制LED灯实验演化而来,即压缩包中的4_touch_led文件夹下的项目。

       打开Quartus II,载入par\下的工程文件touch_led.qpf。修改touch_led.v文件,增加如下红框中所示代码。

       限定swticth的取值范围为0~7,修改45行reg  switch;为如下图中所示:

       识别到有效触摸信号后,增加switch计数

       根据switch计数值,依次熄灭和点亮LED1~4。

       编译成功后,将生成的sof文件下载至开发板中,下载成功后,就可以通过触摸按键控制LED1~LED4的亮灭,连续按压就会看到流水灯的效果。实际效果见下面的小视频。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我要点赞 0

举报

您需要登录后才可以回帖 登录 | 立即注册