新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > FPGA實戰(zhàn)開發(fā)技巧(10)

FPGA實戰(zhàn)開發(fā)技巧(10)

作者: 時間:2017-10-11 來源:網(wǎng)絡(luò) 收藏

5.5.3 SPI串行Flash配置模式
1.SPI串行配置介紹

串行Flash的特點是占用管腳比較少,作為系統(tǒng)的數(shù)據(jù)存貯非常合適,一般都是采用串行外設(shè)接口(SPI 總線接口)。Flash 存貯器與根本不同的特征就是可以按字節(jié)進行數(shù)據(jù)的改寫,而Flash只能先擦除一個區(qū)間,然后改寫其內(nèi)容。一般情況下,這個擦除區(qū)間叫做扇區(qū)(Sector),也有部分廠家引入了頁面(Page) 的概念。選擇Flash產(chǎn)品時,最小擦除區(qū)間是比較重要的指標。在寫入Flash時,如果寫入的數(shù)據(jù)不能正好是一個最小擦除區(qū)間的尺寸,就需要把整個區(qū)間的數(shù)據(jù)全部保存另外一個存貯空間,擦除這個空間,然后才能重新對這個區(qū)間改寫。大多數(shù)Flash工藝更容易實現(xiàn)較大的擦除區(qū)間,因此較小擦除區(qū)間的Flash 其價格一般會稍貴一些。此外,SPI是標準的4線同步串行雙向總線,提供控制器和外設(shè)之間的串行通信數(shù)據(jù)鏈路,廣泛應(yīng)用于嵌入式設(shè)備中。

本文引用地址:http://butianyuan.cn/article/201710/365610.htm

公司的新款都支持SPI接口。SPI總線通過4根信號線來完成主、從之間的通信,典型的SPI系統(tǒng)中常包含一個主設(shè)備以及至少一個從設(shè)備,在應(yīng)用場合中,芯片為主設(shè)備,SPI 串行FLASH為從設(shè)備。4個SPI接口信號的名稱和功能如表5-2所示。

表5-2 SPI接口信號列表

一個主芯片和一個從芯片的通信接口如圖5-24所示。FPGA通過SCLK控制雙方通信的時序,在SS_n為低時,F(xiàn)PGA通過MOSI 信號線將數(shù)據(jù)傳送到FLASH,在同一個時鐘周期中,F(xiàn)LASH通過SOMI將數(shù)據(jù)傳輸?shù)紽PGA芯片。無論主、從設(shè)備,數(shù)據(jù)都是在時鐘電平跳轉(zhuǎn)時輸出,并在下一個相反的電平跳轉(zhuǎn)沿,送入另外一個芯片。

圖5-24 SPI接口連接示意圖

其中SCLK信號支持不同的速率,一般常采用20MHz。通過SPI 接口中的CPOL和CPHA這兩個比特定義了4種通信時序。其中,CPOL信號定義了SCLK的空閑狀態(tài),當CPOL為低時,SCLK的低電平為空閑狀態(tài),否則其空閑狀態(tài)為高電平;CPHA定義了數(shù)據(jù)有效的上升沿位置,當其為低時,數(shù)據(jù)在第1 個電平跳轉(zhuǎn)沿有效,否則數(shù)據(jù)在第2個電平跳轉(zhuǎn)沿有效。其相應(yīng)的時序邏輯如圖5-25所示。

圖5-27 CPHA為低時SPI的總線時序示意圖

圖5-28 CPHA為高時SPI的總線時序示意圖

可以通過增加片選信號SS_n的位寬來支持多個從設(shè)備,SS_n的位寬等于從設(shè)備的個數(shù)。對于某時刻被選中的從設(shè)備和主設(shè)備而言,其讀寫時序邏輯和圖5-29一樣。

圖5-29 多個從芯片的連接電路圖

