第一次调MIPI接口的显示屏,都是什么套路?
-
https://bbs.aw-ol.com/topic/263/请问这个树莓派mipi-dsi-显示屏是不是用-接口芯片转的?_=1631153400148
https://bbs.aw-ol.com/topic/311/使用d1驱动树莓派dsi屏幕?_=1631153400151
看两位大佬将树莓派的DSI显示屏调通了,于是乎也想试试,某宝找了一款很小的MIPI接口的显示屏,分辨率240*32(不要问我为啥找这么小的屏,因为我喜欢小巧的<其实是在准备M5Pi2>)。
外观:
管脚图:
也学上面两位大佬,画了个转接板:
原理图:
PCB:
然后就不知道从哪入手了--.
先尝试了下芒果大佬打包的镜像,虽然知道肯定不会亮,主要是自己编译个有点麻烦:
感觉花屏是不是表示转接板没问题?还是?
思路:
先讲下自己的思路,SDK中是支持TFT08006这款屏幕的,也就是店铺里卖的那款屏幕,然后驱动代码也都有,然后上面两位大佬使用的树莓派的屏是有块小芯片,负责初始化屏幕的,所以不需要再次初始化,只需要调整下设备树中lcd节点的参数就可以了,然后我买的这款屏幕是需要初始化的,然后商家也给了份初始化代码和数据手册,是不是仿照TFT08006的驱动修改下就可以了?
初始化代码:
D200N9376V0 MIPI .txt
数据手册:
JD9852_User_Guide_Preliminary_V0.00_20181228.pdf驱动IC是JD9852(京东方?)
SSD_Number(0x04); SSD_CMD(0xDF); //Password SSD_PAR(0x98); SSD_PAR(0x51); SSD_PAR(0xE9)
初始化代码这里有些疑问:
SSD_CMD => sunxi_lcd_cpu_write_index ? SSD_PAR => sunxi_lcd_cpu_write_data? SSD_Number ?????
CMD跟PAR大概知道替换成什么,这个SSD_Number是啥意思?
驱动修改思路:
查看SDK跟TFT08006有关的应该是这两处源码,brandy目录下的应该是boot阶段用的,初始化是在这里?linux-5.4目录下的应该是kernel启动后用的,还需要初始化一次吗?
lichee/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/tft08006.c lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/lcd/tft08006.c
上面是我大概的思路(可能不对,因为没接触过MIPI这种玩意,有没有大佬指教下?
-
① SSD_Number 得问厂家是什么定义,或者给个完整的工程文件。
② 树莓派屏不需要初始化,这个地方我们可能占了大便宜 无需考虑初始化了。
③ 理论上只要在uboot初始化一次就可以了,但是如果你用自带的TFT08006驱动,他又会重新驱动一次,所以可能两个都得改。 -
SSD_Number 对应每一次mipi发送控制的数量,但你的程序这个可能把CMD也算上了,到uboot驱动中数量-1就行。
比如这一段:
//VGMP,VGSP,VGMN,VGSN 4.2
SSD_Number(0x05);
SSD_CMD(0xB7);
SSD_PAR(0x1E);
SSD_PAR(0x7D);
SSD_PAR(0x1E);
SSD_PAR(0x2B);到tina里uboot驱动中修改为:
{ 0xb7, 4, {0x1e, 0x7d, 0x1e, 0x28}},
当前tina默认编译出来的是依靠uboot阶段初始化了fb,所以你只需修改uboot驱动就行。
-
-
@tigger
我感觉应该是也是只在uboot初始化一次,因为启用了BOOT GUI,要是没启用这个应该是在kernel阶段初始化,还不是很熟悉 -
新进展:
修改设备树 &lcd0 节点后,初始化失败:
设备树修改部分:
驱动修改部分:
只修改驱动没有初始化失败,屏幕会一闪一闪(黑色),修改设备树后uboot起不来了,卡在第一张图那里。
-
更新:
在晕哥指导后,反复查看数据手册和D1_Linux_LCD_开发指南终于出图像了显示貌似还有点问题,GAMA的问题?还需要再调整优化下,不过终于出来了,太感动了。
下面是修改的后DTS LCD节点:
lcd_x = <240>; lcd_y = <320>; lcd_width = <30>; lcd_height = <40>; lcd_dclk_freq = <7>; lcd_pwm_used = <1>; lcd_pwm_ch = <2>; lcd_pwm_freq = <1000>; lcd_pwm_pol = <0>; lcd_pwm_max_limit = <255>; lcd_hbp = <20>; lcd_ht = <304>; /**/ lcd_hspw = <4>; /**/ lcd_vbp = <6>; lcd_vt = <336>; /**/ lcd_vspw = <2>; /**/ lcd_dsi_if = <0>; lcd_dsi_lane = <1>;
不过有点好奇的是,为什么这里的参数会影响到启动?会直接卡死在boot阶段?
等我整理下,把驱动跟PCB工程再分享上来,哈哈哈,开心。
-
更新:
PCB 工程已放在github: https://github.com/imliubo/kicad-projects
JD9852驱动:
jd9852.tarbrandy文件夹下的放到这个路径下:
tina-d1-open/lichee/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/
kernel文件下的放到这个路径:
tina-d1-open/lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/lcd/
为什么是两份?因为我看uboot跟kernel的panels.h不太一样,两份驱动还是有些不太一样的。
然后可能还需要修改目录下的makefile跟Kconfig跟panels.c。
话说 tina-sdk 接受用户 contribute 不 -
@iamliubo 在 第一次调MIPI接口的显示屏,都是什么套路? 中说:
更新:
PCB 工程已放在github: https://github.com/imliubo/kicad-projects
JD9852驱动:
jd9852.tarbrandy文件夹下的放到这个路径下:
tina-d1-open/lichee/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/
kernel文件下的放到这个路径:
tina-d1-open/lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/lcd/
为什么是两份?因为我看uboot跟kernel的panels.h不太一样,两份驱动还是有些不太一样的。
然后可能还需要修改目录下的makefile跟Kconfig跟panels.c。
话说 tina-sdk 接受用户 contribute 不现在tina没有官方在github或者gitee建仓库,你可以自己建一个,建立自己的元宇宙,后面官方往gitee上推,就都要经过你审核
-
搞不了 搞不了 还是等官方建仓吧
-
更新:
有屏幕的地方就有烂苹果
adb push视频到开发板,使用tplayerdemo播放就可以。
问题是屏幕方向怎么旋转?之前用SPI接口的显示屏可以让显示屏硬件旋转,但是这个屏手册中貌似没找到这个命令
-
估计得用G2D旋转了吧。
-
疑问:
kernel 配置了DISP2 Framebuffer rotation support> Device Drivers > Graphics support > Frame buffer Devices > Video support for sunxi
编译报错:
全局搜索,找个这两个宏定义,直接替换成对应的数值,可以编译通过:
然后在board.dts中disp节点有旋转选项,按照注释中的说明开启旋转:
按照注释中增加
然后卡在kernel启动:
boot阶段是正常的,logo也有显示,但是无法正常启动kernel,日志级别已经调到最高,没有任何输出。
不过degree角度改成0,也就是不旋转,是可以正常启动,如下:
问:怎么可以让屏幕旋转
-
@tigger
G2D是什么?是指在应用层旋转吗? -
@iamliubo G2D 是硬件块搬运的接口,G2D旋转效率更高,当然也可以在应用层软件旋转
-
是这个吗?然后还要怎么设置
-
此回复已被删除! -
@iamliubo 你好,后面你是怎么把竖屏改为横屏的,能分享一下吗
-
@xiaochusheng 这里分享一个竖屏转成横屏的方法,这种方式会用g2d硬件来旋转,注意这种方法只能修改FB0的旋转角度,视频播放不受影响,并且开机后到内核可能不会显示开机logo,因为需要调用ioctl FBIOPAN_DISPLAY才能显示,可以选上Utilities-->directfb-examples,板子上执行df_andi测试
-
@anruliu 是不是先要在D1源码打上支持G2D的补丁,然后才进行你的操作
-
@xiaochusheng 应该不用打补丁,配置好,选上应用测试即可
-
@anruliu 你有打过补丁吗,现在打上补丁后编译提示如下错误,你知道什么原因吗!提示bootstrap没有权限,但是我给了权限还是不行,你知道怎么回事吗
-
看这个帖子 学习到了很多,非常感谢楼主的问题及分享。
-
@xiaochusheng
不好意思,好久没来论坛了,我当时也没处理好横屏。 -
@anruliu
感谢大佬分享,有时间尝试下。 -
@xiaochusheng
有进展记得分享一下哈 最近没时间整D1 -
请教一下,什么样的显示接口,可以支持到50cm左右的连接线,线缆要求又不是很高,线束尽可能少,8pin以内比如用网线,直接接常用显示屏,比如800*480的LCD屏。mipi能搞定吗?
-
@yizhi2021
LVDS -
-
-
-
-
经过一顿操作后,复刻成功了。补上一个镜像,方便验证tina_d1-h-nezha_uart0.img 。最后最后,有图有真像
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号