久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7180|回復: 4
收起左側

華邦W25QXX SPI Flash使用筆記

[復制鏈接]
ID:715662 發表于 2020-3-31 14:39 | 顯示全部樓層 |閱讀模式

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

由于之后的設計可能會使用SPI Flash代替EEPROM,所以特地用開發板上的W25Q16測試了一下Flash的性能。電路連接示意如下圖:

lw9MzV.png

W25Qxx系列(W25Q80, W25Q16 andW25Q32)的Flash內部是按照Page、Sector、Block的結構來劃分的,一個Page為256個Byte,一個Sector為16個Page也就是4KB,一個Block為16個Sector也就是64KB。

不像上學那會一樣有時間自己寫驅動代碼了,現在直接拿例程代碼進行修改了。總的來說W25Qxx系列的Flash的SPI控制邏輯就是:

1、拉低片選引腳

2、SPI寫命令字

3、SPI讀/寫數據

4、拉高片選引腳

5、等待完成操作

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

數據寫入的時候只能按照Page來寫入,最多一次只能寫256個字節,也就是一個頁的空間,寫入的時候可以不從頁的開始地址寫入,如果一次寫入字節數溢出了一個頁的空間,那么多出來的會從循環到頁的開始地址處覆蓋原來的數據,數據手冊的10.2.14節說的很明白。頁寫的命令字為0x02,尾隨24位的地址。

有時候我們還需要讀取芯片的ID號,W25Qxx系列Flash有多個ID號,Manufacturer ID、Device ID、Unique ID、JEDEC ID,W25Q16讀取到的Manufacturer ID為0xEF,Device ID為0x14,Unique ID沒讀出來,JEDEC ID沒興趣讀......我感興趣的Unique ID卻沒讀出來,因為這個ID是可以當做程序加密使用的。算了,反正STM32也有唯一標識ID,寫入到FLASH中也可以實現程序加密。

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


回復

使用道具 舉報

ID:715662 發表于 2020-3-31 14:40 | 顯示全部樓層
技術問題可以找陳功18676367856
回復

使用道具 舉報

ID:525923 發表于 2020-5-19 11:55 | 顯示全部樓層
怎么修改FLASH中某個地址的數據呢
回復

使用道具 舉報

ID:601357 發表于 2021-1-24 18:37 | 顯示全部樓層
謝謝分享
正好需要用上
回復

使用道具 舉報

ID:1034482 發表于 2022-7-25 21:26 | 顯示全部樓層
在研究,先了解一下。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩亚洲系列 | 亚洲国产精品va在线看黑人 | 午夜一区 | 精品国产乱码久久久久久a丨 | 国产精品一区二区不卡 | 正在播放国产精品 | 国产午夜精品一区二区三区 | 欧美日韩一 | 国产精品久久久久久久 | 亚洲高清一区二区三区 | 亚洲 欧美 日韩在线 | 在线看免费 | 国产欧美一区二区精品久导航 | 国产精品成人一区二区 | 992人人草 | 日韩在线视频一区 | 国产精品欧美一区二区三区 | 人人干超碰 | 女人牲交视频一级毛片 | 色噜噜狠狠色综合中国 | 国产一区 | 中文字幕在线看 | 欧美中文一区 | 亚洲男人天堂 | 日韩亚洲一区二区 | 欧美激情国产日韩精品一区18 | 亚洲少妇综合网 | 日本天天操 | 久久久久久久久久久久久91 | 亚洲天堂av网 | 成人精品国产 | 成年无码av片在线 | 国产精品96久久久久久 | 欧美国产精品一区二区三区 | 国产精品国产精品国产专区不蜜 | 中国一级特黄毛片大片 | www.av7788.com| 国产免费让你躁在线视频 | 成人在线一区二区三区 | 国产一卡二卡三卡 | 伊人伊成久久人综合网站 |