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.

[参考译文] SN65DSI84-Q1:I2C 多字节读取/写入

Guru**** 2548120 points
Other Parts Discussed in Thread: SN65DSI84-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/879730/sn65dsi84-q1-i2c-multibyte-read-write

器件型号:SN65DSI84-Q1

您好!

我一直使用 SN65DSI84-Q1接口、通过 I2C 与主器件 iMx8连接、这是一种使用矢量微控制器 I2C 驱动程序代码的方式。 就我所知、通过 i2c 从从从器件读取多字节数据、请执行以下操作
流量。 I2C 从设备地址开始,写入-> ack->registeraddress to be read the data -> ack ->(重复起始)带读取的设备地址->ack -> n 字节读取数据-> Nack->STOP 位

但在 SN65DSI84-Q1中 、它在第8.5节中进行了引用、这让我感到非常困惑、而且我在数据表中看不到 I2C R/W 的任何波形。

您能不能指导我是否应通过设置起始子地址继续执行常规 I2C 读取过程来读取多字节数据?

当我正通过 tryng 顺序将0x09、0x0A、0x0B 写入寄存器时为 I2Start->DA->RegisterAddress (0x09)->bytetwritenin0x09->byetobewritenin0x0A->byobeetwritenin0x0B
写入不正确? 我假设这些寄存器存储在连续的内存位置、如果我不能更正、此信息也需要在数据表中更新。

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

    您好 Prakash、

    要读取多个字节的数据、您可以按照第8.5节中的过程操作。

    如果要从00h 以外的特定子地址开始、则应首先按照"以下过程设置 I2C 读取的起始子地址"过程进行操作。 然后、您可以按照"以下过程读取 SN65DSI84-Q1 I2C 寄存器"过程进行操作。  

    此致、

    I.K.  

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

    您好!

    感谢您的快速响应。

    根据"设置 I2C 读取的起始子地址时遵循以下程序"一节、通过设置初始寄存器地址来执行 I2C 读取功能以开始读取、而"读取 SN65DSI84-Q1 I2C 寄存器时遵循以下程序"与处理重复起始时相同、 对吧?

    在主题"读取 SN65DSI84-Q1 I2C 寄存器时遵循以下步骤"下面提到的步骤3中、这让人感到困惑、它给我带来了一个问题、比如我是否需要再次将地址发送为0x00?

    第3步中的另一条语句  

    "如果 在读取之前对 SN65DSI84-Q1 I2C 寄存器进行了写入、那么 SN65DSI84-Q1将从 写入中指定的子地址开始。"、描述的是每秒发生的写入操作"按照以下步骤设置 I2C 读取的起始子地址"、对吗?

    还请确认寄存器是否存储在连续存储器位置? 我可以在寄存器地址0x0B 之后看到0x0D、也请对此进行澄清?

    提前感谢!

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

    您好 Prakash、

    我不认为它与重复的开始是一样的。 该过程需要停止、然后再启动一次。

    第3步是器件执行的一个步骤。 在步骤3中、您无需对该过程执行任何操作。  

    关于第3步中的其他陈述、您是正确的。

    这些寄存器存储在连续的存储器位置、是的。 您在数据表中看不到的寄存器(例如0x0C)是测试寄存器、您应该只向其中写入0x00。

    此致、

    I.K.