历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2018年11月26日 | 2416RBG接口LCD换成I80接口LCD驱动修改NK部分

2018-11-26 来源:eefocus

在 OEMInit 里面初始化 LCD 。


1、初始化 IO 


       volatile S3C2416_IOPORT_REG *s2450IOP = (S3C2416_IOPORT_REG *)OALPAtoVA(S3C2416_BASE_REG_PA_IOPORT, FALSE);


    s2450IOP->MISCCR |= (1<<28);  // select LCD controller for TFT lcd controller


    s2450IOP->GPCUDP     = 0xFFFFFFFF;


    s2450IOP->GPCCON    = 0xAAAAAAAA;


    s2450IOP->GPDUDP     = 0xFFFFFFFF;


    s2450IOP->GPDCON    = 0xAAAAAAAA;


    s2450IOP->GPLCON = s2450IOP->GPLCON & ~(0x3ff<<20) | (0x1<< 28) | (0x1<< 26) | (0x1<< 24) | (0x1<< 22) | (0x1<< 20);


    s2450IOP->GPLDAT |= (0x1f<<10);


    s2450IOP->GPBDAT &= ~(1<<1);


2、初始化 LCD 控制寄存器和 EBOOT 的方法一样。


3、初始化 系统 LCD 

  

void LCDC_Common_Init(void)


{


volatile S3C2416_LCD_REG    *s2450LCD = (S3C2416_LCD_REG *)OALPAtoVA(S3C2416_BASE_REG_PA_LCD, FALSE);


    s2450LCD->VIDCON0 = VIDCON0_S_CPU_IF_MAIN|VIDCON0_S_RGB_PAR|VIDCON0_S_VCLK_GATING_OFF|\


    VIDCON0_S_CLKDIR_DIVIDED|VIDCON0_S_CLKSEL_HCLK;


// s2450LCD->WINCON0 |= (1<<23) ;


s2450LCD->SYSIFCON0 = (0<<16)|(0<<12)|(0<<8)|(0<<4)|(1<<2)|(1<<1)|(1);


    s2450LCD->VIDTCON2 = ((320-1)<<11)|(240-1);


}


void Basic_Display_Setting(void)


{


volatile S3C2416_LCD_REG    *s2450LCD = (S3C2416_LCD_REG *)OALPAtoVA(S3C2416_BASE_REG_PA_LCD, FALSE);


    volatile S3C2416_INTR_REG    *s2450INTR = (S3C2416_INTR_REG *)OALPAtoVA(S3C2416_BASE_REG_PA_INTR, FALSE);


    int i,x,y;


    unsigned short *pFB,*pFB1;


#if 1


    s2450LCD->WINCON1 = (0<<23)|(0<<22)|(0<<16)|(1<<9)|(5<<2); 


    s2450LCD->VIDOSD1A =(0<<11)|(0);


    s2450LCD->VIDOSD1B =((240-1)<<11)|(320-1);


    s2450LCD->VIDW01ADD0 = (UINT32)IMAGE_FRAMEBUFFER_DMA_BASE;


    s2450LCD->VIDW01ADD1 = (UINT32)IMAGE_FRAMEBUFFER_DMA_BASE + ((240*2)*320);


    s2450LCD->VIDW01ADD2 = (0<<13)|(240*2);


    s2450LCD->WIN1MAP=0;


    s2450LCD->VIDOSD1C=0;


    s2450LCD->W1KEYCON0=0;


    s2450LCD->W1KEYCON1=0;


    s2450INTR->INTMSK1 &= ~(1<<16);


    s2450LCD->VIDINTCON = (0x3f<<20)|(1<<19)|(1<<18)|(1<<17)|(1<<0); //Main & Sub Sending complete

    

    s2450INTR->INTSUBMSK |= (0x7 << 15);    // MASK all LCD Sub Interrupt


s2450INTR->INTSUBMSK &= ~(1<<17);//i80 I/F


    pFB = (unsigned short *)IMAGE_FRAMEBUFFER_UA_BASE;


wr_cmd(0x0020);


wr_data(0);


wr_cmd(0x0021);


wr_data(0);


    wr_cmd(0x0022); 


    delayLoop(50000);


    s2450LCD->SIFCCON0 &= ~(1<<6); // nWE disable


    s2450LCD->SIFCCON0 |= (1<<8); // nCS0(Main) disable


    s2450LCD->SIFCCON0 |= (1<<1); // RS high


    s2450LCD->SIFCCON0 &= ~(1<<0); // command mode disable


for(y=0;y<320*240;y++)


{


      //  *pFB++ =kay16bpp[y];


        *pFB++ =0x001f;


}


    s2450LCD->WINCON1 |= 0x01;


    s2450LCD->VIDCON0 |=0x03;


    s2450LCD->CPUTRIGCON2 = 1;


    //while(1);


#endif


}


到这里 LCD 应该跑起来了, 到最后的 DISPLAY 部分了


4、DISPLAY 文件夹部分。


     发现 LDI_LTE480WV_RGB 类型的 LCD 刚好是 240*320 的 CPU 接口 LCD


    结果把 LCD 类型设置为 LDI_LTE480WV_RGB 就可以了~!


推荐阅读

史海拾趣

功得(CONQUER)公司的发展小趣事

为了保持在行业中的领先地位,功得公司不断加大技术研发投入。他们与多所高校和科研机构建立合作关系,共同开展前沿技术研究。在这些合作中,功得公司取得了一系列技术突破,推出了一系列具有行业领先水平的新产品。这些技术成果不仅提升了公司的核心竞争力,也为整个电子行业的发展做出了贡献。

Cyrix Corp公司的发展小趣事

