查看: 1315|回复: 0

Nexys3学习笔记(二)——添加GPIO外设

[复制链接]
  • TA的每日心情
    擦汗
    2017-8-7 15:27
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2012-2-15 23:52:00 | 显示全部楼层 |阅读模式
    分享到:
    上次已经建立了一个简单的嵌入式系统。怎样往这个系统里添加设备呢?
    Nexys3上有8个LED灯和一个4位7段数码显示管,都是通过GPIO接口与FPGA相连。今天就在系统里加入这些GPIO外设。希望达到8个开关分别控制LED灯的亮灭。4个按钮能控制4位的数码管相应的亮灭。同时希望数码管能定时显示数字,这就需要一个定时器,而且希望按钮按下和放开时能产生一个中断。这样算下来总共需要添加4个IP:LED控制,数码管控制,一个定时器,一个中断控制。
    1.硬件修改
    运行XPS,直接打开建立好的最小系统。在IP catalog栏目下能看到所有能添加的IP,首先添加LED控制IP,这个属于General Purpose IO,如下

    GPIO信号宽度选择8位,同样的可以添加其他3个IP。数码管控制IP

    计时器
    中断控制

    所有IP添加好了后,这才是第一步,此时所有的连接都没有。首先考虑所有的添加的IP核外部连线有多少,可以知道led灯有8个外部引脚,数码管有12个外部连线。所以首先修改system.mhs文件,先添加引脚端口,如下

    然后确定这些外部端口的管脚分配,修改system.ucf文件

    之后先连接新添加的IP的PLB总线接口

    连接IP之间的信号连线,同时修改button控制IP增加一个中断。新添加的IP信号都是没有连接的,因此这里需要知道些信号流向。如下:定时器中断和按钮中断连接到中断控制器;中断控制器和microblaze中断信号相连;两个GPIO的IP输出都接到外部引脚。

    接下来设置各个IP的地址分配

    到这里,硬件修改算是完成了,可以编译产生流文件了。
    2.软件测试
    同样的在XPS中将硬件设计导入EDK,这里以前建立的BSP支持包不能再使用了。删除以前的BSP,重新生成BSP支持包。步骤还是一样的File->New->Xilinx board support package。
    然后我们可以使用digilent的一个demo程序,稍微修改就能够测试刚刚建立的系统。(GPIO_demo.rar)
    首先建立一个空的工程File->New->Xilinx C Project,弹出窗口,选择Empty Application

    导入源文件进行编译。生成.elf文件。

    可以看到先前建立的peripheral test工程还在,重新编译后也能够下载到FPGA中运行,硬件平台建立好了以后,可以运行不同的软件工程,非常方便。
    还是同样的步骤选择Xilinx Tools-&gtrogram FPGA,之后右键点击.elf文件选择Run As->Launch on Hardware,程序开始运行了。

    串口监视程序能显示运行的结果,按开关能控制相应的LED,7段数码管也显示正常。

    小结:
    学习了如何在嵌入式系统里添加需要的外设,操作还是很简便.不过需要知道所添加的IP核的内部信号连接,以及有没有外部信号连接,地址需要手动分配。总的来说,这个小系统的功能又增强了点。
    参考链接:https://www.eefocus.com/blog/myspace/index.php?act=update&tmpid=10535https://www.xilinx.com/support/documentation/spartan-6.htm
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 20:12 , Processed in 0.107162 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.