新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 一種基于AT25T1024 FLASH的高速SPI接口設計

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

        作者: 時間:2011-07-04 來源:網絡 收藏

        各狀態說明如下:
        SPI_IDLE:空閑狀態,如果主機配置了寄存器SPICFGSTART,狀態就跳到SPI_TX_BUFFER狀態。
        SPI_TX_BUFFER:在此狀態主要向SPI_CTRL模塊的發送緩沖區地址0填入8位讀命令及讀取數據的三字節起始地址,狀態機之間進入下一狀態。
        SPI_CTRL_REG:在這一狀態,配置SPI_CTRL模塊CTRL寄存器的值,包括一次讀操作搬運的數據位數,數據加載方式。如果配置GO位為“1”,表明可以開始進行讀傳輸,進入下一狀態SPI_CS。
        SPI_CS:配置SPI_CTRL)模塊寄存器SS位的值,以選擇傳輸數據的從設備。
        SPI_WAIT:本狀態判斷讀操作的起始地址和終止地址是否在要求的范圍內,如果處于相應的范圍,地址自動加64后,狀態機進入SPI_SS_ UA狀態。
        SPI_SS_UA:等待片內DPRAM的寫操作完成,如果DPRAM_WR_END_T信號為高,說明當前的傳輸操作已經結束,可以進入下一次的訪問,狀態機進入SPI_IDLE狀態。
        2.2 控制模塊的設計
        SPI_CTRL控制模塊可將發送緩沖區0的數據讀出來,經過并串轉換,發送到串行線SI上,并且控制從串行線SO上接收數據,存儲在接收緩沖區,并行數據轉換成串行輸出由并串轉換狀態機來控制實現,見圖3。

        本文引用地址:http://www.104case.com/article/191112.htm

        c.JPG


        各狀態含義如下:
        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。

        d.JPG



        關鍵詞: T1024 FLASH 1024 25T

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 河东区| 固阳县| 札达县| 太湖县| 绥滨县| 凤山市| 桐庐县| 织金县| 黎城县| 临颍县| 邮箱| 文安县| 龙南县| 双峰县| 榕江县| 上林县| 福泉市| 江门市| 沁阳市| 竹山县| 开原市| 民丰县| 五指山市| 宣恩县| 林口县| 台南县| 巫溪县| 天台县| 金堂县| 顺义区| 乐平市| 祁连县| 永济市| 福建省| 三江| 阳原县| 柘荣县| 湖州市| 梧州市| 十堰市| 神农架林区|