atlys开发板之SPI FLASH实验Word文件下载.docx

上传人:b****4 文档编号:6423371 上传时间:2023-05-06 格式:DOCX 页数:25 大小:1.24MB
下载 相关 举报
atlys开发板之SPI FLASH实验Word文件下载.docx_第1页
第1页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第2页
第2页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第3页
第3页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第4页
第4页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第5页
第5页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第6页
第6页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第7页
第7页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第8页
第8页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第9页
第9页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第10页
第10页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第11页
第11页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第12页
第12页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第13页
第13页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第14页
第14页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第15页
第15页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第16页
第16页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第17页
第17页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第18页
第18页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第19页
第19页 / 共25页
atlys开发板之SPI FLASH实验Word文件下载.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

atlys开发板之SPI FLASH实验Word文件下载.docx

《atlys开发板之SPI FLASH实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《atlys开发板之SPI FLASH实验Word文件下载.docx(25页珍藏版)》请在冰点文库上搜索。

atlys开发板之SPI FLASH实验Word文件下载.docx

根据命令格式的不同,有些命令后面不跟地址和数据,有些命令后面需要输出地址或数据,有些命令命令后面既需要地址又需要数据。

以下是N25Q128所支持的命令

具体细节信息,请查看DATASHEET。

二、SPIFLASH硬件设计

1.电路设计

FPGA和N25Q128的硬件连接非常简单,只有四跟线SPIFLASH的片选信号CS,SPI的时钟信号SCK,FLASHFLASH数据写入信号SDI和数据读出信号SDO。

步骤一:

打开XPS的BSB向导,选择工程要存放的位置和PLB总线类型,以及指定板级支持包的路径,点击OK。

步骤二:

一直点击下一步,默认设置就可以直到出现

选择microblaze的LocalMemory为最大的64kb

步骤三:

继续点击下一步出现让你选择处理器外围设备,选择如下

步骤四:

继续点击next直到完成BSB向导。

设置参数如下:

参数代表的含义:

IncludebothReceiverandTransmitterFIFOs这是代表是否SPI接口包含接收FIFO寄存器,这里选择包含TRUE

RatioofPLBClockFrequencyToSCKFrequency代表SPI接口和SPIFLASH的时钟sck周期是PLB时钟的几倍,这里选择4倍。

NumberofSPItransferbits:

代表SPI接口一次传输数据的位数,这是选择8位。

TotalNumberofSlaveSelectBitsinSSVector:

代表从设备SLAVE的个数,这里只有一个设备,所以选择1.

步骤五:

修改MHS和ucf文件

将xps_spi的端口修改为如下:

PORTSCK_O=Flash_SPI_SCK_O

PORTMISO_I=Flash_SPI_MISO_I

PORTMOSI_O=Flash_SPI_MOSI_O

PORTSS_O=Flash_SPI_SS_O

顶层连接修改成如下:

PORTfpga_0_SPI_FLASH_SCK_pin=Flash_SPI_SCK_O,DIR=O

PORTfpga_0_SPI_FLASH_MISO_pin=Flash_SPI_MISO_I,DIR=I

PORTfpga_0_SPI_FLASH_MOSI_pin=Flash_SPI_MOSI_O,DIR=O

PORTfpga_0_SPI_FLASH_SS=Flash_SPI_SS_O,DIR=O

将UCF文件修改为如下:

Netfpga_0_SPI_FLASH_SCK_pinLOC=R15|IOSTANDARD=LVCMOS33;

Netfpga_0_SPI_FLASH_MISO_pinLOC=R13|IOSTANDARD=LVCMOS33;

Netfpga_0_SPI_FLASH_MOSI_pinLOC=T13|IOSTANDARD=LVCMOS33;

Netfpga_0_SPI_FLASH_SSLOC=V3|IOSTANDARD=LVCMOS33;

三、SPIFLASH软件设计

为FLASH测试新建一个工程,操作方式如下图所示,菜单File→New→XilinxCProject

在工程向导界面,红圈1处输入项目名称,我将其修改为hello_flash,红圈2处选择Hello_World工程模版。

点击下一步选择createanewboardsupportpackageproject.

点击Finish,完成工程向导。

回到开发环境后在工程窗口会出现hello_flash的工程目

录。

到这一步,hello_flash的软件工程已经建好了,接下去我们来编写SPIflash的测试软件程序。

首先我们先对helloworld.c重命名为为hello_flash.c,再添加两个.c源程序,一个是SF_commands.c,另一个为xps_spi_drives.c。

再添加两个.h头程序,一个为SF_commands.h,另一个为xps_spi_drives.h。

下面我们来编写SPIFLASH的测试程序。

我们先来编写hello.flash.c的程序代码。

在这个程序里完成对SPIFlash的擦

除,编程和读取验证。

如果读取的数据和编程的数据一致,返回ok。

编写好的

程序如下:

Hello.flash.c

 

再来编写SF_commands.c和SF_commands.h的程序代码。

在SF_commands.c的程序中编写了SPIFLASH的一些操作函数。

修改好的SF_commands.c程序如下图所示:

SF_commands.c

在SF_commands.h头文件中定义SF_commands.c中的函数及使用的一些常量。

修改好的SF_commands.h文件如下图所示:

SF_commands.h

再编写xps_spi_drives.c和xps_spi_drivers.h的程序代码。

修改好的程序如下图所示:

xps_spi_drives.c

在xps_spi_drivers.h头文件中定义xps_spi_drivers.c中所调用的一些常量和函数。

编写好的xps_spi_drivers.h文件如下图所示:

xps_spi_drives.h

程序修改完成后我们就可以来调试运行了,运行之前先保存工程,SDK会自动编译一遍。

因为我们要printf函数输出到串口的terminal中去,所以我们首先要安装串口驱动。

如何下载驱动并且安装参考手册。

安装好驱动后,知道用的是COM4口

下面我们来调试程序的运行:

BecausethisisanFPGA,youmustconfigureitwithabitstreamthatloadsadesignintothe

FPGA.Inthiscase,thedesignisanembeddedprocessorsystem.

1.InSDK,selectXilinxTools>

ProgramFPGA.

Thebitstream(BIT)andblockmemorymap(BMM)filesareautomaticallypopulated

foryou.

2.ClickProgram.WhentheProgrammingcompletes,yourFPGAisconfiguredwith

yourdesign.

Atthispoint,youhavedownloadedthebitstreamtotheFPGAandinitializedthe

microprocessorwithasingle-instruction“branch-to-itself”programcalled

“bootloop.”Bootloopkeepstheprocessorinaknownstatewhileitwaitsforanother

programtobedownloadedtorunorbedebugged.

3.IntheProjectExplorer,underhello_world_0>

Binaries,right-click

hello_world_0.elfandselectDebugAs>

LaunchonHardware.

Theexecutableisdownloadedtothehardwarewherespecifiedinthelinkerscript.

Adialogboxmightappear,informingyouthattheperspectiveisabouttochangefrom

C/C++toDebug.SelecttheRemembermyDecisioncheckboxandclickYes.The

DebugPerspectiveopens.

4.Openaterminalemulationprogramandsetthedisplayto9600baud,8bitdata,1stop

bit.BesuretosettheCOMporttocorrespondtotheCOMportthattheSiliconLabs

driverisusing.

5、ExecutethecodebyclickingtheResumebuttonorpressingF8onyourkeyboard。

等一会terminal1会输出如下

SPIFLASH的测试实验就讲完了。

本实验主要讲解如何在MicroBlaze系统中使用SPI控制器及对SPIFLASH的擦除,编程,读取的操作。

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

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2