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.

[参考译文] MSP430FR6047:可帮助解决大量循环滑动和其他配置问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1188996/msp430fr6047-help-with-lots-of-cycle-slip-and-other-configuration-questions

器件型号:MSP430FR6047

我们的一些仪表尺寸会出现大量的循环滑动。 有时可能会出现高达70-80%的无效测量。 我们将使用默认设置为80MHz 的2MHz 传感器。 滑倒低至1个波瓣(500ns)、最多可达12个波瓣(6us)! 我附加了22个测量信号的连续捕获、依次是 UPS 和 DNS 以及每个 UPS/DNS 信号捕获的320个点。 它们在155.5°F 时的流速约为0.8 gpm。我们在所有温度下都存在算法问题。 我们看到大多数循环滑动接近零流量、但在较大的米、1英寸- 2英寸、任何流量下。 我们已尝试将阈值从9%更改为25%。 随附的数据显示了正方向和负方向上最多4个凸角的滑动。 我们的代码设置可通过算法在环路中运行这22个捕捉、从而测试配置。 我们从水表模板代码开始。 除了独立通道增益和针对任何错误禁用 TI 的特意`while (1){}`代码外、我们对 USS 代码未做任何更改。

  1. 关于附加信号、您有哪些建议可以让 TI 算法正常工作? 信号看起来很好。
  2. 对于 AbsTOF 和 DeltaToF 的默认间隔设置为1和1、这是否意味着每次测量都使用采集算法? 或者是否也使用了跟踪算法?
  3. 内插查找表是否有帮助? 我已经尝试使用由 GUI 生成的1024 pt 表。 它没有产生任何明显的差异。
  4. USS_Acoustic 长度是否重要? 我们设置它、但我觉得它没有使用。 此外、它是如何工作的? 我们运行的温度范围很宽。
  5. 最大 ADC 峰值如何? 我们刚刚发现、常见问题解答文档显示我们应该保持在600以下。 我们认为我们应该在其他所有文档中保持900左右、但我们一直在运行750左右、因为 STD 远小于900。
  6. 产生信号的零时间应该是多少? 我们把它降到了大约2us、但我看到您建议在其他地方使用5us。 最初、我们将信号保持在 ADC 缓冲器的中间、但该算法实际上非常容易产生135 dtof _shift_range 误差、除非信号开始非常接近 ADC 缓冲器的开始位置。
  7. 为什么算法会在错误发生时中断而永远不会恢复? 一旦发生单个135错误、算法将永远返回该错误。 我们捕获它并重置电路板、然后该算法在新信号下工作正常、测试设置没有任何变化。
  8. USS_resetUSSModule()方法能否正常工作是否有技巧? 我们是在出错后调用它的、但如果我们调用它、算法将不再起作用。 因此、我们切换到重置板。
  9. [编译器问题]一半或我们的编译生成使 FRAM 为只读的代码。 我们不知道原因。 权变措施是在 main 移位开始附近插入或删除一个__no_operation()调用,之后每个调用加2个字节。 我们花了一段时间*意识到我们的所有 HSPLL 启动问题都是由于 USS 配置未设置(以及伪随机)、因为 FRAM 是只读的。

我还附上了最后两次测量的波形图(右侧的一幅是最近的波形图)。 请注意蓝色 UPS 信号的第一个凸角的振幅差异。 这种情况偶尔会发生、但看起来算法应该能够处理这种情况。

感谢你的帮助、

Harvey

