全志V40 HDMI + LVDS实现双屏异显

1.1   适用范围

  ES403属于商显智能主板,普遍适用于:广告机、数字标牌、智能自助终端、智能零售终端、O2O智能设备等。

1.2   产品概述

  ES401采用全志V40Cortex-A7 四核CPU,搭载Android5.1系统,主屏高达1.2GHz,性能突出,性价比高。GPU采用Mail 400MP2,一流的图片和视频处理能力,是您在广告机、智能终端上的最佳选择。

1.3 产品特点

   ♦  高清晰度。最大支持1080P的解码和各种LVDS信号显示屏;4lane MIPI DSI,最大支持1920X1200@60fps

    支持远程、SD卡/TF卡、电脑等多种升级方式。

   ♦  SD卡/FG卡配置屏参,即插即亮,完美支持各尺寸,各分辨率LVDS显示屏。

     完美支持行业主流发布软件、行业应用软件,即装即用。

     完美支持红外、光学、电容、电阻等多种主流触摸屏,支持免驱触摸屏的HID配置,无需调试。

     高扩展度。4路USB和7路串口,3路I2C、I2S和SPI接口,完美支持主流USB/串口设备,打印机、刷卡器、密码键盘、指纹仪、摄像头、身份证识别、二维码扫描仪等,提供demon测试程序。

     内置3G/4G接口,支持华为、龙尚、中兴、域格、美格等主流模块,支持上网和通话。

1.4  外观及接口示意图

全志V40 HDMI + LVDS实现双屏异显_第1张图片

主要硬件指标

CPU

           全志V40,四核,主屏1.2GHz

  内存

                         *G

内置存储器

EMMC/NAND FLASH  4/8/16/32G(可选)

解码分辨率

最高支持1080P

操作系统

                        Android 4.42

播放模式

支持循环、定时、插播等多种播放模式

网络支持

3G、以太网、支持WIFI、蓝牙4.0、无线外设扩展

视频播放

支持wmv、avi、flv、rm、rmvb、mpeg、ts、mp4等

图片格式

支持BMP、JPEG、PNG、GIF

USB2.0接口

3个 USB HOST、1个USB插座

串口

7个串口插座

以太网

1个,10M/100M自适应以太网

SD卡

SD/TF卡(可选)

SATA接口

支持内置SATA硬盘

LVDS输出

1个,支持双通道LVDS,最大1080P@60fps

MIPI输出

1个,支持支持4 lane MIPI DSI,最大1920X1200@60fps

RGB输出

1个,支持24位RGB屏,最大1080P@60fps

HDMI输出

1个,支持1080P输出

音视频输出

支持SVBS视频输出、左右声道输出,内置双通道4R/3W功放

RTC实时时钟

支持

定时开关机

支持

系统升级

支持USB升级,网络升级,SD/TF卡升级



这次基于全志的车机平台的代码 android 4.42作为来修改,因为作为一款车机平台,用到的显示接口比较单一,一般就是LCD接口。项目要求支持双显,这里我们把HDMI 修改为EXTERNAL DISPLAY, LVDS MAIN DISPLAY,改动比较大,从内核驱动,到显示框架,全部修改了一遍。

显示相关的代码路径如下:

lichee/linux-3.10/drivers/video/sunxi/disp2/
disp  hdmi  tv

frameworks/base/core/java/android/hardware/display
DisplayManagerGlobal.java   IDisplayManager.aidl          VirtualDisplay.java  WifiDisplaySessionInfo.java
DisplayManager.java         IDisplayManagerCallback.aidl  WifiDisplay.aidl     WifiDisplayStatus.aidl
DisplayManagerPolicy2.java  outputstate                   WifiDisplay.java     WifiDisplayStatus.java


hardware/aw/hwc/magton/
Android.mk  hal.cpp  hwc.cpp  hwc.h  hwc_others.cpp  hwc_sunxi.cpp  sunxi_display2.h


