天嵌 ARM开发社区

 找回密码
 注册
查看: 3611|回复: 13

2416初始化AT070TN83_V.1

[复制链接]
dingit1024 发表于 2013-1-28 10:30:01 | 显示全部楼层 |阅读模式
本帖最后由 dingit1024 于 2013-1-28 10:51 编辑

做LCD的初始化时,LCD颜色会慢慢变化到一个界面后不再变化。已经设置这些寄存器快2周了,觉得设置的没什么问题了。但是,这会是哪里的问题,希望大家不吝赐教,指点小弟一下。刚初始化后的LCD颜色会慢慢变化,屏幕也不闪动,过一段后,会稳定到下面的情况(我初始化后做了清屏,设为全黑)
初始化参数:
#define LCD_VBPD 29-1   //在帧开始处,垂直后沿是不活动行的数量,在垂直同步过程之后
#define LCD_VFPD 13-1//VSFP(13) //在帧末尾处,垂直前沿是不活动行的数量,在垂直同步过程之前。
#define LCD_VSPW 3-1//VSPW(3)//通过计算不活动行的数量,垂直同步脉冲宽度决定VSYNC 脉冲的高点品宽度。
#define LCD_HBPD 40-1//HSBP-HSPW(88-48)//水平后沿是HSYNC 下降沿和有效数据开始之间的VCLK 周期的数量。
#define LCD_HFPD 40-1//HSFP(40)//水平前沿是有效数据末端和HSYNC 上升沿之间的VCLK 周期的数量。
#define LCD_HSPW 48-1//HSPW(48)//通过计算不VCLK 的数量,水平同步脉冲宽度决定HSYNC 脉冲的高点品宽度
#define LCD_LINEVAL 480 //垂直分辨率
#define LCD_HOZVAL 800 //水平分辨率
//#define LCD_BUF_SIZE(LCD_XSIZE*(LCD_YSIZE+1))
//缓冲区大小,留有空闲,防止溢出

/*VIDCON0:视频主控制器0*/
#define VIDCON0_VIDOUT (0 << 22)//RGB接口
#define VIDCON0_PNRMODE (0 << 13)//显示格式 RGB格式
#define VIDCON0_CLKVALUP (1 << 12)//选择CLKVAL_F 更新时序控制 ,帧开始时控制
#define VIDCON0_CLKVAL_F (3 << 6)//时钟分频  VCLK=视频时钟源/(CLKVAL+1) CLKVAL>=1  
#define VIDCON0_VCLKEN (1 << 5)//VCLK使能控制
#define VIDCON0_CLKDIR (1 << 4)//用CLKVAL_F 寄存器划分时钟源
#define VIDCON0_CLKSEL_F (0 << 2)//选择时钟源
#define VIDCON0_ENVID (3 << 0)//视频输出及显示控制信号

/*VIDCON1:视频主控制器1*/
#define VIDCON1_IVCLK (0<< 7)//时钟下降沿有效
#define VIDCON1_IHSYNC (0 << 6)//HSYNC
#define VIDCON1_IVSYNC (0 << 5)//VSYNC
#define VIDCON1_IVDEN (0 << 4)//DE高电平有效

/*VIDTCON0 视频时序控制寄存器0*/
#define VIDTCON0_VBPD (LCD_VBPD << 16)
#define VIDTCON0_VFPD (LCD_VFPD << 8)
#define VIDTCON0_VSPW (LCD_VSPW << 0)

/*VIDTCON1 视频时序控制1寄存器*/
#define VIDTCON1_HBPD (LCD_HBPD << 16)
#define VIDTCON1_HFPD (LCD_HFPD << 8)
#define VIDTCON1_HSPW (LCD_HSPW << 0)

/*VIDTCON2 视频时序控制2寄存器*/
#define VIDTCON2_LINEVAL (LCD_LINEVAL<< 11)
#define VIDTCON2_HOZVAL (LCD_HOZVAL << 0)

/*WINCON0  窗口0控制寄存器*/
#define WINCON0_BUFSEL (0 << 23)//缓冲区设置为0
#define WINCON0_BUFAUTOEN (0 <<22) //双缓冲区自动控制位,由BUFSEL控制
#define WINCON0_BITSWP (0 << 18)//位交换禁止
#define WINCON0_BYTSWP (0 << 17)//字节交换禁止
#define WINCON0_HAWSWP (0 << 16)//半子交换使能
#define WINCON0_BURSTLEN (0 << 9)//DMA 的突发最大长度选择:16BYTE
#define WINCON0_BPPMODE_F (8 << 2)//18bit RGB666
#define WINCON0_ENWIN_F (1 << 0)//开启wincon0

//窗口0位置控制A寄存器VIDOSD0A
#define VIDOSD0A_OSD_LeftTopX_F (0 << 11)//左上角的OSD 图像像素横向屏幕坐标
#define VIDOSD0A_OSD_LeftTopY_F (0 << 0) /*左上角的OSD 图像像素纵向屏幕坐标(对于接口TV输出而言,这个值必须设置在屏幕y
坐标值的一半位置。Y 坐标值的初始位置必须为偶数)*/
//窗口0位置控制B寄存器VIDOSD0B
稳定后的LCD

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
亚瑟王 发表于 2013-1-28 16:15:06 | 显示全部楼层
亲,TQ2416开发板的u-boot和Linux、WinCE默认已经支持TN83的LCD的。如果你不是使用的TQ2416开发板请来联系天嵌科技的销售工程师购买。
 楼主| dingit1024 发表于 2013-1-28 16:34:43 | 显示全部楼层
