W25Q80和GD25Q80区别
二者同为SPI-Flash,前者为华邦公司产品,后者是GD公司产品。
W25Q80:
- 8M-bit 1024KB
- 80MHz clock operation
- 共有16个Block,每个Block有16个扇区,每个扇区4KB,每一页256个字节
- 每个设备有64位唯一ID
GD25Q80:
- 8M-bit 1024KB
- 120MHz 快速阅读
- 共有16个Block,每个Block有16个扇区,每个扇区4KB,每一页256个字节
- 每个设备有128位唯一ID
引脚:(二者引脚完全兼容)
寄存器:
W25Q80 状态寄存器(S15~S0)
BUSY:FLASH正在擦除或者正在写入
TB:Top/Bottom写保护位,与BP[2:0]构成更多组合
SEC:扇区保护位,与BP[2:0]构成更多组合
SRP0:状态寄存器保护位
这5位决定写保护的范围
GD25Q80 状态寄存器(S15~S0)
SUS:只读位,该位在擦除、编程、暂停指令后置1 个人感觉这位没什么用
CMP:与BP[4:0]构成更多的组合 默认置0,与W25q80保持兼容
HPM:该位置1表示FLASH当前是高性能模式 一般不用
LB:OTP位,写1,安全寄存器变为永久只读 一般不用
这6位决定写保护范围,其实除了S14,剩下的和W25Q80寄存器是一样的,都是S2~S6共5位
那么S14是什么东西呢?上文讲了,S14即CMP,CMP=0或1 时 只是保护的范围不同罢了
比如当CMP=0,S6~S2= 00010 时 写保护区域为 0E0000H-0FFFFFH 128KB(与W25Q80一样)
当CMP=1时,S6~S2=00010时 写保护区域为 000000H-0DFFFFH 896KB
默认CMP=0,即与W25Q80保持兼容。
指令表:
以下指令二者是一样的,实际上GD32Q80多了很多指令,比如和安全寄存器相关的编程,擦除,读取三条指令,但是通常我们也只会用到以下指令。
1.#define W25X_WriteEnable 0x062.#define W25X_WriteDisable 0x04
3.#define W25X_ReadStatusReg 0x05
4.#define W25X_WriteStatusReg 0x01
5.#define W25X_ReadData 0x03
6.#define W25X_FastReadData 0x0B
7.#define W25X_FastReadDual 0x3B
8.#define W25X_PageProgram 0x02
9.#define W25X_BlockErase 0xD8
10.#define W25X_SectorErase 0x20
11.#define W25X_ChipErase 0xC7
12.#define W25X_PowerDown 0xB9
13.#define W25X_ReleasePowerDown 0xAB
14.#define W25X_DeviceID 0xAB
15.#define W25X_ManufactDeviceID 0x90
16.#define W25X_JedecDeviceID 0x9F
值得注意的是,二者厂商的ID和设备ID是不同的,原子例程有个死循环验证厂商和设备ID,如果用的是GD25系列的Flash需要改下相关宏定义。
华邦的厂商和设备ID(不是芯片唯一ID)一般是 0xEFXX,GD是0xC8XX(XX由不同容量决定)。
综上所述,二者可以互相替换。
如您想了解更多关于华邦存储的信息资料,请咨询华邦flash芯片代理-深圳颖特新-0755-82591179,QQ:1580629703
编辑:Simon 最后修改时间:2019-05-22