精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

淺談SPI詳解及SPI接口flash應用案例

ss ? 作者:工程師譚軍 ? 2018-10-07 11:24 ? 次閱讀
SPI Flash
首先它是個Flash,Flash是什么東西就不多說了(非易失性存儲介質),分為NOR和NAND兩種(NOR和NAND的區別本篇不做介紹)。SPI一種通信接口。那么嚴格的來說SPI Flash是一種使用SPI通信的Flash,即,可能指NOR也可能是NAND。但現在大部分情況默認下人們說的SPI Flash指的是SPI NorFlash。早期Norflash的接口是parallel的形式,即把數據線和地址線并排與IC的管腳連接。但是后來發現不同容量的Norflash不能硬件上兼容(數據線和地址線的數量不一樣),并且封裝比較大,占用了較大的PCB板位置,所以后來逐漸被SPI(串行接口)Norflash所取代。同時不同容量的SPI Norflash管腳也兼容封裝也更小。,至于現在很多人說起NOR flash直接都以SPI flash來代稱。
NorFlash根據數據傳輸的位數可以分為并行(Parallel,即地址線和數據線直接和處理器相連)NorFlash和串行(SPI,即通過SPI接口和處理器相連)NorFlash;區別主要就是:1、SPI NorFlash每次傳輸一bit位的數據,parallel連接的NorFlash每次傳輸多個bit位的數據(有x8和x16bit兩種); 2、SPI NorFlash比parallel便宜,接口簡單點,但速度慢。
NandFlash是地址數據線復用的方式,接口標準統一(x8bit和x16bit),所以不同容量再兼容性上基本沒什么問題。但是目前對產品的需求越來越小型化以及成本要求也越來越高,所以SPI NandFlash漸漸成為主流,并且采用SPI NANDFlash方案,主控也可以不需要傳統NAND控制器,只需要有SPI接口接口操作訪問,從而降低成本。另外SPI NandFlash封裝比傳統的封裝也小很多,故節省了PCB板的空間。
怎么用說白了對于Flash就是讀寫擦,也就是實現flash的驅動。先簡單了解下spi flash的物理連接。
之前介紹SPI的時候說過,SPI接口目前的使用是多種方式(具體指的是物理連線有幾種方式),Dual SPI、Qual SPI和標準的SPI接口(這種方式肯定不會出現在連接外設是SPI Flash上,這玩意沒必要全雙工),對于SPI Flash來說,主要就是Dual和Qual這兩種方式。具體項目具體看了,理論上在CLK一定的情況下, 線數越多訪問速度也越快。我們項目采用的Dual SPI方式,即兩線。
淺談SPI詳解及SPI接口flash應用案例

一、技術性能

SPI接口是Motorola 首先提出的全雙工三線同步串行外圍接口,采用主從模式(Master Slave)架構;支持多slave模式應用,一般僅支持單Master。時鐘由Master控制,在時鐘移位脈沖下,數據按位傳輸,高位在前,低位在后(MSB first);SPI接口有2根單向數據線,為全雙工通信,目前應用中的數據速率可達幾Mbps的水平。總線結構如下圖所示。

二、接口定義

SPI接口共有4根信號線,分別是:設備選擇線、時鐘線、串行輸出數據線、串行輸入數據線。

(1)MOSI:主器件數據輸出,從器件數據輸入

(2)MISO:主器件數據輸入,從器件數據輸出

(3)SCLK :時鐘信號,由主器件產生

(4)/SS:從器件使能信號,由主器件控制

三、內部結構

四、 時鐘極性和時鐘相位

在SPI操作中,最重要的兩項設置就是時鐘極性(CPOL或UCCKPL)和時鐘相位(CPHA或UCCKPH)。時鐘極性設置時鐘空閑時的電平,時鐘相位設置讀取數據和發送數據的時鐘沿。

主機和從機的發送數據是同時完成的,兩者的接收數據也是同時完成的。所以為了保證主從機正確通信,應使得它們的SPI具有相同的時鐘極性和時鐘相位。

SPI接口時鐘配置心得:在主設備這邊配置SPI接口時鐘的時候一定要弄清楚從設備的時鐘要求,因為主設備這邊的時鐘極性和相位都是以從設備為基準的。因此在時鐘極性的配置上一定要搞清楚從設備是在時鐘的上升沿還是下降沿接收數據,是在時鐘的下降沿還是上升沿輸出數據。

五、傳輸時序

SPI接口在內部硬件實際上是兩個簡單的移位寄存器,傳輸的數據為8位,在主器件產生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在后。如下圖所示,在SCLK的下降沿上數據改變,上升沿一位數據被存入移位寄存器。

六、數據傳輸

在一個SPI時鐘周期內,會完成如下操作:

1) 主機通過MOSI線發送1位數據,從機通過該線讀取這1位數據;

2) 從機通過MISO線發送1位數據,主機通過該線讀取這1位數據。

這是通過移位寄存器來實現的。如下圖所示,主機和從機各有一個移位寄存器,且二者連接成環。隨著時鐘脈沖,數據按照從高位到低位的方式依次移出主機寄存器和從機寄存器,并且依次移入從機寄存器和主機寄存器。當寄存器中的內容全部移出時,相當于完成了兩個寄存器內容的交換。

七、優缺點

SPI接口具有如下優點:

