那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

spi nor flash應用匯總 淺談spi flash應用原理

ss ? 作者:工程師譚軍 ? 2018-09-18 15:19 ? 次閱讀

本文主要是關于spi nor flash的相關介紹,并著重對spi nor flash應用進行了詳盡的闡述。

spI flash

SPI一種通信接口。那么嚴格的來說SPI Flash是一種使用SPI通信的Flash,即,可能指NOR也可能是NAND。但現(xiàn)在大部分情況默認下人們說的SPI Flash指的是SPI NorFlash。早期Norflash的接口是parallel的形式,即把數(shù)據(jù)線和地址線并排與IC的管腳連接。但是后來發(fā)現(xiàn)不同容量的Norflash不能硬件上兼容(數(shù)據(jù)線和地址線的數(shù)量不一樣),并且封裝比較大,占用了較大的PCB板位置,所以后來逐漸被SPI(串行接口)Norflash所取代。同時不同容量的SPI Norflash管腳也兼容封裝也更小。,至于現(xiàn)在很多人說起NOR flash直接都以SPI flash來代稱。

NorFlash根據(jù)數(shù)據(jù)傳輸?shù)奈粩?shù)可以分為并行(Parallel,即地址線和數(shù)據(jù)線直接和處理器相連)NorFlash和串行(SPI,即通過SPI接口和處理器相連)NorFlash;區(qū)別主要就是:1、SPI NorFlash每次傳輸一bit位的數(shù)據(jù),parallel連接的NorFlash每次傳輸多個bit位的數(shù)據(jù)(有x8和x16bit兩種); 2、SPI NorFlash比parallel便宜,接口簡單點,但速度慢。

NandFlash是地址數(shù)據(jù)線復用的方式,接口標準統(tǒng)一(x8bit和x16bit),所以不同容量再兼容性上基本沒什么問題。但是目前對產(chǎn)品的需求越來越小型化以及成本要求也越來越高,所以SPI NandFlash漸漸成為主流,并且采用SPI NANDFlash方案,主控也可以不需要傳統(tǒng)NAND控制器,只需要有SPI接口接口操作訪問,從而降低成本。另外SPI NandFlash封裝比傳統(tǒng)的封裝也小很多,故節(jié)省了PCB板的空間。

今天主要說下SPI NorFlash。

二、有毛用啊

節(jié)省成本,減小封裝,存儲數(shù)據(jù)。

三、怎么用啊

怎么用說白了對于Flash就是讀寫擦,也就是實現(xiàn)flash的驅動。先簡單了解下spi flash的物理連接。

之前介紹SPI的時候說過,SPI接口目前的使用是多種方式(具體指的是物理連線有幾種方式),Dual SPI、Qual SPI和標準的SPI接口(這種方式肯定不會出現(xiàn)在連接外設是SPI Flash上,這玩意沒必要全雙工),對于SPI Flash來說,主要就是Dual和Qual這兩種方式。具體項目具體看了,理論上在CLK一定的情況下, 線數(shù)越多訪問速度也越快。我們項目采用的Dual SPI方式,即兩線。

當前涉及到具體的SPI flash芯片類型了,所以必須也得參考flash的datasheet手冊了。我們以W25Q64JVSSIQ為例。

這是基本信息的介紹,然后看下具體IO的定義

這個是WSON封裝的管腳定義,其他詳細信息參考datasheet。

硬件驅動的話也是和芯片強相關的,因為讀寫擦都是和硬件時序相關的,所以必須得參考硬件datasheet手冊。

上面的datasheet都詳細說明了每個操作的時序周期發(fā)送的命令。上圖中,第一列是指令名稱,第二列是指令編碼,第三列及以后的指令功能與對應的指令有關。帶括號的字節(jié)內(nèi)容為flash向主機返回的字節(jié)數(shù)據(jù),不帶括號則是主機向flash發(fā)送字節(jié)數(shù)據(jù)。

A0~A23:flash內(nèi)部存儲器地址;MID0~MID7:制造商ID;ID0~ID15:flash芯片ID;D0~D7:flash內(nèi)部存儲的數(shù)據(jù);dummy:指任意數(shù)據(jù)。

