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.

[参考译文] MSP430FR6043:燃气流量计-随机 Δ- ToF 尖峰-我们如何修复?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1345928/msp430fr6043-gas-flow-meter---random-delta-tof-spikes---how-do-we-fix

器件型号:MSP430FR6043

我们将使我们自己的电路板和传感器主体上线、并且发现了我们使用的开发板和3D 打印传感器没有遇到的问题。  我们使用相同的换能器、而且传感器主体在本质上是相同的。  传感器为300kHz。

第一幅图显示了运行数据和我们要查找的尖峰。  这是有气体流经传感器。 燃气流量由流量计控制、因此非常一致。   尖峰相当大。

下一组图像显示相互叠加的向上和向下波形。  这至少是7次通过。  它们对我们来说非常一致和干净。  七个波中至少有一个对应于 Delta ToF 中的尖峰。  

我们目前正在使用这些设置。   

这是调节问题还是算法设置方面的问题、还是我们正在解决其他一些问题?   寻求帮助以了解我们的工作重点。  

非常感谢任何帮助。  

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

    您好、Brent:

    在转向定制硬件之前、您是否具有 ADC 捕获结果的图像?  

    您的电流 ADC 捕获看起来相对较好、具有低噪声。我想知道信号幅度的缓慢上升是否会成为问题。 dTOF 和 VFR 中的这些尖峰通常是由算法相关性结果问题引起的。  

    通常、在我们的示例中、ADC 捕获中显示的振幅上升速度更快。

    或许还可以尝试一个快速测试、即增加脉冲数、看看这是如何影响波形和结果的。

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

    我认为、由于 Excel 图中的缩放比例、我之前的图像可能略显式。  下面是来自 TI 软件的图像。  我们新传感器的曲线上升速度与旧版3D 打印传感器一样快。  下图是我们使用 TI 软件的全新传感器的图片。  第一个是没有流量、第二个是最大流量。  这些是什么样子的?  同样、它们与我们的第一种设置非常相似。  

     "算法相关性结果"的含义是什么。  我们是否可以控制此参数的任何参数?  这些算法有点像黑盒。

    信号振幅如何影响算法?

    我们还应关注哪些方面?  如果有有用的信息、我们很乐意提供更多详细信息。  

    。  请询问他们 "算法相关性结果"是什么意思、以及我们是否对此有任何控制。

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

    此外、对于 Delta ToF 算法、数据的哪些特征最重要?  我们不完全了解算法的工作原理。  是否有任何其他资源可提供有关它们工作原理的更多详细信息?

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

    您好、Brent:

    感谢您提供的信息和更新的图像。

    这些新图像看起来非常好。 捕获效果良好、噪声低。 老实说、看到结果不好让人惊讶。 通常、飞行时间差中的这些尖峰是由错误设置的最大相关点引起的、通常是由噪声引起的。  

    您能否另外发布您的高级参数窗口的图像? 或许有一些东西能使人们对这个问题有所了解。

    调整脉冲数来进行试验。 考虑到信号振幅很好、我建议首先尝试减少数字、看看这是否有帮助。 另一个我有时会看到帮助的设置是缩短 ADC 捕获持续时间并增加脉冲开始和 ADC 捕获之间的间隙、因此捕获的大多数信号是活动波形、脉冲前后的平坦信号较少。 这只是一个实验,而不是一个 surefire 修复.

    另外、很抱歉我说算法相关性结果不够清晰。 该算法主要是特意设置的黑盒、但我们提供了有关其工作原理的一些更详细的信息来进行概述。 您可以在 MSP430 USS Academy 中阅读相关内容。

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

    我们尝试缩短 ADC 采集持续时间并增加脉冲启动和 ADC 采集之间的差距。  对于我们正在测试的大多数单元、这似乎得到了改善(尖峰更少)。  我们尝试将脉冲计数从8减少到6。  这降低了一些单元上的尖峰、而增加了其他单元上的尖峰。  当脉冲计数较高时、一些单元的表现更好、例如10。 即使使用较小的捕获窗口、我们在靠近流速范围顶端的流量处仍会得到尖峰(9-10 L/min)。

     我们已经完成了改变扫描频率、脉冲计数的广泛测试。  一些设置可减少尖峰、但没有什么可以完全消除它们。

     这里是一些示例数据。  我不知道为什么在我插入后他们如此模糊。

    这些数据分步执行流程如下:4、6、8、10 L/min。

    10 L/min (我们的最大流速)

    0 L/min

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

    我很高兴听到事情越来越近。 不幸的是、尖峰出现在流速范围的顶部。

    当您得到这些尖峰时、器件是否出现错误? 看起来它们一直跳到初始的2000ns dToF。 您在 ADC 捕获中的波形看起来非常好。 这使我认为、配置设置方面没有太多事情要做。 如果您尚未准备就绪、则可以尝试进一步增大脉冲启动和 ADC 采集之间的间隙、以及进一步减小采集窗口。  

    ADC 采集的质量也向我表明、这不是硬件问题。 除非您收到一些零星的不良采集数据、否则我认为信号质量或接收能力不会导致问题。 尝试上述操作、同时我会问一些同事、这里是否有其他可疑因素。

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

    谢谢 Dylan。  我已经尝试减少 ADC 捕获、直到只捕获了包络。  与我昨天发表的帖子中给出的设置相比、它没有太大 的改进、无论如何我无法长期使用如此窄的窗口、因为 由于该器件预期将在温度和气体成分范围内运行。 (到目前为止、所有测试和观察到的尖峰均在室温下通过空气完成。)

    我不认为我们得到的是零星的不良捕获、因为我收集了 ADC 捕获、直到得到一个尖峰并相互绘制。  他们都不像一个外星人。  下图显示了7个相互叠放的采集数据、其中一个在 Delta TOFF 中出现尖峰。  奇怪的是、我可以通过任何可以降低噪声的东西来影响尖峰的频率。  例如、如果我使用接地箔屏蔽整个传感器、尖峰会减小。  如果我破坏 入口的设计以减少湍流,尖峰就会减少。  

    这些都不能 完全解决问题、而且各单元之间的情况不一致。  在一个单元上、我更改了接线以使用3.3V 而不是5V 对瞬变电阻器施加脉冲。  这几乎完全消除了尖峰。  第二天我测试了完全相同的设置和尖峰回来,所以似乎有一些不受控制的变量,我不知道。  或者设置处于尖峰边缘、并且噪声、温度等微小的随机变化会导致传感器移动到导致尖峰的任何地方。

    这似乎与样品滑动示例非常相似。  一位可能有用的信息:我测试了即使在低流量(例如4 L/min)下也会出现尖峰的设置。  在这种情况下、尖峰大小大致相同、会导致 Delta TOFF 负值。  此外、我会使设置变得一团糟、直到"尖峰"持续并且会定期达到正确的值。

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

    感谢您提供的信息。 我同意、听起来您并没有获得一个零星的不良 ADC 捕获信息。 我同事的第一个建议是尝试降低 信号采样频率、首先尝试1.7M、然后缓慢地向下移动到1MSPS、以查看这是否有助于减少或消除 dToF 尖峰。 请在此处告诉我、这是否有用。

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

    我们将尝试该操作。  是否有办法让超声波感应设计中心应用的费率介于1 MHz 和2 MHz 之间?  或者我们是否只需要修改头文件?  这会使我们每次必须编辑、重新编译、重新编程时尝试其他参数的速度非常慢。

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

    嘿、Dylan、我们很难解决如何使用设计中心将信号采样频率改为1MHz 和2MHz 以外的频率。

    通过设置变量 ussCaptureConfig.overSampleRate 来配置采样率。

    配置的值受以下定义的限制:

     

    //! 简略配置采样率上的 SDHS

    //!    n \n 已修改寄存器:SDHS.CTL0.OBR

    typedef enum _USS_API Capture_Over_Sample_Rate_{

                   USS_USS_D10 Capture_Over_Sample_Rate_= 0x0000、

                   //!<将采样率上的 SDHS 配置为10

                   USS_0001 = Capture_Over_Sample_Rate_

                   //!<将采样率上的 SDHS 配置为20

                   USS_USS Capture_Over_Sample_Rate_ 40 = 0x0002、

                   //!<将采样率上的 SDHS 配置为40

                   USS_USS Capture_Over_Sample_Rate_ 80 = 0x0003、

                   //!<将采样率上的 SDHS 配置为80

                   USS_USS_160 Capture_Over_Sample_Rate_= 0x0004

                   //!<将采样率上的 Capture_Over_Sample_Rate 配置为160}USS_SD;

     

     

     

    USS_PLL_FREQ 是根据以下定义设置的:

     

    #IF (USS_HSPLL_FREQ_IN_MHz == 80)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_80_MHz    

    #define USS_PLL_FREQ               80e6

    #Elif (USS_HSPLL_FREQ_IN_MHz == 79)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_79_MHz    

    #define USS_PLL_FREQ               79e6

    #Elif (USS_HSPLL_FREQ_IN_MHz == 78)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_78_MHz    

    #define USS_PLL_FREQ               78e6

    #Elif (USS_HSPLL_FREQ_IN_MHz == 77)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_77_MHz    

    #define USS_PLL_FREQ               77e6

    #Elif (USS_HSPLL_FREQ_IN_MHz == 76)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_76_MHz    

    #define USS_PLL_FREQ               76e6

    #Elif (USS_HSPLL_FREQ_IN_MHz == 75)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_75_MHz    

    #define USS_PLL_FREQ               75e6

    #Elif (USS_HSPLL_FREQ_IN_MHz == 74)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_74_MHz    

    #define USS_PLL_FREQ               74e6

    #Elif (USS_HSPLL_FREQ_IN_MHz =73)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_73_MHz    

    #define USS_PLL_FREQ               73e6

    #Elif (USS_HSPLL_FREQ_IN_MHz == 72)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_72_MHz    

    #define USS_PLL_FREQ               72e6

    #Elif (USS_HSPLL_FREQ_IN_MHz =71)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_71_MHz    

    #define USS_PLL_FREQ               71e6

    #Elif (USS_HSPLL_FREQ_IN_MHz = 70)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_70_MHz    

    #define USS_PLL_FREQ               70e6

    #Elif (USS_HSPLL_FREQ_IN_MHz =69)

    #define   USS_HSPLL_FREQ   USS_HSPLL_OUTPUT_clk_freq_69_MHz

    #define USS_PLL_FREQ               69e6

    #Elif (USS_HSPLL_FREQ_IN_MHz =68)

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_68_MHz    

    #define USS_PLL_FREQ               68e6

    #else

    #define   USS_HSPLL_FREQ USS_HSPLL_OUTPUT_clk_freq_80_MHz    

    #define USS_PLL_FREQ               80e6

    #endif

     

     

    问题:USS_HSPLL_FREQ_IN_MHz 是固定在80,还是从

    68至80

    根据上面的定义、它还附带了修改后的 uscaptureConfig.overSampleRate、以设置采样频率?

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

    您将"Envelope Crossing Threshold (信封交叉阈值)"设置为50%。 该阈值最终会在两个凸点之间着陆、这意味着该算法将循环滑动。

    编辑:此批评仅适用于水表。 燃气表执行希尔伯特变换、而是根据包络进行计算。

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

    谢谢 Seth。  请帮助我更好地理解这一点。  这不可能发生在任何 接近一个凸缘顶部的阈值水平? 另外、从我在 TI 文档中读到的内容、我认为在应用交叉阈值前、algorim 确实能够根据每个波瓣的峰值拟合曲线、具体来说就是为了避免这个问题。

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

    是的、抱歉、我习惯了处理水表、其中的阈值锁定在单个波瓣上。 我将编辑上一封邮件以反映这一点。

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

    您好、Brent:

    很抱歉这里的答案很慢。

    USS_HSPLL_FREQ_IN_MHz 会根据上述定义进行调整。 规定必须确保信号采样频率、PLL 频率和过采样率的最终值保持公式不变:

    采样频率=(PLL 频率)/(过采样率)

    此公式可在 USS 设计中心用户指南 PDF 中找到。 您将需要在 USS GUI 之外编辑所有这些内容、以获得准确的所需值。 您会注意到、USS GUI 将阻止您现在编辑某些变量并使其成为只读、以防止其他客户误配置器件。  

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

    确定不好感谢你的评分  我们成功地正确配置了头文件、以便为我们提供其他信号采样频率。  我们意识到 PLL 之间的关系,采样频率。 和 OSR、并且一直在坚持。  然而、我们似乎无法使 ToF 算法可靠地执行。  我们已尝试了1.0、1.2、2.0 3.4 MHz 信号采样率、每个采样率都有不同的脉冲计数和频率扫描组合。

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

    TI 算法仍然没有成功。  我们认为算法的跟踪部分变得 困惑。  是否有办法禁用跟踪并强制每次都采集?  

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

    我不熟悉该算法的跟踪部分、如果您可以在此处进一步解释您要查找的内容、我可能会对此提供帮助。 阅读更多,我主要看到跟踪算法在预测跟踪的意义。  

    Howeveri 可能会说、我不知道 USS GUI 或源代码中的任何设置、这些设置允许您更改算法以对其进行更改。

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

    您好、Brent:

    您可以通过转至 USS GUI 中的高级参数选项卡并将"Search Range"选项设置为0来禁用跟踪。 在源代码中、这由  USS_ALG_ABS_TOF_search_range 定义决定。 请告诉我这是如何改变器件的输出的、以及它是否有帮助。