;----------------------------------------------------------------------------------
;disp init configuration
;
;disp_mode             (0:screen0)
;screenx_output_type   (0:none; 1:lcd; 3:hdmi;)
;screenx_output_mode   (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50)
;                      (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60)
;fbx format            (4:RGB655 5:RGB565 6:RGB556 7:ARGB1555 8:RGBA5551 9:RGB888 10:ARGB8888 12:ARGB4444)
;fbx pixel sequence    (0:ARGB 1:BGRA 2:ABGR 3:RGBA)
;fb0_scaler_mode_enable(scaler mode enable, used FE)
;fbx_width,fbx_height  (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0)
;lcdx_backlight        (lcd init backlight,the range:[0,256],default:197
;lcdx_yy               (lcd init screen bright/contrast/saturation/hue, value:0~100, default:50/50/57/50)
;lcd0_contrast         (LCD contrast, 0~100)
;lcd0_saturation       (LCD saturation, 0~100)
;lcd0_hue              (LCD hue, 0~100)
;----------------------------------------------------------------------------------
[disp]
disp_init_enable         = 1
disp_mode                = 0


;dev%d_output_type 1.LCD 2.TV 4.HDMI 8.VGA
dev0_output_type = 1
dev0_output_mode = 0
dev0_screen_id = 0
dev0_do_hpd = 0
def_output_dev = 0
hdmi_mode_check = 1


screen0_output_type      = 1
screen0_output_mode      = 0


screen1_output_type      = 3
screen1_output_mode      = 4


fb0_format               = 0
fb0_width                = 0
fb0_height               = 0


fb1_format               = 0
fb1_width                = 0
fb1_height               = 0


lcd0_backlight           = 50
lcd1_backlight           = 50


lcd0_bright              = 50
lcd0_contrast            = 50
lcd0_saturation          = 57
lcd0_hue                 = 50


lcd1_bright              = 50
lcd1_contrast            = 50
lcd1_saturation          = 57
lcd1_hue                 = 50


;----------------------------------------------------------------------------------
;lcd0 configuration


;lcd_if:               0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp; 6:extend dsi
;lcd_x:                lcd horizontal resolution
;lcd_y:                lcd vertical resolution
;lcd_width:            width of lcd in mm
;lcd_height:           height of lcd in mm
;lcd_dclk_freq:        in MHZ unit
;lcd_pwm_freq:         in HZ unit
;lcd_pwm_pol:          lcd backlight PWM polarity
;lcd_pwm_max_limit     lcd backlight PWM max limit(<=255)
;lcd_hbp:              hsync back porch
;lcd_ht:               hsync total cycle
;lcd_vbp:              vsync back porch
;lcd_vt:               vysnc total cycle
;lcd_hspw:             hsync plus width
;lcd_vspw:             vysnc plus width
;lcd_lvds_if:          0:single link;  1:dual link
;lcd_lvds_colordepth:  0:8bit; 1:6bit
;lcd_lvds_mode:        0:NS mode; 1:JEIDA mode
;lcd_frm:              0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither
;lcd_io_phase:         0:noraml; 1:intert phase(0~3bit: vsync phase; 4~7bit:hsync phase;
;                      8~11bit:dclk phase; 12~15bit:de phase)
;lcd_gamma_en          lcd gamma correction enable
;lcd_bright_curve_en   lcd bright curve correction enable
;lcd_cmap_en           lcd color map function enable
;deu_mode              0:smoll lcd screen; 1:large lcd screen(larger than 10inch)
;lcdgamma4iep:         Smart Backlight parameter, lcd gamma vale * 10;
;                      decrease it while lcd is not bright enough; increase while lcd is too bright
;smart_color           90:normal lcd screen 65:retina lcd screen(9.7inch)
;----------------------------------------------------------------------------------
[lcd0]
lcd_used            = 1


lcd_driver_name     = "default_lcd"
lcd_backlight       = 100
lcd_if              = 3
lcd_x               = 1920
lcd_y               = 1080
lcd_width           = 150
lcd_height          = 94
lcd_dclk_freq       = 150
lcd_pwm_used        = 1
lcd_pwm_ch          = 0
lcd_pwm_freq        = 50000
lcd_pwm_pol         = 1
lcd_pwm_max_limit   = 255
lcd_hbp             = 20
lcd_ht              = 2200
lcd_hspw            = 10
lcd_vbp             = 10
lcd_vt              = 2250
lcd_vspw            = 5
lcd_lvds_if         = 1
lcd_lvds_colordepth = 0
lcd_lvds_mode       = 0
lcd_frm             = 1
lcd_hv_clk_phase    = 0
lcd_hv_sync_polarity= 0
lcd_gamma_en        = 0
lcd_bright_curve_en = 0
lcd_cmap_en         = 0


deu_mode            = 1
lcdgamma4iep        = 22
smart_color         = 90


lcd_bl_en           = 1
lcd_bl_en_used    =1
lcd_bl_en           =port:PB09<1><0><1>
lcd_power           = "vcc-lcd"


lcdd0               = port:PD00<3><0>
lcdd1               = port:PD01<3><0>
lcdd2               = port:PD02<3><0>
lcdd3               = port:PD03<3><0>
lcdd4               = port:PD04<3><0>
lcdd5               = port:PD05<3><0>
lcdd6               = port:PD06<3><0>
lcdd7               = port:PD07<3><0>
lcdd8               = port:PD08<3><0>
lcdd9               = port:PD09<3><0>
lcdd10               = port:PD10<3><0>
lcdd11               = port:PD11<3><0>
lcdd12               = port:PD12<3><0>
lcdd13               = port:PD13<3><0>
lcdd14               = port:PD14<3><0>
lcdd15               = port:PD15<3><0>
lcdd16               = port:PD16<3><0>
lcdd17               = port:PD17<3><0>
lcdd18               = port:PD18<3><0>
lcdd19               = port:PD19<3><0>
lcd_pin_power       = "vcc-pd"


[lcd0_suspend]
lcdd0               = port:PD00<7><0>
lcdd1               = port:PD01<7><0>
lcdd2               = port:PD02<7><0>
lcdd3               = port:PD03<7><0>
lcdd4               = port:PD04<7><0>
lcdd5               = port:PD05<7><0>
lcdd6               = port:PD06<7><0>
lcdd7               = port:PD07<7><0>
lcdd8               = port:PD08<7><0>
lcdd9               = port:PD09<7><0>
lcdd10               = port:PD10<7><0>
lcdd11               = port:PD11<7><0>
lcdd12               = port:PD12<7><0>
lcdd13               = port:PD13<7><0>
lcdd14               = port:PD14<7><0>
lcdd15               = port:PD15<7><0>
lcdd16               = port:PD16<7><0>
lcdd17               = port:PD17<7><0>
lcdd18               = port:PD18<7><0>
lcdd19               = port:PD19<7><0>
;----------------------------------------------------------------------------------
;pwm config
;----------------------------------------------------------------------------------
[pwm0]
pwm_used            = 1
pwm_positive        = port:PB2<3><0>


[pwm0_suspend]
pwm_positive        = port:PB2<7><0>


;----------------------------------------------------------------------------------
;hdmi configuration
;hdmi_used:             if hdmi is used
;hdmi_hdcp_enable:      if hdmi hdcp function enable
;hdmi_cts_compatibility:if hdmi cts test compatibility enable
;hdmi_power:            power name for hdmi
;----------------------------------------------------------------------------------
[hdmi]
hdmi_used = 1
hdmi_hdcp_enable = 0
hdmi_cts_compatibility = 0

全志V40 HDMI + LVDS实现双屏异显_第2张图片

双显实现了,剩下就是调用系统的api接口实现异显的功能了。

你可能感兴趣的:(全志V40 HDMI + LVDS实现双屏异显)