群英講堂 | 淺談PSoC™ 6 SMIF的使用(一)

PSoC™ 6SMIFSerial Memory Interface)外設接口是PSoC系列單片機中專門用於外部串行存儲設備的功能單元。常見的應用是訪問支持SPI/DSPI/QSPI/OSPI 接口的Flash, FRAM, PSRAM等串行接口的存儲晶片。

PSoC 6的SMIF最大支持8-bit的數據帶寬(OSPI)和4個ChipSelect片選信號,CLK最高支持80MHz頻率SDR,理論最大帶寬80MB/s,其功能框圖如下:


由於SMIF是針對外部存儲設備的專用外設,接口功能上SMIF與PSoC另一個傳統的串行通信模塊SCBSerial Communications Block)中的SPI功能對比,有著以下幾個主要差異:

  1. SMIF僅支持SPI Mode 0: clock polarity(CPOL)和 clock phase(CPHA)皆為‘0’。
  2. SMIF支持Single/Dual/Quad/Octal SPI 協議,SCB-SPI 僅支持Single SPI。
  3. SMIF最大時鐘80MHz,SCB-SPI 最大時鐘25MHz。
  4. SMIF支持XIP模式,內置4KB Cache。
  5. SMIF支持on-the-fly 128bits AES自動加解密。
  6. SMIF獨立的時鐘源配置,普通的外設使用統一的HF[0]時鐘源,再用外設分頻器分頻到各個外設時鐘。SMIF使用獨立的HF[2]時鐘源,允許使用獨立的時鐘源配置。


SMIF
的MMIO模式和XIP模式

MMIO模式 

MMIO模式又稱命令模式(Command Mode)是CPU 通過訪問SMIF Block的寄存器控制SMIF工作的方式。這種模式下SMIF就是個外設控制來訪問外部的存儲硬體,存儲的內容是以數據的方式來被CPU讀寫。這種模式下SMIF 內部的Cache不會被使用,只有TX/TX_CMD/RX FIFO會被應用到SMIF通信過程當中。

這種模式下讀寫操作都是按用戶應用需求來主動執行,或者發送相關驅動API來執行,比較適用於需要訪問的數據都是用戶數據的場景。

應用實例可以參考:

XIP模式(eXecute In Place

 XIP模式也被稱為地址映射模式,外部的存儲晶片的內容可以按地址映射到總線可訪問的地址區域當中,映射的配置使能之後,CPU可以通過總線的方式直接訪問對應地址的內容。這種方式下,XIP映射到的地址段可以配置為Code 區域和Data區域,所以CPU可以執行外部的存儲空間中的代碼。

目前XIP模式下,PSoC 6提供給外部存儲空間的尋址區域是0x1800 0000 – 0x 1FFF FFFF的尋址範圍,共128MB的尋址空間。同時由於支持了總線操作,SMIF 內的4KB Cache可以被使用到這個模式當中,提高CPU運行片外指令的效率。


值得注意的是,雖然XIP模式可以讓CPU非常容易的訪問到外部的Memory,不需要像MMIO模式一樣一步步地設命令字,設地址,設讀寫長度。減少用戶側的應用代碼的一些工作,但同時也會引入需要注意的一些操作: 

  1. 由於參與了總線的訪問,對於Flash的寫操作,由於一般會有ms級別的延時時間,總線無法等待這麼長的時間,所以對於XIP模式,無法實現Flash的寫操作。但對於RAM特質的存儲介質,如FRAM,RRAM,PSRAM等,寫操作也可以用於XIP模式當中。 
  1. 如果需要實現Flash的寫操作,必須切換回MMIO模式,發送寫Flash的命令,再切換回XIP模式。這裡需要考慮: 
  • SMIF切換回MMIO模式期間,對於總線來說這個片區的代碼和數據都是不可訪問的,需要從應用上考慮禁止在這個期間訪問片外的地址段,比如通過一些RTOS的機制來管理函數的調用許可。 
  • 切換到MMIO前後,需要考慮當前SMIF Cache中代碼的有效性,需要使用以下函數來釋放掉當前Cache的內容。

應用實例可以參考:

MIF的使用與配置

SMIF作為一個專用於片外存儲設備的接口外設,PSoC的開發環境ModusToolBox集成了友好易用的配置工具QSPI Configurator (目前更新到4.30版本),加快用戶去創建需要訪問外部SPI 存儲設備的實現。通過配置工具選擇需要使用的Memory的Part Number,然後會生成對應的命令字的列表配置,配合PDL和Middleware的驅動代碼,可以快速的實現。

下圖是QSPI Configurator的界面,可以通過選擇Memory Part Number的下拉列表,快速獲取預配置好的一些模板。然後選擇是否支持XIP(Memory-Mapped),Data bit(1/2/4/8bit), Data Select對應第幾個Slave Slot,映射地址等等信息,保存後就可以生成對應的代碼結構體。


如果Memory Part Numbers列表當中沒有當前需要使用的新料號,QSPI Configurator工具支持自己新建模板,然後用戶可以自行導入和管理自己的Memory的配置。

 總結

 本篇主要簡述了PSoC 6 SMIF接口的基本功能、基礎的參數特性,幫助用戶了解PSoC 6 SMIF的性能和功能特點。後續還會有文章介紹下一步更深入的一些話題。

點擊下方鏈接,獲取更多信息

掃描二維碼, 關注英飛凌官微尋找更多應用或產品信息

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

英飞凌官微: http://mp.weixin.qq.com/s/bjEQGhqQix7fEm_KoUbS0g

評論