主题中讨论的其他器件:TMP112、 TMP112EVM
大家好、
我的客户正在使用具有13位扩展模式的 TMP112。 由于默认设置、我知道第一次读取是12位。
我建议它们区分由 D0位0b (12位)或1b (13位)读取的数据。
但我的客户在 D0位= 1b (13位)时观察到12位数据、例如0xDE01 (-34degC 乘以12位、LSB 为1)。
例如、客户将模式更改为13位、并在第二次转换完成之前读取温度寄存器。 因此温度数据为12位、但 LSB 更新为13位。
可以发生吗?
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.
大家好、
我的客户正在使用具有13位扩展模式的 TMP112。 由于默认设置、我知道第一次读取是12位。
我建议它们区分由 D0位0b (12位)或1b (13位)读取的数据。
但我的客户在 D0位= 1b (13位)时观察到12位数据、例如0xDE01 (-34degC 乘以12位、LSB 为1)。
例如、客户将模式更改为13位、并在第二次转换完成之前读取温度寄存器。 因此温度数据为12位、但 LSB 更新为13位。
可以发生吗?
您好、Atsushi、
每次转换完成时、温度寄存器的内容都会更新。 转换时间指定为最大35mS、因此在上电后可进行首次测量35mS。 默认情况下、转换率(CR)配置为4Hz。 这意味着每秒4次、TMP112将执行一个最多花费35mS 的转换。
当13位模式被启用时(EM=1、)、在下一个转换完成前、温度寄存器将不会被更新。 在此之前、它可能包含旧的12位数据。 在默认转换速率下、更新温度寄存器可能需要250ms (4Hz)的时间。
温度寄存器中没有将数据确认为12位或13位的线索。 为避免读数不正确、应在代码中插入适当的等待、或应使用 Shutdown/OneShot 功能。 使用关断(SD=1)时、每个测量都由 OneShot (OS=1)触发。 必须写入代码、这样操作系统= 1、超过35mS、然后温度读数正常。 这样、您只能读取最近的转换/测量值。
谢谢、
任