嵌入式Flash讀寫操作該如何進行設計?

艾華戀萌


Flash存儲芯片的通訊方式以SPI居多,在實現flash讀寫時就是要實現SPI的通訊協議,與EEPROM不同的是,SPI在操作時是按照PAGE頁進行整頁擦除寫入的,這一點需要注意。Flash分為NorFlash和NandFlash,這裡主要介紹NorFlash,下面從硬件設計和編程的角度介紹一下。

1 Flash存儲芯片的硬件設計

Flash存儲芯片多數都是SO-8的封裝,具有八個引腳,存儲容量較大,比如1M,2M,64M,128M等。通訊方式以SPI居多,所包含的引腳有數據輸出DO、數據輸入DI、時序SCLK、片選CS以及寫保護WP等。與單片機通訊的電路原理如下圖所示。

需要用到四個GPIO,片選CS低電平有效,保持和寫保護為可選功能。

2 Flash存儲芯片的編程事項

Flash是用來存儲數據的,在消費類電子上應用比較多,如智能手環、體重秤以及作為WIFI、藍牙模組的固件存儲等。對Flash芯片的操作主要包括擦除和寫入。Flash廠家、型號雖然不同,但是同為SPI通訊方式時,基本操作大同小異,都是通過整個PAGE來擦除和寫入的,需要注意容量、可操作扇區的不同。在編程時需要注意如下幾個問題:

首先,在拿到Flash時需要首先查看Flash的扇區劃分,如下圖所示。

其次,需要根據手冊的SPI時序實現程序代碼的編寫,這一部分一定要遵循手冊的時序。

再次,需要設置正確的波特率並選擇選擇CPOL和CPHA。編程部分,代碼的編寫比較靈活每個人的實現方式不同、編程思想不同,無法展示代碼。也可以選擇官方的驅動代碼,在此基礎上進行修改。

EEPROM一般為IIC通訊,是按照字節讀寫的,而SIP的Flash是按照PAGE頁進行擦除和讀寫的,這一點需要注意。

以上就是這個問題的回答,感謝留言、評論、轉發。更多電子設計、硬件設計、單片機等內容請關注本頭條號:玩轉嵌入式。感謝大家。


分享到:


相關文章: