w25qxx的三字節地址模式和四字節地址模式
我們知道w25qxx支持3-Byte和4-Byte模式,其實就是地址空間不同,對應的空間大小不同,3-Byte空間最大只達到128Mb
W25Q256FV提供了兩種地址模式,可用於指定存儲器陣列中的任何數據字節。 3字節地址模式向后兼容僅支持最大128Mb位數據的較早版本的串行閃存。為了在3字節地址模式下尋址256M位或更多數據,除3字節地址外,還必須使用擴展地址寄存器。4字節地址模式旨在支持256Mb位至32Gb位的串行閃存設備。使能4字節地址模式時,不需要擴展地址寄存器。
W25Q256是32MB(256Mb)的flash,32MB(256Mb)就是 0x1 FF FF FF,所以地址位就是4個字節,四字節的范圍是0x1 00 00 00-0xFF FF FF FF,所以可支持的空間范圍是256Mb-32Gb,即32MB-4GB
而16MB(256Mb)的flash最大是FF FF FF,只要三字節地址位
上電后,根據非易失性狀態寄存器位ADP(S17)的設置,W25Q256FV可以工作在3字節地址模式或4字節地址模式。如果ADP = 0,則器件將以3字節地址模式工作;否則,器件將以3字節地址模式工作。如果ADP = 1,則設備將以4字節地址模式工作。 ADP的出廠默認值為0。
要在3字節或4字節地址模式之間切換,必須使用“進入4字節模式(B7h)”或“退出4字節模式(E9h)”指令。當前地址模式由狀態寄存器位ADS指示(S16)。
由此可見,w25qxx大容量來講是有這個4字節模式的,但是小容量的w25q32來說,只有3字節地址模式。我目前用到用的是w25q32芯片,網上看到后,是norflash類型。spi、qspi、dspi都可以驅動的,參考的驅動可以是野火的,也可以是原子的。
同事spi的是有時序要求的,下面是官網的說法:
支持SPI總線操作模式0(0,0)和3(1,1)。 當SPI總線主機處於待機狀態且數據未傳輸到串行閃存時,模式0與模式3之間的主要區別在於CLK信號的正常狀態。 對於模式0,在/ CS的下降沿和上升沿,CLK信號通常為低電平。 對於模式3,CLK信號通常在/ CS的下降沿和上升沿為高電平。
W25Q32的介紹
1、容量
32M-Bit/4M-byte(4,194,304)
2、存儲結構
頁:256-bytes
扇區:4K-bytes
塊:64K_bytes
是故:
頁:有16384個
扇區:有1024個
塊:有64個
3、速度
時鍾速度最高:80MHz,這里我使用了stm32f1的單片機來驅動的,因此速度給了18Mbits
4、特性
擦除、寫次數:高達100,000次
數據保存時間:20年
三、操作注意
1、頁為編程單位,可以一次性編程1個到256個字節;超過256個字節肯定要分多次寫入
2、在編程之前,必須對對應的區域進行擦除操作,否則有可能寫入錯誤。
3、擦除的最小單位是“扇區”,也可以以“塊”為單位進行擦除(此時塊可以為32K-bytes 或者 64K-bytes),最大可以整塊擦除。
4、讀操作比編程操作容易的多,沒有以上的細節考慮。可以一次性讀一個字節,也可以多個字節,甚至從頭讀到尾。
flash的變成有很多命令,和其他很多驅動芯片一樣,讀寫刪除等等,之前用的dac8562的dac芯片也是有很多命令組成的。
命令+數據
或者
命令+返回的數據