微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > nt35510和otm8009做兼容,读ID问题

nt35510和otm8009做兼容,读ID问题

时间:10-02 整理:3721RD 点击:
都是mipi的,我在nt35510上checkID
LCM_compare_id()
{
unsigned int id = 0;
unsigned char buffer[2];
unsigned int array[16];
        SET_RESET_PIN(1);  //NOTE:should reset LCM firstly
        MDELAY(20);
     SET_RESET_PIN(0);
     MDELAY(50);
     SET_RESET_PIN(1);
     MDELAY(200);
push_table(lcm_compare_id_setting, sizeof(lcm_compare_id_setting) / sizeof(struct LCM_setting_table), 1);
array[0] = 0x00023700;// read id return two byte,version and id
dsi_set_cmdq(array, 1, 1);
// id = read_reg(0xF4);
read_reg_v2(0xC5, buffer, 2);//0x04
id = buffer[0]; //we only need ID
#ifdef BUILD_UBOOT
printf("nt35510_lcmid= %d \n",id);
#else
printk("nt35510_lcmid= %d \n",id);
#endif
return id==0X5510?1:0
}
结果读到id一会是163,一会是254,而且换成otm8009读到的值也是这两个。这是为何?

                unsigned int id = 0,id1=0,id2=0,id3=0,id4=0;
               
                SET_RESET_PIN(0);
                MDELAY(250);
                SET_RESET_PIN(1);
                MDELAY(50);
       
       
        send_ctrl_cmd(0xF000);send_data_cmd(0x55);
        send_ctrl_cmd(0xF001);send_data_cmd(0xAA);
        send_ctrl_cmd(0xF002);send_data_cmd(0x52);
        send_ctrl_cmd(0xF003);send_data_cmd(0x08);
        send_ctrl_cmd(0xF004);send_data_cmd(0x01);
         
       
        send_ctrl_cmd(0xC500);
        id = read_data_cmd();
       
        send_ctrl_cmd(0xC501);
        id1 = read_data_cmd();
        id = ((id<<8) | id1);
       
#if defined(BUILD_UBOOT)
                printf("nt35510_mcu : %s, id = %x,id1=%x,id2 = %x,id3=%x,id4=%x  \r\n", __func__, id,id1,id2,id3,id4);
#else
                printk(" nt35510_mcu : %s, id = %x,id1=%x,id2 = %x,id3=%x,id4=%x  \r\n", __func__, id,id1,id2,id3,id4);
#endif

精干                 

static unsigned int lcm_compare_id(void)
{
        unsigned int id = 0, id2 = 0;
        unsigned char buffer[2];
        unsigned int data_array[16];
       
        SET_RESET_PIN(1);  //NOTE:should reset LCM firstly
        MDELAY(10);
        SET_RESET_PIN(0);
        MDELAY(10);
        SET_RESET_PIN(1);
        MDELAY(10);       
/*       
        data_array[0] = 0x00110500;                // Sleep Out
        dsi_set_cmdq(data_array, 1, 1);
        MDELAY(120);
*/
               
//*************Enable CMD2 Page1  *******************//
        data_array[0]=0x00063902;
        data_array[1]=0x52AA55F0;
        data_array[2]=0x00000108;
        dsi_set_cmdq(data_array, 3, 1);
        MDELAY(10);
        data_array[0] = 0x00023700;// read id return two byte,version and id
        dsi_set_cmdq(data_array, 1, 1);
        MDELAY(10);
       
        read_reg_v2(0xC5, buffer, 2);
        id = buffer[0]; //we only need ID
        id2= buffer[1]; //we test buffer 1
        return (LCM_ID == id)?1:0;
}
试试这个

read_reg_v2(0xC5, buffer, 2);能把这个函数发我一下不

那只有星期一了,现在家里没有

这个解决了吗 我这里也有这个问题。

上面不是有方法吗?
你自己验证一下。

完全就是错的麻

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top