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:配置例程时出现问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1311913/msp430fr50431-problem-with-configuring-routines

器件型号:MSP430FR50431
主题中讨论的其他器件:MSP430FR6043

您好!

我正在尝试更改 FR6043_USSSWLib_TEMPLATE_example、以便与我的设置配合使用。

大多数其他部分对我来说都可以、但我很难使此函数正常工作。

代码= USS_configureUltrasonicMeasurement (&gUssSWConfig);

编译器不会抛出错误、但当我执行代码时、它会停留在该例程上。

对于如何解决此问题、您有什么建议吗?

此致、

卢卡斯

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

    尊敬的 Lukas:

    您采取了哪些步骤来更改 FR6043代码以用于 FR5043?

    此外、当您说它卡住时、您说在调试时项目会挂起。 如果是这样、您能否进入该函数并更具体地指示它在何处挂起? 我以前没有亲自观察过这种行为。

    我假设这也意味着您永远不会从 UART 接口获取任何数据? 请验证这一点。

    您可能还需要关注 此主题、在该主题中、其他客户在使用 FR5043上的模板示例时似乎遇到问题。 我的同事似乎很快要对其进行一些测试以进行验证。  

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

    感谢您的答复。

    我正在尝试使用 UART 示例和 msp430fr6043_euscib0_i2c_11.c 一起获取通常通过 UART 传输并通过 i2c 传输的相同值。 为此、我将尝试将这两个示例合并在一起。

    我尝试过调试、发现代码被困在这里:

    显示在"ussSwLibCommonTimer.c"中。 显然、它绝不能离开这个 while 循环。 对于由此产生的问题、您有什么建议吗?

    我唯一改动的是在 Code Composer Studio 中将器件与 msp430fr50431分离、这对这两个示例代码都适用、但不再适用、因为我尝试将代码合并在一起。

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

    更准确地说、在 commonTimerGenerateLowPowerDelay (...) 在我的第一张图片中、它已经停留在这个 while 循环中:

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

    该环路看起来用于处理振荡器故障。 通常情况下应该发生的是800ms 的环路延迟、然后清除标志。 不过、看起来您的器件进入 LPM3、然后再也无法进入工作模式。 您预计会发生振荡器故障是否有任何原因、例如器件损坏或硬件改动?

    所以您只在 CCS 中更改了器件版本、没有其他更改? 您表示自己正在尝试与演示一同使用 I2C_11示例、因此我不确定您是否已经开始进行这些更改。 在向演示项目添加中断(特别是 I2C 中断)时、许多客户似乎会在从 LPM 唤醒时遇到问题。 如果进行了其他更改、则在进行更改之前该项目是否能在您的器件上正常工作?

    此外、您是否能够查看我的同事提供的关于更改 USS 项目以与 FR5043配合使用的文件?

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

    使用示波器进行观察时、振荡器似乎工作正常。 我正在 USSXTOUT/TIN 引脚上使用16MHz 振荡器。 我所做的更改为:

    -使用 msp430fr6043_cs_02.c 的引脚配置将时钟更改为16 MHz。

    -将链接文件和 USS_Lib_HAL.h 替换为您同事提供的文件

    -将设备更改为 msp4030fr50431

    -从.euscib0_i2c_11.c 和 ISR 中获取了引脚配置和 TxData 示例

    我可以通过 i2c 读取测试数据。 一旦我取消注释这些行:

    代码= USS_commonTriggerSingleCapture (&gUssSWConfig、12000);
    代码= USS_startUltrasonicMeasurement (&gUssSWConfig、USS_capture_power_mode_active);
    代码= USS_startLowPowerUltrasonicCapture (&gUssSWConfig);
    代码= USS_runAlgorithms (&gUssSWConfig、&algResults);

    我无法通过 i2c 读取任何内容、因为中断似乎不再起作用。

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

    谢谢您查看此内容。

    查看我们的 数据表  8.13.14.3 USSXTAL 节、USSXTAL 的可接受频率范围是4MHz 到8MHz。

    此外、为清楚起见、 msp430fr6043_cs_02会将 DCO 更改为16MHz、然后将 SMCLK 输出至引脚3.4。 这不会更改引脚配置以支持16MHz 晶体。 我无法100%确定这是否是您的目标、但请注意这一点。  

    在我看来、您的 I2C 仍可以在此正常运行、但 USS 外设出现问题。 您能否尝试将您的晶体替换为8MHz 或4MHz 晶体、看看这是否能使您的器件运行正常? 可能还有其他问题、但这应该有所帮助。

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

    感谢您目前的帮助。 我将晶体更改为8MHz、至少设置例程现在可以正常工作。

    现在我有一个问题、我收到错误: "USS_message_code_algorithm_error_no_signal_detected_ups_dns_channel " 当在测试期间通过 JTAG 读取"code"变量时。 您知道这里的问题可能是什么吗? 当我使用 multi_tone 配置时、我可以在探测 CH0_OUT 时在示波器上看到两组脉冲。 信号是否已由 ch0_in 寄存、并且第二组脉冲已经反映了该信号? 还是两个脉冲集都来自 ch0_out、我应该在 CH1_IN 中测量它们以避免该误差?

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

    我很高兴我们在卢卡斯取得进展。  

    此错误表示器件与换能器的连接不良或没有连接。 您能否验证传感器是否正确连接?

    如果是、您可能希望尝试切换到 USS_Demo 代码、因为这将使您能够在 GUI 中查看 ADC 捕获。 这将帮助您确保问题实际上在于传感器未正确连接。 如果 ADC 采集效果良好、则表示还有其他一些问题。 如果 ADC 采集结果看上去不好、则这可以确认传感器连接不良。

    如果不看到这些脉冲的时序、就很难说第二组脉冲是反射、还是第二个超声波信号(对于 UPS 与 DNS 信号)。 在探测 CH0和 CH1输入和输出引脚时、您可能能够看到 UPS 和 DNS 信号、以及它们的一些反射。 UPS 和 DNS 信号的幅度应该与反射信号非常相似。

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

    我已经探测了两个通道、但信号在中的 CH1上看起来并不像看起来很好(黄色)。

    我目前直接从引脚驱动换能器、而不进行额外的放大。 这可能是个问题吗?

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

    真有意思。 我假设 CH.2/绿色连接到 MSP 模拟前端的 CH.0? 那么、位于0和~4ms 的波形是 CH.2激励信号吗? 请确认此项。

    如果上述情况属实、则我认为您不需要额外的放大。 AFE 通道是否未正确连接到换能器、例如接线不良或其他问题? 或者您是否认为您所做的某些代码更改会影响该频道的激发?

    如果您可以使用演示代码而不是模板示例对器件进行编程、这会非常有用、因为它可以让您看到 MSP 获取的波形、这会非常有用。 它还允许更轻松地进行校准、从而消除校准误差。 然后、您可以将校准数据从演示代码移动到模板示例、并从已知基点开始。

    底线是、是的、它看起来连接到 CH1换能器的信号很差、所以我建议您首先检查硬件以确保启用了良好的励磁信号、然后检查您的软件以确保没有意外地使用该引脚更改某些内容、 进行编程来激励它。

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

    我很抱歉这么晚才回复。

    现在我正尝试让换能器设置首先与评估板一起运行、然后使用实施的芯片返回到我自己的代码。 我目前在那里也得到了很差的结果、但这可能只是由于参数设置不佳而出现的。 如果您有一些关于如何改进这一点的提示,我会很感激。 运行该程序后、我将尝试在我们的系统上实施它。 现在 ADC 结构看起来像这样。

    再次感谢您到目前为止的帮助。

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

    你好,卢卡斯,不用担心,

    是的、正如您说过的、ADC 捕捉看起来不好。 这可能是由设置引起的、但也可能是由您的硬件引起的。 首先、您可能应该转到 USS 学院 、了解有关开始正确设置参数的提示。

    其中一些内容可能重复出现、但确实会带您完成参数的初始配置以及频率扫描测试。 这两个选项可以让您顺利开始。 有时、您在屏幕截图中看到的波形可能是由不正确的激励频率(频率扫描可以为您提供帮助)导致的、或者如果您的 ADC 捕获查看的波形有误的部分、 这可以通过延长捕获持续时间、改变脉冲启动和 ADC 捕获之间的间隔以及其他设置来帮助改善捕获。

    当然、有些设置可能会导致这个问题。 我还建议您验证您的硬件是否正确连接、尤其是传感器与板上的引脚相连。 如果您的传感器损坏、连接传感器的导线损坏或其与引脚的连接不良、则可能会导致小的、无效的波形、就像您在 ADC 采集中看到的波形。 根据上面示波器捕获的外观、我会认为您的其中一个换能器连接不良。   有关器件硬件和 USS 生态系统的提示、您可能需要查看《EVM430FR6043硬件用户指南》。

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

    大家好、新的一天新问题。

    再次刷写评估板后、我设法使 ADC 捕获或多或少正常工作。 然后、我将 USS 中的头文件导出到 code composer studio 中的 USSSWLib_TEMPLATE_example、以便在我们的系统上运行。 现在我有发生某些 USS_MESSAGE_ERROR 的麻烦。

    如果我没有连接任何换能器,我会收到消息122 (../value_results)??

    但当我连接换能器时、会收到消息127 (.._NO_SIGNAL_DETECT_...)

    您是否知道为什么会出现这种情况?

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

    您能否发布您捕获的工作 ADC 的图像? 我不确定这是问题的根源、但看到它会有所帮助。

    在模板示例代码中,它看起来像是 USS_MESING_CODE_VALID_RESULTS 被分配给 USS_calibrateVFRFlowTemperature () 函数末尾的代码变量,以及 USS_calibrateVFRFlow ()函数末尾的代码变量。 因此、在我看来、即使在未连接换能器的情况下也可能生成此代码。 我认为这不一定是好的,但它是有道理的。  

    在代码中搜索、我实际上并不知道错误代码127是在何处生成或分配给代码变量。 这使我认为 USS 算法将确定这一点并将其分配给代码变量。 虽然我们无法深入研究代码、但我认为此错误消息正确地指示未检测到来自您的其中一个换能器的下游信号。 考虑到您之前发布的示波器捕捉、这也是合理的、因为您可以看到只有一个通道生成正确的波形。  

    您是否有机会尝试更换换能器? 我假设您已经验证了连接它们的接线。

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

    尊敬的 Dylan:

    我发现换能器的连接方式与评估板上的连接方式不同、这可能解释了它为什么在评估板上工作、但在我的设置上不工作。

    我假设我可以从 CH0_OUT 发送要在 CH1_IN 上接收的脉冲、反之亦然。 然而、当我再次查看开发板的原理图时、在我看来、整个电路仅使用 CH0、并且通过将传感器方向与模拟信号开关交换来观察 UPS 和 DNS。 您能确认我的回答正确吗?

    如果、如果在 CH0_OUT 发送脉冲后立即启动计时器并在 CH1_IN 重新确认这些脉冲时停止、是否可能? 是否有参数可以选择使用的通道? 或者不可能这样做是因为所使用的中断的性质,例如?

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

    或者、在再次阅读这些文档后、为了更精确地说明:例如、在 USS 设计中心中的哪个参数或示例代码会更改属性、以便将 ch0_out 用于上游、将 ch0_out 用于下游、将 CH1_out 用于 CH1_IN?

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

    尊敬的 Lukas:  

    您正确地说、在 FR6043设计文件中、我们使用 CH0 +多路复用器来执行读取。  

    您要为改变脉冲序列顺序而寻找的定义为 USS_SEQUITION_SELECTION、这在 USS_userConfig.h 中找到。

    在代码中、您将看到、您可以选择几个不同的序列。 有关其中每一项的含义的一些简短说明、请参阅 此 e2e 文章。 您必须进行一些测试、以找到您的硬件所需的激励序列。