没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
- -
华邦 W25Q16 存储器颗粒 SPI 编程
W25X16、W25X32 和 W25X64 系列 FLASH 存储器可以为用户提供存储解决方案,具有“PCB 板占用空间少〞、
“引脚数量少〞、“功耗低〞等特点。与普通串行 FLASH 相比,使用更灵活,性能更出色。它非常适合做代码下载应用,例
如存储声音,文本和数据。工作电压在 2.7V-3.6V 之间,正常工作状态下电流消耗 0.5 毫安,掉电状态下电流消耗 1 微
安。所有的封装都是"节省空间"型的。
W25X16、W25X32 和 W25X64 分别有 8192、16384 和 32768 可编程页,每页 256 字节。用"页编程指令"每
次就可以编程 256 个字节。用"扇区(sector)擦除指令"每次可以擦除 16 页,用“块(block)擦除指令〞每次可以擦除 256
页,用“整片擦除指令〞即可以擦除整个芯片。W25X16、W25X32 和 W25X64 分别有 512、1024 和 2048 个可擦除
"扇区"或 32、64 和 128 个可擦除“块〞。
W25X16、W25X32 和 W25X64 支持标准的 SPI 接口,传输速率最大 75MHz。四线制:
①:串行时钟引脚 CLK;
②:芯片选择引脚 CS;
③:串行数据输出引脚 DO;
④:串行数据输入输出引脚 DIO。
(注意:第④引脚“串行数据输入输出引脚 DIO〞的解释:在普通情况下,这根引脚是“串行输入引脚(DI),当使用了快读
双输出指令(Fast Read Dual Output instruction)时,这根引脚就变成了 DO 引脚,这种情况下,芯片就有了两个 DO
引脚了,所以叫做双输出,这时,如果与芯片通信的速率相当于翻了一倍,所以传输速度更快。)
另外,芯片还具有保持引脚(HOLD)、写保护引脚(WP)、可编程写保护位(位于状态存放器 bit1)、顶部和底部块的控
制等特征,使得控制芯片更具灵活性。
芯片支持 JEDEC 工业标准。
引脚排布:
原 理
图:
控制和状态存放器说明
- . word.zl-
- -
S7 S6 S5 S4 S3 S2 S1 S0
SRP
(Reservd
)
TB BP2 BP1 BP0 WEL BUSY
通过"读状态存放器指令"读出的状态数据可以知道芯片存储器阵列是否可写或不可写,或是否处于写保护状态。通过 "
写状态存放器指令"可以配置芯片写保护特征。
状态存放器:
忙位(BUSY)
BUSY 位是个只读位,位于状态存放器中的 S0。当器件在执行"页编程"、"扇区擦除"、 "块区擦除"、"芯片擦除"、"
写状态存放器"指令时,该位自动置 1。这时,除了"读状态存放器"指令,其它指令部忽略。当编程、擦除和写状态存放器
指令执行完毕之后,该位自动变为 0,表示芯片可以接收其它指令了。
写保护位(WEL)
WEL 位是个只读位,位于状态存放器中的 S1。执行完"写使能"指令后,该位置 1。当芯片处于"写保护状态"下,该
位为 0。在下面两种情况下,会进入"写保护状态"
•掉电后
•执行以下指令后写禁能、页编程、扇区擦除、块区擦除、芯片擦除和写状态存放器
块区保护位(BP2,BP1,BP0)
BP2\BP1\BP0 位是可读可写位,分别位于状态存放器的 S4\S3\S2。可以用"写状态存放器"命令置位这些块区保护位。
在默认状态下,这些位都为 0,即块区处于未保护状态下。可以设置块区没有保护、局部保护或者是全部处于保护状态下。
当 SPR 位为 1 或/WP 引脚为低的时候,这些位不可以被更改。
底部和顶部块区保护位(TB)
TB 位是可读可写位,位于状态存放器的 S5。该位默认为 0,说明顶部和底部块区处于未被保护状态下。可以用"写状
态存放器"命令置位该位。当 SPR 位为 1 或/WP 引脚为低的时候,这些位不可以被更改。
保存位
状态存放器的 S6 为保存位,读出状态存放器值时,该位为 0。建议读状态存放器值用于测试时将该位屏蔽。
状态存放器果护位〔SRP〕
SRP 位是可读可写位,位于状态存放器的 S7。该位结合/WP 引脚可以实现禁能写状态存放器功能。该位默认值为
0。当 SRP 位=0 时,/WP 引脚不能控制状态存放器的"写禁能"。当 SRP 位=1,/WP 引脚=0 时,"写状态存放器"命令
失效。当 SRP 位=1,/WP 引脚=1 时,可以执行"写状态存放器"命令。
- . word.zl-
- -
状态存放器存储保护模块:
- . word.zl-
- -
1、写使能时序图〔指令:0x06〕:
“写使能〞指令将会使“状态存放器〞WEL 位置位。在执行每个“页编程〞、“扇区擦除〞、“块区擦
除〞、“芯片擦除〞、和“写状态存放器〞命令之前,都要先置位 WEL。/CS 引脚先拉低之后,“写使能〞
指令代码 06h 从 DI 引脚输入,在 CLK 上升沿采集,然后再拉高/CS 引脚。
程序设计流程:
1、使能片选位,拉低 CS 引脚;
2、CLK 起始状态或高电平或低平,配置数据采集从 CLK 第一个上升沿开场;
3、等待发送缓冲区是否为空,SPI_SR 的 TXE 位;
4、将数据赋值给 SPI_DR 存放器;
5、等待接收缓冲区是否为空,SPI_SR 的 RXNE 位;
6、返回接收到的数据;
7、禁能片选位,拉高 CS 引脚。
例程:
unsigned char SPI_SendByte(unsigned char byte)
{
while(!(SPI_SR&0x02));//等待发送缓冲区为空
SPI_DR=byte; //送值到数据存放器
whlie(!(SPI_SR&0x01));//等待接收缓冲区为空
return SPI_DR; //返回接收的容
}
unsigned char SPI_WriteEnable()
{
Flash_CS=0; //使能 CS 引脚
SPI_SendByte(0x06) //写使能指令
- . word.zl-
剩余16页未读,继续阅读
资源评论
pyhm63
- 粉丝: 9
- 资源: 20万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功