外部記憶體
本章內容旨在協助您為嵌入式圖形化使用者介面選擇外部記憶體。 在閱讀本章內容之前,建議您閱讀 初步考慮 和 MCU,以便瞭解在選擇合適的外部記憶體時要注意的一些重要因素。
執行TouchGFX GUI應用時,有時需要使用外部記憶體來存儲影像緩衝、點陣圖、字體和轉換資訊等。 TouchGFX GUI的執行不依賴外部記憶體,但需要使用內部RAM(在MCU中)或外部RAM來存儲影像緩衝,並用內部和/或外部快閃記憶體來存儲資料。
下面的記憶體總覽展示了一些可與STM32 MCU一起使用的外部記憶體。 一些不同的記憶體範例同時提供了串列和平行介面。
不同的STM32微控制器具有不同的外部記憶體介面,可以連接不同的外部記憶體。
非揮發性記憶體
在GUI應用中,非揮發性存儲(快閃記憶體)主要用於存儲一些或全部圖形資料資產,如點陣圖、字體、轉換資訊和TouchGFX應用程式碼。 STM32產品支援非揮發性記憶體,可使用平行或串列記憶體和不同配置,通過不同類型的MCU介面進行連接。
根據以下要素選擇非揮發性存儲:
- 密度
- 性能
- 介面類別型(並行/串列)
- 材料清單
NOR Flash
NOR Flash是一種非揮發性記憶體,允許對記憶體中的任何區域進行隨機存取。
NOR Flash的大小通常介於128 Mbits和2 Gbits之間。
例如,當解析度為480x320、色深為16位元每像素時,使用者介面需要的全屏背景圖像約為300 kB。 其中不包括使用的按鈕、滑動條、圖示和字體以及語言數量等所需的額外點陣圖。 256 Mbits (32 MB) NOR Flash可存儲最多約100張全屏圖像,如果加上其他需要的圖形,將少於這個數。
可在記憶體映射 模式下使用NOR Flash,在這種情況下,外部快閃記憶體被視為讀取操作的內部記憶體。 該模式允許系統主機(如DMA、LTDC、DMA2D、GFXMMU或SDMMC)自主訪問記憶體,即使在CPU停止時的低功耗模式下也不例外,是移動和可穿戴應用的理想選擇。
NOR Flash記憶體有不同的介面選項:
- 平行NOR Flash(具有x8或x16介面)
- 串列NOR Flash(串列記憶體的單、雙、四和八資料線,以及HyperBus快閃記憶體)
串列NOR Flash記憶體
串列NOR Flash記憶體被廣泛用作為圖形應用中的記憶體。
這類存儲器具有諸如以下優勢:
- 高頻率
- 簡化並縮小了印刷電路板(PCB)的區域
- 記憶體映射模式的可定址區為最大256Mbytes
- 需要的引腳數介於4和12個之間
NOR單線、雙線、四線、八線快閃記憶體
NOR Flash記憶體有不同的資料線配置。
- 單線
- 雙線
- 四線
- 八線
切換至配備更多資料線的串列NOR Flash記憶體可以提高性能和記憶體介面頻寬,但也需要更多引腳來連接STM32產品。
下面是根據資料線數量列出的不同SPI記憶體總覽:
平行NOR Flash記憶體
在性能和配置方面,平行NOR Flash記憶體具有與串列快閃記憶體相同的優勢。 平行NOR Flash可配置為記憶體映射模式,並能像內部記憶體一樣進行存取。 平行和串列NOR Flash之間的差異在於引腳數和印刷電路板(PCB)的複雜度。
NOR快閃記憶體需要最多47個腳位 ,包括最多24個地址腳位和16個資料腳位。
NAND快閃記憶體
NAND Flash記憶體是需要大量圖形資料和 更快寫入與擦除操作的圖形應用的理想選擇。 NAND Flash記憶體不能配置為記憶體映射模式,因此,不建議將其用於程式碼執行。
NAND Flash的大小介於1 Gbit和512 Gbits之間。
在使用NAND Flash時,通常必須使用RAM中的緩存。 如此一來,可以將當前使用的圖形資料移動到RAM,並從緩存中獲取它們。
eMMC記憶體
eMMC(嵌入式多媒體卡)由MMC協會訂立,相當於一個NAND Flash加一個主集成控制器。 eMMC的一個明顯優勢是在封裝中集成了控制器,從而提供了標準介面和快閃記憶體管理,使製造商能夠將精力集中在產品開發的其他部份,進而縮短上市時間。
eMMC Flash的大小介於2 Gbits 和 128 Gbits之間。
相比於NAND和NOR,eMMC的隨機讀取性能相對較低。 eMMC可能需要添加緩存來克服隨機讀取速度緩慢的問題。
eMMC Flash記憶體需要最多 10個引腳 ,包括8個資料引腳和2個控制引腳。
揮發性記憶體
外部揮發性記憶體主要用於存儲影像緩衝(若內部MCU RAM不夠用),在某些情況下,用於緩存來自非記憶體映射快閃記憶體的資料。 本節主要介紹SRAM、SDRAM和PSRAM,它們通常用在執行GUI的嵌入式系統中。 但還有其他可用的變型,記憶體製造商對其記憶體使用不同命名模式,如“hyper RAM”、“IoT RAM”和“octal RAM”。 其中的大多數都可以找到支援它的STM32 MCU。
在選擇合適的外部RAM時,建議注意以下要素:
- 密度
- 性能
- 功耗
- 介面/引腳尺寸
- 影像緩衝區配置
SRAM
SRAM是靜態隨機存取記憶體,只要有供電,就能保存位元資料。 一般而言,SRAM的存取速度更快,且密度更小,但價格高於DRAM。 相比於DRAM,SRAM的存取時間通常更短,因此更適合需要更多動畫、縮放和旋轉等操作的GUI。 SRAM具有同步和非同步模式,同步模式提供更高的頻寬能力,但介面更複雜。
Note
SDRAM
SDRAM是一種動態隨機存取記憶體,它保存電容上的每一個資料位元。相比於SRAM,SDRAM能用更小的物理空間存儲相同數量的資料。 為了保存資料,SDRAM需要不斷刷新,因此其能耗高於SRAM。
SDRAM的密度通常為16 Mbits至512 Mbits,通過8、16和32位元介面提供,運行頻率為100-200 MHz。
在執行24bpp 800*480解析度的雙影像緩衝策略中,需要約32 Mbits SDRAM以及約18 Mbits的RAM。
PSRAM
PSRAM是虛擬靜態隨機存取記憶體,具有DRAM(控制邏輯)的內部結構和SRAM介面。 它的密度通常為8-256 Mbits。 相比于傳統的SDRAM和SRAM,PSRAM的優勢在於速度更快且功耗更低。
其他記憶體
新的octal RAM和Hyper RAM記憶體在單和雙數據率模式下使用串列8位元介面,可實現高吞吐率和良好的集成效果。
外部RAM密度的選擇
如果您的策略是將影像緩衝放在外部RAM中,此表是市面上提供的不同RAM密度的總覽。
它還提供了以1、2、4、8、16和24位元每像素的密度(除以2可得出單個影像緩衝所需密度)運行雙影像緩衝設置所需RAM的總覽。
在某些情況下,單影像緩衝配置已經足夠,並且在某些STM32微控制器中,會有足夠的內部RAM用於容納影像緩衝。