EDK使用实例之LCD1602
目的: 在之前的LED的实例的基础之上使用GPIO点亮LCD1602液晶屏。本文将更多介绍SDK中的操作。 实验环境: 软件:Xilinx ISE Design Suit 13.4 板卡: 红色飓风II-Xilinx RCII-SP3S400 实验内容: 在ISE工程中添加MircroBlaze软核,并在SDK中编写软件程序,驱动外设LCD1602液晶屏。 实验步骤: 第一步:ISE中创建工程并添加DCM。 1、 打开ISE,点击New Project。
2、 选择工程路径,为工程命名
3、 选择工程属性和器件参数 此处注意,如果是使用其他的板卡,或者自己设计的板卡,需要选择相应的器件参数。 4、 添加顶层文件
生成顶层red_lcd.v文件。 5、 添加DCM。
选择
选择
设置DCM参数如下:
参数如下:
此处输入时钟为红色飓风板卡上面的晶振50MHz,并添加上了二倍频时钟CLK2X。 DCM添加完成后,我们还需要将DCM在顶层模块中进行实例化,结果如下:
第二步:添加microblaze软核。 1、 添加Embedded Processor。
此处创建过程与直接调用XPS创建系统大同小异,此处不多做贴图,不过需要注意的几个地方如下:
此处输入时钟为50MHz所以需要在顶层连接的时候选择DCM输出的50MHz时钟。
添加外设的时候除了添加了上次添加的LEDS外,这次还添加了RS232和两个GPIO,其中GPIO为3bit,是用来给输出LCD1602的RS、RW、EN,GPIO_1是8bit是用来输出给LCD0~LCD7的。 生成的系统如下图示:
2、因为系统默认的GPIO端口都为双向的端口,所以我们需要对端口做一些修改,选中Ports,点击Generic_GPIO中的Connected Port端口然后选择Disconnect from External Ports。
可以看到External Ports中的Generic_GPIO端口也已经没有了。
然后重新选择Generic_GPIO下面的GPIO_IO_O,选择External Ports。
可以看到在External Ports中的Generic_GPIO端口重新出现了,并且是GPIO_IO_O。这样就将Generic_GPIO口从原来的双向端口更改成了输出端口。
可以按照同样的方法将Generic_GPIO_1端口也从双向端口更改成输出端口。
3、 端口修改完成后我们就需要初始化地址,选择Addresses,
点击最右侧的
表示地址生成成功。 4、 生成网标文件。 选择Hardware下面的Gneerate Natlist生成网标。
此处估计会花的时间比较长。
表示生成网标完成。 此刻我们的软核就生成完成了,我们就可以退出XPS界面了。
注意:Xilinx在ISE13以后将软件中XPS和SDK彻底分离了,所以现在的XPS中不能再进行软件添加,软件编写全部移到了SDK中。
5、 将软核实例化之顶层文件中。 实例化软核和实例化DCM类似,也是需要打开View HDL Instantiation Templat文件。 实例化以后的结果详见代码。
第三步:编译ISE工程。 1、 添加UCF文件。 添加UCF文件的方法和平时ISE工程中添加UCF文件的方法相同,此处不再赘述。 2、 编译工程。 添加好UCF文件以后双击Generate Programming File,进行工程编译。
第四步:添加SDK工程。 1、 打开SDK软件。 此处需要注意,首先选中Hierarchy框中的软核文件
然后在Processes框中双击Export Hardware Design To SDK with Bitstream选项。(该选项可以在打开SDK的时候自动添加microblaze软核的信息到SDK工程中。) 2、 添加软核路径。 在打开SDK的时候软件会提示选择工作空间,个人建议可以在之前的ISE的工程目录里面创建一个工作空间来存放SDK的工程。
3、 添加软件工程。 进入软件后可以看到软件自动添加了软核的信息。
在此需要添加软件工程。在Project Explorer的空白处右键点击选择new->project。
选择Xilinx C project
然后选择空模板。
最后点击finish。 最终软件工程创建完成。
4、 添加代码。 在src文件夹上点击右键选择新建一个Source File。
输入文件名,因为是C文件所以后缀需要是.c。
完成后可以看到在主编辑框中出现了main.c文件。
将代码添加进工程里面,详见工程代码。 第五步:编译SDK工程并下载至FPGA。 1、 编译SDK工程。 右键点击软件工程,选择Build Project,进行工程编译。
如果有错误可以通过Problems框进行错误查看。
2、 FPGA下载 编译通过以后就可以进行FPGA下载了。选择Xilinx Tools->ProgramFPGA。
点击后会出现下载文件选择,如下图:
其中Bitstream选择ISE工程下生成的bit文件, Bmm文件为ISE工程路径下的edkBmmFile_bd.bmm文件。 ELF文件为软件配置文件,路径在 .. \SDK_workspace\empty_application_0\Debug
选择好了以后点击Program后就会看到
显示的下载的滚动条。下载结束后会可以看到板卡上面的LCD1602会显示"hello world""hello xilinx"两行字,同时LED会在进行流水显示,当led7~led0 == 1111_1110的时候lcd会进行清屏。
后记: 本次试验是在红色飓风2的板子上做的实验,因为这个板子上的GPIO可以直接跟LCD1602连接,如果需要在SP601板子上做这个实验,只是需要在创建ISE工程的时候选择Spartan6的器件,在做引脚分配的是做相应的引脚分配即可,至于软件工程中的代码是参考了单片机上的lcd1602的程序。希望文章可以帮助更多初学的朋友。文章中还有不足,希望发现问题的朋友可以邮件提醒我,我也可以做及时的修改。 By: 冰风溪谷 E-mail: [email protected]
工程下载地址:http://fpga-study-information.googlecode.com/files/red_lcd.rar |
转载于:https://www.cnblogs.com/icelyb24/archive/2012/06/16/2551544.html