矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: scoopydoo

[折腾] 基于 STM32H750 的 TFT 显示模块

[复制链接]
     
 楼主| 发表于 2024-11-22 16:41:56 | 显示全部楼层
MF35_ 发表于 2024-11-22 09:25
可以用8bit索引色(调色板)模式啊,反正你是给仪表用,又不显示图片 ,我给仪表用的屏基本都用 ...

俺只看到了 LTDC 硬件接口有 16、18bit 两种模式,没注意到它的 layer pixel format 有八种色深模式,其中有一个 L8 看起来很可疑,俺去研究一下是不是 LUT 的意思!
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-11-22 16:44:16 | 显示全部楼层
MF35_ 发表于 2024-11-22 16:39
不是,你搞错了,ST7701S只是TCON驱动,不是LCD驱动,它只是用来驱动液晶面板时序的,而非显示时序,显示 ...

刚才在回你的帖,回完就刷到你这个新回帖,俺正在文档文档呢,你就是村里的希望啊!!!
回复 支持 反对

使用道具 举报

     
发表于 2024-11-22 16:44:53 | 显示全部楼层
本帖最后由 MF35_ 于 2024-11-22 16:47 编辑
scoopydoo 发表于 2024-11-22 16:25
ST7701S 只支持 16、18、24bit 三种模式,这块屏接口有 18位 数据线,单片机这边 LTDC 接口只有 16、18 ...


大湿,显然是支持的啊,我只见过支持调色板但不支持RGB色的LCDC,但还没见过反过来的,这么大的CLUT写着呢,L8那一行的意思是,支持8位灰度或者CLUT(即Color-LUT)模式

a.png

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2024-11-22 16:47:14 | 显示全部楼层
scoopydoo 发表于 2024-11-22 03:26
屏还没点亮,已经发现自己踩了个坑!

俺选的屏幕分辨率为 960*320,每个点 16 位色深的话需要 600KB 的 ...

用个二级页表不就搞定了么?谁说地址一定要连续的
只是发数据要分批发多次而已,也不是什么大事。
想少发几次,可以弄成段页模式。物理上分几个大段,用的时候还是按页表来用,发数据的时候按物理分段来发就行
回复 支持 反对

使用道具 举报

     
发表于 2024-11-22 16:48:44 | 显示全部楼层
scu319hy 发表于 2024-11-22 16:47
用个二级页表不就搞定了么?谁说地址一定要连续的
只是发数据要分批发多次而已,也不是什么大事。
...


页表是MMU的东西,外设直接访问内存是不走MMU的,只能是物理地址
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-11-22 16:48:52 | 显示全部楼层
MF35_ 发表于 2024-11-22 16:44
大湿,显然是支持的啊,我就没见过支持RGB直接色但不支持调色板模式的LCD控制器,这么大的CLUT写着呢, ...

俺这不是没看文档直接开工吗,刚刚才在 Cubemx 的 layer pixel format 下拉选项里看到 ‘L8’ 这个东西
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-11-22 16:49:41 | 显示全部楼层
scu319hy 发表于 2024-11-22 16:47
用个二级页表不就搞定了么?谁说地址一定要连续的
只是发数据要分批发多次而已,也不是什么大事。
...

不行,这个要实时刷新,是硬件直接访问的 ......
回复 支持 反对

使用道具 举报

     
发表于 2024-11-22 16:55:23 | 显示全部楼层
本帖最后由 MF35_ 于 2024-11-22 16:57 编辑
scoopydoo 发表于 2024-11-22 16:48
俺这不是没看文档直接开工吗,刚刚才在 Cubemx 的 layer pixel format 下拉选项里看到 ‘L8’ 这个东西 ; ...


Cubemx种选择L8,因该还有一个选项要开启CLUT,否则可能是8bit灰度值而不是调色板索引,至于接屏的RGB接口不用担心兼容性,哪怕LCDC的输出和屏不匹配,无非是对应的几位空着不接就行了,比如LCDC只能输出RGB666,而屏是RGB888接口,那么屏的R/G/B低2位接地就行,反过来如果LCDC输出是RGB888,而屏的接口是RGB666,那么LCDC的R/G/B低2位空着就可以了,同样其他的RGB格式之间的兼容也是一样的原理,无非是少颜色而已,编程的时候注意就行了
回复 支持 反对

使用道具 举报

     
发表于 2024-11-22 17:27:27 | 显示全部楼层
scoopydoo 发表于 2024-11-22 16:49
不行,这个要实时刷新,是硬件直接访问的 ......

大概看了一下手册上的指令,有局部刷新模式的指令。不能做分段刷新?
回复 支持 反对

使用道具 举报

     
发表于 2024-11-22 17:29:36 | 显示全部楼层
MF35_ 发表于 2024-11-22 16:48
页表是MMU的东西,外设直接访问内存是不走MMU的,只能是物理地址

楼主的问题是MCU内的帧缓存不够连续
我的意思是软件上是不是可以用分段的帧缓冲,然后分段刷新到屏幕上
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-11-22 17:30:34 | 显示全部楼层
MF35_ 发表于 2024-11-22 16:55
Cubemx种选择L8,因该还有一个选项要开启CLUT,否则可能是8bit灰度值而不是调色板索引,至于接屏的RGB ...

俺以前用的都是串口屏,查找表这块没弄过,不过应该问题不大。物理接口这块没问题的,俺是接的 18bit,但是现在单片机这边 LTDC 输出的是 16bit,红蓝最低位固定拉低了。

现在最大的问题的还是屏没点亮,俺怀疑是初始化的问题,或者是 LTDC 的时序设置和 ST7701S 初始化的不一致,这个破芯片初始化序列有几百个字节,按照手册一个个检查,累死俺了 ......
回复 支持 反对

使用道具 举报

     
发表于 2024-11-22 17:35:59 | 显示全部楼层
scu319hy 发表于 2024-11-22 17:29
楼主的问题是MCU内的帧缓存不够连续
我的意思是软件上是不是可以用分段的帧缓冲,然后分段刷新到屏幕上

肯定不能啊,帧缓存是由LCDC直接访问的,而非由CPU传输给LCDC的,自然不能用软件处理,你说的这种方式对自带LCD控制器的MCU接口屏是可以的,但MCU接口屏也不需要帧缓存啊,都是直接写控制器
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-11-22 17:37:46 | 显示全部楼层
scu319hy 发表于 2024-11-22 17:27
大概看了一下手册上的指令,有局部刷新模式的指令。不能做分段刷新?

还没仔细看手册,刚才陪娃儿打扑克去了!

LTDC 应该可以设置多个图层,每个图层对应一块显示区域,但是这样有些麻烦,俺宁可选内存大一点的型号。

现在先考虑用 8 位色深加查找表的方式跑起来,关键是屏幕还没点亮 ......
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-11-22 17:40:08 | 显示全部楼层
MF35_ 发表于 2024-11-22 17:35
肯定不能啊,帧缓存是由LCDC直接访问的,而非由CPU传输给LCDC的,自然不能用软件处理,你说的这种方式对 ...

俺觉得如果搞两三个图层互不重叠来覆盖整个屏幕,然后每个图层指定一个显存区域,应该是可以实现的,就是麻烦。
回复 支持 反对

使用道具 举报

     
发表于 2024-11-22 17:51:50 | 显示全部楼层
scoopydoo 发表于 2024-11-22 17:37
还没仔细看手册,刚才陪娃儿打扑克去了!

LTDC 应该可以设置多个图层,每个图层对应一块显示区域, ...

我就是瞎提个想法,反正只用动动嘴
等你成功了我再来围观学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-26 18:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表