Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    第一次调MIPI接口的显示屏,都是什么套路?

    MR Series
    10
    30
    13557
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • IAMLIUBO
      IAMLIUBO LV 5 last edited by

      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>)。
      外观:
      fabd4348-19fe-4767-bc34-33d28da28b81-image.png
      管脚图:
      5cef16be-7e6f-49f5-8bd5-3c46bd1a2914-image.png

      也学上面两位大佬,画了个转接板:
      原理图:
      b80d4da7-4dd9-4e92-85ce-999c1f7cb1e8-image.png
      PCB:
      b872b315-0630-4815-9a7f-527ca345c555-image.png

      然后就不知道从哪入手了--.

      先尝试了下芒果大佬打包的镜像,虽然知道肯定不会亮,主要是自己编译个有点麻烦:
      2ba0341f-59b2-4fca-99d5-1c6cfecfe192-image.png

      感觉花屏是不是表示转接板没问题?还是?

      思路:
      先讲下自己的思路,SDK中是支持TFT08006这款屏幕的,也就是店铺里卖的那款屏幕,然后驱动代码也都有,然后上面两位大佬使用的树莓派的屏是有块小芯片,负责初始化屏幕的,所以不需要再次初始化,只需要调整下设备树中lcd节点的参数就可以了,然后我买的这款屏幕是需要初始化的,然后商家也给了份初始化代码和数据手册,是不是仿照TFT08006的驱动修改下就可以了?
      初始化代码:
      D200N9376V0 MIPI .txt
      974dfa0a-0f8a-4c5e-850e-33db25f478bf-image.png
      数据手册:
      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这种玩意,有没有大佬指教下?😊

      tigger 1 Reply Last reply Reply Quote Share 0
      • tigger
        tigger LV 7 @IAMLIUBO last edited by whycan

        @iamliubo

        ① SSD_Number 得问厂家是什么定义,或者给个完整的工程文件。
        ② 树莓派屏不需要初始化,这个地方我们可能占了大便宜 😊 无需考虑初始化了。
        ③ 理论上只要在uboot初始化一次就可以了,但是如果你用自带的TFT08006驱动,他又会重新驱动一次,所以可能两个都得改。

        IAMLIUBO 1 Reply Last reply Reply Quote Share 0
        • mangogeek
          mangogeek LV 8 last edited by

          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驱动就行。

          IAMLIUBO 1 Reply Last reply Reply Quote Share 0
          • IAMLIUBO
            IAMLIUBO LV 5 @mangogeek last edited by

            @mangogeek 😘

            感谢芒果大佬,所以基本思路是对的是吧?修改uboot 目录下:
            b21dc096-bb33-49dc-9372-4aec9a739f86-image.png

            把这些初始化代码,按照商家发给我的初始化代码修改下。

            有时间试试,再来跟大家汇报

            1 Reply Last reply Reply Quote Share 0
            • IAMLIUBO
              IAMLIUBO LV 5 @tigger last edited by

              @tigger
              我感觉应该是也是只在uboot初始化一次,因为启用了BOOT GUI,要是没启用这个应该是在kernel阶段初始化,还不是很熟悉

              1 Reply Last reply Reply Quote Share 0
              • IAMLIUBO
                IAMLIUBO LV 5 last edited by

                新进展:
                修改设备树 &lcd0 节点后,初始化失败:
                16989ddc-6d03-49dd-a894-ef6df33af61d-image.png

                设备树修改部分:
                0f08c078-b342-4a94-9fcd-6c883676a061-image.png

                驱动修改部分:
                dada24ec-32b5-430b-ab5e-699614dc1109-image.png

                只修改驱动没有初始化失败,屏幕会一闪一闪(黑色),修改设备树后uboot起不来了,卡在第一张图那里。

                1 Reply Last reply Reply Quote Share 0
                • IAMLIUBO
                  IAMLIUBO LV 5 last edited by

                  更新:
                  在晕哥指导后,反复查看数据手册和D1_Linux_LCD_开发指南终于出图像了🤧

                  4db02d57-5b3c-4be3-a03d-a094dec605dd-image.png

                  显示貌似还有点问题,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工程再分享上来,哈哈哈,开心。

                  1 Reply Last reply Reply Quote Share 1
                  • IAMLIUBO
                    IAMLIUBO LV 5 last edited by

                    更新:

                    PCB 工程已放在github: https://github.com/imliubo/kicad-projects

                    JD9852驱动:
                    jd9852.tar

                    a5720bcc-1007-4327-8616-9b9bd0b21e66-image.png

                    brandy文件夹下的放到这个路径下:

                    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不太一样,两份驱动还是有些不太一样的。
                    fd31193e-c78e-4550-a11c-1491401675aa-image.png

                    然后可能还需要修改目录下的makefile跟Kconfig跟panels.c。

                    😊
                    话说 tina-sdk 接受用户 contribute 不😂

                    xiaowenge 1 Reply Last reply Reply Quote Share 0
                    • xiaowenge
                      DOT小文哥 LV 8 @IAMLIUBO last edited by

                      @iamliubo 在 第一次调MIPI接口的显示屏,都是什么套路? 中说:

                      更新:

                      PCB 工程已放在github: https://github.com/imliubo/kicad-projects

                      JD9852驱动:
                      jd9852.tar

                      a5720bcc-1007-4327-8616-9b9bd0b21e66-image.png

                      brandy文件夹下的放到这个路径下:

                      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不太一样,两份驱动还是有些不太一样的。
                      fd31193e-c78e-4550-a11c-1491401675aa-image.png

                      然后可能还需要修改目录下的makefile跟Kconfig跟panels.c。

                      😊
                      话说 tina-sdk 接受用户 contribute 不😂

                      现在tina没有官方在github或者gitee建仓库,你可以自己建一个,建立自己的元宇宙,后面官方往gitee上推,就都要经过你审核

                      IAMLIUBO 1 Reply Last reply Reply Quote Share 0
                      • IAMLIUBO
                        IAMLIUBO LV 5 @xiaowenge last edited by

                        @xiaowenge

                        😂 搞不了 搞不了 还是等官方建仓吧

                        1 Reply Last reply Reply Quote Share 0
                        • IAMLIUBO
                          IAMLIUBO LV 5 last edited by

                          更新:

                          有屏幕的地方就有烂苹果😊

                          adb push视频到开发板,使用tplayerdemo播放就可以。

                          问题是屏幕方向怎么旋转?之前用SPI接口的显示屏可以让显示屏硬件旋转,但是这个屏手册中貌似没找到这个命令😞

                          1 Reply Last reply Reply Quote Share 0
                          • tigger
                            tigger LV 7 last edited by

                            估计得用G2D旋转了吧。

                            IAMLIUBO 1 Reply Last reply Reply Quote Share 0
                            • IAMLIUBO
                              IAMLIUBO LV 5 last edited by

                              疑问:
                              kernel 配置了DISP2 Framebuffer rotation support

                              > Device Drivers 
                                  > Graphics support 
                                      > Frame buffer Devices 
                                          > Video support for sunxi
                              

                              c1ee3402-4239-4784-bab4-d3ae9de6a463-image.png
                              编译报错:
                              f6531529-04e4-4675-9ede-f8bfafc0e939-image.png
                              全局搜索,找个这两个宏定义,直接替换成对应的数值,可以编译通过:
                              24952b30-4198-46dc-9de4-7cd6e8951c79-image.png
                              然后在board.dts中disp节点有旋转选项,按照注释中的说明开启旋转:
                              f91fd208-1d27-4bfd-a540-ffd5add964e3-image.png
                              按照注释中增加
                              396da958-57fc-4f7a-97c5-7e5f1e1bcfa3-image.png
                              然后卡在kernel启动:
                              f99903b6-f524-435d-84bd-94965499ed70-image.png

                              boot阶段是正常的,logo也有显示,但是无法正常启动kernel,日志级别已经调到最高,没有任何输出。

                              不过degree角度改成0,也就是不旋转,是可以正常启动,如下:
                              48fccadc-2a9f-4389-a76f-9572072d8532-image.png

                              问:怎么可以让屏幕旋转😖

                              1 Reply Last reply Reply Quote Share 0
                              • IAMLIUBO
                                IAMLIUBO LV 5 @tigger last edited by

                                @tigger
                                G2D是什么?是指在应用层旋转吗?

                                BedRock 1 Reply Last reply Reply Quote Share 0
                                • BedRock
                                  BedRock LV 6 @IAMLIUBO last edited by

                                  @iamliubo G2D 是硬件块搬运的接口,G2D旋转效率更高,当然也可以在应用层软件旋转

                                  IAMLIUBO 1 Reply Last reply Reply Quote Share 0
                                  • IAMLIUBO
                                    IAMLIUBO LV 5 @BedRock last edited by

                                    @bedrock
                                    0fa1b9ca-4144-476a-bea3-0f79d0366fe4-image.png

                                    是这个吗?然后还要怎么设置😂

                                    X 1 Reply Last reply Reply Quote Share 0
                                    • X
                                      xiaochusheng LV 5 last edited by

                                      This post is deleted!
                                      1 Reply Last reply Reply Quote Share 0
                                      • X
                                        xiaochusheng LV 5 @IAMLIUBO last edited by

                                        @iamliubo 你好,后面你是怎么把竖屏改为横屏的,能分享一下吗

                                        A IAMLIUBO 2 Replies Last reply Reply Quote Share 0
                                        • A
                                          anruliu LV 6 @xiaochusheng last edited by anruliu

                                          @xiaochusheng 这里分享一个竖屏转成横屏的方法,这种方式会用g2d硬件来旋转,注意这种方法只能修改FB0的旋转角度,视频播放不受影响,并且开机后到内核可能不会显示开机logo,因为需要调用ioctl FBIOPAN_DISPLAY才能显示,可以选上Utilities-->directfb-examples,板子上执行df_andi测试

                                          2a067936-fe9a-4d29-b087-55e17c582124-lALPBGY18vRtHcPNAWPNAro_698_355.png

                                          fc961af1-d30b-4c73-ae29-f72461556bc3-lALPBG1Q8D4GzvfNAY_NA6c_935_399.png

                                          X IAMLIUBO 2 Replies Last reply Reply Quote Share 0
                                          • X
                                            xiaochusheng LV 5 @anruliu last edited by

                                            @anruliu 是不是先要在D1源码打上支持G2D的补丁,然后才进行你的操作

                                            A 1 Reply Last reply Reply Quote Share 0
                                            • A
                                              anruliu LV 6 @xiaochusheng last edited by

                                              @xiaochusheng 应该不用打补丁,配置好,选上应用测试即可

                                              X 1 Reply Last reply Reply Quote Share 0
                                              • X
                                                xiaochusheng LV 5 @anruliu last edited by

                                                @anruliu 你有打过补丁吗,现在打上补丁后编译提示如下错误,你知道什么原因吗!提示bootstrap没有权限,但是我给了权限还是不行,你知道怎么回事吗1.png

                                                IAMLIUBO 1 Reply Last reply Reply Quote Share 0
                                                • S
                                                  sblpp LV 2 last edited by

                                                  看这个帖子 学习到了很多,非常感谢楼主的问题及分享。

                                                  1 Reply Last reply Reply Quote Share 0
                                                  • IAMLIUBO
                                                    IAMLIUBO LV 5 @xiaochusheng last edited by

                                                    @xiaochusheng
                                                    不好意思,好久没来论坛了,我当时也没处理好横屏。

                                                    1 Reply Last reply Reply Quote Share 0
                                                    • IAMLIUBO
                                                      IAMLIUBO LV 5 @anruliu last edited by

                                                      @anruliu
                                                      感谢大佬分享,有时间尝试下。

                                                      1 Reply Last reply Reply Quote Share 0
                                                      • IAMLIUBO
                                                        IAMLIUBO LV 5 @xiaochusheng last edited by

                                                        @xiaochusheng
                                                        有进展记得分享一下哈😁 最近没时间整D1

                                                        S 1 Reply Last reply Reply Quote Share 0
                                                        • Y
                                                          yizhi2021 LV 2 last edited by

                                                          请教一下,什么样的显示接口,可以支持到50cm左右的连接线,线缆要求又不是很高,线束尽可能少,8pin以内比如用网线,直接接常用显示屏,比如800*480的LCD屏。mipi能搞定吗?

                                                          tigger 1 Reply Last reply Reply Quote Share 0
                                                          • tigger
                                                            tigger LV 7 @yizhi2021 last edited by

                                                            @yizhi2021
                                                            LVDS

                                                            Y 1 Reply Last reply Reply Quote Share 0
                                                            • Y
                                                              yizhi2021 LV 2 @tigger last edited by

                                                              @tigger 在 第一次调MIPI接口的显示屏,都是什么套路? 中说:

                                                              LVDS

                                                              LVDS芯片用不起,我只需要50cm就够了,如果是1lane,是否可以用好点的网线解决这个问题

                                                              1 Reply Last reply Reply Quote Share 0
                                                              • Referenced by  A anruliu 
                                                              • Referenced by  q1215200171 q1215200171 
                                                              • Referenced by  q1215200171 q1215200171 
                                                              • S
                                                                soso90 LV 7 @IAMLIUBO last edited by

                                                                经过一顿操作后,复刻成功了。补上一个镜像,方便验证tina_d1-h-nezha_uart0.img 。最后最后,有图有真像微信图片_20230427143145.jpg

                                                                1 Reply Last reply Reply Quote Share 0
                                                                • 1 / 1
                                                                • First post
                                                                  Last post

                                                                Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                                                                行为准则 | 用户协议 | 隐私权政策