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.

[参考译文] TMAG5173-Q1:在 I2C 触发转换后无法读取寄存器

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1362791/tmag5173-q1-unable-to-read-registers-following-an-i2c-trigger-conversion

器件型号:TMAG5173-Q1

概要

我们使用该传感器时涉及在启用 CRC 的情况下通过针对 X 轴和温度的 I2C 转换进行读取和触发。 在我们的测试中、我们通过关闭/打开传感器来仿真功率损耗。 我们希望依靠读取 CONV_STATUS 寄存器来利用 POR 位来指示发生上电复位。 不过、一旦传感器被触发进行转换、我们就无法再读取寄存器值。
对于任何 I2C 寄存器读取、器件以00作为响应。

测试详细信息

初始化  
使用唯一地址将0x21写入 I2C_ADDR 寄存器来配置传感器 A。 传感器 B 保留在默认地址。
在启用 CRC 的情况下为三轴采样配置2个传感器
通用广播写入以配置 I2C 总线上的所有传感器  
00 81 # DEVICE_CONFIG_1:用于16位读取的 CRC_EN I2C_RD 01B
00 02 10 # SENSOR_CONFIG_1 :启用 x 通道转换
00 07 01 # T_config :启用温度转换

为传感器加电
配置非默认地址

转储 A 寄存器
初始化传感器
转储 A 寄存器
设置为16位模式

为 B SENSOR 通电
转储 B 寄存器
初始化传感器
转储 B 寄存器
设置为16位模式

触发 conv
阅读成功
读取 B 成功

切换传感器 A 和 B 电源
触发 conv
阅读
读取 B
读取所有0
关闭 B SENSOR
读取所有0

切换传感器 A 和 B 电源
转储寄存器
读取适当的值
触发 conv
转储寄存器
读取所有0

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

    Brett、您好!

    感谢您在传感器论坛发帖!

    关闭/打开器件电源时、需要牢记的一点是、您需要在重新启动器件电源后重新配置器件、因为器件在关闭电源后不会保存其先前的配置。

    此致!

    ~艾丽西亚

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

    了解后、我们希望使用对具有 POR 上电复位位位位的 CONV_STATUS 寄存器的定期读取结果来确定器件需要重新初始化。 但是、如果我们发出 Trigger Conv、则无法再读取寄存器(始终为00)。

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

    Brett、您好!

    只是为了确保我理解、即使在配置器件以启用相关的磁通道之后、您在触发转换后仍然会得到0x00?

    此致!

    ~艾丽西亚

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

    在我们的操作案例中、我们在器件初始化之后通过 I2C 和读取转换重复触发、频率为700-2400Hz。 如果传感器遇到上电复位事件、我们本来希望能够看到 CONV_STATUS 寄存器中设置的 POR 位来指示需要重新初始化。 但是;如果 POR 事件恰好在触发之前发生、器件将仅以00s 的值进行寄存器读取响应。

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

    Brett、您好!

    但是,如果 POR 事件恰好发生在触发之前,设备将仅以00s 响应寄存器读取。

    我预计会出现这种行为、就像 POR 事件恰好在检查之后发生、那么它会错过其初始窗口来进行自我重新配置、这意味着器件的当前配置将是其所有默认值。 这将导致没有启用磁通道、因此您会看到所有零。

    您可以采取的一种方法是针对 POR 事件实施额外的检查(例如在触发转换后检查 POR、以确保获得良好的数据)、以便可以根据需要重新配置器件。  

    此致!

    ~艾丽西亚