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.

TMP112没有应答信号ACK

Other Parts Discussed in Thread: TMP112, TMS570LS3137

hi,

我在使用TMS570LS3137和TMP112进行开发,遇到一些问题。TMS570LS3137的I2C总线上外挂了一片F24V02和一片TMP112,SDA和SCL信号使用10K的电阻上啦,TMP112的V+管脚上使用4.85K电阻和0.1uF电容组成低通滤波器。TMP112的A0脚连接到地了,这样TMP112的地址为0x48。Alert管教空置,未使用。

现在F24V02调试通过了,读写都没有问题。

TMP112无论读写都没有反应,感觉TMS570LS3137没有收到TMP112发出的ACK应答信号。

如图:

代码如下:

i2cSetSlaveAdd(i2cREG1, 0x48);

while((i2cREG1->STR & I2C_BUSBUSY) != 0 );

i2cSetCount(i2cREG1, 1);
i2cREG1->MDR = i2cREG1->MDR | I2C_FREE_RUN | I2C_MASTER | I2C_TRANSMITTER;
i2cSetStart(i2cREG1);
i2cSendByte(i2cREG1, 0x00); // Read address

i2cSetCount(i2cREG1, 2);
i2cREG1->MDR = I2C_FREE_RUN | I2C_START_COND | I2C_STOP_COND |I2C_MASTER | I2C_RECEIVER | I2C_RESET_OUT | I2C_8_BIT;
i2cReceive(i2cREG1,2,data_in);

debug调试发现,代码回停止在i2cReceive函数中,

停在:

while ((i2c->STR & (uint32)I2C_RX_INT) == 0U)

请问是什么原因呢?