SFUD (Serial Flash Universal Driver) 是一款開源的串列 SPI Flash 通用驅動庫。
基本介紹
- 軟體名稱:SFUD
- 軟體平台:PC/嵌入式MCU
- 軟體版本:V1.1.0
- 更新時間:2018-12-27
- 軟體語言:C
- 軟體大小:RAM:0.1KB ROM:3.6KB
- 軟體授權:MIT 協定
產生背景,主要功能,設計思路,常見套用場景,使用說明,
產生背景
由於現有市面的串列 Flash 種類居多,各個 Flash 的規格及命令存在差異,SFUD 就是為了解決這些 Flash 的差異現狀而設計,讓產品能夠支持不同品牌及規格的 Flash,提高了涉及到 Flash 功能的軟體的可重用性及可擴展性。
主要功能
SFUD(Serial Flash Universal Driver)是一款開源的串列 SPI Flash 通用驅動庫。
- 主要特點:支持 SPI/QSPI 接口、面向對象(同時支持多個 Flash 對象)、可靈活裁剪、可擴展、支持 4 位元組地址
- 資源占用
- 標準占用:RAM:0.2KB ROM:5.5KB
- 最小占用:RAM:0.1KB ROM:3.6KB
設計思路
SFUD使用的是SFDP標準,它是 JEDEC (固態技術協會)制定的串列 Flash 功能的參數表標準 。該標準規定每個 Flash 中存在一個參數表,該表中會存放 Flash 容量、寫粒度、擦除命令、地址模式等 Flash 規格參數。目前,除了部分廠家舊款 Flash 型號會不支持該標準,其他絕大多數新出廠的 Flash 均已支持 SFDP 標準。
常見套用場景
- 使用 SFUD 即可避免在相同功能的軟體平台基礎下,無法適配不同 Flash 種類的硬體平台的問題;
- 簡化軟體流程,降低開發難度。配置好 SPI 通信,即可驅動 SPI Flash ;
- 用於製作 Flash 編程器/燒寫器
使用說明
SFUD已經在眾多 Flash上完成真機測試,詳見下表。表中顯示為不支持SFDP 標準的 Flash同樣可以使用SFUD ,因為其 Flash 參數已經在Flash 信息表中定義,詳見 GitHub 倉庫。
型號 | 容量 | 最高速度 | SFDP 標準 | QSPI 模式 | 備註 |
---|---|---|---|---|---|
W25Q40BV | 4Mb | 50Mhz | 不支持 | 雙線 | 已停產 |
W25Q80DV | 8Mb | 104Mhz | 支持 | 雙線 | |
W25Q16BV | 16Mb | 104Mhz | 不支持 | 雙線 | slipperstree |
W25Q16CV | 16Mb | 104Mhz | 支持 | 未測試 | |
W25Q16DV | 16Mb | 104Mhz | 支持 | 未測試 | slipperstree |
W25Q32BV | 32Mb | 104Mhz | 支持 | 雙線 | |
W25Q64CV | 64Mb | 80Mhz | 支持 | 四線 | |
W25Q128BV | 128Mb | 104Mhz | 支持 | 四線 | |
W25Q256FV | 256Mb | 104Mhz | 支持 | 四線 | |
MX25L3206E | 32Mb | 86MHz | 支持 | 雙線 | |
KH25L4006E | 4Mb | 86Mhz | 支持 | 未測試 | JiapengLi |
KH25L3206E | 32Mb | 86Mhz | 支持 | 雙線 | |
SST25VF016B | 16Mb | 50MHz | 不支持 | 不支持 | SST 已被 Microchip 收購 |
M25P40 | 4Mb | 75Mhz | 不支持 | 未測試 | redocCheng |
M25P80 | 8Mb | 75Mhz | 不支持 | 未測試 | redocCheng |
M25P32 | 32Mb | 75Mhz | 不支持 | 不支持 | |
EN25Q32B | 32Mb | 104MHz | 不支持 | 未測試 | |
GD25Q16B | 16Mb | 120Mhz | 不支持 | 未測試 | TanekLiang |
GD25Q64B | 64Mb | 120Mhz | 不支持 | 雙線 | |
S25FL216K | 16Mb | 65Mhz | 不支持 | 雙線 | |
S25FL032P | 32Mb | 104Mhz | 不支持 | 未測試 | yc_911 |
S25FL164K | 64Mb | 108Mhz | 支持 | 未測試 | |
A25L080 | 8Mb | 100Mhz | 不支持 | 雙線 | |
A25LQ64 | 64Mb | 104Mhz | 支持 | 支持 | |
F25L004 | 4Mb | 100Mhz | 不支持 | 不支持 | |
PCT25VF016B | 16Mb | 80Mhz | 不支持 | 不支持 | SST 授權許可,會被識別為 SST25VF016B |
AT45DB161E | 16Mb | 85MHz | 不支持 | 不支持 | ADESTO 收購 Atmel 串列快閃記憶體產品線 |
深入使用需查閱API文檔、移植說明,詳見GitHub首頁介紹