亚瑟王 发表于 2013-1-28 16:15
亲,TQ2416开发板的u-boot和Linux、WinCE默认已经支持TN83的LCD的。如果你不是使用的TQ2416开发板请来联系天 ...

我用的是TQ2416,现在想做它的LCD驱动程序,所以要初始化LCD控制器的寄存器
 楼主| dingit1024 发表于 2013-1-28 16:45:56 | 显示全部楼层
亚瑟王 发表于 2013-1-28 16:15
亲,TQ2416开发板的u-boot和Linux、WinCE默认已经支持TN83的LCD的。如果你不是使用的TQ2416开发板请来联系天 ...

屏幕颜色慢慢变化是那些寄存器设置的问题,还望给予指点,如果能提供初始化寄存器代码,真的感激不尽呀,现在被这个LCD弄得很头大呀
亚瑟王 发表于 2013-1-28 16:52:50 | 显示全部楼层
dingit1024 发表于 2013-1-28 16:34
我用的是TQ2416,现在想做它的LCD驱动程序,所以要初始化LCD控制器的寄存器

你用的LCD是天嵌科技提供的?还是自己做的?你用什么软件环境?
 楼主| dingit1024 发表于 2013-1-28 16:56:54 | 显示全部楼层
亚瑟王 发表于 2013-1-28 16:52
你用的LCD是天嵌科技提供的?还是自己做的?你用什么软件环境?

天嵌的板子,SecureCRT+win7虚拟机+fedora11
亚瑟王 发表于 2013-1-28 17:03:30 | 显示全部楼层
dingit1024 发表于 2013-1-28 16:56
天嵌的板子,SecureCRT+win7虚拟机+fedora11

你说Linux的LCD驱动?内核中提供的参数是支持TN83的。这里说的是天嵌科技的A70那个型号的LCD。
 楼主| dingit1024 发表于 2013-1-28 17:06:49 | 显示全部楼层
亚瑟王 发表于 2013-1-28 17:03
你说Linux的LCD驱动?内核中提供的参数是支持TN83的。这里说的是天嵌科技的A70那个型号的LCD。

恩恩,是linux的lcd驱动。内核中的A70的BPP是16,我用的这个个屏是18,不是一个屏呀。
亚瑟王 发表于 2013-1-28 17:10:41 | 显示全部楼层
dingit1024 发表于 2013-1-28 17:06
恩恩,是linux的lcd驱动。内核中的A70的BPP是16,我用的这个个屏是18,不是一个屏呀。

一般情况18位的屏实际都是用16位。
 楼主| dingit1024 发表于 2013-1-28 17:12:57 | 显示全部楼层
亚瑟王 发表于 2013-1-28 17:10
一般情况18位的屏实际都是用16位。

嗯?什么意思?我试了内核中16BPP的屏参数,也是不行的
亚瑟王 发表于 2013-1-28 17:50:06 | 显示全部楼层
dingit1024 发表于 2013-1-28 17:12
嗯?什么意思?我试了内核中16BPP的屏参数,也是不行的

要不你联系天嵌科技的销售购买一个天嵌科技的TN83的LCD,要不你联系天嵌科技的销售把你的TN83的屏邮过来看看。
 楼主| dingit1024 发表于 2013-1-28 18:17:13 | 显示全部楼层
亚瑟王 发表于 2013-1-28 17:50
要不你联系天嵌科技的销售购买一个天嵌科技的TN83的LCD,要不你联系天嵌科技的销售把你的TN83的屏邮过来看 ...

屏有问题?不会吧。烧写进入带LCD驱动的镜像,开机logo显示是没问题的。
亚瑟王 发表于 2013-1-30 10:27:43 | 显示全部楼层
dingit1024 发表于 2013-1-28 18:17
屏有问题?不会吧。烧写进入带LCD驱动的镜像,开机logo显示是没问题的。

亲,我现在糊涂了。
liruilirui89 发表于 2013-2-28 14:46:55 | 显示全部楼层
可以讲解下/*WINCON0  窗口0控制寄存器*/各个位的作用吗?
#define WINCON0_BUFSEL (0 << 23)//缓冲区设置为0
#define WINCON0_BUFAUTOEN (0 <<22) //双缓冲区自动控制位,由BUFSEL控制
#define WINCON0_BITSWP (0 << 18)//位交换禁止
#define WINCON0_BYTSWP (0 << 17)//字节交换禁止
#define WINCON0_HAWSWP (0 << 16)//半子交换使能
#define WINCON0_BURSTLEN (0 << 9)//DMA 的突发最大长度选择:16BYTE
#define WINCON0_BPPMODE_F (8 << 2)//18bit RGB666
#define WINCON0_ENWIN_F (1 << 0)//开启wincon0

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-3-28 21:39 , Processed in 1.078125 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表