1) 支持全雙工操作;

2) 操作簡單;

3) 數據傳輸速率較高。

同時,它也具有如下缺點:

1) 需要占用主機較多的口線(每個從機都需要一根片選線);

2) 只支持單個主機。

3) 沒有指定的流控制,沒有應答機制確認是否接收到數據。

二、典型案例:

舉的是一個已穩定使用的spi接口flash設備的例子,spi控制器是一個CPU上的外圍SOC,下圖是該spi控制器的寄存器手冊:

寄存器300-307是用于主機發送數據,308-30f為主機接收數據,

寄存器310用于設置spi時鐘頻率(用于設置分頻),

寄存器311用于指定發送的長度,

寄存器312為控制寄存器,包括中斷使能(實際使用中未使能)、傳輸寄存器序(MSB/LSB,一般選先傳輸高位寄存器的內容)、上升沿還是下降沿更新數據(一般選下降沿)、是否自動片選(一般不使用自動片選,而是由寄存器313指定)等,

寄存器313為片選寄存器,指定片選哪一個spi從設備,

寄存器314為閑忙寄存器,用于查詢是否忙,以及控制啟動傳輸。

如下的代碼片段,指示了怎么操作spi控制器寄存器:

SPI_ADDR為spi控制器寄存器基址,代碼中由變量p_spi對應,并設置相關寄存器的值,包括控制寄存器312、時鐘頻率寄存器310、發送長度寄存器311(值為0x10即16,意為16bit即兩字節,發送內容為0x0500確實為兩字節)、發送內容寄存器300、片選寄存器313、最后設置啟動發送(閑忙寄存器314),全部完成后,等待閑忙寄存器314指示狀態為閑時,說明已收到回復,進而讀取接收寄存器308獲取結果。

事實上可以發現,在有spi控制器時,也就是說無需用gpio模擬spi時序時,僅需操作spi控制器寄存器,屏蔽了很多spi物理協議細節。


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

    關注

    10

    文章

    1598

    瀏覽量

    147340
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1669

    瀏覽量

    90745
收藏 人收藏

    評論

    相關推薦

    SPI接口原理詳解

    SPI:Serial Peripheral Interface,是串行外設接口。
    發表于 09-30 15:02 ?2374次閱讀

    SPI方式FPGA配置和SPI flash編程

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

    基于紅牛開發板的spi flash讀寫圖片

    SPI:serial peripheral interface串行外圍設備接口是一種常見的時鐘同步串行通信接口。外置flash接口分有總線
    發表于 09-01 17:16 ?16次下載
    基于紅牛開發板的<b class='flag-5'>spi</b> <b class='flag-5'>flash</b>讀寫圖片

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

    SPI一種通信接口。那么嚴格的來說SPI Flash是一種使用SPI通信的Flash,即,可能指
    的頭像 發表于 09-18 14:38 ?10.3w次閱讀
    <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,即,可能指
    的頭像 發表于 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 首先它是個Flash,Flash是什么東西就不多說了(非易失性存儲介質),分為NOR和NAND兩種(NOR和NAND的區別本篇不做介紹)。
    的頭像 發表于 10-07 11:29 ?7387次閱讀

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

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

    STM32F10x_SPI (硬件接口 + 軟件模擬)讀寫Flash(25Q16)

    STM32F10x_SPI(硬件接口 + 軟件模擬)讀寫Flash(25Q16)
    的頭像 發表于 03-25 13:59 ?1w次閱讀
    STM32F10x_<b class='flag-5'>SPI</b> (硬件<b class='flag-5'>接口</b> + 軟件模擬)讀寫<b class='flag-5'>Flash</b>(25Q16)

    STM32_ SPI讀寫Flash

    STM32_SPI讀寫Flash
    的頭像 發表于 04-08 10:26 ?5321次閱讀
    STM32_ <b class='flag-5'>SPI</b>讀寫<b class='flag-5'>Flash</b>

    SPI協議詳解

    處理器上定義的。SPI接口主要應用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器...
    發表于 11-29 12:06 ?16次下載
    <b class='flag-5'>SPI</b>協議<b class='flag-5'>詳解</b>

    SPI Nand Flash簡介

    1.SPI Nand Flash簡介SPI Nand Flash顧名思義就是串行接口的Nand Flas
    發表于 12-02 10:51 ?34次下載
    <b class='flag-5'>SPI</b> Nand <b class='flag-5'>Flash</b>簡介

    [SPI].SPI協議詳解

    接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。
    發表于 12-22 19:19 ?42次下載
    [<b class='flag-5'>SPI</b>].<b class='flag-5'>SPI</b>協議<b class='flag-5'>詳解</b>

    STM32學習筆記--SPI

    FLASH1.SPI.C2.SPI_Flash_Read 函數3.SPI_Flash_Write 函數4.MAIN.C參考資料:一、SPI簡介 ? SPI 是 Serial Perip
    發表于 12-22 19:24 ?11次下載
    STM32學習筆記--<b class='flag-5'>SPI</b>

    SPI接口說明及原理

    最基本的SPI通信就是一主一從,比如:一個STM32作為主機,一個W25Q16(SPI Flash)作為從機。還有兩個MCU之間進行SPI通信等。
    發表于 08-13 09:53 ?2731次閱讀

    一文了解SPI NAND FlashSPI NOR Flash的區別

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