比如獲取deviceID:

表示該命令由這四個字節(jié)組成,其中dummy意為任意編碼,即這三個字節(jié)必須得發(fā)數(shù)據(jù),但這些數(shù)據(jù)是任意的,上圖命令列表中帶括號的字節(jié)數(shù)據(jù)表示由FLASH返回給主機的響應,可以看到deviceID命令的第5個字節(jié)為從機返回的響應,(ID7~ID0),即返回設備的ID號。

代碼如下:

uint32_t Get_Flash_DeviceID(void)

{

uint8_t deviceID= 0x00;

spiflashReset();

spi_write( 0xAB);

spi_write( Dummy);

spi_write( Dummy);

spi_write( Dummy);

deviceID = spi_write( Dummy);

spi_write( Dummy);

spiflashSet() ;

return deviceID;

}

SPI FLASH與NOR FLASH的區(qū)別

Nor Flash包含SPI Flash。SPI Flash是Nor Flash的一部分。

1、NorFLASH使用方便,易于連接,可以在芯片上直接運行代碼,穩(wěn)定性出色,傳輸速率高,在小容量時有很高的性價比,這使其很適合應于嵌入式系統(tǒng)中作為 FLASH ROM

2、在通信方式上Nor Flash 分為兩種類型:CFI Flash和 SPI Flash。SPI Flash, serial peripheral interface串行外圍設備接口,是一種常見的時鐘同步串行通信接口。

spi nor flash應用匯總

NOR flash和Nand flash相比

NOR缺點: 價格貴, 容量小, 擦除塊大, 擦除速度慢, NOR flash擦出壽命為100,000次, 遠小于NAND flash的一百萬次。 NOR可以單字節(jié)編程, 也就是說一次只更新一個byte

NOR優(yōu)點: 讀速度快, 穩(wěn)定不會出現(xiàn)位反轉, 不需要EDC和ECC, 不需要壞塊管理

NOR flash通常一次可以寫一個字節(jié), NAND flash內(nèi)存必須一次寫多個字節(jié)(通常為512字節(jié))

NOR flash的優(yōu)缺點決定了它的應用場: 適合存儲關鍵很少修改的數(shù)據(jù), 比如bootloader kernel等代碼;不適合尺寸較大經(jīng)常修改的數(shù)據(jù),比如用戶地圖, 庫文件等

3 wire SPI

正常的SPI使用四根線: clock, cs, MOSI, MISO. 可以把MOSI MISO合并為一根線(slave out/slave in SISO)上實現(xiàn)半雙工。 主要用來實現(xiàn)低速傳輸

DUAL SPI

對于SPI flash來說, 全雙工并不常用, 因此擴展這兩根數(shù)據(jù)線, 使得他們支持半雙工傳輸, 加倍數(shù)據(jù)傳輸速度。 可以發(fā)送一個命令字節(jié)請求進入dual mode, 然后MOSI就變成了SIO0(Serial I/O 0), MISO變成了SIO1.

這種模式主要是針對SPI ROM, SPI flash設備, 需要進行大數(shù)據(jù)量傳輸

QUAD SPI

quad SPI又增加了兩根I/O線(SIO2 SIO3), 可以在一個時鐘周期傳送四個data bits. 通過使用特殊的命令, 使能quad mode.

Double data rate

除了使用多根I/O線, 某些設備還通過DDR技術增加傳輸速率

SPI NOR flash文件系統(tǒng)支持

NOR flash和普通機械硬盤, SSD, EMMC的最大區(qū)別就是NOR flash在寫之前,需要確保寫的位置是已經(jīng)擦除過的, 因此并不適合使用傳統(tǒng)的Ext2/3/4, FAT/NTFS等文件系統(tǒng)

甚至YAFFS類的文件系統(tǒng)也不適合NOR flash

JFFS和JFFS2

這兩個文件系統(tǒng)都可以支持NOR flash, 并且提供了垃圾回收, 壞塊管理, 磨損平衡。 二者都存在文件系統(tǒng)mount速度較慢的問題, 不適合大容量flash

