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.

[参考译文] PGA305EVM-034:计算校准系数

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1345885/pga305evm-034-computing-calibration-coefficients

主题中讨论的其他器件:PGA305

我查看了以下链接中记录的讨论

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/852425/pga305-data-representation-coefficients-calculation

通过使用 GUI 手册定义的以下公式、我的校准采用3个 PADC 值、并将其转换为3个 DAC 值:

DAC = h0+g0*PADC+n0*PADC^2

这是一种非常简单的 3x3线性矩阵解决方案。  

但结果不匹配。

因此、我遇到的问题与本次讨论中的问题相同(请参阅 上面链接中的支持案例) =>计算系数与 GUI 的结果不匹配。

请告诉我您当时是如何解决的。

感谢你的帮助。

下面的图像中显示了我的计算。

此致、

伊戈尔

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

    尊敬的 Igor:

    GUI 算法的结果可能与在其他文章中提到的 DLL 中所得到的结果略有不同。  原因是该计算实际上可能具有多种可能结果、其差异具有更好的线性拟合。  在固件内、EEPROM 中的值全部标准化为2^22。  在参考帖子中、当比较系数时、EEPROM 值被缩放到2^30。  原因很难解释、但最终结果是最终 DAC 计算针对最终 DAC 输出右移8位。  对于 EEPROM 设置、这要求计算开始值为2^30 (22+8)。

    至于计算、在尝试确定正确系数时、固件中的实际计算(在3P1T 用例中)首先进行压力测量、 根据 EEPROM 中的 OFFEN 设置、 将 EEPROM 的数字增益设置(PADC 增益)乘以压力转换代码、然后添加偏移 PADC 偏移)、或将增益乘以转换结果代码和 PADC 偏移 EEPROM 值的组合。

    因此、以最简单的术语来思考该计算、h0系数直接与偏移有关、g0与增益有关。  请记住、h0项位于上一段的初始计算之后。

    因此、您在公式中显示的 PADC 值是在计算从 EEPROM 值应用的数字增益和偏移之后得出的。  其他几个注意事项是 EEPROM 值是二进制补码值。  GUI 可以计算负系数。  另外、在将 GUI 与您计算的系数进行比较时、必须确保这些值使用相同的数值。  这意味着您作为系数计算和确定的值必须适合于适合于 EEPROM 值的24位范围内的值(乘以2^30时)。  最后一点是确保值不会作为32位有符号整数在固件中溢出。  这就是为什么会将内部值在固件中标准化2^22。

    我要说明的最后一点是、计算后的结果必须是正值、并且必须适合14位、因为这是 DAC 的分辨率。  如果该值为负、则 DAC 输出将为0。

    此致、

    鲍勃 B

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

    Bob 您好!

     

    感谢您的答复。

     

    不过,你的回应并没有回答我的问题。

     

    众所周知、获取校准系数的方式和结果可能不同。

     

    我知道 ho 是二阶多项式的第一项。

     

    我的问题是、没有一个换算系数适用于所有3个系数(h0、g0和 n0)。

     

    我选择了只有一个有效解决方案的情况:

    当获取3个读数并计算3个系数时 è 只有1个有效的3x3线性系统解决方案。

     

    我添加的图像显示"g0"系数具有2^30的缩放比例(这是第二项)。

     

    不过、"h0"和"n0"不会缩放为2^30。

     

    请帮助我了解如何正确缩放、确定正确的 PGA305系数:

    测量的1T3P 数据如下表所示:

    校准类型:  1T3P

     

    压力  [PSID]

    PADC  -十进制值

    已校准  DAC  - 十进制值

    -100

    -4790932

    1638

    0

    4750

    8160

    100

    4759893

    14685

     

     

    我计算了校准系数、并将其与 PGA305 GUI 计算的系数进行比较。

     

    等式:dac (十进制)= h0 + g0*PADC + n0*PADC^2

     

    单解决方案系数(显示针对 错误):  

    H0=8132.309438

    G0=0.00136606

    N0=1.28E-12

     

    PGA 计算的 GUI 系数:

    H0=1FEEBD (十进制数2089917)

    G0=1661AC (十进制数1466796)

    N0=FFFE46 (十进制 -442)

    TADC 增益=1

    TADC 偏移= 0

    PADC 增益=1

    TADC 偏移=3CA0 (十进制数15520)

     

    与 h0、g0和 n0没有直接相关。

     

     

    我已经看到有人设置了一个实时会话、这样可以更轻松地解决很难与 vi 电子邮件进行通信的问题。

     

    感谢你的帮助。

     

    此致、

    伊戈尔

     

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

    尊敬的 Igor:

    我很确定我确实回答了你的问题,但显然我不清楚。  实际系数值(h0、g0、n0)可以计算为浮点值、但要考虑到前面所述的限制以及系数被标准化为22位(加上8位、强制 DAC 输出为14位)的事实 扩展到2^30之前的系数要求真实系数本身小于+/- 1 /(2^8)或(.0039)、以防止溢出。  正如我最初所述、EEPROM 值以系数值乘以2^30的形式写入。  固件在计算 DAC 值时、采用 EEPROM 值并除以下表中显示的内部值:

    Dec/2^22
    H0 0.498275042
    H1 0
    H2频道 0
    H3 0
    G0 0.349711418
    G1 0
    G2 0
    G3 0
    N0 -0.000105381
    N1 0
    n2 0
    N3 0
    M0 0
    M1 0
    M2 0
    M3 0

    我使用了 P2设置的4750十进制、并通过以下公式计算结果:

    12月 十六进制
    DAC 8191.428282 1个 FFF

    校准时、由于初始值为8160、出现31个代码缺失。  根据经验、这很可能可以改进、因为我认为 GUI 只会发现 FIT 误差小于1、不一定是最佳拟合。

    对于计算的值、您需要确保这些值与 PGA305计算 DAC 值的方式完全一致。  这意味着 h0值不能像您显示的那样大。  由于 EEPROM 值在计算开始前均除以2^22、因此公式不像您展示的那样简单、不能是浮点值。  DAC 值与(PADC + PADC 失调电压)相关、而不仅仅与 PADC 相关。  请注意、PGA305计算出的 h0值为0.498275042、而不是8132。

    有趣的是、8132大约为 DAC 输出的1/2、当您除以2^14时、结果变为0.496337890625。  这里有一个相似性。  至于增益 g0系数、将 g0值乘以2^8、最终得到的值为0.3497216。   请注意、值有一定的对称性。  n0值有些混乱、因为该值使用了压力的平方。  因此、该值不会与 n0乘以2^8的平方根对齐。

    因此我大致同意您的值在数学上可行、但如果不进行一些修改、这些值不会作为 PGA305的输入、从而适合 PGA 的框架。

    此致、

    鲍勃 B   

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

    Bob 您好!

     

    感谢您的答复。

     

    但是、我仍然看不出您是如何根据我收集的数据解释由 GUI 计算得出的系数并将其发送给您的。

     

    您的解释和 GUI 计算的值之间很难联系起来。

     

    我知道 SoC 不使用浮点、因此  值可能会略有不同(没关系)。

     

    我还了解为了获得最佳结果而执行的缩放和偏移(PADC 偏移、PADC 增益、TADC 偏移、TADC 增益)。

     

    请取我记录的输入(3个 PADC 值和相应的3个 DAC 值)并显示如何 计算 h0、g0和 n0的3个值。

     

    请分步显示缩放比例和结果。

     

    校准类型:  1T3P

     

    压力  [PSID]

    PADC  -十进制值

    已校准  DAC  - 十进制值

    -100

    -4790932

    1638

    0

    4750

    8160

    100

    4759893

    14685

     

     

     

    感谢您的耐心和帮助。

     

    此致、

    伊戈尔