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.

[参考译文] CCS/UCD3138HSFBEVM-029:无法了解电流温度补偿

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/865100/ccs-ucd3138hsfbevm-029-unable-to-understand-current-temperature-compensation

器件型号:UCD3138HSFBEVM-029
主题中讨论的其他器件: UCD3138

工具/软件:Code Composer Studio

器件型号:UCD3138HSFBEVM-029
工具/软件:Code Composer Studio
现在我正在研究温度补偿、我对程序有一些疑问.这里是电流温度补偿的代码:
int handle_Iout_temp_comp (int Iout_adc_count、int 温度)

  instante_reistance = R0_23C -(温度- ADC_COUNT_23C)*系数;//乘以100000
 ADC_COUNT_FACT_NEGATIVE =(即时电阻负值<< 10)/ R0_23C;
 instante_celse_positive = R0_23C +(温度- ADC_COUNT_23C)*系数;//乘以100000
 ADC_COUNT_FACT_POSITIVE_POSITIVE =(即时电阻_正<< 10)/R0_23C;
 // instate_阻力= 2720 +(温度- 1041)* 1.22;//乘以100000
   返回((Iout_adc_count * adc_count_factor_negative)>>10);
 //我们可以稍后切换到多段线性化  

据我所知、PCB 铜是一种温度系数为正的材料(400ppm/℃)、因此我们可以通过以下公式通过温度变化来获得 PCB 铜的电阻值:
RT=R0*[1+k α Ω*(t-T0])
其中 RT 是 t℃处的电阻、R0是室温下的电阻、α 是温度系数、T0是室温。
瞬时电阻负值= R0_23C -(温度- ADC_COUNT_23C)*系数
您可以发现代码和公式不匹配。
此外,我还有另一个问题,我认为因数应按以下三个公式计算:
RT=(R0*10^5)+[R0*10^5**α 0.00625*(t-T0)*(1/3.3)*2^12*m];
(1/3.3)*2^12*0.00625*m=1;
Faction=R0*10^α 5*k Ω*0.00625*m;
然后、因数=2.13129。
但是、该程序中的值为1.15:
#define factor (1.15)
我无法理解该函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Qiang、

    很抱歉造成混淆。 我可以看到它为什么看起来像公式和代码不匹配。

    但是、我将尝试解释代码与公式匹配的原因。

    首先  、我们应该明白、我们没有工程单位的温度、只是一个与温度成比例的 ADC 计数。

    此外、我们 应该意识  到、在 UCD3138中、表示温度的 ADC 计数会在温度升高时(成反比)降低。

    现在,让我们从您提供的公式开始:Rt=R0*[1+k α Ω*(t-T0)]   

    我们可以开发此公式,使其与 Rt=R0+N Ω α R0*(t-T0)类似。

    在代码中,Rt 被称为 instee_acisty_negative而 α Ω*R0替换为因子

    因此、即时电阻负值= R0 +系数*(t-T0)

    但如前所述(温度- ADC_COUNT_23C)与(t-T0)成反比、

    因此,iminst_elime_negative = R0 + factor*(temperature - adc_count_23C)*(-1)= R0 - factor*(temperature - adc_count_23C)

    另请℃、400ppm/̊ C 的温度系数是近似值、铜实际上不会随温度线性变化。

    因此、我们的转换功能中可能有两个因素(FACTOR1和 FACTOR2)用于使温度低于室温和温度高于室温。 这就是为什么在代码中有两个公式、但最后只有一个公式在使用中。 另一个(正极) 是在需要更高精度的情况下供将来使用。

    此外,当 使用定点算术(非浮点)时,>10和<10也用于获得更好的分辨率。

    希望这一点现在变得有意义。

    此致、

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

    感谢您的回答!我答对了。