AM335x-Uboot下的LCD驱动1280x800-failed解决方法

原创 2025-01-24 11:31:16

  AM335x-Uboot下的LCD驱动1280x800-failed解决方法

  1. 问题描述:

  uboot下显示图片,800x480、1024x600可以显示,如果1280x800则不能显示图片。

uboot-logo.png

图一 uboot logo

  2. 分析方法:

  2.1 首先测试波形,假设在kernel和uboot下设定同样的参数的时候

  #define WIDTH 1280

  #define HEIGHT 800

  #define HFP 200

  #define HBP 46

  #define HSW 40

  #define VFP 40

  #define VBP 3

  #define VSW 20

  #define FRESH_HZ 40

  .width = WIDTH,

  .height = HEIGHT,

  .hfp = HFP,

  .hbp = HBP,

  .hsw = HSW,

  .vfp = VFP,

  .vbp = VBP,

  .vsw = VSW,

  .pxl_clk = (WIDTH+HFP+HBP+HSW)*(HEIGHT+VFP+VBP+VSW)*FRESH_HZ,

  2.2 Kernel中可以显示1280x800的图片,其中的相关波形频率如下

  pclk 64MHZ

  vsync 47hz

  hsync 40Khz

  ac_bias 38khz

  lcd_data0 不一定 大概3MHZ

  lcd_data1 不一定 2.5mhz

  2.3 然后uboot下的波形频率如下

  pclk 64mhz kernel中是64MHZ

  vsync 140hz kernel中是47hz

  hsync 118khz kernel中是40Khz

  ac_bias 112khz kernel中是38khz

  lcd_data0 1.8mhz kernel中是3MHZ

  lcd_data1 1.5mhz kernel中是2.5mhz

  3. 原因分析:

  很明显,uboot下是有问题的,然后我们开始找问题,这么理解,如果是您是1280,则16*(msb+lsb+1)=1280 ,则msb=1 lsb=001111。然后根据实际print出来的寄存器的值是这样的,LCDC_RASTER_TIMING_0=44,data=0x2dc79cf0,从这里看出来msb就不是1,所以就是有问题

  4. 解决方法

  所以这里应该是设定Hsync的时候出错了,在文件Raster.c中的函数RasterHparamConfig,其中有如下代码

  ppl = (ppl & 0x000003f0) | ((ppl & 0x00000400) >> 8);

  HWREG(baseAddr + LCDC_RASTER_TIMING_0) = ppl;

  仔细分析,可以看出,这里的向右移8bit,需要修改成7bit,如下即可解决问题

  ppl = (ppl & 0x000003f0) | ((ppl & 0x00000400) >> 7);

  维芯科AM335x核心板,基于TI AM335x处理器设计的工业级核心板,广泛用于各种串口服务器,多串口网关等应用场景。




相关产品>

  • T153工控板

    ●CPU:T153,4核处理器,最高主频1 6GHz●MCU:600-MHz RISC-V E907●RAM:256MB 512MB 1GB DDR3●NAND:256MB 512MB NAND Flash●eM


    了解详情
    T153工控板
  • 全志T153核心板

    ●CPU:T153,4核处理器,最高主频1 6GHz●MCU:600-MHz RISC-V E907●RAM:256MB 512MB 1GB DDR3...


    了解详情
    全志T153核心板
  • RK3588工控板

    ●CPU:Rockchip RK3588●架构:四核Cortex-A76 + 四核Cortex-A55●NPU:6TOPS●内存:4GB 8GB 16GB LPDDR4x●Flash:32GB


    了解详情
    RK3588工控板
  • 瑞芯微RK3588核心板

    ●CPU:RK3588 RK3588J●架构:四核Cortex-A76 +四核Cortex-A55●NPU:6TOPS●RAM:4GB(默认) 8GB 16GB LPDDR4x●ROM:32GB(默认


    了解详情
    瑞芯微RK3588核心板