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.

[参考译文] TMS320F28388D:内部温度传感器 TI OTP 值无效-可以#39;t 测量 MCU 温度

Guru**** 2596985 points
Other Parts Discussed in Thread: TMS320F28388D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1137435/tms320f28388d-invalid-internal-temperature-sensor-ti-otp-values---can-t-measure-mcu-temperature

器件型号:TMS320F28388D
主题中讨论的其他器件: C2000WARE

您好!
我有一些正在 进行原型设计的修订版 A TMS320F28388D MCU。
我尝试在芯 片中使用内部温度传感器、但 ADC_getTemperatureC()函数返回无效温度、在我的情况下为32767 (我使用最新的 C2000Ware 4.01)。
我在0x701C8和0x701CA 地址处检查了 TI OTP 校准参数的值、并且存在无效数字:

0x000701C8    0x0000 0x0001 0x0000 0x0000

为什么是这样? 哪些 MCU 已正确编程、以及如何检测此类情况?
在勘误表中、没有提及此问题。
是否有一些默认校准值可用于获得近似的温度结果? 在 TI 未校准传感器时、典型的测量误差是多少?

此致、
Andy

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

    尊敬的 Andy:

    是的、这些值看起来不正确。  能否拍摄出显示封装上标记的 F28388D 器件图片?  我们将使用器件封装上的标记、并尝试跟踪为什么正确填充了位置0x701C8和0x701CA 中的温度传感器功能所需的值。   ADC_getTemparatureC()函数仅在0x701C8和0x701CA 的内容正确时才返回有效值(不是默认值)。

    此致、

    Joseph

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

    您好、Joseph、

    看来 OTP 毕竟是正确编程的。  
    在我们的器件中、ADCA 和温度传感器分配给 CPU2、但 CPU2无法访问 OTP ROM (或它是否访问?)。

    上述存储器视图是从 CPU2视图中获取的、因此填充的值是错误的。

    因此 、ADC_getTemperatureC()不能在 CPU2上使用。 斜率和偏移值必须由 CPU1读取并以某种方式传输到 CPU2 (例如通过 GSRAM)、然后用户可以使用 ADC_getTemperatureC()函数的自定义版本。

    谢谢、此致、
    Andy

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

    尊敬的 Andy:

    每个 CPU 都有自己的 OTP ROM、相关的修整和校准项目在 CPU1的 OTP 中进行编程。  如您所示、您必须通过 CPU1读取斜率和偏移值、并将其传递到 GSRAM 等公共位置或通过消息 RAM。  请注意、当选择执行此操作时、偏移和斜率存储为32位浮点、因此目的必须从偶数地址开始才能对齐。

    另一种选择是在将 ADC 分配到 CPU2之前仅使用 CPU1、如果可能的话、以简化温度传感器例程的读取。

    此致、

    Joseph