TI中文支持网
TI专业的中文技术问题搜集分享网站

ds90ub927 i2c数据透传给ds90ub928,可以透传但通信失败

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就可以了 。
再检查下硬件方面呢。

赞(0)
未经允许不得转载:TI中文支持网 » ds90ub927 i2c数据透传给ds90ub928,可以透传但通信失败
分享到: 更多 (0)