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.

[参考译文] MSP430F5310:使用另一个 MCU 应用进行 MSP430F5310固件升级在 BSL 代码中的软复位序列后未获得复位

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1215708/msp430f5310-msp430f5310-firmware-upgrade-using-another-mcu-application-is-not-getting-reset-after-soft-reset-sequence-in-bsl-code

器件型号:MSP430F5310

您好!

我尝试使用另一个 MCU (IMXRT)应用升级 msp430f5310固件、现在使用的是 适用于 MSP430 UART BSL 代码的 SimpleLink 主机。  

我可以在复位电源后升级固件、但使用 BSL 代码复位序列时 无法从 BSL 退出。 我在  复位序列中使用基于 FreeRTOS 节拍的延迟、但无法跳转到更新的固件。

但在 POR 之后、它可以作为更新的固件工作。 我还尝试了读取复位矢量并使用 LoadPC。我能够跳转到更新的固件、但由于更新的固件中的 BSL 配置设置、我会看到一些未定义的行为   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    使用 BSL 代码重置序列时 、我无法从 BSL 退出

    如何进行重置?

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

    此处、我们在 MCU 和 MSP430的 RESET 引脚之间放置了一个 MOSFET、从而为复位提供反相信号。 同样、出于同样的原因、TEST 引脚也是如此。

    GPIO_WritePinOutput (GPIO5、11U、1U); //测试引脚
    GPIO_WritePinOutput (GPIO4、26U、0U); // RESET 引脚
    Ms.Delay (200);


    GPIO_WritePinOutput (GPIO4、26U、1U);// RESET 引脚
    USDELAY(100);

    GPIO_WritePinOutput (GPIO4、26U、0U);// RESET 引脚
    USDELAY(100);

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

    请确保在执行重置时 TEST 引脚保持为低电平。 并且您是否尝试过延长延迟以使 RESET 引脚保持低电平?

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

    感谢您的答复。 我将 TEST 引脚保持为低电平、但在代码中、您可以看到我将其置于高电平、这是因为两者之间存在 MOSFET、因此理想情况下会出现低信号。 我尝试过不同的延迟、但您想建议任何特定的时间间隔吗?  

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

    您是否尝试过像500ms 这样的延迟?

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

    使用  FreeRTOS 节拍尝试了300ms 延迟...正如我 所说、已尝试过重置矢量和加载 PC、但 观察到未定义的行为。 未定义的行为 、例如 LED 高频闪烁...我能够理解这是由于 BSL 时钟设置更改(8MHz)所致 因此尝试 读取 UCS 寄存器代码的初始设置、我已在开始时加载了代码以避免未定义的行为 ..我 能够避免这种未定义的行为 、但某些功能无法正常工作..因此、我想知道有什么需要配置的东西 除了 UCS 寄存器设置之外的其他代码中的错误?

    我认为、重置序列是最有效的方法。  如果您有任何意见、请告诉我吗?

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

    您能否帮助您 执行使用 MSP430F530x_P1_01.c (TI.com)中的 GPIO 切换演示代码 并通过逻辑分析仪或示波器捕获复位引脚、测试引脚、GPIO 切换引脚的测试? 以查看是否存在任何问题。