前言
在一些圖形界面應用中,系統(tǒng)架構會時常考慮使用 FSMC接口來驅動 8080接口的 LCD屏。在 MCU渲染完成,將framebuffer發(fā)送到 LCD時,有可能會遇到存儲大小端的問題。STM32MCU都采用 ARMCortex內核,內存使用小端格式。而 intel 8080接口的 LCD在傳輸 RGB數(shù)據(jù)時,使用的是大端格式。MCU在傳輸 RGB數(shù)據(jù)時,字節(jié)序有可能不匹配。在圖形界面應用中,像素格式一般會使用 RGB888或 RGB565。而在使用 FSMC接口驅動 8bit位寬的 LCD時,很可能會使用 RGB565格式。本文中會介紹兩種方法來處理8bit8080接口 RGB565格式圖像數(shù)據(jù)字節(jié)序問題。
圖像數(shù)據(jù)字節(jié)序
8bit8080 LCD在接收 RGB565數(shù)據(jù)時,會將第一個字節(jié)解析為{R4-R0,G5-G3}, 第二個字節(jié)解析為{G2-G0,B4-B0},并按這個順序接收所有數(shù)據(jù),如下圖:
而在 MCU內存中,數(shù)據(jù)按小端格式存放,RGB565數(shù)據(jù)存放的字節(jié)序如下:
如果不做調整直接將 RGB數(shù)據(jù)發(fā)給 LCD,MCU會先發(fā)送 Byte0,再發(fā)送 Byte 1,這樣 LCD顯示的內容就會錯亂。對比上面兩張圖可以看出,只需將內存中 Byte0與 Byte1字節(jié)位置對調(Byteswap),就能滿足 LCD接口的字節(jié)序要求。可以直接使用 CPU進行 Byteswap,但這會消耗過多 CPU算力,同時也會占用更多內存。這里我們將使用硬件進行 Byteswap.
DMA2D 進行Byteswap
DMA2D是 ST為圖形應用專門設計并優(yōu)化的2D加速引擎,擁有豐富的功能。其字節(jié)序重排功能包含了Red blueswap以及 Byteswap特性。Red blueswap特性在 L4和 L4+系列 MCU都支持,而 Byteswap僅在L4+系列有支持。在 L4+系列上,通過配置 DMA2D_OPFCCR寄存器的 SB位,即可使能 Byteswap功能,在 DMA2D的outputFIFO中完成字節(jié)序調整,如下圖:
因此在圖形界面應用中,需要 Byteswap時,可以考慮用 DMA2D來傳輸 RGB數(shù)據(jù)給 LCD。
GPDMA 進行Byteswap
在新推出的 U5系列芯片上,集成了 GPDMA模塊。這是新的通用DMA模塊,能在傳輸數(shù)據(jù)的同時,還有豐富的數(shù)據(jù)處理能力。在初始化GPDMA時,通過配置源和目的數(shù)據(jù)位寬為 DMA_SRC_DATAWIDTH_WORD,在數(shù)據(jù)處理中配置 DataExchange為 DMA_EXCHANGE_DEST_BYTE,如下面代碼,也能實現(xiàn)Byteswap功能。
這樣,在圖形應用中,既能使用 DMA2D加速渲染過程,也能使用 GPDMA的數(shù)據(jù)處理能力。通過 GPDMA直接向FSMC接口輸出 Byteswap后的 RGB565格式的圖形數(shù)據(jù)給LCD。
小結
在驅動 8位 8080接口 LCD時,需要注意圖像數(shù)據(jù)字節(jié)序問題。使用 RGB565格式時,可以使用 DMA2D或 GPDMA來傳輸圖像數(shù)據(jù),同時對圖像數(shù)據(jù)做 Byteswap調整,滿足LCD的字節(jié)序要求。
責任編輯:haq
-
lcd
+關注
關注
34文章
4520瀏覽量
171645 -
驅動
+關注
關注
12文章
1918瀏覽量
86958
原文標題:工程師筆記 | 驅動 8 位 8080 接口 LCD 時的字節(jié)序問題
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
如何調用C的接口來封裝micropyton接口?
STM32U5+8bit_8080 LCD 怎么配置touchgfx?
低電流LCD驅動抗噪液晶屏驅動芯片VKL060
STM32U5+8bit_8080 LCD怎么配置touchgfx?
STM32U5+8bit_8080 LCD怎么配置touchgfx?
飛凌嵌入式-ELFBOARD-RGB LCD屏接口的PCB設計要點
飛凌嵌入式-ELBOARD-RGB LCD顯示屏接口的PCB設計要點
dp接口如何實現(xiàn)多屏顯示
通用抗干擾段碼屏驅動液晶驅動芯片LCD驅動芯片VK1626(48SEGx16COM)
lvds接口需要驅動嗎

屏驅可觸摸TFT-LCD mcu(專用開發(fā)板方案)
dsi接口,支持觸摸控制嗎
瑞薩e2studio----SPI驅動TFT-LCD屏

評論