亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 第13章 DS18B20溫度傳感器和Flash存儲器13.3、13.4 [打印本頁]

作者: 卓然塵世間    時間: 2026-5-7 15:11
標題: 第13章 DS18B20溫度傳感器和Flash存儲器13.3、13.4
13.3 Flash存儲器
Flash存儲器又名閃存,也是一種掉電后可以存儲數據的存儲器,按主要類型分為NOR FlashNAND FlashFlash存儲器在現代電子設備中扮演者重要角色,廣泛應用于手機、平板。數碼相機等消費電子產品,以及汽車、工業控制、航空航天等領域,主流單片機的程序存儲空間也是Flash
為了更好的理解Flash,將FlashEEPROM的主要特點進行對比。
1、相較于EEPROMFlash存儲器能夠提供較高的存儲密度,容量更大,適合需要大容量存儲的應用場景。比如Kingst51開發板上的Flash型號為W25Q32,是一個32Mbit大小的Flash存儲器。而24C02的僅有256個字節,也就是2Kbit存儲空間,存儲空間上是16000倍,價格上僅23倍。
2、相較于EEPROMFlash存儲器的讀寫速度更快,尤其在讀取速度方面,NOR Flash的讀取速度非常快,適應于需要頻繁讀取操作的應用。
3、相較于FlashEEPROM允許按照字節進行寫操作,可以靈活地修改單個字節的數據。而Flash要修改某個數據前,通常需要對整個扇區(4096字節)進行擦除后(整個扇區初始化為1)才能重新寫入。因此EEPROM更適合需要頻繁更新數據的應用場景,而Flash更適合讀寫大量數據而不需要頻繁改變數據的場景。
4、Flash的讀寫比EEPROM的讀寫略微,用戶每次操作之前需要通知Flash具體操作指令,比如是“讀”還是“寫”,寫的話是“寫寄存器”還是“寫數據”。寫之前要先寫使能等等操作。
當然這些指令在手冊里有列表說明,每一條指令也都有詳細解釋,如表13-1所示。

Flash流程:
1、檢測是否“忙”。
2、使能引腳,寫入“讀數據”指令。
3、發送Flash讀數據起始地址,需要注意的是W25Q32這顆Flash的存儲空間是32Mbit,即4M字節,因此他的地址是24位地址。
4、根據當前地址讀取相應數量的數據。
Flash流程:
1、檢測是否“忙”。
2、使能引腳,寫入“寫使能”指令。
3、發送“頁寫”指令。
4、發送Flash寫數據起始地址。
5、連續發送要寫入的數據,寫入到Flash中去。
值得注意的是,如果寫Flash的數據牽扯到跨頁寫入,需要對跨頁進行操作處理。
寫一個簡單的程序,從某一地址讀出連續的2個數據,第一個字節加1,第二個字節加2,分別重新寫回到flash中去。
flash.c程序的最開始把特殊指令和頁大小、扇區大小進行宏定義。
SPIWrite:將單字節按照SPI時序發送。
SPIRead:按照SPI協議讀取一個字節數據。
FlashBusyWait:檢測Flash是否“忙”狀態。Flash在跨頁寫入、扇區擦除、塊擦除等操作中都需要一定的時間,這段時間flash都處于“忙”狀態,讀寫指令均不響應,因此讀寫之前要使用這個函數進行“忙”檢測。
FlashReadFlash連續讀數據指令。
FlashSectorEraseFlash扇區擦除。Kingst51開發板所采用的W25Q32這個Flash最小擦除單位就是扇區擦除。因此除非擦除后沒有寫入數據,否則要改變已經寫入的數據,必須進行擦除動作,最小擦除單元為扇區。
FlashPageWrite:由于連續寫入數據有可能遇到跨頁的情況,本函數不提供跨頁判斷,一旦發現無法寫入后,將返回寫入的字節長度,跨頁判斷可以在上層應用函數中實現。
將使用SPI協議讀寫Flash的時序用邏輯分析儀抓出來,并且分別用SPI協議進行解析,如圖13-1013-11所示。

13-10 SPI配置信息      
                                                                                                                                                         

13-11 SPI通信時序圖
軟件的SPI的配置信息,必須和實際通信一致,才能正確解析數據。除了使用SPI進行解析外,由于這是個flash器件,還可以使用特有的QSPI-flash解析器直接將指令解析出來,如圖13-12和圖13-13所示。

13-12 QSPI-flash配置信息

                                                                                                                                                              
13-13 QSPI-flash解析結果
由于程序中存在扇區擦除操作,扇區擦除的時候flash會一直處于“忙”狀態無法響應再次寫入,因此程序中間段存在一些忙檢測波形。將解析結果導出到excel表格中,截取一部分進行觀察,如圖13-14所示,一共403個字節的數據,圖片左側為前16個字節,圖片右側為后17個字節,中間字節全部為“忙檢測”。

13-14 QSPI-flash數據導出
從解析的數據可以看出,第一個字節是讀狀態寄存器,了解Flash是否在忙,第二個字節讀到了0x00,說明Flash處于不忙的狀態。第三個字節0x03為讀數據命令,第四個字節是要讀取0x000000這個地址的連續數據,讀到的2個字節數據是0x050x0B。而后再次進行忙檢測,由于剛剛進行的是讀操作,所以Flash還是處于不忙的狀態。然后使用0x06這個寫使能命令,寫入了0x20指令進行了從0x00地址開始的單個扇區擦除(4096字節)。擦除命令結束后程序進入循環檢測flash的“忙”信號,此時在一段時間內,發送0x05,回復的都是0x03,說明flash都處于忙狀態,一直到解析后數據的第398行再次檢測到0x00的不忙信號,發送0x06這個寫使能指令,發送0x02的頁寫入指令,從地址0x000000開始,寫入的2個字節分別為0x060x0D
W25Q32這個Flash的頁寫入、扇區擦除、塊擦除等各種操作所需要的大概時間在手冊里都有標注,如圖13-15所示。
13-5  W25Q32時序要求
13.4練習題
1、掌握 DS18B20的時序過程,能夠理解1-wrie總線讀寫的時序。
2、理解SPI的通信原理,SPI通信過程的四種模式配置。
3理解flash存儲器的基本原理和操作方式,能獨立完成flash的讀寫操作。






歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1