# LCD的参数适配
LCD的参数和其他外设一样在fex文件里修改
像分辨率和画布偏移之类的,都在以下字段:
~~~
lcd_x = 800
lcd_y = 480
lcd_dclk_freq = 33
lcd_hv_hspw = 23
lcd_hbp = 46
lcd_ht = 1055
lcd_hv_vspw = 1
lcd_vbp = 10
lcd_vt = 1050
~~~
例如改成1024*768
~~~
lcd_x = 1024
lcd_y = 768
lcd_dclk_freq = 65
lcd_hv_vspw = 6
lcd_hv_hspw = 136
lcd_hbp = 180
lcd_ht = 1344
lcd_vbp = 29
lcd_vt = 1612
~~~
在超分辨率使用时,注意以下代码(具体查看源码)的限制
~~~
/* hv panel, CPU panel and ttl panel */
if (info->lcd_if == 0 || info->lcd_if == 1 || info->lcd_if == 2) {
/* MHz */
if (lcd_dclk_freq > 2000000 && lcd_dclk_freq <= 297000000) {
/* divider for dclk in tcon0 */
*divider = 297000000 / (lcd_dclk_freq);
pll_freq = lcd_dclk_freq * (*divider);
} else {
return -1;
}
}
~~~
以下是未整理的移植时的手记,可以参考:
~~~
drivers/video/sunxi_display.c
video_hw_init
drivers/video/videomodes.c
int video_get_params (struct ctfb_res_modes *pPar, char *penv)
mode: 0~9 640*480~1920*1200,默认0
x:
y:
refresh:
le:left_margin
ri:right_margin
up:upper_margin
lo:lower_margin
hs:hsync_len
vs:vsync_len
sync:sync
#define FB_SYNC_HOR_HIGH_ACT 1 /* horizontal sync high active */
#define FB_SYNC_VERT_HIGH_ACT 2 /* vertical sync high active */
#define FB_SYNC_EXT 4 /* external sync */
#define FB_SYNC_COMP_HIGH_ACT 8 /* composite sync high active */
#define FB_SYNC_BROADCAST 16 /* broadcast video timings */
/* vtotal = 144d/288n/576i => PAL */
/* vtotal = 121d/242n/484i => NTSC */
#define FB_SYNC_ON_GREEN 32 /* sync on green */
vmode:vmode
#define FB_VMODE_NONINTERLACED 0 /* non interlaced */
#define FB_VMODE_INTERLACED 1 /* interlaced */
#define FB_VMODE_DOUBLE 2 /* double scan */
#define FB_VMODE_ODD_FLD_FIRST 4 /* interlaced: top line first */
pclk:pixclock
pclk_khz:pixclock_khz
depth: 色深
bp = mode->hsync_len + mode->left_margin;
10 (43-10)=33
total = mode->xres + mode->right_margin + bp;
480 8 43
bp = mode->vsync_len + mode->upper_margin;
10 (12-10)=2
total = mode->yres + mode->lower_margin + bp;
272 4 12
x:480,y:272,depth:18,pclk_khz:9000,le:33,ri:8,up:2,lo:4,hs:10,vs:10,sync:0,vmode:0
x:800,y:480,depth:18,pclk_khz:33000,le:100,ri:170,up:35,lo:2,hs:10,vs:10,sync:0,vmode:0
Setting up a 480x272 lcd console (overscan 0x0) 背光闪了下
drivers/video/sunxi_display.c
video_hw_init
sunxi_mode_set(mode, fb_dma_addr);
static void sunxi_lcdc_backlight_enable(void)
~~~
hsync + hbp(back porch) + X len + hfp(front porch)
hb(H blanking)
hbp相当于画面在画布中的偏移,
屏幕在左边和上边都有一部分不能显示的等待区域,要调整hbp移出这部分,
否则会有一部分在屏幕外不显示
hsync值只要大于1即可
- 荔枝派概览
- 合作编辑留言墙
- 荔枝派资源汇总
- 开箱清单
- 开箱指南
- 常见开箱问题
- 开箱经历
- FAQ
- TODO List
- 硬件设计全解析
- 主控芯片概览
- PCB基础知识
- PCB参数确认
- 电源电路设计
- DDR电路设计
- DDR原理图设计
- DDR_PCB_Layout
- DDR测试
- 存储电路设计
- Nand_Flash电路设计
- eMMC电路设计
- TF卡电路设计
- 显示接口设计
- RGB_LCD电路设计
- VGA电路设计
- CVBS电路设计
- LVDS_LCD电路设计
- CPU_LCD电路设计
- MIPI电路设计
- HDMI电路设计
- 摄像头接口设计
- 并行CSI摄像头接口设计
- MIPI摄像头接口设计
- 音频接口设计
- 内置CODEC接口设计
- I2S接口设计
- S/PDIF接口设计
- USB电路设计
- 射频部分设计
- 其它外设接口电路设计
- 生产测试全解析
- PCB生产解析
- 元器件采购解析
- SMT及后焊解析
- 可制造性分析
- PCBA测试解析
- 品控解析
- 包装及物流解析
- linux系统适配全解析
- 启动流程概览
- boot0
- boot1
- uboot
- kernel
- rootfs
- uboot编译指南
- 内核编译指南
- 主要外设适配解析
- DDR
- eMMC
- LCD
- VGA
- USB
- CSI
- WIFI
- BT
- codec
- tv-out
- 根文件系统构建指南
- busybox
- buildroot
- bootstrap
- debian
- ubuntu
- 安卓系统适配全解析
- 安卓编译系统解析
- 安卓系统架构解析
- 安卓下外设适配及其系统解析
- codec适配及Audio系统解析
- wifi适配
- usb适配
- pm解析
- uart适配
- 安卓ROM深度定制
- Zero Linux系统适配过程记录
- camdriod 走读
- linux下app应用举例
- opencv
- 讯飞SDK
- mxnet
- 安卓下app应用举例
- smali简介及反编译应用