SPI 串行Flash閃存W25Q128FV 的使用(STM32F407)_基礎篇


         SPI是串行外設接口(Serial Peripheral Interface)的縮寫。是 Motorola 公司推出的一 種同步串行接口技

術,是一種高速的,全雙工,同步的通信總線。SPI接口沒有指定的流控制,沒有應答機制確認是否接收到數

據。通常有以下4條通訊線。 同I2C接口相比,SPI器件支持更高的時鍾頻率。

       時鍾(SPI CLK, SCLK)

       片選(CS)

       主機輸出、從機輸入(MOSI)

       主機輸入、從機輸出(MISO)

       MOSI和MISO是數據線。MOSI將數據從主機發送到從機,MISO將數據從從機發送到主機。

 

數據傳輸

       主從設備之間通過SPI進行通訊,主機必須發送時鍾信號,並通過使能CS信號選擇從機,而且兩者之

間時鍾SCLK要特性要匹配。SPI中的特性指的就是時鍾的極性Polarity和相位Phase。

最常見的有以下寫法:

(1) CKPOL (Clock Polarity) = CPOL = POL = Polarity = (時鍾)極性

(2) CKPHA (Clock Phase)  =  CPHA = PHA = Phase  = (時鍾)相位

   SCK、SCLK、CLK指的是時鍾脈沖, Edge指的是時鍾脈沖的邊沿,即時鍾電平變化的時刻,即上升

沿(risingedge) 或者下降沿(falling edge)。

CPOL設置 

      CPOL可以軟件設置為0或1,什么意思尼?我們知道當要有數據傳輸時才有CLK時鍾脈沖輸出,內么

沒有CLK時鍾輸出時,MCU的CLK腳是個神馬狀態尼?這個是可以軟件設定的:

    設 CPOL=0   效果是沒有CLK時鍾輸出時MCU的CLK腳為低電平

    設  CPOL=1  效果是沒有CLK時鍾輸出時MCU的CLK腳為高電平

    如下圖:

                 

  

 CPHA設置

       數據相位CPHA說的是時鍾的有效的時刻。在時鍾的神馬時刻去讀寫數據是有效的。我們知道一個脈沖

有2個邊沿和中間保持區,那么數據采樣是在第幾個邊沿(edge)是有效的就用到CPHA設置。於是乎就龜腚:

      設 CPHA=0   表示第1個邊沿采集、下個沿移出數據。

      設 CPHA=1   表示第2個邊沿采集、下個沿移出數據。

      結合上面CPOL的設置來說。

     當CPOL=0:  起始電平為低,那么第1沿個肯定是上升沿,然后保持高、接着第2個沿是下降沿、然后保持低,

                         再接着第3個沿又是上升沿,然后周而復始。

                         這樣對於CPHA=0,采集用的第1沿是上升沿、移出數據用的第2沿是下降沿,龜腚為SPI的模式0

                                       CPHA=1,采集用的第2沿是下降沿、移出數據用的第3沿是上升沿,龜腚為SPI的模式1

                        可以看出SPI的模式0比模式1早一個相位(脈沖)。

     當CPOL=1:  起始電平為高,那么第1沿個肯定是下降沿,然后保持低、接着第2個沿是上升沿、然后保持高,

                         再接着第3個沿又是下降沿,然后周而復始。

                         這樣對於CPHA=0,采集用的第1沿是下降沿、移出數據用的第2沿是上升沿,龜腚為SPI的模式2

                                       CPHA=1,采集用的第2沿是上升沿、移出數據用的第3沿是下降沿,龜腚為SPI的模式3

                        可以看出SPI的模式2比模式3早一個相位(脈沖)。

來個圖說明下:

                                       

 

     再舉個例子:

     以SPI模式0為例看下圖,數據顯示在MOSI和MISO線上。傳輸的開始和結束用綠色虛線表示,采樣

邊沿用橙色虛線表示,移位邊沿用藍色虛線表示。

 

 

       可以看出模式0  CPOL = 0,CPHA = 0:CLK空閑狀態為 低電平,數據在B處上升沿采樣,並在C處下降

沿移出。注意上圖的采樣和移出,說的是:

     主機MCU在MISO線發出數據,從機設備在MISO線采樣和移出數據

     主機MCU在MOSI線采樣和移出數據,從機設備在MOSI線發出數據

     所謂采樣、移出並不是說刪除數據,而應理解為讀取可以看到在A、B處的MOSI、MISO數據都是處於持續

穩定的一個狀態。SPI模式1、SPI模式2、SPI模式3的時序圖以此類推。

     划重點:無論設置SPI模式0、1、2、3的哪一種,主從設備必須設為同一種模式。

     對於從設備也是MCU自然可以軟件設置SPI模式,但對於像W25Q128FV這種內部沒有處理器,腳位又少的

簡單外設又怎么來設置SPI模式尼? 

     是這樣滴,W25Q128FV通過芯片內部邏輯可以自動識別SPI模式0、3,模式1、2是不支持滴。

邏輯的判斷條件是:

                            在/CS上升沿和下降沿時刻,CLK是低電平,判斷為模式0;

                            在/CS上升沿和下降沿時刻,CLK是高電平,判斷為模式3;

      這樣我們在MCU設置好SPI模式0或3后,就可以直接和W25Q128FV進行通訊了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM