68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> 技術(shù)中心 >> 存儲(chǔ)閃存 >> 華邦W25QXX SPI Flash使用筆記

華邦W25QXX SPI Flash使用筆記

關(guān)鍵字:W25QXX 華邦 FLASH 作者:admin 來(lái)源: 發(fā)布時(shí)間:2019-09-04  瀏覽:103

相較于EEPROM而言,SPI Flash的存儲(chǔ)空間簡(jiǎn)直就是打開(kāi)了一個(gè)新世界。以W25Q16為例,16Mb也就是2MB的空間,是AT24C08芯片的1KB空間的2048倍,價(jià)格也沒(méi)有相差很多。同時(shí)使用SPI總線可以實(shí)現(xiàn)更高的讀寫速度,W25QxxSPI總線可以達(dá)到80MHz,這是IIC總線望塵莫及的,而且我比較喜歡用的STM32單片機(jī)的IIC總線總是讓人那么揪心,所以我一直都是用的軟件模擬IIC,而STM32SPI則好用得多。但是SPI Flash也屬于是閃存的一種,內(nèi)部也是由Nand flash或者是Nor flash構(gòu)成的,Flash存儲(chǔ)結(jié)構(gòu)的毛病就是在寫入之前必須要執(zhí)行擦除操作,就像STM32單片對(duì)自身的Flash空間進(jìn)行編程的時(shí)候需要先擦除一頁(yè)然后在寫入數(shù)據(jù),SPI Flash也一樣,每次寫入都要先擦除,不像EEPROM一樣方便,想讀哪個(gè)讀哪個(gè),想寫哪個(gè)寫哪個(gè)。并且W25Qxx系列的Flash的數(shù)據(jù)保存時(shí)間是20年,而AT24Cxx系列的EEPROM的數(shù)據(jù)保存時(shí)間為100年,當(dāng)然我們不指望我們的產(chǎn)品能夠用100年,至少這說(shuō)明了EEPROMFLASH各有優(yōu)勢(shì),但是隨著生活生產(chǎn)中數(shù)據(jù)量的增加,Flash的優(yōu)勢(shì)變得越來(lái)越突出。

由于之后的設(shè)計(jì)可能會(huì)使用SPI Flash代替EEPROM,所以特地用開(kāi)發(fā)板上的W25Q16測(cè)試了一下Flash的性能。電路連接示意如下圖:

圖片1

W25Qxx系列(W25Q80, W25Q16 andW25Q32)的Flash內(nèi)部是按照Page、Sector、Block的結(jié)構(gòu)來(lái)劃分的,一個(gè)Page256個(gè)Byte,一個(gè)Sector16個(gè)Page也就是4KB,一個(gè)Block16個(gè)Sector也就是64KB。

不像上學(xué)那會(huì)一樣有時(shí)間自己寫驅(qū)動(dòng)代碼了,現(xiàn)在直接拿例程代碼進(jìn)行修改了?偟膩(lái)說(shuō)W25Qxx系列的FlashSPI控制邏輯就是:

1、拉低片選引腳

2、SPI寫命令字

3、SPI/寫數(shù)據(jù)

4、拉高片選引腳

5、等待完成操作

數(shù)據(jù)擦除可以以Sector為單位也可以以Block為單位,進(jìn)行Sector擦除的時(shí)候發(fā)送0x20命令字,然后跟隨24位的存儲(chǔ)地址,寫入的24位地址應(yīng)該是會(huì)將低12位忽略掉,不過(guò)數(shù)據(jù)手冊(cè)上沒(méi)有說(shuō)明。進(jìn)行Block64KB)擦除的時(shí)候發(fā)送0xD8命令字,然后發(fā)送24位的地址,芯片內(nèi)部同樣會(huì)忽略低16位地址。擦除之后芯片內(nèi)所有數(shù)據(jù)都是0xFF,這是Flash的特性,感興趣的可以查閱資料,這里做個(gè)簡(jiǎn)單的說(shuō)明。Flash存儲(chǔ)單元中是無(wú)法寫入位1的,只能寫入位0,所以要寫入數(shù)據(jù)的話要先將原來(lái)的數(shù)據(jù)都擦出成0xFF然后寫入數(shù)據(jù)的時(shí)候遇到bit 1時(shí)不做處理,遇到bit 0時(shí)寫入0即可。這就是為什么Flash進(jìn)行寫入之前需要進(jìn)行擦除的原因。我在W25Q16上做了一個(gè)有趣的測(cè)試,在不擦除Sector的情況下寫入,發(fā)現(xiàn)依然可以寫入,讀出寫入的數(shù)據(jù)發(fā)現(xiàn)新寫入的數(shù)據(jù)的0會(huì)將源數(shù)據(jù)中的對(duì)應(yīng)位的1覆蓋,但是新寫入的1并不會(huì)覆蓋原數(shù)據(jù)中對(duì)應(yīng)位的0,印證了上面介紹的Flash原理。也就是說(shuō)如果一個(gè)地址處的數(shù)據(jù)是0xFF,那么這個(gè)地址還可以寫入任何數(shù)據(jù),否則不可能完整寫入任何數(shù)據(jù)。

數(shù)據(jù)寫入的時(shí)候只能按照Page來(lái)寫入,最多一次只能寫256個(gè)字節(jié),也就是一個(gè)頁(yè)的空間,寫入的時(shí)候可以不從頁(yè)的開(kāi)始地址寫入,如果一次寫入字節(jié)數(shù)溢出了一個(gè)頁(yè)的空間,那么多出來(lái)的會(huì)從循環(huán)到頁(yè)的開(kāi)始地址處覆蓋原來(lái)的數(shù)據(jù),數(shù)據(jù)手冊(cè)的10.2.14節(jié)說(shuō)的很明白。頁(yè)寫的命令字為0x02,尾隨24位的地址。

有時(shí)候我們還需要讀取芯片的ID號(hào),W25Qxx系列Flash有多個(gè)ID號(hào),Manufacturer ID、Device ID、Unique IDJEDEC ID,W25Q16讀取到的Manufacturer ID0xEF,Device ID0x14,Unique ID沒(méi)讀出來(lái),JEDEC ID沒(méi)興趣讀......我感興趣的Unique ID卻沒(méi)讀出來(lái),因?yàn)檫@個(gè)ID是可以當(dāng)做程序加密使用的。算了,反正STM32也有唯一標(biāo)識(shí)ID,寫入到FLASH中也可以實(shí)現(xiàn)程序加密。

其實(shí)使用上面的4個(gè)命令就可以正常得使用SPI Flash工作了,其他的很多命令字都用不上。

編輯:simon  最后修改時(shí)間:2019-09-04

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

阳信县| 高唐县| 长春市| 顺义区| 蒙自县| 诏安县| 建水县| 宁阳县| 海宁市| 枣强县| 临潭县| 双桥区| 丽江市| 公安县| 玉树县| 泰顺县| 广东省| 北京市| 商河县| 洛南县| 德安县| 大方县| 克拉玛依市| 民县| 惠东县| 惠来县| 会理县| 拉萨市| 西充县| 芒康县| 清远市| 宁德市| 牡丹江市| 集贤县| 岳普湖县| 高阳县| 雷波县| 逊克县| 宝鸡市| 馆陶县| 汶上县|