您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > NiosII驱动LCD
一、LCD硬件连接..................................................................................................................2二、QuartusII的使用.............................................................................................................31、新建工程.....................................................................................................................32、为工程添加文件.........................................................................................................7三、SOPCBuilder的使用.......................................................................................................83、将产生的Nios软核添加到Quartus工程中...........................................................104、Quartus引脚分配.....................................................................................................105、编译Quartus并配置工程........................................................................................11四、NiosIIIDE的使用.........................................................................................................121、新建工程...................................................................................................................122、为工程添加文件(.c、.h).....................................................................................133、编译并调试工程.......................................................................................................14附录1:MS12864R并行读时序、并行初始化流程...........................................................14附录2:减小NiosII编译代码量的方法.............................................................................15附录3源程序......................................................................................................................17说明:本教程主要讲解基于NiosII的SOPC构建过程。其中主要涉及到以下几个内容。1、QuartusII的使用(创建工程、编辑工程、编译工程、引脚分配、配置工程等)。演示Quartus操作流程。2、SOPCBuilder的使用。3、NiosIIIDE的使用。另外本教程所使用的Quartus版本是QuartusII9.0、NiosII9.0IDE本设计所用图片可能与所述有些出入,主要是因为我先建立的工程,然后再写的文档。另外我在工程中加入了pll(锁相环),主要是用来做其他目标板的测试了,在此文档中没用到,所以不用担心。整个工程经过测试,可以运行。一、LCD硬件连接为了省事我将VO直接连到了5V,另外发现Vout好像必须与VO连在一起才能显示,不知为何,可能是MS12864R的独特之处吧!二、QuartusII的使用1、新建工程打开QuartusII软件=File=NewProjectWizard:图2.1这样就进入了新建工程向导。向导总共分以下几步:Introduction、Projectnameanddirectory、Nameoftop-leveldesignentity、Projectfilesandlibraries、Targetdevicefamilyanddevice、EDAtoolsetting等。a)在Introduction步骤中,直接跳过,此步骤是主要介绍NewProjectWizard的。图2.2b)下一步是为工程命名并选择存放目录。默认的工程名和顶层实体(entity)是相同的,采用默认就行。图2.3c)由于是新建的工程,没有需要加入的文件,所以直接跳过Projectfilesandlibraries这一步。如图2.4.d)这一步是Targetdevicefamilyanddevice,即设定目标芯片。由于使用的是DE2开发板,所以进行如图2.5所示的设置。e)EDAtoolsetting由于我们在综合的时候使用了synplifypro,所以在其位置进行了选择。如图2.6f)最后一步,对以前的设置进行总览。如图2.7g)点击finish完成工程创建。图2.1NewProjectWizard图2.2Introduction图2.3Projectnameanddirectory、Nameoftop-leveldesignentity图2.4Projectfilesandlibraries图2.5Targetdevicefamilyanddevice图2.6EDAtoolsetting图2.7summary2、为工程添加文件File=New=弹出New对话框,我们选择新建图形原理文件(操作直观而简单)。如图2.8。默认的空原理文件是Block1.bdf。编辑过此文件后进行保存,并设置其为顶层实体。图2.8New对话框3、打开SOPCBuilderTools=SOPCBuilder三、SOPCBuilder的使用SOPCBuilder的界面如图2.9所示。主要包括Target、ClockSetting、外设三部分。命名此软核为nios,并选择语言为VHDL。时钟保持默认的50MHz。如图所示添加本试验所需要的Nios设备。其中cpu使用的是Nioscore/f型的,JTAGDebugModule选用Level1。On-ChipMemory选择了10k,并改名为ram;lcd_rs,lcd_rw,lcd_en,lcd_dada都是PIO。其中前三个都是1位的,lcd_data是双向(Bidirectionalports)8位的。添加完以后将ram的Base改成0,并锁定(单击锁),这样在Nios核出现问题的时候能从0地址处开始执行。编辑cpu_o,将其ResetVector和ExceptionVector都设置成ram。如图2.10。最后给各设备分配地址。System=Auto-AssignBaseAddress。由于没有用到中断,就不用自动分配中断号了。最后的配置图如2.9所示。单击Generate来生成Nios软核。这个过程比较费时间。图2.9SOPCBuilder图2.10配置cpu的resetvector等为ram3、将产生的Nios软核添加到Quartus工程中在开始时添加的Block1.bdf(图形输入文件)中双击,打开Symbol对话框,在此对话框中点开project项,并选择刚才产生的Nios软核,如图3.1所示。图3.1Symbol对话框点击OK将软核插入到Quartus工程中。并保存此bdf文件为lcd.bdf,并设定其为顶层实体文件。最后添加相应的输入输出引脚,得到最后的原理图:图3.2图3.2最终原理图4、Quartus引脚分配打开Assignments=AssignmentEdit,在category中选择Pin。并进行相应分配。其中To为信号名称,Location为引脚名称。注意对于没用到的引脚要设置成三态输入的。可以按以下步骤设定:选择Assignments=Device,弹出settings对话框,选择Device项,点击在中部偏右的DeviceandPinOptions…按钮,选择UnusedPins选项卡。在下拉菜单中选择Asinputtri-stated。另外可以新建tcl文件(在new对话框中)可以自动实现引脚分配(类似脚步文件)。以下是我的DE2上的脚步文件内容(我将LCD接在了GPIO上)。以#开头的是注释#设置没使用的引脚为三态输入set_global_assignment-nameRESERVE_ALL_UNUSED_PINSASINPUTTRI-STATEDset_global_assignment-nameENABLE_INIT_DONE_OUTPUTOFFset_location_assignmentPIN_N2-toclk_inset_location_assignmentPIN_P24-tolcd_data[0]set_location_assignmentPIN_R24-tolcd_data[1]set_location_assignmentPIN_T22-tolcd_data[2]set_location_assignmentPIN_T24-tolcd_data[3]set_location_assignmentPIN_T18-tolcd_data[4]set_location_assignmentPIN_T20-tolcd_data[5]set_location_assignmentPIN_U25-tolcd_data[6]set_location_assignmentPIN_U24-tolcd_data[7]#set_location_assignmentPIN_K26-tolcd_rsset_location_assignmentPIN_M23-tolcd_enset_location_assignmentPIN_M20-tolcd_rw5、编译Quartus并配置工程由于工程比较简单,就没有进行仿真验证。直接点击Processing=Startcompilation进行编译整个项目。在配置工程的时候步骤如下:Tools=Programmer打开配置对话框。如下图所示此处需要注意以下几个问题:a)hardwareSetup解决不显示下载线的问题。b)Mode进行模式选择,此处选择了JTAG方式。这种方式下使用的文件是*.sof。JTAG模式配置芯片后在芯片掉电后程序就没有了。所以还有令外一种配置方式:AS模式,这种模式是将程序下载到FPGA配置芯片中,其是一个ROM。AS模式需要的配置文件是*.pof。两种配置用的不是一样的物理下载口。在JTAG下载口不能进行AS模式配置,在AS下载口不能进行JTAG配置。尽管如此在JTAG口仍可以将程序写到FPGA的配置ROM中。其方法是将sof文件转换成*.ji
本文标题:NiosII驱动LCD
链接地址:https://www.777doc.com/doc-6054882 .html