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.

[参考译文] EVM430-FR6043:燃气流量计校准和放大器;测量速率

Guru**** 2481985 points
Other Parts Discussed in Thread: EVM430-FR6043

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1265066/evm430-fr6043-gas-flow-meter-calibration-measurement-rate

器件型号:EVM430-FR6043

您好!

我 正在尝试 使用 流量+温度校准、并使用 EVM430-FR6043和超声波传感设计中心使燃气流量计的 UPS0至 UPS1间隙不超过10ms。 如何 更改 USSSWLib_TEMPLATE_example 源代码来实现这些?  

此外、我很难了解什么是 ADC 采样频率和信号采样频率。 它们有何差异? 在 GUI 上、禁用修改 ADC 采样频率。 是否有任何方法可以访问和 更改该值?

谢谢。

最小值

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

    您好、Min:

    对于第一个问题、GUI 中的此值看起来与 模板示例中的#define USS_SYS_measurement_period 相对应。 如果您导航至 USS_userConfig.h、则可以重新定义它。 正如您在注释中看到的、该值是 LFXT 周期数、因此要将 UPS0与 UPS1的间隙降低至10ms 以下、需要将该值设置为低于328。 您可以 在此链接中找到 USS GUI 用来确定该值的公式

    至于 ADC 采样频率和信号采样频率之间的差异、这两者相互关联、并使用另外两个参数(ADC 过采样率和 PLL 频率)确定(在 USS GUI 中)。 您可以在 超声波设计中心用户指南中的表11.12中找到这种关系。 GUI 将不允许您相互独立地更改信号频率、ADC 过采样率和 ADC 频率、因为某些设置可能会导致无效的 PLL 设置。 如果您计划在 USS 模板示例中自行更改这些设置、则必须确保最终配置产生有效的 PLL 配置。

    请记住、您也可以使用 USS GUI 进行这些更改、然后使用 GUI 中的"Generate header"按钮将标题导出到模板项目。 这似乎是最容易去的方式,最不可能导致其他问题,所以我想鼓励你走那条路线。

    如果这能解答您的问题、请告诉我、

    迪伦

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

    您好,Dylan,

    感谢您的答复。 您的建议对我帮助很大。 不过,我有 一些跟进问题。  

    您提到了 ADC 的采样频率、信号的采样频率、ADC 过采样率、和 PLL 的频率是互相关联的。 从您提供的链接、我 假设 PLL 频率是信号采样频率乘以 ADC 过采样率。  只要  Signal Sampling Frequency * ADC OverSampling Rate /1000等于 PLL 频率的值(默认情况下为80)、就可以将信号采样频率和 ADC 过采样率设置为任何值吗?  

    我无法通过 GUI 更改 ADC 采样频率值。  我是否能够通过模板示例代码对其进行修改? 更改此参数有哪些限制?

    最后、是否可以访问 Flow + Temperature Calibration 功能? 如果我有一组用于校准的数据、如何在代码中实现它、以便将校准结果应用于 GUI 输出的波形值?

    谢谢。

    最小值

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

    第一个问题:是的、我相信只要结果等于 PLL 频率、您就可以根据需要调整这些参数。

    第二个问题:这通常通过调整 ADC12SSEL 和 ADC12DIV 来在 FR6043器件上完成、这两个参数是 ADC12CLK 的参数。 不过、GUI 的设计人员会阻止用户出于某种原因更改该值、我认为更改这些值可能会导致许多不可预见的问题。 我目前正在进一步研究其中的细节、但我强烈建议您利用 GUI 允许的值。  

    至于使用校准数据、看起来所有这些数据都可以在 USS_Config 文件夹中找到/调整。 您是否使用 GUI 收集此数据?

    您能否解释一下、您为什么需要调整代码中的所有这些内容、而不是使用 GUI 并让它生成这些值? GUI 经过优化、可与您使用的 EVM 配合使用。

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

    您好,Dylan,

    关于 ADC 频率、我希望调整值、以减少应用正在处理的样本数。 如前所述、我的目标是使 UPS0到 UPS1的间隙不超过10ms、即100Hz 或更高的测量速率。 当我尝试以10~20ms 的 UPS0到 UPS1间隙更改各种参数时、出现了"测量之间的时间大于 ups0到 ups1间隙"错误、因此我想找到一个解决方案。 是否有其他方法可以在不改变 ADC 频率和增加 UPS0到 UPS1间隙的情况下避免此问题?

    对于校准、我想要获得校准数据、因为可能是由于我正在使用的管道和换能器的特性、GUI 输出的值在不同的流速下会出现偏差、我认为校准数据有助于对此进行补偿。 此外、由于我想在各种环境条件下使用燃气流量计、我认为将温度因数集成到校准中会有所帮助。 您所指的数据"USS_TEMPERATURE_LUT_VALUes"是否是您所指的? 第一列是根据温度计算的声速、第二列是温度、第三列是什么? 我能否将这些值替换为使用 EVM 板收集的校准数据?

    谢谢你。

    最小值

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

    最小值、

    我明白你在说什么。  

    您是否尝试过调整  USS_SYS_measurement_period 定义/ 分配给 ussSystemConfig.measurementPeriod 的值? 执行此操作后、是否仍会收到相同的错误? 您确切地将 UPS0到 UPS1差距设置为什么、将 UPS 和 DNS 差距设置为什么?

    此外、我还可以在我们的 设计指南中看到 、保存校准数据的两个文件是"USS_meterVFRCalibFLowTemperature.h 和"USS_TEAMATURELUT.h"。 因此、您应该也将已经拥有的校准数据放置到这些文件中。  

    对于查找表中列的说明、我在 USS_temperatureLUT.h 中找到了此说明:

    LUT 的格式为声速(c)、温度(t)以及 k 与 k+1元素之间的斜率=温度分辨率/(c (k+1)- c (k))。 使用的水声速度方程(Bilaniuk 和 Wong 148 pt 方程):
    C = 1.40238744*10^3 + 5.03836171*t - 5.81172916 * 10^-2* t^2 + 3.34638117 * 10^-4 *(t^3)- 1.48259672 * 10^-6 *(t^4)+ 3.16585020 * 10^-9 *(t^5)

    该文件中也有参考链接、但它不再可用。 我 在这里找到了另一个。  

    我将继续查看您收到的错误消息、以了解我是否可以找到此问题的确切修复方法。 感谢您对此的耐心等待。 与往常一样、如果您有进一步的问题、请告诉我。

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

    您好,Dylan,

    下图是我使用的参数配置的捕获图。

     

    除了这些参数外、我将使用  USS_SYS_measurement_period = 655 (20ms)以及 USS_SYS_measurement_period = 328 (10ms)进行测试。 在使用20ms 时、我没有太大问题、但在使用10ms 时、我观察到"测量之间的时间大于 ups0到 ups1间隙"错误。

    我使用 MSP430FR6043EVM_USS_MSP430FR6043EVM Gas_Demo、但我找不到 USS_meterVFRCalibFLowTemperature.h 文件。 我假设 USS_meterVFRCalibFLowTemperature.h 用于 流量+温度校准、因此、最终我想使用它来更新校准数据、以便将不同气体温度下的流速变化考虑在内。 在此情况下、我 在水流量计示例中找到了 USS_meterVFRCalibFLowTemperature.h、数据点的格式如下:"

    .iq16Flow =_IQ16 (6.515878/USS_VFR_LARGE_PIPE_Addl_sf)、         \
        .iq16Temp =_IQ16 (44.20)、      "
    我假设6.515878为使用 MSP430通过流量计收集的 VFR、44.20为以摄氏度为单位的温度。 那么什么是 USS_VFR_LARGE_PIPE_Addl_sf、我应该如何设置它?
    我正在使用的当前应用使用 USS_temperatureLUT.h、并且、如您所述、它遵循三列格式:声速(c)、温度(t)以及 k 与 k+1元素之间的斜率=温度分辨率/(c (k+1)- c (k))。 我了解声速和温度是如何计算/测量的。 但是、我对如何获取"k 和 k+1元件之间的斜率=温度分辨率/(c (k+1)- c (k))"感到困惑。 假设我知道输入流速并通过 MSP430燃气流量计进行 VFR 测量、我应该如何处理数据以获得"k 和 k+1元件之间的斜率=温度分辨率/(c (k+1)- c (k))"?
    谢谢。
    最小值
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Min:

    我正在与团队的另一名成员合作、以帮助解决您的问题。 明天下午我会提供最新信息。

    感谢您的耐心。

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

    最小值、

    与我们的 USS 专家讨论后、我有几个注意事项:


    1) 1)对于气体计量应用、我们建议 UPS0到 UPS1的间隙为50ms。 UPS0到 UPS1间隙是两次测量之间的时间间隔。 我的意思是、当您得到 "测量之间的时间大于 ups0至 ups1间隙"错误时、这意味着测量所花费的实际时间比您在设置中指定的间隙更长。 您可以通过减小 UPS 与 DNS 之间的间隙来加快测量速度、但由于传感器振铃和反射、您只能在开始遇到问题之前将其减小这么多。 我看到您说过您已成功将 UPS0到 UPS1间隙设置为20ms;我认为、您最好做的是尝试和错误、看看您可以缩短这一间隙、而不会得到错误。 20ms 可能是你能达到的最低值。

    2) USS_VFR_LARGE_PIPE_Addl_sf 定义基本上只是体积比例因子的扩展。 如果将体积比例因子设置为最大值并需要进一步增大它、则可以通过放大 USS_VFR_LARGE_PIPE_Addl_sf 来实现。 它的使用方式如下:

    体积流速=(体积比例因子*附加体积比例因子)* dTOF /(absTOFUPS * absTOFDNS)

    3) 3)斜率如下图所示:

    为了计算声速、将传感器之间的长度除以 absTOF。 然后使用温度数据、通过计算公式得出斜率/表中的第三个元素。

    请告诉我、如果这能为您清除一切。

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

    您好,Dylan,  

    1) 1)我知道在使用 MSP430设计燃气流量计时有一些限制。 如果我进行试错、首先需要优化参数和系统、以获得最小的 UPS0到 UPS1间隙。 如果是、我需要执行哪些优化操作? 我应该对 GUI 和源代码调整哪些参数/配置、以尽可能减小 UPS0到 UPS1的间隙? 通过增加主时钟来改进 CPU 是否有助于减少测量时间? 我可以尝试哪些硬件优化?

    目前,该时钟是通过演示应用的 hal_system_Init ()函数初始化的。 在这种情况下、MSP430使用的主时钟频率是多少? 频率是否与 HSPLL = 80MHz 相同? 如果我更改主时钟频率、它是否也会影响用于 USS 的 HSPLL 频率?

    另外、我们之前讨论了 信号采样频率和 ADC 过采样率的调整、必须对其进行设置、以便满足"信号采样频率* ADC 过采样率/1000"等于 PLL 频率值的条件。 如果我要更改 PLL 频率、我假设我需要相应地调整信号采样频率和 ADC 过采样率、这是正确的吗? 在这种情况下、是否可以更改速率、使 信号采样频率* ADC 过采样率/1000等于 PLL 频率的分频值? 例如、如果我有80 MHz 的 PLL 频率、我可以用500kHz 的信号采样频率 ADC 过采样率为80、还是用1MHz 的信号采样频率 ADC 过采样率为40? 这是否有助于减小数据大小、从而缩短测量时间?

    2) 2)根据您的响应、我假设 USS_VFR_LARGE_PIPE_Addl_sf 是我需要 使用采集的数据获取的值。 然后、如果我编辑源代码以利用 USS 库提供的 USS_calibrateVFRFlowTemperature 函数的数据集并将其用于自己的数据集、我是否能够 在 evm430 FR6043气流应用中使用流量+温度校准功能?

    3)你的回答澄清了我的问题,我对此没有进一步的问题。

    4) 4)我还有关于最大相关指数点检测的其他问题。 我之前在 TI 的技术参考中谈到过、我了解 TI 如何找到最大相关指数点来计算 Δ 飞行时间。 但是、如果最大相关值限制为1、则最大相关值可能出现在指数点范围内的多个点。 在这种情况下、代码如何确定哪个索引表示"正确的"Δ 飞行时间差? 我在差值 ToF 波形中检测到一些尖峰、我认为这是由检测到错误的最大相关点引起的。 是否有办法解决此问题?

    感谢你的 帮助。

    此致、

    最小值

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

    1) 1)软件优化指南可在本 USS 气体计量参考设计 第3.2.1.5节中找到。 一些有关硬件优化的注意事项可以在 燃气表设计指南的第2部分找到。 一般而言、我首先想做的是降低 UPS 与 DNS 之间的差距。 但是、这最终会导致 UPS 信号反射干扰 DNS 信号的问题、因此对此必须小心谨慎。 您还可以尝试减少脉冲数、尽管这可能不会导致速度大幅提高。 我不认为增加 CPU 主时钟会是最佳选择、因为数据处理由低功耗加速器完成。  

    CPU 时钟和 HSPLL 时钟是独立的。 该器件在工作模式下的最大时钟频率为16MHz。 除非同时更改 HSPLL 配置或输入、否则更改 CPU 时钟频率不会改变 HSPLL 频率。

    在上一段中、您所说的内容通常应通过减少数据量来帮助减少处理时间。 但是、在上述参考设计指南中、我们建议信号采样频率至少为传感器频率的3.4x、因此在调整参数时应记住这一点。 我建议您尝试对设置进行这些调整、以查看得到的结果。 请记住、减少收集的数据量也会影响最终测量的准确性。  

    2)此定义仅用于增大您的体积比例因子,以防 IQ21格式施加的限制导致您无法使用正确的值。 因此、这将使用您首先得出体积比例因子时获得的相同采集数据来确定。 如果您已经能够使用正确的体积比例因子、则可以将 USS_VFR_LARGE_PIPE_ADDL_SF 的值保留为1。

    4) 4) 我正在就这一问题咨询我们的专家、稍后会提供更新、但现在、 我想说的是、在产品的整个生命周期中、此算法一直在生产中、我不相信相关算法会导致 dToF 尖峰。 这可能是由多种原因造成的、尤其是考虑到您的设置使用非常严格的时间、基本上会导致错误。 我稍后会在我获得有关这方面的更多信息时向您提供最新信息。

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

    结束该主题、因为其 原始问题已得到解决、进一步的讨论已离线进行。