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.

[参考译文] TMP007:复位和恢复时序

Guru**** 2609895 points
Other Parts Discussed in Thread: TMP101

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/593472/tmp007-reset-and-recovery-timing

器件型号:TMP007

我现在已经成功集成了 TMP007、但我在数据表中似乎找不到任何有关上电复位和软件复位时序的信息、并且器件仅在引入长时间延迟时才会工作-这感觉不正确。

我们的器件固件执行一些 I/O 测试来检测卡在高电平、低电平和短路的 I2C 线路、以停止条件结束、然后继续尝试读取/写入操作以检测其他器件(MCP4827、TMP101)并对其进行初始化。 I2C 时钟为100kHz。

TMP007器件通过发送地址+写入、测试 ACK、然后是停止条件进行扫描。

bool TMP007设备:检测(void)
{
i2c_write_start (_addr);
bool ack = i2c_getAck (tW_MT_SLA_ACK);
i2c_stop ();
return;
} 

前面的一些总线事务处理、检测本身或软件复位的发出会导致器件否定进一步的立即命令。 这些都不包含总线错误。 只有在 STOP 和随后的 START 条件之间引入延迟(例如40ms)时、才不会再出现此行为。

我缺少什么?

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

    进一步的测试显示、在1.5ms 和2ms 之间过多的 t_BUF 就足够了。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该器件到底需要做什么? 我需要了解您对"正常工作"的定义。

    请注意、在上电时、器件应能够在满足最小电压时立即通信。 但是、该器件需要数百毫秒来完成其第一次温度测量(称为 ADC 转换、指定为转换时间)。 直到首次测量完成后、才会填充温度寄存器。

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

    Ren、我的问题是在非常基本的层面上、I2C 通信无法正常工作。 以下是通信在一切正常时的表现-想象黑色线条上没有延迟将导致第71行以下的所有传输中断:

    上拉电阻器均为1k、VCC=5.0V。 数据在示波器上看起来也正常;上述解码是通过 Open Bench 逻辑监听器获得的。

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

    第68行、尽管器件连接正确、但仍是如此。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    检测事务可能会导致总线超时。 您应该完成此事务,而不是尝试在地址阶段之后停止。 超时将持续30ms、除非您提供足够的时钟来解除锁定。

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

    无论延迟时间如何(2ms 延迟似乎也起作用)、任何之前的传输都不应导致 TMP007进入该"故障"状态(这也是我记忆中观察到的情况)。
    我怀疑存在直流失调电压问题、并且无法安全地在逻辑低电平状态下达到0.4V。

    同时、软件复位和下一条 I2C 命令之间是否有任何缓冲时间?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否、在软件复位和 I2C 事务之间不应有任何缓冲时间。