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:在 CCS 中刷写后未从上电启动

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

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

器件型号:MSP430FR50431
主题中讨论的其他器件:EVM430-FR6047MSP430FR6047MSP430FR6043、MSP430FR5043

你好、我想这是一个奇怪的请求、但我坚持认为它。
我在自己的定制电路板上安装了 FR5043、RST 使用47k Ω 电阻上拉至 VCC。 我使用工作正常的 CCS 将代码编程到芯片中。 当我下拉/RST 时、我看到芯片重新启动。 然而、当我为电路板供电时、芯片没有启动、/RST 不会改变这一点、仍然没有代码执行。 该代码似乎并不是持久的、而是针对 EVM430-FR6047。 它完全以这种方式工作(闪存、重新供电、工作)、并符合人们的预期。 我缺少什么?

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

    尊敬的 Christian:

    这可能是一个软件问题,我们可以尝试一些已知良好的软件,只是为了确保它不是硬件方面。  

    您能否尝试对基本 GPIO 切换示例进行编程?  https://dev.ti.com/tirex/explore/node?node=A__AJw-FZ9Zq1Pz7N.L6mcIJw__msp430ware__IOGqZri__LATEST

    如果 P1.0不是电路板的理想选择、则可能需要更改 GPIO。

    我希望看到的是、您的器件在代码运行的复位后的行为是否符合我们的预期(切换 GPIO)。  

    此致、
    布兰登·费舍尔

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

    好消息、其固件确实、坏消息、不知道原因: 这是我的主循环(正如我提到的、我将使用 FR4047 zo Measure USS)。 注释行起作用。 取消注释、且它在由 CCS 加载时仍然运行、但在加电时不运行。   

    int main (void){

     volatile USS_message_code 代码;

     uss_calibration_hspll_results 测试结果

     USS_SCOP_algResultsFixedPoint; Algorithms_Results_

     WDTCTL = WDTPW | WDTHOLD;        //停止 WDT

     P3OUT &=~BIT1;             //清除定义的加电状态的 P1.0输出锁存

     P3DIR |= BIT1;              //将 P1.0设置为输出方向

     PM5CTL0 &=~μ A LOCKLPM5;          //禁用 GPIO 上电默认高阻抗模式

     USS_registerHSPLLInterruptCallback (USS_HSPL_Interrupt_PLLUNLOCK、&handlePllUnlockEvent);

     代码= USS_configureUltrasonicMeasurement (&gUssSWConfig);

     disableApplicationInterrupts ();//在 HSPLL 期间无 IRQ

     代码= USS_verifyHSPLLFrequency (&gUssSWConfig、&testresults);  

     enableApplicationInterrupts ();

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

         testresults.expectedResult)、testresults.expectedResult);

     代码= USS_initAlgorithms (&gUssSWConfig);

     USS_configAppTimerPeriod (&gUssSWConfig、32768);// 32768 = 1

     代码= USS_startLowPowerUltrasonicCapture (&gUssSWConfig);

    //  code = USS_runAlgorithmsFixedPoint (.gUssSWConfig、&algResultsFixedPoint);

     while (1)

     {

       P3OUT ^= BIT1;            //切换 LED

       __delay_cycles (5000000);

     

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

    尊敬的 Christian:

    我觉得您的代码看起来不错、遵循与示例相同的一般流程。  

    USS_runAlgorithms 的 API 指南条目确实提到 它期望 LEARAM 的一个连续部分可用、该部分与 gUssSWConfig 的 sampleSize 设置相匹配。  您能否共享链接器( .cmd)文件?  

    此致、
    布兰登·费舍尔

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

    您好 Brandon:

    我不是链接器文件中的专用列表。 我只使用 MSP430FR6047示例提供的标准选项。 这里是; lnk_msp430fr6047.cmd

    此致

    克里斯蒂安

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

    尊敬的 Christian:

    这看起来与 EVM430-FR6047的默认链接器文件类似、但 您为 MSP430FR50431构建和运行的文件是否正确? 您应该对 MSP430FR50431使用该链接器、或者至少对 MSP430FR6043使用该链接器(我已将其附加到下面的这篇文章中)。  

    请试一下、请告诉我。

    此外、如果您在尝试独立运行代码并进行复位时使调试器保持物理连接、代码是否能够继续正常运行?  

    您如何为电路板供电?  

    此致、
    布兰登·费舍尔

    e2e.ti.com/.../lnk_5F00_msp430fr6043.cmd

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

    抱歉、我选错了一个。 我的目标实际上是 MSP430FR5043IRGCT、链接器命令文件是 lnk_msp430fr5043.cmd (来自 lib 示例)。 不确定链接器标志是否会造成问题(例如映射文件?):实际上我没有从示例中接触到这个,这里是:

    /Applications/ti/ccs/ccs/ccs_base/msp430/lib/5xx_6xx_FRxx /Applications/ti/ccs/ccs/tools/compiler/ti-cgt-msp430_21.6.0.LTS/include --vmspx --data_model=large -O3 --use_hw_mpy=F5 --advice:powere="none"--advice:hw_config=all /Applications/ti/ccs/ccs/ccs_base/msp430/include --define=USS_PULSE_MODE=0 --define=__MSP430FR5043___________/Applications/ti/ccs/ccs/ccs_base/msp430/lib/FR59xx /Applications/ti/ccs/ccs/tools/compiler/ti-cgt-msp430_21.6.0.LTS/lib

    Br
    克里斯蒂安

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

    Christian、

    如果您使用的是正确的默认链接器、则该链接器应该没有问题。  

    如果您在自由运行模式下运行、那么代码在启用该函数后是否仍然挂起?  为此、请启动调试会话、然后转至 CCS 中的 Run->Free Run。 我想知道这是否与时序有关、因为在删除函数后、您的代码似乎正确地运行到了 main 中。  

    此致、
    布兰登·费舍尔

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

    我做了。 它在自由模式下运行正常、在硬件复位后仍然运行、在重新上电后不再运行。 不幸的是、"挂起"位于闭源代码中、否则很容易调试。 此外、我在 startLowPowerUltrasonicCapture 之前和关键库函数调用之前放置了几个_delay_cycles -相同的结果。

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

    尊敬的 Christian:

    因此、似乎可以肯定的是代码正在 runAlgorithms 函数中的某处挂起。 疑难解答可能比较棘手、因为正如您所指出的、这仅在编译的库格式中可用。 如果您尝试使用 USS_runAlgorithms 函数的非定点版本、您的代码是否仍然暂停?

    USS_runAlgorithms(&gUssSWConfig,&algResults);
     
    此致、
    布兰登·费舍尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    完全一样的结果! 如果您愿意、我可以告诉您如何操作、并将整个项目作为.zip 文件发送给您。

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

    尊敬的 Christian:

    我会向您发送一个 E2E 朋友申请、请接受、然后您可以通过 这种方式向我发送包含项目的私人消息。  

    此致、
    布兰登·费舍尔

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

    好、我将向您发送代码。 那么、这里也是我所做的。 我使用非常一样的 FET430UIF 在 EVM430-FR6047上应用了同样的代码并且在这里它起作用。 我看到的唯一区别是我的硬件的目标 FR6047与 FR5043。  因此、对于测试、您将需要带有 FR5043的硬件来进行复制。

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

    谢谢 Christian、

    我已向您发送有关访问这些文件的另一条消息。 下载后、我将会看一看这些示例。  

    此致、
    布兰登·费舍尔

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

    尊敬的 Christian:

    感谢您分享代码。 我不得不询问一些相关问题、但 USS 示例代码似乎确实需要一些更新才能与 MSP430FR5043一起使用。 请参阅随附的.zip 文件。  PDF 和差异报告汇总了建议的更改。 最大的一个是新的链接器文件。  

    此致、
    布兰登·费舍尔

    /cfs-file/__key/communityserver-discussions-components-files/166/1614.MSP430FR5043_5F00_SW_5F00_Changes.zip

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

    尊敬的 Brandon:

    现在它像预期的一样工作! 没有你的帮助-没有办法。 非常感谢!

    克里斯蒂安