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.

[参考译文] MSPM0G3507:I2C 读取操作异常

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1358730/mspm0g3507-i2c-read-operation-exception

器件型号:MSPM0G3507

一:独立 I2C 写入操作没有问题

二:I2C 读操作异常、根据 TII 的底层情况写入、一个事务发送异常。

但使用逻辑分析仪观察它、可以看到写入的寄存器都不会与我传入的0x0F 寄存器匹配、并且没有读取操作。

三:先写操作再读操作、第一次读取没问题、第二次重新读取异常。

正常:

异常:

为什么在读取操作之后它是一个异常? 我有一个传感器在读取操作后被 NACK。

在读取操作之后是否有必要执行一些操作来恢复 I2C 状态

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

    您好!

    SDK 提供多个 IIC 相关工程供用户参考、可从 www.ti.com 下载。

    下面这张屏幕截图供您参考:

    B.R.

    萨尔

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

    您好!

    我目前使用的是 TI-driver 案例演示、使用函数接口 bool I2C_TRANSMIT (I2C_Handle handle、I2C_Transaction * TRANSACTION)

    您能否解释一下 ti-driver 的情况、为什么读取操作后发生异常。

    dev.ti.com/.../_i2_c_8h.html

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

    您好!

    我不熟悉这个演示项目。 我想我已经帮你解决这个问题了。

    这似乎是一个针对 RTOS 的示例项目、如果你不需要 RTOS、我建议你使用之前显示的 driverlib 项目。

    如果这正是您的应用要求、我建议您检查低级的 IIC 传输代码、它应设置传输行为:"目标地址、读取/写入、ACK。 停止、、、、、"。

    B.R.

    萨尔

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

    我们目前在 FreeRTOS 上运行、下面的 I2C_TRANSMIT 函数没有看到太多的 I2C 状态寄存器

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

    您好!

    我们目前在 FreeRTOS 之上运行,下面的 I2C_transfer 函数对 I2C 状态寄存器的了解不大

    它将调用以下函数来处理 IIC 寄存器:

    B.R.

    萨尔