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.

[参考译文] MSP430FR2155:在重复起始条件后在 I2C 读取地址上获取 ACK 时出现问题

Guru**** 2524370 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/860559/msp430fr2155-problem-getting-ack-on-i2c-read-address-after-repeated-start-condition

器件型号:MSP430FR2155

TWIMC、

我正在对 I2C 从设备进行编程、以响应主 I2C 请求。 主器件的事务是一个 I2C 写入序列、用于发送 MSP430中的寄存器地址进行读取、然后是一个重复起始条件(停止+启动)和一个读取事务、用于读取两个字节的数据以读取一个16位寄存器。 我在下面的屏幕截图中看到(具有已知良好的工作主器件)、I2C 从器件在重复开始条件后不会对次要读取地址进行 ACK、即使它在事务的早期写入阶段正确应答了第一个地址事务。 下面随附的示波器图和 I2C 解码记录。

什么会导致 I2C 从设备在交换的读取部分期间在事务的后半部分生成 ACK?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它看起来您的从器件正在拉伸时钟(保持 SCL 为低电平)、这表明它没有向 TXBUF 写入一个字节来响应 TXIFG。 [参考用户指南(SLAU445I)图24-9、左上角]

    您能告诉我们它在做什么吗?

    [编辑:更正了拼写错误]