实验04_SOPC_PIO读写应用S
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.在对话框左侧,下拉选择 【weak Pull-up Resister】, 添加到右侧,【OK】确认。
3.此时weak Pullup Resister可见, 在对应的引脚行, 双击,选择【on】, 即设置该引脚内部 上拉。
3.在QUARTUS II工程,更新NIOS II系统,编译、设置引脚,全程 编译,下载硬件设计.sof文件
【.qsys】文件,打开Qsys软件, 允许边沿
并自动打开NIOS II系统设置文 捕获寄存
件对话框。
器。
2.双击【pio_led】栏,调出 PIO设置对话框,并做如右图所 示设置,设置完后,点 【finish】完成设置。
中断允许
位输出允 许
捕获下降 沿
边沿中断
(2)完成其他操作及生成NIOS II系统。
while(1) {
led = 0x0; //四个灯全亮 IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);//点亮LED灯
i = 0; while(i<500000) //延时功能,非精确延时,数值太小将无法看到灯的闪烁效
果
{ i++;源自文库
} led = 0xf; //四个灯全灭 IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);//熄灭LED灯 i = 0; while(i<500000) //延时功能,非精确延时,数值太小将无法看到灯的闪烁效 果
{ i++;
} } return 0; }
(b)读写端口值变化,实现按键值变化。
(c)边沿捕获编程,实现按键值变化
实验拓展
拓展要求: (1)将按键和LED分别用两个不同的PIO内核进行控制。 (2)简化(b)和(c)的代码。
拓展提示: (1)注意多个PIO内核的命名和软件编程时的调用。
(2)创建软件工程中,需创建BSP。 (3)注意实验代码中注释的阅读,从中总结代码编写经验。 (4)若软件编译下载不成功,在以下两个方向思考:
4.使用NIOS II Software Build Tools For Eclipse 开发用户程序并调试。
(1) 删除原工程,再导入工程,修改setting文件内地址,clean project,refresh,generate BSP。 (2)修改(查看软件工程属性)。
1.通过菜单栏,启动NIOS II EDS软件, 如上图,调整工作区间为本次实验的 工程文件夹目录。其他步骤参照实验3 内容进行设置。页可以删掉原软件工 程,重新创建软件工程。
系统需求:
1.实验之前,请以课件为基础,预习实验内容。 2.在指定的文件夹存储、命名各工程项目和文件。 3.规范实验报告的书写内容和格式。
一.实验原理
1.0 系统需求分析
NIOS II嵌入式系统的开发,含软件、硬件设计两 大部分。硬件部分主要是NIOS II处理器和其他外围IP的 应用和设置,最终在QUARTUS端产生硬件设计。
1.1 系统框架
1.2 硬件电路
插入方法:在DIP40接 口,8P排线插入靠外 的一排,左右各空6个 针。6+8+8=20.
1.3 具体操作步骤
1.启动QUARTUS II,创建或移动系统设计工程。 (1)在计算机最后一个盘,新建Experiment_SOPC文件夹,新 建本实验工程文件夹,命名为:Experiment_**_04(**为两位学 号,04为第一个实验)。 (2)按实验2的方法,新建一个NIOS II工程项目,在Qsys创建 NIOS II系统。或者按照实验3的方法,移动原设计好工程到新 工程目录下并设置。
(a)是否先下载了.sof文件。 (b).sof文件下载的是不是本工程的文件。软件工程的 工作区间是否指向本工程。
开发用户程序并调试。 (1) 删除原工程,再导入工程,修改setting文件内地 址,clean project,refresh,generate BSP。 (2)修改(查看软件工程属性)。 (3)编写代码,编译,改错,调试,下载,观察记录现 象。 (a)修改方向寄存器,编写程序,查看运行情况。 (b)读写端口值变化,实现按键值变化。 (c)边沿捕获编程,实现按键值变化。
以硬件(主要为NIOS II处理器系统)为基础,使 用NIOS II EDS开发系统软件工程。经典的控制方法是采 用数据结构的方式或宏定义的方式。
通过本实验,主要是为了了解:
1.软件工程产生的BSP库文件与硬件设计部分的联系。
2.如何用宏定义的方式设置、使用各类IP核,以实现各类 控制。
本实验开发任务:
设置IO端口弱上拉的方式
注释2.因矩阵键盘接直接接 FPGA的IO端口上,无外接上拉 电路,电路工作可能不稳定。 因此,设置IO端口芯片内部上 拉,同样可以实现上拉功能。 PIN Planner默认不显示上拉选 项,需要调出。
1.在上图区域内,右键,调出 右键对话框,选择【customize columns】。
3.设置中断号,修改其值为【0】。注释:本实验无 需中断,此处设置对实验现象无影响。下一个实验, 需要中断,为避免重复修改硬件,故此处设置。
4.其他设置略,生 成NIOS系统。在顶 层更新NIOS II符 号,生成引脚,分 析综合,分配引脚, 全编译,下载。 (自行按实验2步 骤操作)。
注释1.因开发板上SW1—SW3按 键连接的FPGA引脚为输入引脚。 而本例中PIO端口类型为三态, 按键也需接三态引脚,故本例 按键由键盘上的两个按键替代。 两按键的行接入端口(并上 拉),列信号固定接地,则形 成两个按键形式。
用同一个PIO核,设置其位宽为6位,低4位为输出,控制 LED灯的亮灭,高两位连接按键,作为控制信号输入。最终通 过按键来控制LED的亮灭,以此熟悉PIO端口的各种操作。
实验要完成如下任务:
(1)PIO核的设置。 (2)方向控制寄存器函数的设置及对PIO端口的影响验证; (3)数据读写宏定义相关函数的应用; (4)边沿捕获宏定义相关函数的应用; (5)矩阵键盘的简单应用。
实验04:PIO读写控制应用
实验任务:
在新建含PIO工程或在原有工程中,设置PIO核功能,实现 对PIO的控制。
知识点:
1.掌握Qsys修改、增删及重设置IP核的方法。 2.掌握修改NIOS II系统后,硬件的设置、编译及软件工程 部分的更改及设置。 3.掌握PIO寄存器的设置及宏定义控制语句的使用。 4.了解系统相关文件对编程的影响及作用。
系统重要文件 Altera_ avalon_pio_reg s.h
Main()函数运行前的 初始化函数。
此文件定义了 PIO寄存器访 问操作的宏定 义(箭头为方 向寄存器读写 及设置)。
箭头为边沿捕 获寄存器读写 及设置。
(a)修改方向寄存器,编写程序,查看运行情况。
#include "system.h" #include "altera_avalon_pio_regs.h" #include "alt_types.h"
(3)编写代码,编译,改错,调试,下载,观察记录现象
PIO内核 的基地质
PIO内核 的位宽
总线频率 设置的中 断号
系统重要文件 System.h
记录所有硬件信息并进 行宏定义(双击打开)
系统重要文件 Alt_sys_init.c
Main()函数运行前的 初始化函数。
PIO设置开了 中断,所以初 始化程序内含 中断初始化函 数。
2.启动Qsys对原NIOS II处理器系统中的PIO核进行设置。 (1)打开 Qsys软件,对PIO核进行设置。
(2)完成其他操作及生成NIOS II系统。
3.在QUARTUS II工程,更新NIOS II系统,编译、设置引脚,全程 编译,下载硬件设计.sof文件。
4.使用NIOS II Software Build Tools For Eclipse
1.启动QUARTUS II,创建或移动系统设计工程(略)
2.启动Qsys对原NIOS II处理器系统中的PIO核进行设置
(1)打开 Qsys软件,对PIO核进行设置
位宽6位, 2输入,4 输出。
双向(三 态)输入 输出。
初始值,1, 灯不亮。
1.选择菜单栏,启动Qsys软件。
或直接在文件导航栏上双击
二.实验操作
本实验,除掌握前述实验内容相关的操作意外,还 需要注意以下几个问题。 (1)为什么本次实验不用开发板上的案件,而要接入 矩阵键盘?可否调整一下,直接使用开发板上的案件 呢? (2)掌握BSP库文件中,相关文件的作用,充分利用 相关文件,辅助C语言编程。 (3)要注意确认下载的文件、工程文件夹、NIOS II 软件工程目录,具体的指向位置,不可随意,否则编 译下载可能会出现莫名其妙的问题。
int main(void) {
alt_u8 led = 0x0; alt_u32 i;
//本例中,设置6位PIO端口后四位为输出,用写端口、延时方式实现其闪烁。
//PIO模块设置 IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_LED_BASE, 0x35); //输出方向寄 存器,1输出,0 输入,不设置默认0
3.此时weak Pullup Resister可见, 在对应的引脚行, 双击,选择【on】, 即设置该引脚内部 上拉。
3.在QUARTUS II工程,更新NIOS II系统,编译、设置引脚,全程 编译,下载硬件设计.sof文件
【.qsys】文件,打开Qsys软件, 允许边沿
并自动打开NIOS II系统设置文 捕获寄存
件对话框。
器。
2.双击【pio_led】栏,调出 PIO设置对话框,并做如右图所 示设置,设置完后,点 【finish】完成设置。
中断允许
位输出允 许
捕获下降 沿
边沿中断
(2)完成其他操作及生成NIOS II系统。
while(1) {
led = 0x0; //四个灯全亮 IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);//点亮LED灯
i = 0; while(i<500000) //延时功能,非精确延时,数值太小将无法看到灯的闪烁效
果
{ i++;源自文库
} led = 0xf; //四个灯全灭 IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);//熄灭LED灯 i = 0; while(i<500000) //延时功能,非精确延时,数值太小将无法看到灯的闪烁效 果
{ i++;
} } return 0; }
(b)读写端口值变化,实现按键值变化。
(c)边沿捕获编程,实现按键值变化
实验拓展
拓展要求: (1)将按键和LED分别用两个不同的PIO内核进行控制。 (2)简化(b)和(c)的代码。
拓展提示: (1)注意多个PIO内核的命名和软件编程时的调用。
(2)创建软件工程中,需创建BSP。 (3)注意实验代码中注释的阅读,从中总结代码编写经验。 (4)若软件编译下载不成功,在以下两个方向思考:
4.使用NIOS II Software Build Tools For Eclipse 开发用户程序并调试。
(1) 删除原工程,再导入工程,修改setting文件内地址,clean project,refresh,generate BSP。 (2)修改(查看软件工程属性)。
1.通过菜单栏,启动NIOS II EDS软件, 如上图,调整工作区间为本次实验的 工程文件夹目录。其他步骤参照实验3 内容进行设置。页可以删掉原软件工 程,重新创建软件工程。
系统需求:
1.实验之前,请以课件为基础,预习实验内容。 2.在指定的文件夹存储、命名各工程项目和文件。 3.规范实验报告的书写内容和格式。
一.实验原理
1.0 系统需求分析
NIOS II嵌入式系统的开发,含软件、硬件设计两 大部分。硬件部分主要是NIOS II处理器和其他外围IP的 应用和设置,最终在QUARTUS端产生硬件设计。
1.1 系统框架
1.2 硬件电路
插入方法:在DIP40接 口,8P排线插入靠外 的一排,左右各空6个 针。6+8+8=20.
1.3 具体操作步骤
1.启动QUARTUS II,创建或移动系统设计工程。 (1)在计算机最后一个盘,新建Experiment_SOPC文件夹,新 建本实验工程文件夹,命名为:Experiment_**_04(**为两位学 号,04为第一个实验)。 (2)按实验2的方法,新建一个NIOS II工程项目,在Qsys创建 NIOS II系统。或者按照实验3的方法,移动原设计好工程到新 工程目录下并设置。
(a)是否先下载了.sof文件。 (b).sof文件下载的是不是本工程的文件。软件工程的 工作区间是否指向本工程。
开发用户程序并调试。 (1) 删除原工程,再导入工程,修改setting文件内地 址,clean project,refresh,generate BSP。 (2)修改(查看软件工程属性)。 (3)编写代码,编译,改错,调试,下载,观察记录现 象。 (a)修改方向寄存器,编写程序,查看运行情况。 (b)读写端口值变化,实现按键值变化。 (c)边沿捕获编程,实现按键值变化。
以硬件(主要为NIOS II处理器系统)为基础,使 用NIOS II EDS开发系统软件工程。经典的控制方法是采 用数据结构的方式或宏定义的方式。
通过本实验,主要是为了了解:
1.软件工程产生的BSP库文件与硬件设计部分的联系。
2.如何用宏定义的方式设置、使用各类IP核,以实现各类 控制。
本实验开发任务:
设置IO端口弱上拉的方式
注释2.因矩阵键盘接直接接 FPGA的IO端口上,无外接上拉 电路,电路工作可能不稳定。 因此,设置IO端口芯片内部上 拉,同样可以实现上拉功能。 PIN Planner默认不显示上拉选 项,需要调出。
1.在上图区域内,右键,调出 右键对话框,选择【customize columns】。
3.设置中断号,修改其值为【0】。注释:本实验无 需中断,此处设置对实验现象无影响。下一个实验, 需要中断,为避免重复修改硬件,故此处设置。
4.其他设置略,生 成NIOS系统。在顶 层更新NIOS II符 号,生成引脚,分 析综合,分配引脚, 全编译,下载。 (自行按实验2步 骤操作)。
注释1.因开发板上SW1—SW3按 键连接的FPGA引脚为输入引脚。 而本例中PIO端口类型为三态, 按键也需接三态引脚,故本例 按键由键盘上的两个按键替代。 两按键的行接入端口(并上 拉),列信号固定接地,则形 成两个按键形式。
用同一个PIO核,设置其位宽为6位,低4位为输出,控制 LED灯的亮灭,高两位连接按键,作为控制信号输入。最终通 过按键来控制LED的亮灭,以此熟悉PIO端口的各种操作。
实验要完成如下任务:
(1)PIO核的设置。 (2)方向控制寄存器函数的设置及对PIO端口的影响验证; (3)数据读写宏定义相关函数的应用; (4)边沿捕获宏定义相关函数的应用; (5)矩阵键盘的简单应用。
实验04:PIO读写控制应用
实验任务:
在新建含PIO工程或在原有工程中,设置PIO核功能,实现 对PIO的控制。
知识点:
1.掌握Qsys修改、增删及重设置IP核的方法。 2.掌握修改NIOS II系统后,硬件的设置、编译及软件工程 部分的更改及设置。 3.掌握PIO寄存器的设置及宏定义控制语句的使用。 4.了解系统相关文件对编程的影响及作用。
系统重要文件 Altera_ avalon_pio_reg s.h
Main()函数运行前的 初始化函数。
此文件定义了 PIO寄存器访 问操作的宏定 义(箭头为方 向寄存器读写 及设置)。
箭头为边沿捕 获寄存器读写 及设置。
(a)修改方向寄存器,编写程序,查看运行情况。
#include "system.h" #include "altera_avalon_pio_regs.h" #include "alt_types.h"
(3)编写代码,编译,改错,调试,下载,观察记录现象
PIO内核 的基地质
PIO内核 的位宽
总线频率 设置的中 断号
系统重要文件 System.h
记录所有硬件信息并进 行宏定义(双击打开)
系统重要文件 Alt_sys_init.c
Main()函数运行前的 初始化函数。
PIO设置开了 中断,所以初 始化程序内含 中断初始化函 数。
2.启动Qsys对原NIOS II处理器系统中的PIO核进行设置。 (1)打开 Qsys软件,对PIO核进行设置。
(2)完成其他操作及生成NIOS II系统。
3.在QUARTUS II工程,更新NIOS II系统,编译、设置引脚,全程 编译,下载硬件设计.sof文件。
4.使用NIOS II Software Build Tools For Eclipse
1.启动QUARTUS II,创建或移动系统设计工程(略)
2.启动Qsys对原NIOS II处理器系统中的PIO核进行设置
(1)打开 Qsys软件,对PIO核进行设置
位宽6位, 2输入,4 输出。
双向(三 态)输入 输出。
初始值,1, 灯不亮。
1.选择菜单栏,启动Qsys软件。
或直接在文件导航栏上双击
二.实验操作
本实验,除掌握前述实验内容相关的操作意外,还 需要注意以下几个问题。 (1)为什么本次实验不用开发板上的案件,而要接入 矩阵键盘?可否调整一下,直接使用开发板上的案件 呢? (2)掌握BSP库文件中,相关文件的作用,充分利用 相关文件,辅助C语言编程。 (3)要注意确认下载的文件、工程文件夹、NIOS II 软件工程目录,具体的指向位置,不可随意,否则编 译下载可能会出现莫名其妙的问题。
int main(void) {
alt_u8 led = 0x0; alt_u32 i;
//本例中,设置6位PIO端口后四位为输出,用写端口、延时方式实现其闪烁。
//PIO模块设置 IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_LED_BASE, 0x35); //输出方向寄 存器,1输出,0 输入,不设置默认0