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.

[参考译文] MSP430FR5043:MSP430FR5043IPM:代码在 USS 库中挂起

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1395760/msp430fr5043-msp430fr5043ipm-code-hangs-in-uss-lib

器件型号:MSP430FR5043

工具与软件:

您好!  

几个月前,我有一个问题的 阻塞 代码 iUSS 封闭源代码库 n  

USS_runAlgorithmsFixedPoint (.gUssSWConfig、&algResultsFixedPoint)、它是固定的。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1276004/msp430fr50431-does-not-start-from-power-on-after-flashing-in-ccs

我们未 更改代码或外设、而是将 MSP430FR5043IRGCT 的封装类型替换 为 MSP430FR5043  IPM。 两个芯片都正确地报告 MSP430FR5043、但新的* IPM 使用上面线程中更改的代码再次显示相同的结果。

有什么想法吗? 我假设这两种封装型号的芯片完全相同

此致

Christian

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

    您好!

    如果您使用的是 CCS、 请转到查找使用 FR6043的水表/燃气表(取决于您的应用)演示代码。 演示工程的名称应类似于 Water_Demo。 在该演示项目中找到.cmd 文件。 用它替换您的。 然后构建项目并下载。 尝试使用该方法是否可以解决您的问题。  

    此致、

    Cash Hao

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

    您好!

    我使用的是 FR5043而非 FR6043。 您的真正意思是6043的链接器脚本可以应用于5043。 即使我能够在 USS 库中顺利编译和运行、我也有两个版本的 MSP430FR5043、而且代码会在一个版本上运行、但在第二个版本上不会运行。
    版本1: 5043链接器从提到关于作品的情况

    https://onedrive.live.com/?cid=A50A0FB83F49AF9C&id=A50A0FB83F49AF9C%21102844&parId=A50A0FB83F49AF9C%216349&o=OneUp

    版本2:完全相同的连接器不适用于此芯片

    https://onedrive.live.com/?cid=A50A0FB83F49AF9C&id=A50A0FB83F49AF9C%21102843&parId=A50A0FB83F49AF9C%216349&o=OneUp

    此芯片可能不是 TI 原产、或者它们使用的器件不同。 未来我们可能会有两个芯片版本在使用、我想要想出一个通用的固件进行更新。

    感谢您的帮助  


    Christian

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

    您好!

    USS 库需要修改.cmd 文件才能使用该文件。 对于新的 Generate FR5043工程、不会通过更改.cmd 文件来调整 USS 库。 因此、您需要对其进行更改。 由于 FR6043具有与 FR5043相同的存储器映射。 因此、您可以直接在已为 USS 库修改的 USS 演示项目中使用.cmd 文件来用于 FR6043。  

    FR5043和 FR6043都是 TI 原产的产品。  

    此致、

    Cash Hao

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

    您好!

    (1)

    我从零开始安装了一个新的 CCS 12.7.1、从 USS_02_40_00_00中导入了示例工程 FR6043_USSSSBlib_template 示例。 编译正常。

    (2)  

    现在、我将工程设置中的硬件目标从 FR6043更改为 FR5043。 编译时出现以下错误:

    警告#10247-D:正在创建不带 SECTIONS 规范的输出段".ram_thry"

    警告#10247-D:正在创建输出段"。 USS_ramfunc"、没有 SECTIONS 规范

    警告#10247-D:正在创建不带 SECTIONS 规范的输出段".libVersion"

    "../lnk_msp430fr5043.cmd"、第215行:错误#10099-D:程序无法装入可用内存、或该段包含一个调用站点、该调用站点需要无法为此段生成 trampoline。 对段".leaRAM"大小0xfa0运行带对齐的放置失败。  可用存储器范围:

      LEARAM    大小:0xec8     未使用:0xec8     最大孔:0xec8    

    错误#10010:链接期间遇到错误;未构建"FR6043_USSSWLib_template_example.out"

    问候语

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

    您好!

    当您选择使用 FR5043时、CCS 将链接到 FR5043 cmd 文件。 您需要使用原始的 FR6043 cmd 文件替换其中的内容。  

    此致、

    Cash Hao

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

    这就是我所做的。 这是我使用的项目。 它基本上是 USS lib 演示不变、但 lnk 文件6043复制到5043。

    FR6043_USSSWLib_template_example.zip

    第158行发挥了作用。 如果我将其注释掉(不调用)、二进制文件将在 PM64和 RGC64版本的 FR5043上运行。 该行处于活动状态时、二进制文件仅在 RGC64上运行、而不在 PM64上运行。 它在 PM64芯片上挂起。 这两个芯片位于同一个电路板上、不同外壳只改变了尺寸。 我在使用不同的具有 PM64芯片的板上检查了此项。

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

    您好!

    由于公司的防火墙、我无法下载您的项目。 您可以尝试在帖子中直接附加。  

    所以、你现在可以在替换.cmd 文件后构建项目而不会出现错误。 您当前的问题是、第158行代码将卡在 PM64芯片上。 第158行是指 main.c 中显示的代码吗?

    此致、

    Cash Hao

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

    正确。 第一次访问 闭源捕获器件会导致挂起、但仅适用于 FR5043 PM64外壳的电路板。 我会将.cmd 文件作为 PM 发送给您吗?

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

    EMM、很有趣。  

    PM64和 RGC64具有相同的引脚排列。 在这两个软件包上应用的软件不应有任何差别。  

    您是否检查 USS 消息代码? 是否报告了任何错误代码?  

    此致、

    Cash Hao

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

    否、因为它不返回。 我仔细检查了硬件-最明显的原因这种奇怪的行为。 它是相同的外设、只是电路板布局更改了一点、以采用芯片的新封装。 您知道5043是否对外部晶体上的偏差非常敏感吗? 我可以从工作中的 RGC64卸下晶体、然后将其焊接在 PM64板上以排除这种情况。

    CHR。  

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

    您好!

    它对外部晶体敏感。 不过、我认为它与晶体无关。 通常、如果是晶振问题。 它将报告 HSPLL 解锁或相关错误。  

    您能否尝试使用演示项目来代替模板示例。 project 的名称应如下所示"MSP430FR6043EVM_USS_MSP430FR6043EVM" Water_Demo。

    然后按照附件修改 FR5043的演示项目。

    e2e.ti.com/.../5618.MSP430FR5043_5F00_SW_5F00_Changes.zip

    此致、

    Cash Hao

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

    好的、我完成了这个。 有趣的结果。 生成的代码在 RGC 板上运行得非常好,但在 PM64板上我得到了一些好的结果:通过单步调试它不会挂起,但当我自由运行它时,它似乎总是重新启动(我在 USSLibGUIApp.c 中添加了一些小 LED tootgle P5OUT ^= 0x06到 while (1)循环检查)。 由于芯片唯一合理的其他外部输入(我检查了电源轨!) 是一个不同的肋,我采取了一个从 RGC 板和焊接它在 PM64板和...它几乎工作!! 它仍然在使用 USS 库代码时挂起、但它可以使用 USS Waterdemo 代码。 这会提出两个问题:
    1.为什么它能在水演示上工作,但不能在 USS lib 上工作?
    2.对于晶振组件是否有良好的建议(在 USSTXOUT/USSXTIN 上)。

    我对 USS 库使用以下不起作用的测试代码:

    #include "main.h"

    void handlePllUnlockEvent (void){USS_resetUSSModule (&G) gUssSWConfig、true);}

    int main (void){

      P5OUT |=位1;

      P5OUT &=~BIT2;

      uss_calibration_hspll_results 测试结果;

      USS_registerHSPLLInterruptCallback (USS_HSPLL_Interrupt_PLLUNLOCK、&handlePllUnlockEvent);

      USS_configureUltrasonicMeasurement (&G);

      USS_verifyHSPLLFrequency (&G、SWConfig、&testresults);

      gUssSWConfig.algorithmsConfig->clockRelativeError =_IQ27div ((int32_t)(testresults.actualTestCount -

           testresults.expectedResult)、testresults.expectedResult)

      USS_initAlgorithms (&G);

      USS_configAppTimerPeriod (&G、SWConfig、1);// 32768 = 1

    //  retcode1 = USS_startLowPowerUltrasonicCapture (&gUssSWConfig);

      while (1){

        P5OUT ^= 0x06;

        __delay_cycles (6000000);

      }

    }

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

    您好!

    至少可以听到它起作用。  

    1.不知道为什么它不能在您的 USS 库代码上工作。 它可能需要检查它卡在您的代码中的什么位置。  

    2.您可以参考我们用于 EVM 电路板设计的内容。 客户还使用晶体、而不是我们在 EVM 板上使用的谐振器。 他们只需更改 userConfig.h 文件中的晶体类型和稳定时间参数。

    此致、
    Cash Hao

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

    大家好、如果使用外部8 MHz 晶体(YSX530GA)、您能不能向我指出 userConfig.h 中的变化

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

    您好!

    #define USS_HSPLL_INPUT_CLK_TYPE         USS_HSPLL_INPUT_CLOCK_TYPE_XTAL//USS_HSPLL_INPUT_CLOCK_TYPE_CERAMIC 谐振器

    #define USS_HSPLL_USSXTAL_SETTAL_SETTLING_USEC   1500//120

    此致、

    Cash Hao

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

    好的、完美。 当修改这两个定义值时、代码在谐振器和晶振上运行稳定。 现在、除了重新焊接的谐振器之外、两个硬件是相同的。遗憾的是、晶体版本报告 TOFs = 0。  USS_startLowPowerUltrasonicCapture 返回   USS_runAlgorithmsFixedPoint 的 ERROR = 0表示结果。 晶体是否需要进行任何其他调整?

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

    您好!

    返回 error 0应表示没有错误。 您可以通过某种方法输出 ADC 采集数据并在此处发送吗?  

    您可以使用 USS_getUPSPtr ()和 USS_getDNSPtr ()函数来获取接收信号的起始地址。  

    此致、

    Cash Hao

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

    两个值都在-25和+25之间跳跃-不坏。 ADC 缺少信号。 为 Capture_Gain_Range_ 0_1、现在可以接受。 我选中了 gUssSWConfig.measurementConfig->startADCsamplingCount、它的默认值为1849。 在具有谐振器的工作版本中、该值为290。 当我使用它时、最终达到 2000年左右、但仍然没有信号。 谐振器和晶振是否对该值有影响?假设传感器之间的行程时间约为50us (角度、距20mm)、谐振器和晶振是否对该值有影响?

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

    您好!

    它不应产生如此大的影响。 您是否能够使用示波器捕获在 CH0_IN 引脚上接收到的信号? 检查您是否可以首先获得它的信号。  

    正确的波形应与下图类似。  

    此致、

    Cash Hao

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

    对不起、我的超级便宜的 Oscilliscope 无法显示此内容。 是否具有 8MHz 晶振的 userConfig.h 文件?

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

    您好!

    您可以尝试一下这个。 但是、如果问题来自硬件、则配置文件无法帮助解决该问题。  

    e2e.ti.com/.../7658.USS_5F00_userConfig.h

    此致、

    Cash Hao

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

    你是对的、这不会改变任何东西。 其他想法。 USS 引脚具有这两个12个 pF 电容器。 晶体是否也需要它们?

     

    CHR。

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

    您好!

    它主要取决于晶体规格。 但我建议为晶体添加该电容器。 这可能有助于晶体振荡。

    此致、

    Cash Hao

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

    好的、现在我向前迈出了一步。 随着 userConfig.h 的变化、我现在得到了一些合理的信号、但频率错误。

    我看到校准的信号(gUssSWConfig.captureConfig->gainRange = 0x25)、但当然、信号现在就是预期的信号。 是否有任何其他设置会影响 TX 频率和时序?

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

    您好!

     USS_F1_FREQ 确定 TX 频率。 时序通过以下参数确定。  

    USS_START_PPG_COUNT、USS_TURN_ON_ADC_COUNT 、USS_PGA_IN_BIAS_COUNT 、 USS_ADC_SAMP_COUNT。

    但是、我仍然建议您使用 示波器来捕获信号。 这可能告诉我们是否存在实际的接收信号。

    此致、

    Cash Hao

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

    好的、我已经放弃了。 我们将使用谐振器、而且电路板与它们一起工作。 非常感谢您的支持。