Difference between revisions of "IoTGateway/BSP/Linux/AM335x/Hardware module/LCD Module"

From ESS-WIKI
Jump to: navigation, search
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{DISPLAYTITLE:Display Module}}
 
{{DISPLAYTITLE:Display Module}}
[[IoTGateway/BSP/Linux/AM335x/Hardware_module | <font style="background-color:yellow"> ->Hardware Module </font> ]]<br>
+
[[IoTGateway/BSP/Linux/AM335x/Hardware_module | <font style="background-color:yellow"> <big><big>→Hardware Module</big></big> </font> ]]<br>
  
 
__TOC__
 
__TOC__
  
= LVDS timing setting on SDK version 1=
+
= LVDS timing setting on SDK =
* Add timing structure into dispaly driver
+
 
LDB-XGA is an example for the resolution of your LVDS panel. You can input
+
*Add timing structure into dispaly driver
the actual resolution of your LVDS panel here, such as 800x480, 1024x768, etc.
+
 
The system will accomplish the corresponding parameters automatically.
+
LDB-XGA is an example for the resolution of your LVDS panel. You can input the actual resolution of your LVDS panel here, such as 800x480, 1024x768, etc. The system will accomplish the corresponding parameters automatically. If the panel has problem to be activated, you may need to check the panel datasheet to configure the panel related parameters. The LVDS video mode database is stored in linux-3.2.0/drivers/video/da8xx-fb.c. You can add a new one for your LVDS panel.
If the panel has problem to be activated, you may need to check the panel
+
<pre>static struct da8xx_panel known_lcd_panels[] = {
datasheet to configure the panel related parameters. The LVDS video mode
 
database is stored in linux-3.2.0/drivers/video/da8xx-fb.c. You can add a new one
 
for your LVDS panel.
 
<pre>
 
static struct da8xx_panel known_lcd_panels[] = {
 
 
{
 
{
 
.name = "TFC_S9700RTWV35TR_01B",
 
.name = "TFC_S9700RTWV35TR_01B",
Line 30: Line 25:
 
}
 
}
 
</pre>
 
</pre>
The definition of da8xx_panel in linux-3.2.0/ drivers/video/da8xx-fb.c:
+
 
The name field is optional. If you input this value, it can be used in U-Boot
+
The definition of da8xx_panel in linux-3.2.0/ drivers/video/da8xx-fb.c: The name field is optional. If you input this value, it can be used in U-Boot environment settings. The refresh field is the screen refresh frame rate, such as 60Hz, 70Hz. The resolution can be filled in the xres & yres fields. The pixel clock (pixclock) is equaled to 10ʌ12 /(Total horizontal line * Total vertical line * DCLK). For example, the total horizontal line is 1344 DCLK, and total vertical number is 806 horizontal lines. The frame rate is 60 MHz. Therefore, we can get 10 12 /(1344*806*60) = 15385.<br/>The margin values can be seen as front porch & back porch.<br/>The sync_len means pulse width.<br/>The sync value indicates the sync polarity (low or high).
environment settings.
+
<pre>struct da8xx_panel {
The refresh field is the screen refresh frame rate, such as 60Hz, 70Hz. The
 
resolution can be filled in the xres & yres fields.
 
The pixel clock (pixclock) is equaled to 10ʌ12 /(Total horizontal line * Total vertical
 
line * DCLK). For example, the total horizontal line is 1344 DCLK, and total
 
vertical number is 806 horizontal lines. The frame rate is 60 MHz.
 
Therefore, we can get 10 12 /(1344*806*60) = 15385.<br>
 
The margin values can be seen as front porch & back porch.<br>
 
The sync_len means pulse width.<br>
 
The sync value indicates the sync polarity (low or high).<br>
 
<pre>
 
struct da8xx_panel {
 
 
const char
 
const char
 
name[25];
 
name[25];
Line 59: Line 43:
 
};
 
};
 
</pre>
 
</pre>
* Select the suitable panel timing
+
 
 +
*Select the suitable panel timing
 +
 
 
LVDS (Single) out, please set in u-boot as below:
 
LVDS (Single) out, please set in u-boot as below:
  
 
'''7’’ panle '''(TFC_S9700RTWV35TR_01B):
 
'''7’’ panle '''(TFC_S9700RTWV35TR_01B):
<pre>
+
<pre>setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=TFC_S9700RTWV35TR_01B"
setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=TFC_S9700RTWV35TR_01B"
 
 
</pre>
 
</pre>
 +
 
'''15’’ panle '''(INNOLUX_G150XGE_L04):
 
'''15’’ panle '''(INNOLUX_G150XGE_L04):
<pre>
+
<pre>setenv mmcargs "run bootargs_defaults;setenv  bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=INNOLUX_G150XGE_L04"
setenv mmcargs "run bootargs_defaults;setenv  bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=INNOLUX_G150XGE_L04"
 
 
</pre>
 
</pre>
  
 
'''18’’ panle '''(AUO_G185XW01_V1):
 
'''18’’ panle '''(AUO_G185XW01_V1):
<pre>
+
<pre>setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs}  console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=AUO_G185XW01_V1"
setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs}  console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=AUO_G185XW01_V1"
 
 
</pre>
 
