拿ARM开发板点一块LCD屏,是嵌入式入门绕不开的一个环节。看着只是接几根线、改几个参数,真做起来花屏、偏移、颜色不对的问题一个接一个。把几个关键点搞明白,能少走不少弯路。
先分清接口类型。常见的有RGB并行接口、SPI接口和MCU接口(8080/6800)。RGB接口速度快,适合大尺寸屏,ARM9、Cortex-A系列一般用这种;SPI接口线少、速度慢,适合小尺寸低分辨率屏;MCU接口自带显存,多用在单片机方案上。买屏之前先确认开发板的LCD控制器支持哪种接口,别买回来发现接不上。
RGB接口要配时序参数,这是最容易出错的地方。水平方向的上/下沿(HBP/HFP)、同步脉冲宽度(HSPW),垂直方向的VBP/VFP/VSPW,再加上像素时钟频率,这几个值必须和屏的规格书一致。参数偏一点,画面就会整体偏移或者边缘出现黑边;时钟频率太高,屏直接不亮。
显存(framebuffer)的配置同样关键。ARM的LCD控制器会从内存里一块固定区域取像素数据,这块区域的起始地址、色深(16位RGB565还是24位RGB888)、一行像素数都要设对。显存通常放在SDRAM的保留区,要避开系统运行区域,否则会莫名花屏甚至死机。
点屏的步骤可以按这个顺序来:先确认背光和电源正常,屏幕能亮;再配置时序和显存,刷纯色测试红绿蓝;颜色对了再显示渐变色带,检查有没有偏色;最后上图片和文字。哪一步不对就停在哪一步排查,别一股脑全改。
常见故障也有规律。白屏多半是背光或时序没配;花屏往往是显存地址或色深不对;图像偏移是前后沿参数错了;闪烁则可能是像素时钟不稳定或者电源纹波大。用示波器量一下PCLK和行场同步信号,比盯着代码猜快得多。
现在很多新平台改用设备树描述屏幕参数,驱动层做得更规范,但底层那几个时序和显存的道理没变。把这套东西吃透,换平台也照样能上手。
下一篇:没有了