YAFFS/YAFFS2

已經(jīng)被踢出主線內(nèi)核了, 基本廢棄了。

Cramfs/Squashfs

常規(guī)的只讀文件系統(tǒng), 都支持數(shù)據(jù)壓縮, 實現(xiàn)簡單, 速度快, 如果NOR flash存放的文件系統(tǒng)是只讀的, 盡量使用他們。 這些常規(guī)文件系統(tǒng)工作在傳統(tǒng)塊設備上, 需要內(nèi)核支持

CONFIG_MTD_BLKDEVS=y

CONFIG_MTD_BLOCK=y

Ext2/3/4 FAT/NTFS

支持讀寫的塊設備文件系統(tǒng)不適合工作用在NOR flash上, 因為NOR flash寫操作會導致擦除操作, 速度慢, 影響壽命。

MTD模擬block device

打開CONFIG_MTD_BLOCK和CONFIG_MTD_BLKDEVS

啟動后/dev/下會增加幾個block設備

root@devm:~# ls /dev/mtdmtd0 mtd1 mtd2 mtd3 mtdblock0 mtdblock2 mtd0ro mtd1ro mtd2ro mtd3ro mtdblock1 mtdblock3

使用mkfs.ext4, 格式化mtdblock,

root@evm:~# mkfs.ext4 /dev/mtdblock3mke2fs 1.42.9 (28-Dec-2013)Filesystem label=OS type: LinuxBlock size=1024 (log=0)Fragment size=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks1856 inodes, 7424 blocks371 blocks (5.00%) reserved for the super userFirst data block=1Maximum filesystem blocks=76021761 block group8192 blocks per group, 8192 fragments per group1856 inodes per group Allocating group tables: done Writing inode tables: done Creating journal (1024 blocks): doneWriting superblocks and filesystem accounting information: done

使用dd命令, 寫入cramfs鏡像

首先, 在Host創(chuàng)建cramefs鏡像

mkfs.cramfs rootfs/ cramfs.img

dd命令導入鏡像

root@evm:~# dd if=/dev/mtdblock3 of=cramfs.img 14848+0 records in14848+0 records outroot@evm:~# ls -l-rw-r--r-- 1 root root 7602176 Jan 1 00:24 kaka.imgroot@evm:~#

NOR flash使用JFFS2

NOR flash上運行JFFS2, JFFS2通過MTD接口操作NOR flash

創(chuàng)建JFFS2鏡像

mkfs.jffs2工具在mtd-utils工具包中

sudo apt-get install mtd-utils mkfs.jffs2 -r rootfs/ -o jffs2.img --pad=0x800000

--pad=0x800000 如果不加這個參數(shù), 生成的鏡像尺寸(文件系統(tǒng)大小)是按照rootfs/小內(nèi)容大小決定的;通過這個參數(shù)我們可以強制指定文件系統(tǒng)大小

燒寫JFFS2鏡像

有兩種燒寫方法:

1. 在uboot中把jffs2.img下載DRAM中, 然后使用sf write命令把DRAM內(nèi)容燒寫到nor flash上

2. 進入系統(tǒng)后使用 dd if=jffs2.img of=/dev/mtdblock4

二者性質上實際相同, 都是直接把鏡像燒到NOR flash某段內(nèi)存中

掛載JFFS2文件系統(tǒng)

首先kernel要支持jffs2文件系統(tǒng), 執(zhí)行如下命令

mount -t jffs2 /dev/mtdblock4 /mnt

文件系統(tǒng)掛載速度

由于JFFS2在掛載過程中需要執(zhí)行掃描, 構造文件系統(tǒng), 因此在同樣大小的mtdblock上, JFFS2掛載時間遠大于EXT4文件系統(tǒng)

文件系統(tǒng)尺寸為0x740000(7.25MB)

Ext4掛載時間 root@evm:~# time mount -t ext4 /dev/mtdblock3 /mnt real 0m 0.06suser 0m 0.00ssys 0m 0.00s

