画了一块SparkRoad的RGB LCD扩展板
[复制链接]
这是我第一次调显示屏驱动,以前对LCD的显示接口不是很了解,这次一共买了三款,有支持i80 CPU接口的,有MDDI接口的,还有这个RGB接口的。MDDI和i80 CPU接口需要通过配置寄存器显示图像,适合在MCU上使用。RGB比较适合用在FPGA上,缺点是占用I/O比较多,它的时序和VGA一样,因为官方例程里已经提供了VGA驱动,只要把对应的参数设置好就能正确显示。
LCD的分辨率是640*480和我之前通过VGA测试的分辨率相同,不过参数和标准的VGA不同,如果使用原来的VGA驱动会显示不全。后来按照LCD的数据手册修改了前肩后肩和同步时间后可以正常显示。因为参数不一样,开始以为LCD和VGA同时显示需要写2个驱动,不过因为懒,我直接把VGA和LCD的线”并“到一起,使用LCD的驱动同时驱动VGA,没想到显示器不挑食,LCD的时序它也来者不拒。这样一个驱动就全搞定了,懒也有懒的好处。
这款LCD除了标准的RGB接口外它还有一个串行的配置接口,用来接口是RGB还是YUV、显示方向和伽马校正这些,是标准的SPI接口。LCD配置我用STM32G474写了一个SPI驱动来实现的,没有使用FPGA来弄,因为我准备画的全功能扩展板SparkRoad预留的I/O不够用了,加上这个板子的SD存储一直没调通,我准备在扩展板上挂一颗单片机(不使用软核了),使用单片机的QSPI接收EG4S20的数据然后写到SD卡里,同时实现LCD配置和一些人机界面类的东西。
|