SPI串行FLASH作為一種新興的高性能非易失性存儲器,其有效讀寫次數(shù)高達百萬次,不僅引腳數(shù)量少、封裝小、容量大,可以節(jié)約電路板空間,還能夠降低功耗和噪聲。從功能上看,可以用于代碼存儲以及大容量的數(shù)據(jù)和語音存儲,對于以讀為主,僅有少量擦寫和寫入時間的應(yīng)用來說,支持分區(qū)( 多頁) 擦除和頁寫入的串行存儲是最佳方案。

2.SPI串行FLASH配置電路

SPI串行配置模式常用于已采用了SPI串行FLASH PROM的系統(tǒng),在上電時將配置數(shù)據(jù)加載到FPGA中,這一過程只需向SPI串行發(fā)送一個4字節(jié)的指令,其后串行FLASH中的數(shù)據(jù)就像PROM配置方式一樣連續(xù)加載到FPGA中。一旦配置完成,SPI中的額外存儲空間還能用于其它應(yīng)用目的。

1)SPI 配置電路

雖然SPI接口是標準的4線接口,但不同的SPI FLASH PROM芯片采用了不同的指令協(xié)議。FPGA芯片通過變量選擇信號VS[2:0] 來定義FPGA和SPI FLASH的通信方式、FPGA的讀指令以及在有效接收數(shù)據(jù)前插入的冗余比特數(shù)。常用SPI FLASH與FPGA的有效操作配置如表5-3所示,其余的VS[2:0] 配置留有它用。

表5-3 芯片所支持的SPI FLASH存儲器以及配置列表

從整體上看來,控制SPI串行閃存比較容易,只需要使用簡單的指令就能完成讀取、擦除、編程、寫使能/禁止以及其它功能。所有的指令都是通過4 個SPI 引腳串行移位輸入的。

圖5-30 支持快讀寫的串行FLASH配置電路示意圖

不同型號的FPGA芯片具有數(shù)目不同的從設(shè)備片選信號,因此所掛的串行芯片數(shù)目也就不一樣。例如:Spartan-3E系列FPGA芯片只有1位SPI從設(shè)備片選信號,因此只能外掛一片SPI串行FLASH芯片。在SPI串行FLASH配置模式下,M[2:0]=3’b001。FPGA 上電后,通過外部SPI 串行FLASH PROM完成配置,配置時鐘信號由FPGA芯片提供時鐘信號,支持兩類業(yè)界常用的FLASH。

圖5-30給出了Spartan3E系列FPGA支持0X0B快速讀寫指令的STMicro 25系列PROM的典型配置電路。其中的Flash芯片需要Flash編程器來加載配置數(shù)據(jù);單片的FPGA芯片構(gòu)成了完整的JTAG鏈,僅用來測試芯片狀態(tài),以及支持JTAG在線調(diào)試模式,與SPI配置模式?jīng)]有關(guān)系。

從中可以看出,SPI Flash容量大,適合于大規(guī)模設(shè)計場合。但由于SPI配置需要專門的Flash編程器,且操作起來比較麻煩,不適合在產(chǎn)品研發(fā)階段調(diào)試FPGA芯片,因此一般還會添加JTAG鏈專門用于在線調(diào)試。

圖5-31 Atmel SPI串行FLASH配置電路示意圖

圖5-31給出了Spartan3E系列FPGA支持SPI協(xié)議的Atmel公司“C”、“D”系列串行Flash芯片的典型配置電路。這兩個系列的FLASH芯片可以工作在很低溫度,具有短的時鐘建立時間。同樣,單片的FPGA芯片構(gòu)成了完整的JTAG鏈,僅用來測試芯片狀態(tài),以及支持JTAG在線調(diào)試模式,與SPI 配置模式?jīng)]有關(guān)系。

表5-3給出了SPI配置接口的連線說明,每個SPI Flash PROM采用的名字略有不同,SPI Flash PROM的寫保護信號和保持控制信號在FPGA配置階段是不用的。其中HOLD管腳在配置階段必須為高,為了編程Flash存儲器,寫保護信號必須為高。



關(guān)鍵詞: FPGA 賽靈思 EEPROM

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