This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB913工作不正常

Ti 工程师,

      您们好,

      我的开发环境是这样的, sensor+913+964+MCU,

      MCU可以通过964、913配置sensor,但是只要给sensor使能(sensor有个寄存器配置power on)之后,MCU就不能通过I2C配置913和sensor了,

报NACK错误,像是感觉913工作不正常了。 如果我把sensor连接到913的 data lines,PCLK,HSYNC,VSYNC断开,无论怎么配sensor(包括给sensor使能)

都不会报错。请问这是什么原因呢

       谢谢

  • 确认两个问题;

    Q:sensor使能(sensor有个寄存器配置power on)之后,MCU就不能通过I2C配置913和sensor了,报NACK。像是感觉913工作不正常了。

    A:这句的意思是说,MCU无法通过I2C和913通讯了,您的意思是因为将sensor使能导致的。sensor disable之后,913和MCU I2C时序正常?

    Q:如果我把sensor连接到913的 data lines,PCLK,HSYNC,VSYNC断开,无论怎么配sensor(包括给sensor使能)都不会报错。请问这是什么原因呢

    A: sensor和913断开了,这里的不会报错指的还是913吗?

    能否把I2C的几个寄存器配置发来看下。

  • hi Kailyn,

           谢谢你的回复,

           A1:  sensor使能之后,再对913 和 sensor 进行I2C读写都不成功,所以也无法再disable sensor了,不过这个情况下我通过gpio引脚复位sensor之后,913和sensor

    又可以正常读写了 , 这应该相当于sensor disable后,通讯恢复正常

         A2:  指913 和 sensor 都能正常通讯,(sensor i2 还连着 913, 只是pclk,hsync和数据线断开)

    因为MCU的速率是100kbits,所以都是采用默认的配置


    ds90ub964_read_reg(client,0x5b,&i2c_913_addr);
    printk("913 i2c addr = 0x%x\n",i2c_913_addr);

    ds90ub964_write_reg(client,0x4c,0x01); //select RX0 for RW
    ds90ub964_write_reg(client,0x58,0x58);
    ds90ub964_write_reg(client,0x5c,0xB2);  //  913 addr
    ds90ub964_write_reg(client,0x4c,0x01); //select RX0 for RW
    ds90ub964_write_reg(client,0x58,0x58);
    ds90ub964_write_reg(client,0x5c,0xB2); // serial ID
    ds90ub964_write_reg(client,0x5d,0x78); //slave id addr
    ds90ub964_write_reg(client,0x65,0x78); //slave alias addr

    //B2  913 i2c  addr

    ds90ub913_write_reg(client,0xB2>>1,0x11,0x82);   //SCL high time
    ds90ub913_write_reg(client,0xB2>>1,0x12,0x82);   //SCL low time

          

  • 你好,能把ds90ub964_write_reg 和ds90ub913_write_reg函数定义发下参考一下吗,非常谢谢!