三FLASH控制器的添加及FLASH烧写.docx

上传人:b****5 文档编号:30226535 上传时间:2023-08-07 格式:DOCX 页数:15 大小:463.13KB
下载 相关 举报
三FLASH控制器的添加及FLASH烧写.docx_第1页
第1页 / 共15页
三FLASH控制器的添加及FLASH烧写.docx_第2页
第2页 / 共15页
三FLASH控制器的添加及FLASH烧写.docx_第3页
第3页 / 共15页
三FLASH控制器的添加及FLASH烧写.docx_第4页
第4页 / 共15页
三FLASH控制器的添加及FLASH烧写.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

三FLASH控制器的添加及FLASH烧写.docx

《三FLASH控制器的添加及FLASH烧写.docx》由会员分享,可在线阅读,更多相关《三FLASH控制器的添加及FLASH烧写.docx(15页珍藏版)》请在冰豆网上搜索。

三FLASH控制器的添加及FLASH烧写.docx

三FLASH控制器的添加及FLASH烧写

1.3FLASH控制器的添加及FLASH烧写

1.实验目的

(1)进一步熟悉NiosII系统的构成及开发流程;

(2)进一步熟悉SOPCBuilder和NiosIIIDE的使用;

(3)掌握FLASH控制器的添加与使用;

(4)掌握FLASH的烧写。

2.实验现象

8个LED灯花样闪烁。

3.实验原理

原理图如图1.3.1所示

图1.3.1

由图1.3.1我们可以得到如表1.3.1所示的外设一览表:

表1.3.1

外设名称

描述

备注

cpu

NiosII/eDebugModule=Level1

sysid

系统ID

系统的唯一标识

led_pio

8位只输出

控制LED

sdram

Custom,Row=12,Column=8

Datawidth=16,Banks=4

flash

Custom,Addresswidth=21

Datawidth=8

三态桥

Registered

图1.3.2是编写本实验时所使用的核心板中FLASH的连接图,从连接图及附录三FLASH_Am29LV160D的芯片手册可以知道,使用的是bytemode,因此地址最低位是F_A-1(DQ15),最高位是F_A19,共21位,数据位是8位。

至于时序,我们用经验值Setup=40ns,Wait=160ns,Hold=40ns,这一值可以满足要求,当然实际应用时最好仔细阅读芯片手册进行设置。

但是,FLASH控制器需要通过三态桥与总线相连接,所以还需要添加一个三态桥并手动进行连接。

顶层原理图如图1.3.3所示。

图1.3.2

图1.3.3

4.实验内容

(1)在QuartusII中建立一个工程;

(2)使用SOPCBuilder建立生成一个具有表1.3.1所示元件的NiosII硬件系统;

(3)在QuartusII工程中添加PLL;

(4)建立基于NiosII的硬件系统并编译生成配置文件*.sof;

(5)在NiosIIIDE中建立对应硬件系统的NiosIIC/C++Application,编写程序;

(6)将配置文件*.sof和可执行文件*.elf都下载到FPGA进行在线运行。

5.实验步骤

上一节实验介绍过的内容不再介绍,这里只介绍FLASH控制器和三态桥的添加。

完整的NiosII系统图如图1.3.4所示。

图1.3.4

1)在SOPCBuilder中添加FLASH控制器

在可用元件列表里双击FlashMemory(CFI)(图1.3.5),在弹出的设置向导里按图1.3.6和图1.3.7所示设置。

图1.3.5

图1.3.6

图1.3.7

2)在SOPCBuilder中添加三态桥

添加完FLASH控制器后可以看到信息栏有一个错误提示(图1.3.8),实际上是要求我们加入一个三态桥。

双击Avalon-MMTristateBridge(图1.3.9)按图1.3.10和图1.3.11所示进行设置。

在图1.3.11中,因为除了FLASH我们没有添加其他与三态桥连接在一起的元件,所以没有可共用的信号可选,如果有的话可在这里设置。

同时可以看到,数据总线始终是共用的,片选信号始终是独立的。

图1.3.8

图1.3.9

图1.3.10

图1.3.11

3)手动连接FLASH与三态桥

从图1.3.12可以看到,刚添加好的三态桥和FLASH并未连接,需要我们手动连接。

