ESP32是国内比较火的IOT芯片厂商,在个人玩家圈子里备受好评
1.器件准备
- 40pin RGB 通用接口屏幕
这里的通用接口指的是市面上最常见的接口,并不属于某种标准
我拆开了吃灰已久的树莓派便携HDMI屏幕,在屏库上查看此型号,刚好满足需求,又剩下一笔大洋
- ESP32N16R8
选用带有pasram的esp32,是因为RGB屏幕分辨率比传统的SPI屏幕分辨率高,需要的屏幕缓冲区较大,内部的SRAM不足以支持,因此,LVGL的缓冲区放在psram中,LCD的DMA缓冲区存放在内部的SRAM内(DMA内存必须要在内部)
- FPC扩展座
开发板上没有直接可以连接RGB屏幕的接口,所以使用座子,将FPC通过杜邦线与ESP32连接在一起
2.软件测试
乐鑫在SDK中完成了很多工作,我们直接使用ESP_LCD这个组件,就可以实现多种屏幕的控制,并且乐鑫很贴心的移植好了LVGL
我们新建一个工程,模板选择rgb_panel,按照实际的线序连接ESP32和RGB屏幕
值得注意的是,我手里的屏幕,使能引脚悬空即可
并且ESP32的RGB只支持RGB565,但是手里的屏幕为RGB888,因此实际连接方式为:
- 屏幕的R3~R7 连接红色数据线
- 屏幕的G2~G7 连接绿色数据线
- 屏幕的B3~B7 连接蓝色数据线
- 我们放弃了数据低位,因为这些分量数据的影响最小
3.结果展示
杜邦线飞麻了,好几十根
4.其他
在接线正常的情况下,烧录进去程序后,基本屏幕就可以点亮了,如果屏幕无法点亮,可以从以下方向排查问题:
- disp on/off引脚是否正常
- hbp、hfp、vbp、vfp等配置参数是否正常,具体的要查看相关的屏幕手册,我这里运气比较好,直接点亮了