Hi Ti
目前928测接的屏幕显示正常,主控SOC可以读取到927 928的ID。
927的i2c数据透传给928, 目前在928测可以测量到SCL SDA脚出来的波形。但928接入的从设备touchscreen没有ack响应,导致i2c通信失败。
截图为928 SCL SDA脚测量的波形。
初始化如下:
log("[read id927] 0x00= 0x%02x\n", ds90ub927_read_reg(0x00));
ds90ub927_write_reg(0x03, 0xDA); // pass through enable
ds90ub927_write_reg(0x07, ADDR_GT9XX_8BIT);//UB927 set Slave ID
ds90ub927_write_reg(0x08, ADDR_GT9XX_8BIT_ALIAS);//UB927 set Slave Alias
ds90ub927_write_reg(0x11, 0x33);
log("[read id928] 0x00= 0x%02x\n", ds90ub928_read_reg(0x00));
ds90ub928_write_reg(0x21, 0x55);
ds90ub928_write_reg(0x26, 0x0F);//SCL High Time
ds90ub928_write_reg(0x27, 0x15);//SCL Low Time
麻烦协助分析一下原因,谢谢。
user6574745:
,
Kailyn Chen:
您好,和touchscreen 通讯,只需要配置touchscreen的Device ID 和slave Alias ID, 并且这两个ID可以是相同的。
touchscreen的7bit从机地址是什么? 看是否地址写错,导致无法通讯?
,
user6574745:
如之前寄存器配置,已经在927上设置过Device ID 和slave Alias ID,并且相同。 从机7bit 地址是0x14。
#define ADDR_GT9XX_8BIT 0x28 //7bit addr 0x14#define ADDR_GT9XX_8BIT_ALIAS 0x28//7bit addr 0x14
ds90ub927_write_reg(0x07, ADDR_GT9XX_8BIT);//UB927 set Slave ID ds90ub927_write_reg(0x08, ADDR_GT9XX_8BIT_ALIAS);//UB927 set Slave Alias
1. 是不是只需要设置927的Device ID 和slave Alias ID就可以了?
2. SOC到927的波形是标准的400Khz,928到touchscreen的波形只有70Khz左右。
通过配置928的
ds90ub928_write_reg(0x26, 0x0F);//SCL High Time ds90ub928_write_reg(0x27, 0x15);//SCL Low Time
可以把928输出的波形设置为400K,
想问下是不是只需要设置928的 SCL High Time /SCL Low Time 就可以了
,
user6574745:
问题比较急,麻烦多多支持下,谢谢。
,
Kailyn Chen:
您好,是的,927 只需要配置I 2Cpass through(0X03), slaveID(0x07)和slave Alias ID(0x08)就可以了。
928 作为master proxy,配置SCL High Time/SCL Low Time就可以了 。
再检查下硬件方面呢。