admin
发表于: 2015-4-23 09:06:27 | 显示全部楼层

基于LPC1768读写两片N25Q256的原理与实现

@一板网

1. 简介

1.1 芯片简介

LPC1768是NXP推出的高性能Coterx-M3芯片,最大主频为100MHz。

N25Q256A是Micron(美国镁光)公司推出的一款256Mbit的串行Flash,容量大,读写速度快,最大可支持108M的读写速度。

1.2 连接方式

LPC1768通过SPI接口与N25Q256连接,其中P1.18、P1.21为片选端,P1.20为SCK0,P1.23为MISO0,P1.24为MOSI0。

01.JPG

图1 LPC1768与N25Q256的连接图

1.3 寻址方式

N25Q256是由两片128Mbit存储单元叠加而成。支持3字节地址读写方式,最大寻址为128MBit。默认使用的是Lower 128Mbit。如果要想使用Upper 128MBit,则需要使用WRITE EXTENDED ADDRESS REGISTER控制命令修改。

443.jpg

图2 N25Q256内存分布图


2 函数介绍

2.1. 初始化SPI_FLASH_Init

该函数主要是初始化SSP0控制引脚的复用功能,设定SSP为主控制器模式,设定SSP0运行的时钟频率。测试时使用的频率是25M。

05.jpg

图3 SPI_FLASH_Init函数

2.2 读函数SSTF016B_RD

N25Q256支持READ、FAST READ、DUAL OUTPUT FAST READ、DUAL INPUT/OUTPUT FAST READ、QUAD OUTPUT FAST READ、QUAD INPUT/OUTPUT FAST READ等多种读取方式,函数使用的指令是FAST READ(0x0B)指令。

06.jpg

图4 SSTF016B_RD函数

2.3 写函数SSTF016B_WR

使用PAGE PROGRAM指令写入数据。在使用写函数指令之前,必须先发送WRITE ENABLE指令才能进行写入操作。

07.jpg

图5 SSTF016B_WR函数

2.4 擦除函数

N25Q256支持3种擦除方式,分别是SubSector(4KB)、Sector(64KB)和BULK(全片擦除)。可根据待擦除的SubSector数目选择最快的擦除方式。

08.jpg

图6 SSTF016B_Erase函数


3 测试

N25Q256A共有0x400个Sector,分别对其进行擦除、读取、写入、读取的方式进行验证,测试流程如图7所示。

10.JPG

图7 测试流程图

测试代码:

09.jpg

图8 测试代码

测试结果如图9、图10所示。符合预期。

15165.jpg

图9擦除之后的读取结果

5156.jpg

图10 写数据之后的读取结果


跳转到指定楼层
bucthuang
发表于: 2015-4-30 15:25:50 | 显示全部楼层

图片卡啦,看不到,网太菜呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 53 | 回复: 76



手机版|

GMT+8, 2024-4-27 07:51 , Processed in 0.053751 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表