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

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

[复制链接]
STMCU小助手 发布时间:2023-6-19 14:26
前言
1 n6 C2 t9 e0 R在一些图形界面应用中,系统架构会时常考虑使用 FSMC 接口来驱动 8080 接口的 LCD 屏。在 MCU 渲染完成,将framebuffer 发送到 LCD 时,有可能会遇到存儲大小端的问题。STM32 MCU 都采用 ARM Cortex 内核,内存使用小端格式。而 intel 8080 接口的 LCD 在传输 RGB 数据时,使用的是大端格式。MCU 在传输 RGB 数据时,字节序有可能不匹配。  M  a( y$ Z! l- n5 J
在图形界面应用中,像素格式一般会使用 RGB888 或 RGB565。而在使用 FSMC 接口驱动 8bit 位宽的 LCD 时,很可能会使用 RGB565 格式。本文中会介绍两种方法来处理 8bit 8080 接口 RGB565 格式图像数据字节序问题。; D" ^) H8 i: K$ v; l+ b8 F0 T' @, b
图像数据字节序
, h, O3 g0 z' v0 g. Y  s8bit 8080 LCD 在接收 RGB565 数据时,会将第一个字节解析为{R4-R0,G5-G3}, 第二个字节解析为{G2-G0,B4-B0},并按这个顺序接收所有数据,如下图:
, e6 c% {6 N1 I9 g  K9 u( r1 V+ Z4 M7 {. n
! u# U) o- E* A# j
@ZNHBD6CBO9{_K0CP7MA9JK.png
6 e/ C7 D- c* a7 U
( v( C5 {6 c. {2 k2 h3 R& v
而在 MCU 内存中,数据按小端格式存放,RGB565 数据存放的字节序如下:
6 A, X% p1 |% ` 7 C* f! r& V/ _; \% [1 N
NU8[CLCZL~YV3E]DS$)IJ.png 7 Z* u+ S/ E+ ~! B/ ?# c5 P+ {$ d
& G. ?% b' I2 w
如果不做调整直接将 RGB 数据发给 LCD,MCU 会先发送 Byte 0,再发送 Byte 1,这样 LCD 显示的内容就会错乱。
( l5 L7 K3 k$ z% g' h/ Z- S对比上面两张图可以看出,只需将内存中 Byte 0 与 Byte 1 字节位置对调(Byte swap),就能满足 LCD 接口的字节序要求。可以直接使用 CPU 进行 Byte swap,但这会消耗过多 CPU 算力,同时也会占用更多内存。这里我们将使用硬件进行 Byte swap.. N* i! J% D  Q" R9 i; e
( I, ?9 w, D9 g$ W
DMA2D 进行 Byte swap 3 L3 @! Q; N( \% |! L2 j
DMA2D 是 ST 为图形应用专门设计并优化的 2D 加速引擎,拥有丰富的功能。其字节序重排功能包含了 Red blueswap 以及 Byte swap 特性。Red blue swap 特性在 L4 和 L4+系列 MCU 都支持,而 Byte swap 仅在 L4+系列有支持。在 L4+系列上,通过配置 DMA2D_OPFCCR 寄存器的 SB 位,即可使能 Byte swap 功能,在 DMA2D 的 outputFIFO 中完成字节序调整,如下图:
( R. J; `5 i2 U  i8 D6 t" e
# N1 R. E5 ]( U! n% S. x

& ]' W8 `) h  X$ B0 _ 7O6Q(~5QM60GL8C6ZI)J)CX.png   S6 X5 k1 h. k2 @5 a
0 l0 T9 O( X4 ], m
因此在图形界面应用中,需要 Byte swap 时,可以考虑用 DMA2D 来传输 RGB 数据给 LCD。5 n) n0 ]; g% e# l# I" R" W
1 d4 K1 p; z' T/ q: ~4 U

. I' J$ b& y$ k. a9 H& k# A- N( h9 y完整版请查看:附件  O; G3 r' C/ G( `) h3 t" G  q; C: [" k
驱动8位8080接口LCD时的字节序问题.pdf (345.32 KB, 下载次数: 8)
收藏 评论0 发布时间:2023-6-19 14:26

举报

0个回答

所属标签

相似分享

官网相关资源

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