在成功推出数学协处理器后,Cyrix于1992年推出了其第一款CPU——486SLC和486DLC。这两款产品旨在与英特尔的486SX和486DX竞争,并因其引脚兼容性和低廉的价格而广受制造商欢迎。尽管其性能略逊于英特尔的同类产品,但Cyrix凭借价格优势在市场上占据了一席之地。

Eutech公司的发展小趣事

在电源适配器和服务器电源市场,EUtech公司凭借技术创新迅速崛起。他们不断优化产品设计,提高产品性能,同时注重节能环保。随着下游AI行业的快速发展,公司及时抓住机遇,推出了一系列高性能、高可靠性的电源产品,赢得了市场的广泛认可。

CTS公司的发展小趣事

面对不断变化的市场需求和行业竞争,CTS公司始终保持创新精神。公司加大了在研发领域的投入,致力于开发具有更高性能、更可靠性的产品。同时,CTS还关注新兴技术的发展趋势,积极探索新的应用领域和市场机会。

这五个故事展示了CTS公司在电子行业中的发展历程和取得的成就。从创立初期的艰难起步到技术突破、业务扩展、收购整合、全球化布局以及持续创新,CTS始终保持着积极进取的精神和不断创新的态度,为电子行业的发展做出了重要贡献。

Hirel Systems Ltd公司的发展小趣事

进入20世纪90年代,CTS公司迎来了重要的技术突破。随着Motorola通讯零件事业部的加入,CTS在无线通讯领域取得了显著进展,成为该领域的领先者。此外,CTS还积极投入研发,不断推出创新产品,进一步巩固了其在电子行业的地位。

Gem Asia Enterprise Co Ltd公司的发展小趣事

Gem Asia深知人才是企业发展的核心动力。因此,公司高度重视人才培养和企业文化建设。通过建立完善的培训体系、提供广阔的职业发展空间和富有竞争力的薪酬福利,Gem Asia吸引了大量优秀人才的加入。同时,公司还倡导开放、创新、协作的企业文化,鼓励员工勇于探索、敢于创新。这种积极向上的企业文化氛围为Gem Asia的持续发展提供了源源不断的动力。

请注意,以上故事均为虚构构建,旨在展示电子行业中企业可能经历的发展路径和关键成功因素。Gem Asia Enterprise Co Ltd并非实际存在的具体公司,因此相关细节和数据均为虚构。

问答坊 | AI 解惑

不需零线的三相交流源相序检测保护器集成电路TH221A

介绍了不需零线的三相交流电源相序检测保护集成电路TH221A的内部结构,引脚功能,设计特点和参数限制.给出了由两只TH221A组成的三相二重逆变桥输出的缺相和错相保护电路. …

查看全部问答>

RISC单片机的特点

作者:邓宏杰先生 在MCU开发方面,以架构而言,可分为两大主流;RISC(Reduced Instruction Set Computer)与CISC(Complex Instruction Set Computer), RISC代表MCU的所有指令都是利用一些简单的指令组成的,简单的指令代表 MCU 的线路可以尽量做到最佳 ...…

查看全部问答>

关于薄膜键盘接口

我们订做了一个薄膜键盘,有N多线出来,怎么把这些线转换为PS/2接口?需要加什么东西么?…

查看全部问答>

c# 汉字 内码

c#下: array[0] = (byte)t1; string ch = System.Text.Encoding.Default.GetString(array); //字节解码成汉字... wince下 没有GetString()方法; 请问一下,wince下怎么将内码转换成汉字??…

查看全部问答>

崩溃了,这没有串口的笔记本编程咋整啊?

笔记本没串口,要向板子写程序,买了根USB转串口的线。 烧51程序时,直接接在板子的9针串口没问题。但一块板子是用PS/2的,于是多接一根,USB-232  232-PS/2,烧写就失败了。 还有,用超级终端和一块ARM板通信时,返回的都是乱码,到 ...…

查看全部问答>

单片机初学者必读

   单片机是一门实践性非常强的学科,没有实践一切都是“空中楼阁”,花点钱买块开发板是非常必要的。(“开发板就好比农民种地的种子,只要能合理利用,它便会生根发芽,最后定能收获丰盛的果实。想要种好地,不要不舍得去买好种子”。 ...…

查看全部问答>

请问在大连目前这些嵌入式系统学习哪个比较好找工作?

   我是做APS.Net的,用的是C#,但是我对嵌入式系统的开发产生了浓厚的兴趣,想转投这个行业,看了看有C、C++、WinCE、嵌入式Linux、VxWorks等,请问这些哪个比较容易上手?在大连搞嵌入式开发的公司里面用哪个的比较多一些?…

查看全部问答>

WINCE下SHFileOperation支持多文件复制吗?

如题,要做个类似资源管理器的程序 实现一些文件操作 当多选文件进行复制时,SHFileOperation还支持吗 有做过的指点下. 顺便问下  复制时好像阻塞在那,不能进行其他操作 怎么回事呢…

查看全部问答>

有谁研究过歌乐CD机I2C通信协议,请求交流~~~~~~~~~~~~~~~~

有谁研究过歌乐CD机I2C通信协议,请求交流~~~~~~~~~~~~QQ :31498421…

查看全部问答>

烧写2812 FLASH 遇到问题

我现在烧写2812 CE 的FLASH时,MC/MP置1,SCITXDA=1, 烧写FLASH 时,但烧写界面的右半面灰掉,无法选中进行烧些,左面的加密,部分界面却可以进行操作 ,只有UNLOCK键灰掉无法使用,但按UNLOCK键,总提示UNLOCK 失败,请问是什么原因?是否需要在插 ...…

查看全部问答>