</pre>
  
<br><br>
+
<br/>
 +
 
 +
= VGA Timing setting on SDK =
 +
 
 +
*Add timing structure into dispaly driver
  
= VGA Timing setting on SDK version 1=
 
* Add timing structure into dispaly driver
 
 
Same as LVDS.
 
Same as LVDS.
* Select the suitable VGA timing.
+
 
 +
*Select the suitable VGA timing.
 +
 
 
'''1024x768@60 resolution:'''
 
'''1024x768@60 resolution:'''
<pre>
+
<pre>setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_1024x768@60"
setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_1024x768@60"
 
 
</pre>
 
</pre>
 +
 
'''800x600@60 resolution:'''
 
'''800x600@60 resolution:'''
<pre>
+
<pre>setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_800x600@60"
setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_800x600@60"
 
 
</pre>
 
</pre>
'''1360x768@60 resolution: '''  
+
 
<pre>
+
'''1360x768@60 resolution:'''
setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_1360x768@60"
+
<pre>setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_1360x768@60"
 
</pre>
 
</pre>

Latest revision as of 10:38, 7 February 2017

→Hardware Module

LVDS timing setting on SDK

  • Add timing structure into dispaly driver

LDB-XGA is an example for the resolution of your LVDS panel. You can input the actual resolution of your LVDS panel here, such as 800x480, 1024x768, etc. The system will accomplish the corresponding parameters automatically. If the panel has problem to be activated, you may need to check the panel datasheet to configure the panel related parameters. The LVDS video mode database is stored in linux-3.2.0/drivers/video/da8xx-fb.c. You can add a new one for your LVDS panel.

static struct da8xx_panel known_lcd_panels[] = {
{
.name = "TFC_S9700RTWV35TR_01B",
.width = 800,
.height = 480,
.hfp = 127,
.hbp = 127,
.hsw = 2,
.vfp = 22,
.vbp = 22,
.vsw = 1,
.pxl_clk = 20000000,
.invert_pxl_clk = 0,
},
}

The definition of da8xx_panel in linux-3.2.0/ drivers/video/da8xx-fb.c: The name field is optional. If you input this value, it can be used in U-Boot environment settings. The refresh field is the screen refresh frame rate, such as 60Hz, 70Hz. The resolution can be filled in the xres & yres fields. The pixel clock (pixclock) is equaled to 10ʌ12 /(Total horizontal line * Total vertical line * DCLK). For example, the total horizontal line is 1344 DCLK, and total vertical number is 806 horizontal lines. The frame rate is 60 MHz. Therefore, we can get 10 12 /(1344*806*60) = 15385.
The margin values can be seen as front porch & back porch.
The sync_len means pulse width.
The sync value indicates the sync polarity (low or high).

struct da8xx_panel {
const char
name[25];
/* Full name <vendor>_<model> */
unsigned short width;
unsigned short height;
int      hfp;  /* Horizontal front porch*/
int      hbp;  /* Horizontal back porch*/
int      hsw;  /* Horizontal Sync Pulse Width*/
int      vfp;  /* Vertical front porch*/
int      vbp;  /* Vertical back porch*/
int      vsw; /* ertical Sync Pulse Width*/
unsigned int pxl_clk;  /* Pixel clock*/
unsigned charinvert_pxl_clk;  /* Invert Pixel clock */
};
  • Select the suitable panel timing

LVDS (Single) out, please set in u-boot as below:

7’’ panle (TFC_S9700RTWV35TR_01B):

setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=TFC_S9700RTWV35TR_01B"

15’’ panle (INNOLUX_G150XGE_L04):

setenv mmcargs "run bootargs_defaults;setenv  bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=INNOLUX_G150XGE_L04"

18’’ panle (AUO_G185XW01_V1):

setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs}  console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} lvds_panel=AUO_G185XW01_V1"


VGA Timing setting on SDK

  • Add timing structure into dispaly driver

Same as LVDS.

  • Select the suitable VGA timing.

1024x768@60 resolution:

setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_1024x768@60"

800x600@60 resolution:

setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_800x600@60"

1360x768@60 resolution:

setenv mmcargs "run bootargs_defaults;setenv bootargs ${bootargs} console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ip=${ip_method} video_mode= VGA_1360x768@60"