新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AT25T1024 FLASH的高速SPI接口設計

        基于AT25T1024 FLASH的高速SPI接口設計

        作者: 時間:2011-08-03 來源:網絡 收藏
        2.2 控制模塊的設計

          SPI_CTRL控制模塊可將發送緩沖區0的數據讀出來,經過并串轉換,發送到串行線SI上,并且控制從串行線SO上接收數據,存儲在接收緩沖區,并行數據轉換成串行輸出由并串轉換狀態機來控制實現,見圖3。

          

        基于AT25T1024 FLASH的高速SPI接口設計

          各狀態含義如下:

          TX_IDLE:等待主機設置控制寄存器的GO位,如果置“1”,表示準備開始傳輸,跳入下一狀態TX_ADDR。

          TX_ADDR:當傳輸長度小于等于32位時,跳入下一狀態PARALELL_DATA。

          PARALELL_DATA:如果GO為1,在此狀態TIP將被置“1”,說明傳輸開始,傳輸的計數器開始計數。

          SERIAL_DATA:并行數據轉換為串行數據發送出去,當CNT_SHIFT計數器減到0時,傳輸結束,狀態跳入TX_IDLE。

          2.3 串行移位時鐘設計

          SPI串行線上的主從設備必須根據具體要求設置匹配的傳輸時序模式,時序只有匹配,數據傳輸才能正常進行。如果設置的不匹配,可能導致數據接收方和發送方在同一時鐘沿作用,而使數據傳輸失敗。本設計中的時鐘僅支持SP0模式,即串行時鐘處于空閑電平時,空閑狀態時鐘的極性電平為低,在時鐘的前沿采樣數據,時鐘后沿串行線上數據變化。

          在采樣時刻,線上數據必須已經穩定可靠,因此數據發送端設備應提前將數據移出到數據線上,本SPI接口電路設計在同一串行移位時鐘周期中的前一個時鐘沿(即相反時鐘變化方向)將數據移出,移位時鐘設計為系統時鐘的兩分頻,為40/2MHz。

          2.4 SPI相關寄存器描述

          在本設計中,共有四種32位寄存器,包括控制寄存器,從設備選擇寄存器,加載配置數據起始寄存器以及加載配置數據完成寄存器。

          控制寄存器用來控制配置信息加載方式,即:片外加載方式或主機直接加載方式。當選擇片外加載方式時,控制寄存器還用來控制一次數據傳輸的長度。CTRL寄存器的具體描述見表1。

          

        基于AT25T1024 FLASH的高速SPI接口設計

          從設備選擇寄存器的SS位置“1”時,表示選中從設備。置“0”表示不選擇任何從設備,本設計僅支持一個從設備。

          加載配置數據起始寄存器的SPICFGSTART位置“1”時,配置數據自動從中讀取并寫入到DPRAM中,置“0”不進行讀FLASH操作。

          加載配置數據完成寄存器為只讀寄存器,用來判斷數據是否已經加載完成。

          2.5 SPI緩沖區設計

          圖4所示為主機可直接訪問的SPI接口內部DPRAM發送和接收數據緩沖區。

          

        基于AT25T1024 FLASH的高速SPI接口設計

          SPI發送數據緩沖區深度65,數據位寬32位,其中地址22’h 3e0600存放訪問AT25F1024存儲器的指令,當進行寫操作時,從數據發送緩沖區最低位地址22’h3e0604開始,將數據搬運出來,串行發送到AT25F1024存儲器。

          SPI接收數據緩沖區深度65,數據位寬32位,其中地址22’h3e0400緩存讀取的AT25F1024配置和狀態信息,偏移地址22’h3e0404~22’ h3e0500緩存指定FLASH讀取的總線配置數據數據,最大緩存2048位。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 徐闻县| 大石桥市| 平遥县| 太谷县| 光山县| 略阳县| 乐都县| 积石山| 西昌市| 广河县| 景洪市| 永安市| 收藏| 大冶市| 商水县| 山丹县| 惠安县| 肥乡县| 茶陵县| 阿拉善左旗| 建湖县| 周口市| 邯郸市| 阿巴嘎旗| 昌宁县| 买车| 灌云县| 德清县| 广昌县| 临安市| 菏泽市| 衡山县| 新乡县| 黄浦区| 大庆市| 阜新| 汉阴县| 日土县| 新龙县| 胶州市| 丰原市|