Other Parts Discussed in Thread: TLV320AIC3101
我的设计有TLV320AIC3101,我通过I2C总线从微控制器配置它。 如果写入作为单个完整的I2C事务发生,AIC3101寄存器将正确写入。 如果我写入寄存器地址,然后重复启动并写入数据,AIC3101寄存器将保持不变。
数据表中的第11.5 1节提到了重复启动,因此我希望它能够正常工作。 我想他们可能只考虑阅读,但这似乎很奇怪。
其他人有没有遇到这种情况? 我错过了什么吗?
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.
Other Parts Discussed in Thread: TLV320AIC3101
我的设计有TLV320AIC3101,我通过I2C总线从微控制器配置它。 如果写入作为单个完整的I2C事务发生,AIC3101寄存器将正确写入。 如果我写入寄存器地址,然后重复启动并写入数据,AIC3101寄存器将保持不变。
数据表中的第11.5 1节提到了重复启动,因此我希望它能够正常工作。 我想他们可能只考虑阅读,但这似乎很奇怪。
其他人有没有遇到这种情况? 我错过了什么吗?
希望这将说明问题与设备处理I2C之外的任何其他问题无关。 以下是从显示事务的单个捕获中提取的,该捕获同时显示了重复开始和不重复开始的事务。 尽管为清晰起见,它被分解,但这是连续图像之间I2C总线上没有活动的连续运行。
首先,我们阅读Register 3,它包含记录的默认值0x10:
然后,我们将0xFF值写入Register 3作为单个事务,不重复开始:
之后,我们阅读了Register 3并看到0xFF的值写正确:
然后,我们将0x00值写入Register 3,仍然使用不重复开始的单个事务:
我们阅读Register 3 (注册3)并确认它现在包含0x00:
接下来,我们再次将0xFF写入Register 3,这次在中间重复开始:
我们读取了寄存器3,发现值 未写入,且寄存器仍包含0x00: