Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1222334
  • 博文数量: 105
  • 博客积分: 127
  • 博客等级: 入伍新兵
  • 技术积分: 962
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-29 15:22
文章分类

全部博文(105)

文章存档

2021年(1)

2019年(3)

2018年(1)

2017年(11)

2016年(47)

2015年(32)

2014年(4)

2012年(6)

我的朋友

分类: LINUX

2016-03-28 21:06:11

   目前项目中,需要点eDP屏,但飞思卡尔mx6没有eDP接口,通过神奇的转换芯片,专为中国人设计的,
各种接口之间的转换,只要你能想得的,基本上都能找得到。NCS8801 就是通RGB24接口转eDP接口。
这里记录一下。

  uboot 中初始化代码如下:
  
  1. //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的上升沿下降沿,与内核,以及屏相对应。

 
阅读(6479) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

mwyting2017-04-10 12:04:27

辅助通道的上下拉不是NCS命名规格奇怪,而是一般规格就是耦合信号DC电平在非置位电势