I2C问题

Other Parts Discussed in Thread: UCD3028, LM3S3748

I2C问题

本人使用LM3S3748芯片, 使用内部的I2C1模块做主机, 访问从机模块,  从机也是TI的芯片, 是数字电源芯片(UCD3028),
现在遇到的问题是:
I2C读取数据不正常, 现象是: 使用示波器看, 首先发送从机地址+W是对的, 接着发送命令也是对的, 正常情况下, 接下来是发送ReStart, 然后是发送地址+R, 最后是读取的数据.
但现在是, 发送完从机地址+W, 和命令后, 就发送停止位了, 单步调试, 当执行到下述代码时, 总是返回错误, 返回值是0x0C.
    I2CMasterErr(PMBusM_BASE);
然后, 查看I2C1的I2C1MS寄存器, 其中的ERROR位一直为1(复位后ERROR一直为1), 不知是何问题.

请高手支招!!
先谢了

  • 有没有sourcecode?

  • 楼主的意思是主机发送完后,从机没有响应,然后就停止了对吗?还是主机就不发送ReStart了?

    看起来是从机没有响应了,建议楼主确认下电源芯片的工作状态。

  • 楼主ERROR置位一般说明没有收到ACK信号。这在datasheet中有说:

    The error can be from the slave address not being acknowledged, the

    transmit data not being acknowledged, or because the controller lost

    arbitration.

    建议楼主直接抓一下芯片输出来的I2C时序波形看看。

  • 是自己的问题, 发现芯片操作比较繁锁, 自己漏掉了一步!

    多谢大家!!