欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 全志A133 android10 mipi屏幕调试

全志A133 android10 mipi屏幕调试

2025/3/18 19:11:29 来源:https://blog.csdn.net/weixin_45639314/article/details/145992623  浏览:    关键词:全志A133 android10 mipi屏幕调试

一,确认屏幕信息

屏幕调试首先要查看屏幕规格书,主要看里面的屏供电电压vdd,背光供电电压,timing参数部分。

举个例子:

  1. 屏供电电压
    在这里插入图片描述
    可以看出供电电压为3.3V,过大则会烧屏;
  2. 背光供电电压
    在这里插入图片描述
    屏幕背光电压为12V;
  3. 屏timing参数
    在这里插入图片描述
    全志平台的timming跟其他平台有一些差异,具体公式如下:
lcd_dclk_freq的值,具体公式如下:
lcd_dclk_freq = lcd_ht * lcd_vt * fps(60) 
对于一直点不亮的mipi屏,可以适当加大数值,不一定要按照公式算出的准确结果!lcd_hbp = hbp+hspw;
lcd_ht = hbp+hspw+hfp+ht;
lcd_hspw = hspw;
lcd_vbp = vbp+vspw;
lcd_vt = vbp+vspw+vfp+vt;
lcd_vspw = vspw;

二,设备树配置

  1. 设备树配置,主要配置disp,lcd0这两个节点:
    代码路径:longan/device/config/chips/a133/configs/b6/board.dts
       disp: disp@06000000 {disp_init_enable         = <1>;disp_mode                = <0>;screen0_output_type      = <1>;screen0_output_mode      = <4>;screen1_output_type      = <1>;screen1_output_mode      = <4>;screen1_output_format    = <0>;screen1_output_bits      = <0>;screen1_output_eotf      = <4>;screen1_output_cs        = <257>;screen1_output_dvi_hdmi  = <2>;screen1_output_range     = <2>;screen1_output_scan      = <0>;screen1_output_aspect_ratio = <8>;dev0_output_type         = <1>;dev0_output_mode         = <4>;dev0_screen_id           = <0>;dev0_do_hpd              = <0>;dev1_output_type         = <4>;dev1_output_mode         = <10>;dev1_screen_id           = <1>;dev1_do_hpd              = <1>;def_output_dev           = <0>;hdmi_mode_check          = <1>;fb0_format               = <0>;fb0_width                = <720>;fb0_height               = <1280>;fb1_format               = <0>;fb1_width                = <0>;fb1_height               = <0>;chn_cfg_mode             = <1>;disp_para_zone           = <1>;/*VCC-LCD*/dc1sw-supply = <&reg_cldo4>;/*VCC-DSI*/cldo1-supply = <&reg_cldo1>;/*VCC-PD*/dcdc1-supply = <&reg_cldo3>;};
      lcd0: lcd0@01c0c000 {lcd_used            = <1>;lcd_driver_name     = "K080_IM2HYL802R_800X1280";  //mipi驱动lcd_backlight       = <50>;lcd_if              = <4>;lcd_x               = <720>;lcd_y               = <1280>;lcd_width           = <150>;lcd_height          = <36>;lcd_dclk_freq       = <58>;lcd_pwm_used        = <1>;lcd_pwm_ch          = <0>;lcd_pwm_freq        = <50000>;lcd_pwm_pol         = <1>;lcd_pwm_max_limit   = <255>;lcd_hbp             = <30>;lcd_ht              = <770>;lcd_hspw            = <6>;lcd_vbp             = <16>;lcd_vt              = <1311>;lcd_vspw            = <4>;lcd_frm             = <0>;lcd_gamma_en        = <0>;lcd_bright_curve_en = <0>;lcd_cmap_en         = <0>;deu_mode            = <0>;lcdgamma4iep        = <22>;smart_color         = <90>;lcd_dsi_if          = <0>;lcd_dsi_lane        = <4>;lcd_dsi_format      = <0>;lcd_dsi_te          = <0>;lcd_dsi_eotp        = <0>;lcd_pin_power = "dcdc1";lcd_power0 = "cldo1";//VCC-MIPI-LCD cldo1 1.8lcd_power1 = "dc1sw";//VCC-LCD cldo4 3.3lcd_gpio_1 = <&pio PD 22 1 0 3 1>;//LCD-RSTlcd_gpio_2 = <&pio PE 9 1 0 3 1>;//LCD0_PWREN_H PE9lcd_gpio_3 = <&r_pio PL 9 1 0 3 1>;//LCD0_PWREN_H_1V8pinctrl-0 = <&dsi4lane_pins_a>;pinctrl-1 = <&dsi4lane_pins_b>;lcd_bl_en = <&pio PH 18 1 1 0 3 1>;lcd_bl_0_percent    = <15>;lcd_bl_100_percent  = <100>;};
  1. uboot驱动配置
    上面lcd节点中“lcd_driver_name = "K080_IM2HYL802R_800X1280";”有引用驱动,mipi驱动部分平台已经是已经添加,我们只需要按照要求配置。如果uboot中没有添加驱动,那么连背光都不亮。驱动代码如下:
    代码路径:longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/K080_IM2HYL802R_800X1280.c

替换填入初始化代码(一般由屏厂提供,按照格式替换进全志的数组中)

/*add panel initialization below*/static struct LCM_setting_table lcm_init_setting[] = {{0xB9,    3,     {0xFF,0x83,0x94} },{0xBA,    6,     {0x63,0x03,0x68,0x6B,0xB2,0xC0} },{0xB1,   10,     {0x50,0x12,0x72,0x09,0x33,0x54,0x71,0x31,0x70,0x2F} },{0xB2,    6,     {0x00,0x80,0x64,0x0E,0x0D,0x2F} },{0xB4,   21,     {0x6C,0x6D,0x6C,0x6D,0x6C,0x6D,0x01,0x01,0xFF,0x75,0x00,0x3F,0x6C,0x6D,0x6C,0x6D,0x6C,0x6D,0x01,0x01,0xFF} },{0xB6,    2,     {0x73,0x73} },{0xD3,   33,     {0x00,0x00,0x07,0x07,0x40,0x07,0x10,0x00,0x08,0x10,0x08,0x00,0x08,0x54,0x15,0x0E,0x05,0x0E,0x02,0x15,0x06,0x05,0x06,0x47,0x44,0x0A,0x0A,0x4B,0x10,0x07,0x07,0x0E,0x40} },{0xD5,   44,     {0x1A,0x1A,0x1B,0x1B,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x24,0x25,0x18,0x18,0x26,0x27,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x21,0x18,0x18,0x18,0x18} },{0xD6,   44,     {0x1A,0x1A,0x1B,0x1B,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x21,0x20,0x18,0x18,0x27,0x26,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x25,0x24,0x18,0x18,0x18,0x18} },{0xE0,   58,     {0x00,0x0C,0x19,0x20,0x23,0x26,0x29,0x28,0x51,0x61,0x70,0x6F,0x76,0x86,0x89,0x8D,0x99,0x9A,0x95,0xA1,0xB0,0x57,0x55,0x58,0x5C,0x5E,0x64,0x6B,0x7F,0x00,0x0C,0x18,0x20,0x23,0x26,0x29,0x28,0x51,0x61,0x70,0x6F,0x76,0x86,0x89,0x8D,0x99,0x9A,0x95,0xA1,0xB0,0x57,0x55,0x58,0x5C,0x5E,0x64,0x6B,0x7F} },{0xC0,    2,     {0x1F,0x31} },{0xCC,    1,     {0x0B} },{0xD4,    1,     {0x02} },{0xBD,    1,     {0x02} },{0xD8,   12,     {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF} },{0xBD,    1,     {0x00} },{0xBD,    1,     {0x01} },{0xB1,    1,     {0x60} },{0xBD,    1,     {0x00} },{0xBF,    7,     {0x40,0x81,0x50,0x00,0x1A,0xFC,0x01} },//SLP OUT{0x11,     1,     {0x00} },      // SLPOUT{REGFLAG_DELAY, REGFLAG_DELAY, {120} },//DISP ON{0x29,     1,     {0x00} },      // DSPON{REGFLAG_DELAY, REGFLAG_DELAY, {5} },{REGFLAG_END_OF_TABLE, REGFLAG_END_OF_TABLE, {} }
};

LCD_panel_init函数用于初始化 LCD 面板,通过 DSI(Display Serial Interface)发送初始化命令序列。

static void LCD_panel_init(u32 sel)
{__u32 i;sunxi_lcd_dsi_clk_enable(sel);sunxi_lcd_delay_ms(20);sunxi_lcd_dsi_dcs_write_0para(sel, DSI_DCS_SOFT_RESET);sunxi_lcd_delay_ms(10);print_dsi_cmd(lcm_init_setting);  //打印mipi屏初始化参数for (i = 0; ; i++) {if (lcm_init_setting[i].count == REGFLAG_END_OF_TABLE)break;else if (lcm_init_setting[i].count == REGFLAG_DELAY)sunxi_lcd_delay_ms(lcm_init_setting[i].para_list[0]);
#ifdef SUPPORT_DSIelsedsi_dcs_wr(sel, lcm_init_setting[i].cmd, lcm_init_setting[i].para_list, lcm_init_setting[i].count);
#endif//break;}return;
}

一般情况下,按照如上步骤适配,基本都可以正常点亮屏幕。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词