您的位置:首页 > 其它

NCS8801 RGB24 转eDP屏

2016-06-07 10:52 846 查看
目前项目中,需要点eDP屏,但飞思卡尔mx6没有eDP接口,通过神奇的转换芯片,专为中国人设计的,

各种接口之间的转换,只要你能想得的,基本上都能找得到。NCS8801 就是通RGB24接口转eDP接口。

这里记录一下。
  uboot 中初始化代码如下:
  

//ispsubb 20160317
int  init_eDP(void)
{
unsigned char i ;
// N133HSE-EA1 mx6
unsigned char EDPI2C_addr[48] = 
 {0x09,0x4B,0x05,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,
 0x1C,0x1D,0x1E,0x1F,0x41,0x35,0x31,0x36,0x3C,0x3E,0x0C,0x30,0x30,0x00,0x09,
 };
unsigned char EDPI2C_data[48] = 
{0x01,0x01,0x00,0x08,0x20,0x00,0x3C,0x07,0x80,0x04,0x58,0x00,0x14,0x04,0x38,
0x80,0x0A,0x80,0x0A,0x03,0xC1,0x00,0x00,0x17,0x16,0x01,0xB0,0xB1,0x0A,0x00,
  };
unsigned char value = 0 ;
i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
if (!i2c_probe(0x70)) 
{
    for(i=0; i<30;i++)
    {
       //parm 3 mean reg addr is 8bit 
     if (i2c_write(0x70, EDPI2C_addr[i], 1, & EDPI2C_data[i], 1)) 
     {
      printf("edp chip init error\n");
      return -1;
     }
    } 
}
else
  printf("can not find the EDP chip\n");
}

  我们采用的eDP屏是N133HSE-EA1
。配置相对来说都比较简单。linux内核中通过RGB24输出也比较简单。
硬件调试记录:
1,PWD,RSTB 时序要求达到。
2,test , 晶振有相同的频率。
3,我们这个pin 脚设计不对,没有仔细核对demo原理图。这里要吐槽一下NCS8801管脚命名规则。
 硬件工程师想当然的把P设计成了上拉,N设计成了下拉。一般规则确实是这样的,但难免有一些
 打左转向灯而右转的人。
                        


软件调试。
1,如上面的程序写进芯片配置,可以读出来。uboot
中有 i2c md 70 1c,读出一些位来对比。
2,硬件调试3是可以通过个方法来验证的。将0x20 ,0x21 设置为0xff 。参考 i2c mw 70 20 ff
 这样就使得NCS8801 芯片后端直接输出一个红色画面。进入了BIST模式,这样就与前端RGB
 输入没有有关系了。如果这样操作后,没有一个红色画面输出,就考虑硬件问题3,或者屏以及屏线的问题。
3,红色画面有输出后,如果屏还是不正常亮。1c,1e 为行场极性操作。80或者00。
4,如果闪屏,可以设置4B的上升沿下降沿,与内核,以及屏相对应。
http://blog.chinaunix.net/uid-20768928-id-5683843.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: