微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 安卓底层LCD驱动调试,LCD驱动擦除程序该如何编写?

安卓底层LCD驱动调试,LCD驱动擦除程序该如何编写?

时间:04-25 来源:网络整理 点击:

  android平台下lcd调试流程:

  1)调试lcd背光,背光主要分为PMIC自带的和单独的DCDC,如果为PMIC自带的背光,一般平台厂商已经做好,直接调用接口即可,如果为单独的DCDC驱动,则需要用GPIO控制DCDC的EN端

  2)确认lcd的模拟电,io电是否正常

  3)根据lcd的分辨率,RGB/CPU/MIPI等不同的接口,配置控制寄存器接口

  4)根据lcd spec配置PCLK的频率,配置PCLK,VSYNC,HSYNC,DE等控制线的极性

  5)使用示波器测试所有clk的波形,确认频率,极性是否符合要求

  6)使用示波器测试data线,看是否有数据输出,bpp的设置是否正确

  7)如果lcd需要初始化,配置spi的接口,一般分为cpu自带的spi控制器,和gpio模拟的spi。

  8)根据lcd spec中的初始化代码进行lcd的初始化

  9)用示波器测量lcd的spi clk及数据线,确认是否正常输出

  10)正常情况下,此时lcd应该可以点亮。如果没有点亮,按照上述步骤1到9,逐项进行检查测试,重点检查第5项,clk的极性

  11)如果lcd点亮,但是花屏。则需要先确认数据格式是否正确,然后确认fb里的数据是否正常,有以下几种方法确认fb里的数据

  i)cat /dev/graphics/fb0 》 /sdcard/fb0,然后将/sdcard/fb0 》到另一台相同分辨率及相同格式的手机上,看图片显示是否正常 ii)使用irfanview软件显示cat /dev/graphics/fb0出来的raw数据,注意要正确设置分辨率及格式,否则显示花屏 iii)如果adb连接正常,可以使用豌豆莢等软件,查看fb中的数据是否正常

  通过以上三种途径,如果确认fb中的数据正常显示,则很可能为lcd初始化代码的问题,或者clk极性的问题,如果fb数据不正常,则可能为lcd控制寄存器配置不正常导致。

  LCD屏的调试注意事项

  1. Pix clock是否在规定的范围内。

  2. Pclk是否极性正确。上升沿还是下降沿。

  3. 变频引起的闪屏问题。可以通过锁定频率来试验是否是变频引起。

  LCD擦除程序如何编写?

  下面是我去掉lcd驱动的过程:linux3.0.1

  1.Make menuconfig

  -》 Device Drivers

  ---》 Graphics support

  ---》(M)S3C FramebufferSupport (eXtended)

  2. -》 Device Drivers

  ---》MulTImedia support

  ---》Video capture adapters

  ---》 (去掉)Samsung TV Driver

  3.vi drivers/media/video/samsung/fimc/s3c_fimc_core.c

  注释掉//ctrl-》open_lcdfifo= s3cfb_enable_local;

  //ctrl-》close_lcdfifo = s3cfb_enable_dma;

  否则会出现如下错误:

  /home/yubo/linux/zImage/3.0.1nolcd/drivers/media/video/samsung/fimc/s3c_fimc_core.c:468:undefined reference to `s3cfb_enable_local‘

  /home/yubo/linux/zImage/3.0.1nolcd/drivers/media/video/samsung/fimc/s3c_fimc_core.c:468:undefined reference to `s3cfb_enable_dma’

  4.vi drivers/video/samsung/Makefile

  注释掉#obj-$(CONFIG_FB_S3C_EXT) += s3cfb.o否则make modules会出错

  5. 拷贝drivers/video/cfbcopyarea.ko

  drivers/video/cfbfillrect.ko

  drivers/video/cfbimgblt.ko

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top