基于AT25T1024 FLASH的高速SPI接口設計
3 數(shù)據(jù)搬運時間
3.1 主機寫片外FLASH的時間
本設計使用的存儲器AT25F1024緩沖數(shù)據(jù)寄存器大小2048位,寫使能需要8個串行時鐘周期,向片外FLASH傳輸2048位數(shù)據(jù)需要2080個串行時鐘周期(包括了32位寫指令的傳輸數(shù)據(jù)),這樣寫一次需要時間為2088個時鐘周期,主機將1Mbits的FLASH填滿,時間大約為2088 x50ns(串行時鐘40/2MHz)×512 (填滿1Mbits需要512次寫操作)=53.4ms。讀1Mbits的FLASH需要的時間約為2080x50x512=53.2ms。圖5所示為主機寫片外FLASH時序圖。
3.2 讀取數(shù)據(jù)并加載到片內(nèi)DPRAM的時間
通過SO管腳讀取AT25F1024的過程按下面順序執(zhí)行,當片選拉低選擇此器件之后,通過SI線發(fā)送讀指令,后面跟隨要讀的地址(三個字節(jié)地址),指令傳輸完之后,SI線上的任何數(shù)據(jù)將被忽略。指定地址的數(shù)據(jù)接著被移出到SO線上。如果僅讀取一個字節(jié),當數(shù)據(jù)讀出來之后,CS信號驅(qū)動為高。讀指令繼續(xù)時,字節(jié)地址自動增加,并且數(shù)據(jù)不斷被搬運出來。
AT25F1024緩沖數(shù)據(jù)寄存器大小2048位,在本設計中,寫使能需要32個串行時鐘周期,這樣讀取一次需要時間為2080個時鐘周期,將片內(nèi)DPRAM(DPRAM大小14940字節(jié))填滿,時間大約為2080x50ns(串行時鐘40/2MHZ)x59(填滿片內(nèi)DPRAM需要大約59次讀操作)=6.13ms。
4 結(jié)束語
本文從應用的實際需求出發(fā),在FPGA中實現(xiàn)了對外部FLASH進行讀寫的高速SPI接口,并已在某型板卡中成功應用。本文重點用有限狀態(tài)機的形式對各部分的工作原理和實現(xiàn)方法進行了描述。在FPGA資源比較緊張,限制管腳的使用數(shù)目,對速率又有比較高的需求的情況下,利用此SPI接口進行數(shù)據(jù)的加載或者固化,具有很高的應用價值。
評論