nt35510和otm8009做兼容,读ID问题
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);能把这个函数发我一下不
那只有星期一了,现在家里没有
这个解决了吗 我这里也有这个问题。
上面不是有方法吗?
你自己验证一下。
完全就是错的麻
