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.

[参考译文] MSP430FR50431:MSP430FR50431 -在 MSP 上使用.xml 文件 VFR 校准

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1325044/msp430fr50431-msp430fr50431---using-xml-file-vfr-calibration-on-msp

器件型号:MSP430FR50431

您好!

software-dl.ti.com/.../ch_calibration.html

我使用它来执行 VFR 校准。

我想知道、在从校准中导出 xml 文件后、是否可以将其刻录到 MSP、并告诉它使用该文件以获得适当的水流量值?

这就是我今天要做的事情、我准备了一个校准文件、并通过 USS 加载它、然后在"波形"页面上单击"使用 ADV"表。

我还想详细说明是否可以在我们的定制板上将该文件刻录到 MSP 上、以及如何进行烧写? 在哪里可以找到特定于寄存器和命令的信息?

附件为说明图片。

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

    您好、Ido、

    您的校准信息应该全部位于您单击"生成头文件"时生成的.h 文件内。 我认为.xml 文件只是保存了测量数据。 如果您可以生成头文件而获得.h 文件、则可以将其添加到项目中、然后像以前的项目文件一样编程到器件中。

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

    好的,我明白。
    但在 USS GUI 中、有一个用于访问 adv.calibration 表的按钮、
    这会导致​​我声称要使用的校准值。
    如果未使用该按钮、则流量值​​与​​我所做的校准值不同。

    正如您所说的那样、我获取了我创建的头文件的.h 文件并通过 CCS 将它们刻录在项目中、但​​直到我使用此按钮、流值仍然保持不变。
    是否有其他方法可以告诉您使用此校准表?

    是否可以将其设置为默认使用"USS_userConfig.h 中的校准表?

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

    我的期望是、当您选中该框进行高级校准、然后生成标题时、标题将包含您已输入到校准表中的信息。 当您生成这些头文件时、您能否确认在重新编译工程之前将所有3个头文件(USS_intrplCorrLUT.h、USS_meterCFRCalibFlow.h 和 USS_userConfig.h)放置在工程的 USS_Config 文件夹中? 我认为这些都是必要的步骤。

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

    不、很遗憾、它不起作用。
    我按照您提到的方式导出文件、将其传输到我刻录到 MSP 的文件中、然后尝试查看水读数、但这些读数没有按照我所做的校准进行更新。
    只有在我将其标记为使用校准表之后、它才会更改值。

    也许代码中有一个按钮或方法允许您使用此表?

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

    我明白了、

    执行手动配置还是运行时配置?

    您是否尝试过在器件中烧录新的头文件、然后使用 读取 MCU 配置功能检查 GUI 是否填充了正确的校准数据? 这将向您显示是否正在将正确的值编程到器件中。

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

    是的、我尝试过、它确实向我显示了值正确的校准数据。
    但是、当我遇到流值时、如果我不检查 adv.cal 表、那么我得到的值将低于我的校准值。
    即使在 csv 文件中、我导出的流值也低于我的校准值、直到我选中按钮

    再说一次、正如我告诉过您的、似乎有一个按钮允许流值使用该表、您知道这样的信息吗?
    因为我最后需要加载此校准表并直接读取正确的值。

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

    我想我误解了这个问题:您只需要在代码中启用表的使用、而不是检查"Adv calibration"框、是正确的吗?

    您应该能够像以前一样使用头文件来实现这一点、并 在代码中手动将 USS_ENABLE_VFR_METER_CALIB 设置为"TRUE"。

    这些内容可在 《USS 设计中心用户指南》中找到

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

    是的、我在您发送的链接中看到了它。
    但由于某种原因、演示代码中未提供该参数!

    不仅仅是他。 其中有些参数找不到。
    我在整个代码中没有找到这些内容。

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

    我明白你在代码中的意思。。。  

    我在代码中看到了另外两个定义、 USS_measurement_TURN_ON_EXTERNAL_AMP_SEC 和 USS_ALG_VOLUME_RATE_COMPUTATION_MODE 。  

    我将与我的团队进行核实、看看它是否因某种原因被删除、并且没有在我们的文档中进行更新。 请给我2天的时间来获得回复并将其转发给您。

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

    您好、Ido、

    咨询我的同事后,似乎你需要调用  USS_runAlgorithms()而不是 USS_runAlgorithmsFixedPoint() 来获得校准后的 VFR 结果。 或者,您可以调用 USS_runAlgorithms(),因为这会调用  USS_calibrateVolumeFlowRate ()。

    因此、请替换该函数调用、告诉我这是否有助于您从器件中获取正确数据。

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

    我不是来自这个世界、所以我会更具体地询问。

    您的意思是、如果我将其更改为 USS_calibrateVolumeFlowRate、则会激活"Adv calibration"表?

    我是否在需要变革的正确地方?

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

    我将上一个响应中的函数调用混合在一起、抱歉。

    您应该 调用 USS_runAlgorithms(),而不是 USS_runAlgorithmsFixedPoint()。 该函数调用  USS_runAlgorithmsFixedPoint (),然后调用 USS_calibrateVolumeFlowRate (),后者 使用高级校准表调整 USS_runAlgorithmsFixedPoint 的结果。

    因此将您在屏幕截图中突出显示的函数替换为 USS_runAlgorithms (),您应该会获得更新的 VFR 结果。

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

    仍然不是很好...

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

    USS_runAlgorithms 接受 USS_SW_Library_CONFIGURATION 和 USS_Algorithms 类型的参数 Algorithms_Results。 USS_runAlgorithmsFixedPoint 获取类型为 USS_SW_Library_CONFIGURATION 和 USS_AlgorithmsFixedPoint Algorithms_Results_的参数。

    将函数从  USS_runAlgorithmsFixedPoint ()更改为 USS_runAlgorithms()时,还需要确保参数的类型正确。 第一个参数(&gUssSWConfig)可以保持不变。 必须更改&algResFixed、因为它的类型不正确。  

    我相信我们在项目中为您定义了 algResults、这是正确的类型。 将&algResFixed 替换为&algResults、警告应消失。 如果尚未定义此定义,则可以添加定义:

    USS_AlgResults Algorithms_Results;

    USS_GUIApp.c 文件中的 void USSLibGU43D(void) App_Engine 函数的顶部 Water_Demo。

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

    谢谢!

    当我这样做并在 MSP 上燃烧时,我的流量被固定在某个值:

    你知道什么是原因吗?

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

    有趣。 像以前一样在 GUI 中启用高级校准表后、您能否发布 TOF 和 VFR 窗口的图像?

    此外、您只更改了一行以在新结构中使用新函数? 我不会指望这种改变会导致你的结果突然不起作用。 可能当数据传输到网桥时、它仍期望 IQMath 格式的定点结果、如 USS_IQMath Algorithms_Results_点中所示。 您能否调试项目以在调试/观察窗口中检查结构的值以查看它们是否更接近您的预期值?

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

    您好!

    我已经从考试期回来了!

    这是我启用 adv.cal.table 时的图像。

    是的,我只是改变了这个变量,就像你说的,燃烧,这是发生了什么。


    关于您所说的内容、我不太明白、
    能否详细解释一下?

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

    感谢图像 Ido。

    为了更详细地进行说明、我的意思是您应该尝试在 CCS (或您喜欢的任何 IDE)中调试代码、并在变量观察窗口中检查 VFR 和 ToF 值。 检查这些值是否接近您的预期 VFR 和 ToF 值。 我之所以这样建议、是因为我认为 GUI 可能会要求此数据为定点格式、而您的项目不再以此格式发送数据。 通过在调试器监视窗口中检查 VFR 和 TOF 值、您可以查看浮点值或十六进制值、这样您就能够验证现在的数据是否真的错误、或者格式是否正是导致问题的原因。