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.

[参考译文] MMWAVE-L-SDK:AWRL6432:I2C_PROBE 中的30ms 延迟

Guru**** 2463280 points


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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1484743/mmwave-l-sdk-awrl6432-30ms-delay-in-i2c_probe

器件型号:MMWAVE-L-SDK

工具与软件:

您好!

客户希望缩短器件启动时间。 他们在系统中使用了 I2C、发现 I2C_PROBE 中有30ms 的延迟。 客户如何减少?

以下代码似乎可以检查 I2C 状态是否正确、对吗? NACK 位将进行设置并清除、对吧? 还有其他方法可以更快地实现它吗?

/*尝试写入一个字节*/
I2CControllerDataPut (object->baseAddr、(uint8_t) 0u);
I2CSetDataCount (object->baseAddr、(uint32_t) 1U);

/*此处需要停止位*/
I2CControllerControl (object->baseAddr、I2C_CFG_MASK_stop、(
I2C_CFG_CMD_TX | I2C_CFG_CMD_START | I2C_CFG_CMD_STOP);

/* NACK 位设置的延迟足够*/
ClockP_usleep (I2C_DELAY_BIG);

如果(0U = I2CControllerIntStatusEx (object->baseAddr、I2C_INT_NO_ACK))

retVal = I2C_STS_SUCCESS;/*成功情况*/
}
设计

/*清除源*/
I2CControllerIntClearEx (object->baseAddr、I2C_all_ints);

/*完成 xfer */
I2CControllerStop (object->baseAddr);
(void) I2C_waitForBb (object->baseAddr、I2C_delay_MED);

retVal = I2C_STS_ERR;/*错误情况*/
}

谢谢!

Chris

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

    Chris、您好!
       我已经加入了我们的软件专家。 请允许我们在一天左右提供回复。

    谢谢。此致、
    Sivaprasad

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

    Sivaprasad、

    是否有任何更新?

    谢谢!

    Chris

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

    嗨、Chris、

    客户可以尝试将 I2C_DELAY_BIG 与 I2C_DELAY_MED (10ms)交换。 理想情况下、I2C 确认应在最后一个数据位之后的 SCL 周期内发生、但时钟延展可能会延迟该确认。 由于没有标准时钟延展超时、因此最终用户需要指定 I2C_DELAY_BIG 提供的超时周期。   

    根据 I2C 从器件的不同、减小延迟可能会导致故障增加。 如果速度是优先事项、并且客户承认这些风险、则他们可以缩短延迟时间。

    谢谢、

    Kristien