Go List
來源: 英飛凌官方微信
本文作者:梁家威
英飛凌消費、計算與通訊業務大中華區 首席工程師
PSoC™ 6 的 SMIF(Serial 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 功能對比,有著以下幾個主要差異:
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 模式一樣一步步地設命令字,設位址,設讀寫長度。減少用戶側的應用代碼的一些工作,但同時也會引入需要注意的一些操作:
應用實例可以參考:
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 的性能和功能特點。後續還會有文章介紹下一步更深入的一些話題。
掃描二維碼, 關注英飛凌官方微信尋找更多應用或產品資訊