如图1.3.13所示,把鼠标移到左边的连接处会出现一个空心的圆圈,单击鼠标后会变成实心的圆圈,表示这两个节点已经连接上,如果想取消某个连接用同样的方法,鼠标移到圆圈处单击使实心的圆圈变成空心的即可断开。

连接好后如图1.3.14所示,不过连接好后信息栏有可能出现更多的错误,读者不必担心,自动分配一下基地址错误即可消除,如果还有错误的话那就请你仔细检查你的操作过程。

图1.3.12

图1.3.13

图1.3.14

4)设置复位地址和异常向量地址

添加好所有元件后别忘了设置复位地址,这时我们可以把复位地址分配在FLASH,异常向量地址分配在SDRAM(图1.3.15)。

与第1节的实验比较一下,可以看到,原先的片内ROM和片内RAM分别被较大容量的外部FLASH和SDRAM代替。

由此构成一个比较完整的小微机系统。

图1.3.15

5)在QuartusII中组合所有模块并添加引脚编译

与之前的实验相同,需要提醒读者注意的是FLASH的数据总线与SDRAM一样也是双向的端口,所以要使用bidir而不使用output。

6)在NiosIIIDE中编写程序文件

编写如下所示的程序文件,系统库属性使用默认的设置。

不进行程序优化,因为本实验使用的是SDRAM,空间大小已经足够。

与之前一样,同样可以进行调试运行。

/********************版权声明*****************************

*新疆大学信息科学与工程学院创新实验室

*文件名:

flowled.c

*创建者:

吴占敏

*创建日期:

2010.4.24

*校验者:

*校验日期:

*版本号:

V1.0

*功能描述:

通过PIO直接控制8个LED产生流水灯效果

********************************************************/

#include"system.h"

#include"altera_avalon_pio_regs.h"

#include"alt_types.h"

/*流水灯花样,低电平点亮,注意调用时候用了取反操作*/

constalt_u32LED_TBL[]={

0x00,0xFF,//全部熄灭后,再全部点亮

0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,//依次逐个点亮

0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,//依次逐个叠加

0xFF,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,//依次逐个递减

0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81,//两个靠拢后分开

0x81,0xC3,0xE7,0xFF,0xFF,0xE7,0xC3,0x81//从两边叠加后递减

};

/**********************************************************

*名称:

main()

*功能:

控制LED流水显示。

***********************************************************/

intmain(void)

{

alt_u8i;

alt_u32j;

while

(1)

{

for(i=0;i<42;i++)

{/*流水灯花样显示*/

IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,~LED_TBL[i]);

j=0;

while(j<100000)//延时

j++;

}

}

return0;

}

7)FLASH烧写

在前一节的实验中,我们无法把程序保存在SDRAM内,因为SDRAM掉电后数据即丢失,因此那样的一个系统没有实际的应用意义。

而第1节实验中,尽管我们可以把程序保存在片内ROM,但由于其大小又限制了进一步开发,也没有太大的应用空间。

添加了FLASH就解决了这两个问题。

选择菜单栏Tools→FlashProgrammer...(图1.3.16)即弹出图1.3.17所示的界面。

图1.3.17所示的是没有添加任何FlashProgrammer时的情形,添加后如图1.3.18所示。

读者应检查默认的所要编程的是否是自己想要下载的工程,因为打开后默许的是前一次下载时的工程。

设计者也可以把FPGA配置文件和其他的文件(如一幅图片数据)下载到FLASH使用。

如果是对EPCS编程,则要求把配置文件也下载到EPCS。

设置好后点Program即可,如若出现图1.3.19所示信息则表明编程成功,按一下复位键后系统将运行。

图1.3.16

图1.3.17

图1.3.18

本节易错提示:

1、FLASH控制器设置的与自己使用的板子不一致;

2、FLASH控制器的数据端口没使用双向端口bidir而使用output,这一点读者务必特别注意;

3、建立NiosII工程时使用了前一次*.ptf文件,而不是刚刚建立的工程文件;

4、在线调试运行时一定要把复位端接上(低电平有效,调试运行时应该是高电平),否则会出现veryfyfailed的错误;

5、分配管脚时与核心板实际连线不一致将直接导致FLASH编程失败;

6、FLASH编程后必需按一下复位系统才会重新运行。

图1.3.19

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1