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.
我们将使我们自己的电路板和传感器主体上线、并且发现了我们使用的开发板和3D 打印传感器没有遇到的问题。 我们使用相同的换能器、而且传感器主体在本质上是相同的。 传感器为300kHz。
第一幅图显示了运行数据和我们要查找的尖峰。 这是有气体流经传感器。 燃气流量由流量计控制、因此非常一致。 尖峰相当大。
。
下一组图像显示相互叠加的向上和向下波形。 这至少是7次通过。 它们对我们来说非常一致和干净。 七个波中至少有一个对应于 Delta ToF 中的尖峰。
我们目前正在使用这些设置。
这是调节问题还是算法设置方面的问题、还是我们正在解决其他一些问题? 寻求帮助以了解我们的工作重点。
非常感谢任何帮助。
您好、Brent:
在转向定制硬件之前、您是否具有 ADC 捕获结果的图像?
您的电流 ADC 捕获看起来相对较好、具有低噪声。我想知道信号幅度的缓慢上升是否会成为问题。 dTOF 和 VFR 中的这些尖峰通常是由算法相关性结果问题引起的。
通常、在我们的示例中、ADC 捕获中显示的振幅上升速度更快。
或许还可以尝试一个快速测试、即增加脉冲数、看看这是如何影响波形和结果的。
我认为、由于 Excel 图中的缩放比例、我之前的图像可能略显式。 下面是来自 TI 软件的图像。 我们新传感器的曲线上升速度与旧版3D 打印传感器一样快。 下图是我们使用 TI 软件的全新传感器的图片。 第一个是没有流量、第二个是最大流量。 这些是什么样子的? 同样、它们与我们的第一种设置非常相似。
"算法相关性结果"的含义是什么。 我们是否可以控制此参数的任何参数? 这些算法有点像黑盒。
信号振幅如何影响算法?
我们还应关注哪些方面? 如果有有用的信息、我们很乐意提供更多详细信息。
。 请询问他们 "算法相关性结果"是什么意思、以及我们是否对此有任何控制。
您好、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 定义决定。 请告诉我这是如何改变器件的输出的、以及它是否有帮助。