14

Sep . 2024

群英講堂 | 淺談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另一個傳統的串行通訊模組SCB(Serial 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來執行,比較適用於需要訪問的數據都是用戶數據的場景。


應用實例可以參考:

  • QSPI F-RAM access
  • QSPI flash read and write using SFDP



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模式當中。


2. 如果需要實作Flash的寫操作,必須切換回MMIO模式,發送寫Flash的指令,再切換回XIP模式。這裡要考慮:

  • SMIF切換回MMIO模式期間,對於總線來說這個片區的程式碼和數據都是不可存取的,需要從應用上考慮禁止在這個期間訪問片外的地址段,比如透過一些RTOS的機制來管理函數的調用許可。
  • 切換到MMIO前後,需要考慮當前SMIF Cache中程式碼的有效性,需要使用下列函數來釋放目前Cache的內容。


應用實例可以參考:

  • External flash access in XiP mode

SMIF的使用與配置

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的效能與功能特性。後續還會有文章介紹下一步更深入的一些主題。


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


文章來源:英飛凌官微

半導體元件詢問單
Inquiry Form
如您對本公司產品有任何的問題(產品報價、技術諮詢、產品文件、樣品索取、合作代理…等),都可以透過諮詢表單跟我們聯絡,我們將有專人回覆。
隱私權暨個人資料保護聲明

STEP

01
!

有標示 欄位為必填,請確實填寫謝謝。

諮詢需求
市場應用

↑若無法選擇適當的產業類別,請直接在此欄輸入您的所屬產業

↑請直接在此欄輸入您的所屬市場應用

諮詢商品

↑若無法搜尋到您要諮詢的品牌,請直接在此欄輸入品牌名稱

↑若無法搜尋到您要諮詢的料號,請直接在此欄輸入料號

備註內容

下一步,聯繫資料填寫

STEP

02
!

有標示 欄位為必填,請確實填寫謝謝。

公司名稱
所屬部門
聯絡人
職稱
聯絡電話
電子信箱
聯絡地址
交貨地址
是否為貿易商
驗證碼
訂閱電子報
Subscribe to Newsletter
!

有標示 * 欄位為必填,請確實填寫謝謝。

公司名稱
所屬部門
姓名
職稱
聯絡電話
選擇電子報語系
電子信箱
驗證碼