你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

驱动 8 位 8080 接口 LCD 时的字节序问题

[复制链接]
STMCU小助手 发布时间:2023-6-19 14:26
前言
, b( a; y  E- M2 b9 [在一些图形界面应用中,系统架构会时常考虑使用 FSMC 接口来驱动 8080 接口的 LCD 屏。在 MCU 渲染完成,将framebuffer 发送到 LCD 时,有可能会遇到存儲大小端的问题。STM32 MCU 都采用 ARM Cortex 内核,内存使用小端格式。而 intel 8080 接口的 LCD 在传输 RGB 数据时,使用的是大端格式。MCU 在传输 RGB 数据时,字节序有可能不匹配。+ Y$ f# t) {/ m. p) Q: c0 t
在图形界面应用中,像素格式一般会使用 RGB888 或 RGB565。而在使用 FSMC 接口驱动 8bit 位宽的 LCD 时,很可能会使用 RGB565 格式。本文中会介绍两种方法来处理 8bit 8080 接口 RGB565 格式图像数据字节序问题。
) L- b( s' y2 J3 R" P2 R6 D
图像数据字节序
  T" V7 j6 ?- R* F' g8bit 8080 LCD 在接收 RGB565 数据时,会将第一个字节解析为{R4-R0,G5-G3}, 第二个字节解析为{G2-G0,B4-B0},并按这个顺序接收所有数据,如下图:- s# ]" z7 f9 e. J# ^' R" M! o+ T
, b% a' M+ u- ]
. I6 m, g( _) }8 y  f& \- R. |
@ZNHBD6CBO9{_K0CP7MA9JK.png
# z3 w; X& Z0 }( t8 X. c
" K1 }" G7 [3 G1 N* Z
而在 MCU 内存中,数据按小端格式存放,RGB565 数据存放的字节序如下:  |6 `3 [$ Z3 z
+ ]8 e# J. G& z2 y
NU8[CLCZL~YV3E]DS$)IJ.png , r* ^0 H& l# C; ~. H) d

. d/ I. e$ W$ y2 n8 U7 Y. C& F如果不做调整直接将 RGB 数据发给 LCD,MCU 会先发送 Byte 0,再发送 Byte 1,这样 LCD 显示的内容就会错乱。
  N) M) F6 `* t& I  G& q1 D9 f对比上面两张图可以看出,只需将内存中 Byte 0 与 Byte 1 字节位置对调(Byte swap),就能满足 LCD 接口的字节序要求。可以直接使用 CPU 进行 Byte swap,但这会消耗过多 CPU 算力,同时也会占用更多内存。这里我们将使用硬件进行 Byte swap.
$ b, \9 T( R8 \" n/ l* e* R" e/ U- x; E* l& o
DMA2D 进行 Byte swap
# f) a; x: m: `' A$ BDMA2D 是 ST 为图形应用专门设计并优化的 2D 加速引擎,拥有丰富的功能。其字节序重排功能包含了 Red blueswap 以及 Byte swap 特性。Red blue swap 特性在 L4 和 L4+系列 MCU 都支持,而 Byte swap 仅在 L4+系列有支持。在 L4+系列上,通过配置 DMA2D_OPFCCR 寄存器的 SB 位,即可使能 Byte swap 功能,在 DMA2D 的 outputFIFO 中完成字节序调整,如下图:9 j( X* C/ L& x: l* `3 R
/ V$ m" H/ n7 `+ E2 V$ J, B1 k

) [( a4 e0 n- H/ ` 7O6Q(~5QM60GL8C6ZI)J)CX.png 2 L- v2 ]8 S/ n0 X  q: s3 w7 A2 h7 b

7 G7 k/ d0 m8 C3 O6 r# ]8 y0 t
因此在图形界面应用中,需要 Byte swap 时,可以考虑用 DMA2D 来传输 RGB 数据给 LCD。0 U8 s8 o9 v- N/ g3 g6 v

) U) a( F$ L( ~2 U1 }
( c8 ?# E% K& K4 L$ _
完整版请查看:附件8 R' |4 _' v+ ?
驱动8位8080接口LCD时的字节序问题.pdf (345.32 KB, 下载次数: 15)
收藏 评论0 发布时间:2023-6-19 14:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版