JFFS2掛載時間 root@evm:~# time mount -t jffs2 /dev/mtdblock3 /mntreal 0m 0.34suser 0m 0.00ssys 0m 0.33s

結語

關于spi nor flash的相關介紹就到這了,如有不足之處歡迎指正。

相關閱讀推薦:串行SPI Nor Flash啟動流程

相關閱讀推薦:SPI FLASH與NOR FLASH的區(qū)別

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FlaSh
    +關注

    關注

    10

    文章

    1642

    瀏覽量

    148672
  • 存儲器
    +關注

    關注

    38

    文章

    7528

    瀏覽量

    164342
收藏 人收藏

    評論

    相關推薦

    SPI NAND FlashSPI NOR Flash的區(qū)別在哪里?

    Flash按照內(nèi)部存儲結構的不同,可以分為哪幾種?Nor Flash 和Nand Flash有什么區(qū)別?SPI NAND
    發(fā)表于 06-18 08:46

    SPI方式FPGA配置和SPI flash編程

    SPI方式FPGA配置和SPI flash編程
    發(fā)表于 05-16 18:01 ?165次下載
    <b class='flag-5'>SPI</b>方式FPGA配置和<b class='flag-5'>SPI</b> <b class='flag-5'>flash</b>編程

    SPI FLASHNOR FLASH的區(qū)別 詳解SPI FLASHNOR FLASH的不一樣

    NOR的特點是芯片內(nèi)執(zhí)行(XIP, eXecute In Place),這樣應用程序可以直接在flash閃存內(nèi)運行,不必再把代碼讀到系統(tǒng)RAM中。
    發(fā)表于 09-18 10:59 ?5.5w次閱讀

    SPI flash是什么,關于SPI FLASH的讀寫問題

    SPI一種通信接口。那么嚴格的來說SPI Flash是一種使用SPI通信的Flash,即,可能指NOR
    的頭像 發(fā)表于 09-18 14:38 ?10.4w次閱讀
    <b class='flag-5'>SPI</b> <b class='flag-5'>flash</b>是什么,關于<b class='flag-5'>SPI</b> <b class='flag-5'>FLASH</b>的讀寫問題

    SPI flash如何運行程序,SPI flash有哪些應用

    SPI一種通信接口。那么嚴格的來說SPI Flash是一種使用SPI通信的Flash,即,可能指NOR
    的頭像 發(fā)表于 09-19 10:54 ?1.9w次閱讀
    <b class='flag-5'>SPI</b> <b class='flag-5'>flash</b>如何運行程序,<b class='flag-5'>SPI</b> <b class='flag-5'>flash</b>有哪些應用

    淺談STM32之SPI_FLASH之應用實例

    SPI Flash 首先它是個FlashFlash是什么東西就不多說了(非易失性存儲介質),分為NOR和NAND兩種(
    的頭像 發(fā)表于 10-07 11:29 ?7965次閱讀

    淺析FLASH讀寫----SPI原理及應用

    SPI一種通信接口。那么嚴格的來說SPI Flash是一種使用SPI通信的Flash,即,可能指NOR
    的頭像 發(fā)表于 10-07 11:32 ?2.4w次閱讀
    淺析<b class='flag-5'>FLASH</b>讀寫----<b class='flag-5'>SPI</b>原理及應用

    SPI Nand Flash簡介

    1.SPI Nand Flash簡介SPI Nand Flash顧名思義就是串行接口的Nand Flash,它和普通并行的Nand
    發(fā)表于 12-02 10:51 ?34次下載
    <b class='flag-5'>SPI</b> Nand <b class='flag-5'>Flash</b>簡介

    NOR falsh、NAND flash、SDEMMC、QSPI flashSPI flash

    1、NOR flashNOR flash數(shù)據(jù)線和地址線分開,可以實現(xiàn)ram一樣的隨機尋址功能,可以讀取任何一個字節(jié)。但是擦除仍要按塊來擦。2、NAND flashNAND flash數(shù)據(jù)線和地址線
    發(fā)表于 12-02 12:21 ?30次下載
    <b class='flag-5'>NOR</b> falsh、NAND <b class='flag-5'>flash</b>、SDEMMC、QSPI <b class='flag-5'>flash</b>、<b class='flag-5'>SPI</b> <b class='flag-5'>flash</b>

    Gowin SPI Nor Flash Interface IP用戶指南

    電子發(fā)燒友網(wǎng)站提供《Gowin SPI Nor Flash Interface IP用戶指南.pdf》資料免費下載
    發(fā)表于 09-16 14:23 ?3次下載
    Gowin <b class='flag-5'>SPI</b> <b class='flag-5'>Nor</b> <b class='flag-5'>Flash</b> Interface IP用戶指南

    AN017 基于Jlink燒錄文件到SPI Nor Flash的方法

    AN017 基于Jlink燒錄文件到SPI Nor Flash的方法
    發(fā)表于 02-27 18:21 ?0次下載
    AN017 基于Jlink燒錄文件到<b class='flag-5'>SPI</b> <b class='flag-5'>Nor</b> <b class='flag-5'>Flash</b>的方法

    一文了解SPI NAND FlashSPI NOR Flash的區(qū)別

    的并行口NOR Flash不能硬件上兼容(數(shù)據(jù)線和地址線的數(shù)量不一樣),并且封裝大,占用PCB板的位置較大,逐漸被SPI(串行接口)的 NOR Fl
    的頭像 發(fā)表于 03-06 09:49 ?7094次閱讀

    SPI NOR Flash在車載市場的應用

    SPI NOR Flash車規(guī)等級125℃,可以很好地滿足車載市場需求。產(chǎn)品主要應用于車載攝像頭、液晶顯示、娛樂系統(tǒng)等外圍部件,并逐漸延伸到新能源車三電系統(tǒng)、車身控制、底盤傳動及微電機、智能座艙等核心部件。
    的頭像 發(fā)表于 06-20 17:03 ?470次閱讀

    TWS藍牙耳機SPI NOR Flash

    藍牙耳機大量出貨的推動下,NOR?Flash帶來了巨大的商機。 ? ? ??TWS藍牙耳機必須配備NOR?Flash,因為它有更多的功能。為了存儲大量的固件和代碼程序,需要外擴一個
    的頭像 發(fā)表于 07-31 14:33 ?908次閱讀

    物聯(lián)網(wǎng)行業(yè)存儲方案詳解_SPI NOR Flash

    物聯(lián)網(wǎng)系統(tǒng)中為什么要使用SPI NOR FLASH 物聯(lián)網(wǎng)系統(tǒng)中使用SPI NOR FLASH
    的頭像 發(fā)表于 09-24 14:39 ?405次閱讀
    物聯(lián)網(wǎng)行業(yè)存儲方案詳解_<b class='flag-5'>SPI</b> <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>
    互联网百家乐官网的玩法技巧和规则 | 百家乐官网深圳广告| 百家乐长玩必输| 悍马百家乐的玩法技巧和规则| 大发888网页版登录| 真钱百家乐官网注册送| 可信百家乐官网的玩法技巧和规则| 玩百家乐凤凰娱乐城| 大发888官网 888| 百家乐官网游戏打水方法| 百家乐官网不锈钢| 百家乐麻将牌| 正定县| 基础百家乐官网的玩法技巧和规则 | 百家乐官网最好打法与投注| 富易堂百家乐娱乐城| 大发888客服咨询电话| 百家乐官网翻天粤qvod| 百家乐注册开户送彩金| 1368棋牌官网| 百家乐官网高手心得| 百家乐算牌方| 抚宁县| 百家乐平台有什么优势| 六合彩曾道人| 大丰收百家乐官网的玩法技巧和规则 | 澳门百家乐官网然后赢| 闲和庄百家乐娱乐| 黔西县| 澳门百家乐鸿福厅| 明升88 | 百家乐官网桌子黑色| 大发888支付宝代充| 百家乐官网出庄的概率| 新乐园百家乐娱乐城| 云博备用网址| 百家乐官网技巧| 澳门博彩业| 百家乐官网缩水工具| 妈祖棋牌迷| 网上百家乐官网乐代理|