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.

[参考译文] CC2652RB:内部温度传感器精度

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1042764/cc2652rb-internal-temperature-sensor-accuracy

器件型号:CC2652RB
主题中讨论的其他器件: MSP430G2333

您好-  

我们将针对我们产品中安装的 CC2652RB 单元的内部温度传感器的精度遇到一些不一致的情况。

我们设计了一个"自检"、其中包括读取内部温度传感器寄存器、将值转换为摄氏度、然后检查该值是否在5C 至20C 范围内。 我们 在生产中运行此"自检"两次-一次是在合同制造商的工厂、当 PCB 仍被拼接以进行并行测试时、一次是在产品完全构建并处于最终测试阶段时。 与我们的合同制造商的工厂相比、我们在工厂的最终测试阶段(过去几个月中为350多个)出现了许多后遗症(11次故障、全部经过重新测试通过)、因此我们已经开始专门对此进行调查。  

我已将一些故障器件从线路上取下、并将其与在整个测试过程中都成功的个人测试器件进行了比较。 即使采用了温度驱动器并确保 AON_BATMON 已准备好提供新的温度值、这些故障单元和我的通过单元的输出值仍存在很大差异。

实质上-我编写了一个特殊固件、它以循环10x 的形式运行以下代码、然后通过蜂鸣器发出蜂鸣音来报告平均值。

    while(!AONBatMonNewTempMeasureReady()); // Wait for temp sensor to be ready
    temp = Temperature_getTemperature()*10; // x10 to report value in 0.1*degC 

两个发生故障的单元始终报告和读取的值比 通过单元低5-8°C、远远超出数据表中给出的容差。 我们在-20°C 和50°C 温度下对此进行了测试、结果非常相似。 对产品进行重新测试可确保 每个器件的数字一致、但单元间的精度是问题所在。

是否有在生产中定义/测量的偏移值不被驱动程序软件应用? 为什么这些部件之间存在这样的差异?

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

    您好、Tyler、

    查看温度驱动器、可以看到测量结果已经以摄氏度为单位返回。您是否认为执行额外的转换可能会降低数据/精度?  

    我不知道您描述的任何偏移值、但我将进行检查。

    谢谢、

    Alexis

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

    Alexis -感谢您的回复、但我认为这里可能会有误解。

    我们在器件上运行两次温度检查、因为我们假设这两个测试环境都将在20C 温度标记附近得到良好控制。 但是、在注意到故障差异后、我们从 PCB 制造商处提取了数据、并发现它们的平均运行温度比我们的平均运行温度高一些。

    由于我们看到产品制造领域的大多数故障、并且我们这里的温度低于 PCB 制造商的温度、因此这一切都跟踪了故障产品因温度过低而出现故障的事实。

    话虽如此-我一直在使用几个单元来具体测试这一点、我们的两个故障单元(在大约20C 的室温下测试时)的读数始终低于通过单元的5C。 在整个温度范围内进行测试时、情况可能会更糟、最坏的情况是大约8C 低于我们认为在数据表3C 限制范围内的"可接受"单元。

    那么、对于最初的问题-我们为什么看到彼此之间存在如此大差异的器件? 这是预期的吗?

    就偏移值而言、 Temperature_getTemperature 内的驱动程序函数(AON_BATMON 驱动程序的一部分)应用 FCFG1_O_MISC_TRIM 寄存器位置的斜率校正因子。 我很好奇、驾驶员是否打算同时加入一个被遗忘的失调电压因子。

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

    您好、Tyler、

    感谢您的澄清。 我会研究这个、下周再带你回来玩。

    谢谢、  

    Alexis

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

    Alexis -这已经接近一周了、没有回复、您是否成功获得了有关此问题的澄清?

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

    您好、Tyler、

    我对延迟回复表示歉意。 我在内部与几位同事进行了接触、这就是我收集到的内容:

    • 您测量的值并不超出标准。 数据表给出了一个典型值、但是某些器件可能会超过这个值 (没有最小值/最大值保证)。  
    •  在生产过程中、我们进行1点校准、以补偿过压。  在使用驱动程序库进行测量时已考虑到这一点。
    • 零件间差异是预期的

    话虽如此,我希望能从你们那里得到更多的信息。

    • 在重新测试故障器件时、您是将其与通过器件的结果进行比较还是与环境温度进行比较?  
    • 我还想澄清一下、您是使用 driverlib 从传感器读取数据、还是您所指的特殊固件直接从寄存器读取数据?  

    谢谢、

    Alexis

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

    根据我在内部温度传感器方面的经验、它通常非常不准确、 如果您需要为您的应用获得精确的温度、我建议您使用外部温度传感器、如 TMP116。

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

    Alexis - 好的、因此温度传感器的质量非常低。 听起来、工厂也不想像使用 MSP430那样使用多点校准来提高传感器精度- 如果传感器变得无用、那么即使有传感器也是愚蠢的。

    无论有何缺点、我们的设计中都有一个附带板、它具有 MSP430G2333、因此 我们可以利用它的内部温度传感器和 TLV 校准常数来为我们提供温度。 这不是我们的理想解决方案、因为它会使 MSP430的固件复杂化、CC2652RB 必须通过 I2C 查询器件的温度。

    要评估您的问题:

    1. 我们使用温度室来设置精确的设定点温度、然后进行测量并在内部记录测量结果、以便通过蓝牙进行读取以验证结果。 环境温度测试作为基线进行、以检查最初的部件间差异、同时进行高温和低温测试以确认结果。
    2. 我们的原始应用代码直接与 AON 寄存器相连、但该代码是在 driverlib 的温度传感器代码存在之前编写的(最初使用 SDK 3.10.00.53编写)。 在发布到此线程之前、我更新了代码以使用 driverlib 来应用斜率误差校正。  这在实施时不会导致明显的零件间改进。  

    YIKAI -我很欣赏外部传感器的建议、但我们在成本、功耗、尤其是 IO 引脚使用方面的选择有限-因此、如果我们能够将内部传感器保持在可接受的容差范围内、内部传感器就是理想之选。