e2e.ti.com/.../signals_5F00_1inhf_5F00_155f.h

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

    您好!

    关于所连接的信号、您有哪些建议可以让 TI 算法正常工作? 信号看起来很好。  

    我可以看到接收到的 ADC 数据中有很多噪声。 我在其他三个捕获中找不到该波瓣。 这表示接收到的信号不稳定。  

    对于 AbsTOF 和 DeltaToF、默认间隔设置为1和1、这是否意味着每次测量都使用采集算法? 或者是否也使用了跟踪算法?

    间隔设置与算法是使用采集还是跟踪无关。  

    3.内插查找表是否有帮助? 我已经尝试使用由 GUI 生成的1024 pt 表。 它没有产生任何明显的差异。

    内插查找表对周期差异问题没有帮助。 它只能提高 absTOF 结果的精度。

    USS_Acoustic 长度是否重要? 我们设置它、但我觉得它没有使用。 此外、它是如何工作的? 我们运行的温度范围很宽。

    它未在库中使用。  

    最大 ADC 峰值是多少? 我们刚刚发现、常见问题解答文档显示我们应该保持在600以下。 我们认为我们应该在其他所有文档中保持900左右、但我们一直在运行750左右、因为 STD 远小于900。

    对于2MHz 传感器、可接受600个代码。

    6、信号的零时间应该是多少? 我们把它降到了大约2us、但我看到您建议在其他地方使用5us。 最初、我们将信号保持在 ADC 缓冲器的中间、但该算法实际上非常容易产生135 dtof _shift_range 误差、除非信号开始非常接近 ADC 缓冲器的开始位置。

    提前期取决于 absTOF 范围。 如果在温度和流速下 absTOF 范围为52us 至55us、则可以将 ADC 开始捕获窗口设置为50us。

    7.为什么算法会在错误发生时中断并且永远不会恢复? 一旦发生单个135错误、算法将永远返回该错误。 我们捕获它并重置电路板、然后该算法在新信号下工作正常、测试设置没有任何变化。

    这取决于导致错误的原因。 通常、重置 USS 模块或重新初始化 USS 库是可行的。 如果不是、则另一个选项是重置电路板。

    8.是否有办法使 USS_resetUSSModule()方法正常工作? 我们是在出错后调用它的、但如果我们调用它、算法将不再起作用。 因此、我们切换到重置板。

    与前面的问题相同、我们需要找出导致错误的原因。  

    9.[编译器问题]一半或我们的编译生成使 FRAM 为只读的代码。 我们不知道原因。 权变措施是在 main 移位开始附近插入或删除一个__no_operation()调用,之后每个调用加2个字节。 我们花了一段时间*意识到我们的所有 HSPLL 启动问题都是由于 USS 配置未设置(以及伪随机)、因为 FRAM 是只读的。

    您是否使用 CCS 作为编译器?  

    如需更多建议、1MHz 传感器比2MHz 更受欢迎、尤其是在大型管道应用中。 并使用 MSP430FR6047EVM_USS_Water 演示应用 程序从模板代码开始。 演示应用代码可与 USS 设计中心通信、 设置配置和调试问题非常方便。

    此致、
    现金 Hao

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

    感谢您的快速响应。

    这些信号的 SNR 介于12dB 和18dB 之间。 我不熟悉这个、但这足够了吗? 您提到的额外/缺失波瓣与其他波瓣相同。 下面是最后两个 UPS 信号彼此之间的波形图(与上一个波形图顶行相同)。 您可以在这里比其他图片更容易地看到它是同一波瓣。

    2.我认为我们的大多数算法问题都是围绕周期差异的。 为了解决这一问题、我们应该关注哪些参数? 例如、如果在采集算法期间发生转差、跟踪算法是否会在错误的波瓣上保持"固定"?

       uint16_t absTOF 间隔;
       //!<此参数决定要计算的间隔
       //!<绝对飞行时间。 计算绝对飞行时间的间隔
       //!<与 dtofVolInterval 配置具有相关性。

    6.为什么缓冲器中的信号位置会导致 DTOF_SHIFT_RANGE (135)错误? 或者、如果我们修复导致滑倒的原因、这会消失吗?

    我们使用 CCS 作为编译器。 其他工程师选择了传感器。 为什么首选1MHz、尤其是在大型管道应用中? 我们从水演示开始、但它仅在 EVM 板上工作、因为 GUI 经过硬编码、只能与 EVM 的特定 USB VID:PID 通信。 我们通过跳线将 I2C 端口从电路板连接到 EVM、使其与电路板配合使用了一段时间。 如果 USS GUI 允许指定 COM 端口、我们可以使用它。 由于上述 GUI 限制、我们在固件中增加了更改设置、实时获取数据以及类似 USS GUI 功能的功能。

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

    您好!

    [引用 userid="503479" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1188996/msp430fr6047-help-with-lots-of-cycle-slip-and-other-configuration-questions/4479869 #4479869]1. 这些信号的 SNR 介于12dB 和18dB 之间。 我不熟悉这个、但这足够了吗? 您提到的额外/缺失波瓣与其他波瓣相同。 下面是最后两个 UPS 信号彼此之间的波形图(与上一个波形图顶行相同)。 您可以在此处比其他图片更容易地看到它是同一波瓣。

    这还不够好。 第二个波瓣从100个代码变为图片中的250个代码。 我们的算法无法接受。  

    [引用 userid="503479" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1188996/msp430fr6047-help-with-lots-of-cycle-slip-and-other-configuration-questions/4479869 #4479869"]2. 我认为我们的大多数算法问题都围绕周期差异。 为了解决这一问题、我们应该关注哪些参数? 例如、如果在采集算法期间发生转差、跟踪算法是否会在错误的波瓣上保持"固定"?[/quot]

    但是、该参数只能在较小的范围内校正结果。 如果接收到的信号是不可接受的、那么更改参数是无用的。  

    [引用 userid="503479" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1188996/msp430fr6047-help-with-lots-of-cycle-slip-and-other-configuration-questions/4479869 #4479869"]6. 为什么缓冲器中的信号位置会导致 DTOF_SHIFT_RANGE (135)错误? 或者、如果我们修复了导致打滑的原因、这是否会消失?

    正如我在前一个问题中所说的、您可以更大程度地更改 USS_ALG_MAX_SAMPLE_SHIFT、以避免135误差。 但是、解决循环滑动问题没有什么帮助。

    [引用 userid="503479" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1188996/msp430fr6047-help-with-lots-of-cycle-slip-and-other-configuration-questions/4479869 #4479869"]9. 我们使用 CCS 作为编译器。 其他工程师选择了传感器。 为什么首选1MHz、尤其是在大型管道应用中? 我们从水演示开始、但它仅在 EVM 板上工作、因为 GUI 经过硬编码、只能与 EVM 的特定 USB VID:PID 通信。 我们通过跳线将 I2C 端口从电路板连接到 EVM、使其与电路板配合使用了一段时间。 如果 USS GUI 允许指定 COM 端口、我们可以使用它。 由于上述 GUI 限制、我们在固件中增加了更改设置、实时获取数据以及类似 USS GUI 功能的功能。[/quot]

    与2MHz 信号相比、1MHz 信号更稳定、SNR 更好。  

    我将有一个假期,下周将无法答复。 感谢您的理解。

    此致、

    现金 Hao

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

    更新:

    我们主要(~99%)解决了 AbsTOF 周期差异问题。 我们发现了第一个峰值、并针对每次测量设置`ratioOfTrackBeToPeak`、以告诉 TI 算法准确的查找位置。

    2.我们的 EES 可以查看噪声。 我们发现、我们的3.3V 电源芯片的内部开关频率为125kHz、与读数中的噪声相匹配。 他们现在正在尝试解决这个问题。

    3.我们解决了编译器关于需要插入` no_operation()`语句的问题。 `CS_initClockSignal()`在使用`CS_setDCOFreq()`将 DCO 设置为8MHz 后导致错误。

       //这3行会使一切变得不稳定,所以我们对它们进行了注释并以不同的方式执行了操作。 我们仍然希望使用 DCO 时钟作为备份。
       CS_setDCOFreq (CS_DCORSEL_1、CS_DCOFSEL_3);
       CS_initClockSignal (CS_MCLK、CS_DCOCLK_select、CS_Clock_divider);
       CS_initClockSignal (CS_SMCLK、CS_DCOCLK_SELECT、CS_Clock_divider);

    我在6年前就发现了这篇文章、当时我知道要搜索的内容:

    e2e.ti.com/.../msp430fr5969-hardware-problem-at-16mhz

    4. TI 是否有高功率设置能更好地发挥作用? TI 文档指出、默认设置适用于低功耗、这意味着性能和稳健性会降低。 我们的客户不担心电源使用问题。

    5. TI 算法中的 DToF 测量中仍然存在周期偏移问题。 这些算法没有被记录到一个水平上、我们无法弄清 TI 算法内部发生了什么情况来返回不一致的测量值。 我们看到 Dtof 值偶尔会上升或下降~200-400PS。 我们可以看到日志记录中的级别。 顶部和底部电平平均到中间值。  

    我们已经做了更多的研究、我们可以看到信号随时间的推移而发生相移。 接下来的两幅图显示了10分钟的信号、每分钟绘制一次相互捕获的图。 请注意下游信号的奇怪性。 在其下方、我们为每个点提供了一个余弦拟合推导出的 Δ TOF。 您能否给出我们为什么会看到这种行为的原因?

    x = 170时的下降大约为400ps。

    看起来 ASQ 捕获时序可能不一致。

    感谢你的帮助。

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

    您好!

    了解这些新闻很好。  

    4.在 CCS 中,可以在“属性”->“常规”->“管理配置”->“设置活动禁用 LPM”中将项目设置为禁用 LPM。  

    5.我不知道为什么信号中存在相移。 有线连接、它似乎只发生在下游信号上。 我会检查 PCB 布局和硬件、以找出上下信号链之间的区别。 您甚至可以切换传感器进行测试。 您的 ADC 采样频率是多少? 如果是8MHz、我建议您将其更改为7.2Mhz。 它可以避免混叠问题。  

    此致、

    现金 Hao

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

    我想我们找到了相移。 有一点背景:在所有条件下、我们的上游和下游信号在相同的 ADC 增益下的振幅并不总是相同的。 我们遇到了 TI 算法无法正确识别第一个峰值的问题。 为了解决这一问题、我在这里看到了一条建议、即在捕获之前为两个通道设置独立增益。 今天、我们已经知道不同的 ADC 增益电平会对捕获的信号进行相移。 当两个通道使用与相位变化应抵消的相同增益时、这可能是正常的、但否则会导致 deltaTOF 问题。 这是我刚刚完成的一项快速测试。 我首先一起改变增益、然后保持 Ups 和 DNS 常量(18)、同时将另一个从16步进至20步进。 我每步只运行10秒的测试、以测试夜间运行的代码、但它已经显示了班次。

    其他问题:

    • 相位变化应略微影响 AbsTOF 读数。
    • 我确信、当第一个峰值幅度不接近时、我的 ratioOfTrackLobeToPeak 暗示效果如何。 我现在将比率设置为两者的平均值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    好的、有道理。  不同 PGA 增益设置下的带宽不同。 这可能会导致问题。  

    此致、

    现金 Hao