Android LCD debugging instance process

Source: Internet
Author: User

References Before debugging:

1) debug the LCD backlight. The backlight is mainly divided into the built-in PMIC and the independent dcdc. If the backlight is the built-in PMIC, the general platform vendor has done a good job and can directly call the interface, if the driver is a separate dcdc driver, you need to use gpio to control the dcdc's en end.

2) check whether the analog and I/O power of the LCD are normal.

3) configure the control register Interface Based on the LCD resolution, RGB/CPU/mipi, and other interfaces.

4) configure the pclk Frequency Based on the LCD spec, and set the polarity of control lines such as pclk, vsync, hsync, And de.

5) use an oscilloscope to test the waveforms of all CLK and check whether the frequency and polarity meet the requirements.

6) use an oscilloscope to test the data line to check whether data output exists and whether BPP settings are correct.

7) if the LCD needs to be initialized, the SPI interface is configured, which is generally divided into the SPI controller of the CPU and the SPI simulated by gpio.

8) initialize the LCD according to the initialization code in the LCD spec.

9) use an oscilloscope to measure the spi clk and data cable of the LCD and check whether the LCD is output normally.

10) normally, the LCD should be able to light up. If it is not lit, perform the check and test one by one according to steps 1 to 9. Check the polarity of 5th items and CLK.

11) If the LCD light is on, but the screen is blurred. You must first confirm whether the data format is correct, and then confirm whether the data in FB is normal, there are several methods to confirm the data in FB

I) CAT/dev/graphics/fb0>/sdcard/fb0, and then move/sdcard/fb0> to another mobile phone with the same resolution and format to see if the picture is normal
Ii) use the irfanview software to display raw data from CAT/dev/graphics/fb0. Be sure to set the resolution and format correctly. Otherwise, the screen will be displayed.
Iii) If the ADB connection is normal, you can use software such as peas to check whether the data in FB is normal.

In the above three ways, If you confirm that the data in FB is properly displayed, it is likely that the LCD initialization code is incorrect or the CLK polarity is incorrect. If the FB data is abnormal, this may be caused by an abnormal LCD control register configuration.

 

LCD debugging considerations tips:

1. The data bits of the LCD interface must be matched. Otherwise, the screen will appear.

 

2 te_on is enabled based on the platform's needs. Otherwise, the startup interface will be disconnected and will remain in the logo area.

 

3 LCD configuration must be correct. Pay attention to both U-boot (BOOT logo required) and Kernel configuration. pay more attention to the configuration of the entire project.

 

4. Various major LCD registers must be correctly configured, including various voltage configurations, data format, interfacepixel format, te_on, and madctl... Otherwise, various problems may occur.

5. Whether the PIX clock is within the specified range.


6. Check whether the polarity of pclk is correct. The rising or falling edge.


7. flash screen problems caused by frequency conversion. You can test whether the frequency is caused by frequency conversion by locking the frequency.

 

Last week, I debugged the **-** LCD and added the initialization Code provided by the manufacturer to the project. After a simple modification, I modified the LCD module configuration in z7_wvga_hs_af.mak to compile and generate a burning file, burn like to the motherboard, there is a screen, and stay at the boot logo... The first screen call is so tangled...

 

After preliminary inspection by the boss, the LCD screen interface data is incorrect, and te_on must be enabled, should be changed to 16 bits...

Modify the source code, compile and generate burn-write files, and burn the machine ....

 

The problem persists ....

 

Carefully check the source code, whether te_on is enabled, vcom settings, and madctl settings are normal. carefully read the official LCD datasheet provided by te_on and check whether various voltage settings are correct...

Repeat the steps of source code modification, compilation, machine burning, and verification...

 

I still didn't do it by night. I thought about how to get the U-boot driver log and analyzed it. Maybe I could find the answer, so I welded rx (green), TX (white), Gnd (black ), set minicom in Ubuntu to get the U-boot startup log...

[1, 18.162000] registered taskstats version 1

[18.166000] RTC-sprd rtc-sprd.0: settingsystem clock to 00:08:00 UTC (1356998880)

[18.177000] serial_open tty ADDR = 0xcf36f800, filp = 0xcf0b7440, Port = 0xc4ac2d08

[18.182000] freeing init memory: 144 K

[2, 18.209000] failed to execute/init

[18.209000] failed to execute/init. Attempting defaults...

[18.219000] Kernel panic-not syncing: noinit found. Try passing init = option tokernel. See Linux documentation/init.txt for guidance.

[18.231000] [<c45330e0>] (unwind_backtrace + 0x0/0xfc) from [<c48e7714>] (panic + 0x60/0 xe4)

[18.231000] [<c48e7714>] (panic + 0x60/0 xe4) from [<c452c514>] (init_post + 0x88/0 xdc)

[18.246000] [<c452c514>] (init_post + 0x88/0 xdc) from [<c4508414>] (kernel_init + 0x124/0x168)

[18.246000] unwind: Unknown symbol addresscloud 8414

[2, 18.250000] unwind: Index not found c4508414

 

According to the boss's analysis, it was found that the various RAM address offsets were abnormal. We found that the z7_wvga_hs_af.mak configured the platform as 4 + 4, and this machine was a 4 + 2 platform. The kernel died due to abnormal offsets, modify the compilation, burn the machine, and find that the boot log is normal, and the system starts normally.

....

After twists and turns, LCD debugging was almost successful!

 

After testing, it was found that the frame rate was too high and the frame rate register was modified. This made me find the frame rate register in Datasheet for a long time. It was actually the register I saw earlier, after the old generation of the existing small horizontal lines appear, you can modify vcom, it is also done!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.