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.
工具与软件:
您好!
我在尝试刷写 MCU MSPM03507时收到此消息。
我看到了这篇相关文章:
1)已尝试1)按住 S1 (我认为 S2拼写错误)和闪存、2)按住 S1并按下然后释放 RESET、然后闪存、没有人能够解决此问题。 J8已连接。 并试图使 J101上的 NRST 保持连接或组装状态、但在这两种情况下都无法正常工作。
我的理解是、该器件的非主存储器需要被擦除、对吧?
那么、非主存储器为空时问题就会消失吗? 我想先确认此过程、然后再擦除非主存储器。
此外、最后 会显示"因此请确保未选中:"。 这意味着通常不应选择"erase main and nonmain memory"、对吧?
谢谢!
起重机
尊敬的 Crane:
您不应擦除 NON-MAIN、因为它可能会将您锁定在器件外。 我建议尝试 DSSM 批量擦除。
此致、
Diego Abad
尊敬的 Diego:
好的。 如何执行 DSSM 批量擦除?
无法在以下弹出窗口中选择 DSSM 批量擦除和 DSSM 因子复位。
谢谢!
起重机
尊敬的 Crane:
我建议下载 CCS 18.1并使用我在此处链接的在线指南进行此操作。
e2e.ti.com/.../Factory_5F00_reset_5F00_v2.pdf
此致、
Diego Abad
尊敬的 Diego:
我假设您谈论的是 CCS 12.8.1。
因为该项目是在 CCS Theia 中创建的。 在 CCS 12.8.1中打开工程或导入原始工程似乎没有效果。 是否有办法打开它? 或者唯一的方法是在 CCS 中创建新工程并将源文件移到新工程中?
和 CCS Theia 中的 syscfg 文件与 CCS12.8.1兼容? 在 CCS12.8.1中打开.syscfg 文件似乎无法正常工作。
谢谢!
起重机
我安装了 CCS12.8.1、 这是右键点击.ccxml 文件后的弹出菜单。
指南中没有"Launch Selected Configuration"选项。
较新版本的 CCS 将为 V20.0.0、并且没有18.1版本。
谢谢!
起重机
尊敬的 Crane:
抱歉、我误点击了"TI 认为已解决"按钮。 为此、您可以导出工程并将其导回 CCS 12.8.1。 然而、批量擦除可在任何项目中工作。
尊敬的 Crane:
您需要单击"View"选项卡、然后单击"Target Configuration"。 然后应该会看到"Launch Selected Configuration"选项。 您是对的、新版本的 CCS 是20.0.1。 我想说下载 CCS 12.8.1版本(基于 Eclipse 的 IDE)并遵循随附文档。
此致、
Diego Abad
尊敬的 Diego:
在尝试 CS_DAP 连接的步骤中失败。 消息如下:
CS_DAP_0: GEL Output: Initiating Device Factory Reset CS_DAP_0: GEL Output: Attempting CS_DAP connection CS_DAP_0: Error connecting to the target: DAP Connection Error. This could be caused by the device having gone to low power mode. Try forcing an external reset.If the error persists, try forcing BSL, a Mass erase or a Factory Reset. Check device FAQs for more information. CS_DAP_0: GEL Output: Initiating BOOTRST Board Reset CS_DAP_0: GEL Output: Reset line asserted CS_DAP_0: GEL Output: Reset line asserted CS_DAP_0: GEL: Error while executing GEL_DAPInit_externalReset(): Timer id 1 is already configured to call "GEL_DAPInit_resetDeassert()" and must first be canceled at GEL_SetTimer('GEL'::gDAPBoardResetLen, 1, "GEL_DAPInit_resetDeassert()") [mspm0_cs_dap_init.gel:180] at GEL_DAPInit_externalReset() CS_DAP_0: GEL Output: Reset line de-asserted CS_DAP_0: GEL Output: Board Reset Complete CS_DAP_0: GEL Output: Reset done CS_DAP_0: Error connecting to the target: DAP Connection Error. This could be caused by the device having gone to low power mode. Try forcing an external reset.If the error persists, try forcing BSL, a Mass erase or a Factory Reset. Check device FAQs for more information. CS_DAP_0: GEL: Error while executing GEL_DAPInit_remoteFactoryReset(1): Connect failed at GEL_Connect() [mspm0_cs_dap_init.gel:359] at GEL_DAPInit_remoteSECAPCommand(0x020AU, autoReset) [mspm0_cs_dap_init.gel:323] at GEL_DAPInit_remoteFactoryReset(1)
这意味着什么? 执行批量擦除可能会发生什么情况?
涉及导出/导入项目。 CCS Theia 中没有与 CCS 中相同的"export"选项。
有一个帖子是、将工程压缩到 CCS Theia 中、然后导入到 CCS 中。 我曾经尝试过、但 CCS 无法导入从 CCS Theia 压缩原始工程的存档。 如果只是解压工程、结果与仅复制原始工程相同。
谢谢!
起重机
尊敬的 Crane:
这意味着批量擦除失败(我认为很可能是因为它无法连接到电路板。) 您无需将其导出到我提到的版本、因为 CCS Theia 或 CCS 20.0.1应该合适。 您能否向我发送您跳线配置的图片?
此致、
Diego Abad
尊敬的 Diego:
图片如下:
是的、我明白。 我将项目从 CCS Theia 迁移到 CCS 的目的是、 如果 不 需要太多工作便 可以移动、我想使用 CCS 而不是 CCS Theia、因为我认为 CCS 更方便:-)我知道 CCS 新版本可以处理 MSPM0工程。
谢谢!
起重机
尊敬的 Crane:
新版本的 CCS 正在使用 Theia IDE、因此它的运行方式应与您使用的 CCS Theia 版本相对相同。 您应该只需在最新的 CCS 中打开该项目、就像在当前版本的 CCS 中打开一样。 我会询问我的团队成员、看看我是否可以针对您的闪存问题提出任何建议。
此致、
Diego Abad
尊敬的 Crane:
很抱歉迟到了响应。 我注意到您有一根电缆连接到 OPA2365 (绿色电缆)附近的基准标记。 您为什么要将其连接在此处? 另外、这里还有一个工具可以帮您解决问题。 如果它对您有用,请告诉我: https://dev.ti.com/gallery/view/TIMSPGC/MSPM0_Factory_Reset_Tool ver240/1.0.2/
此致、
Diego Abad
尊敬的 Diego:
感谢您的答复。
通过 UART 将该板连接到另一个板时、绿色电缆是接地。
我安装了所有内容、然后进行连接和执行、但输出控制台上没有显示任何内容。
点击灰色图标后、底部会显示一行、内容为"Error:Failed to connect:没有可连接的活动配置。
有什么想法吗?
谢谢!
起重机
尊敬的 Crane:
我能想到的最后一件事是尝试恢复出厂设置、但我想您已经尝试过它。 一个选项是通过 UNIFLASH 恢复出厂设置、但您将需要 JTAG 编程器。 也许绿色电缆会影响电路板的接地、但我无法100%确定。 因此、LaunchPad 似乎已被锁定。 您能介绍一下 在器件显示错误之前运行的项目吗?
此致、
Diego Abad
您好、Diego、您的意思是"尝试工厂重置"? 恢复出厂设置是否为"恢复出厂设置"?
我有 JTAG 编程器并尝试了 UNIFLASH。 结果如下:
调试接口是否损坏?
恢复出厂设置时、大电缆没有连接到任何地方。
我尝试尝试使用引脚 PA9和 PA8上的 UART 将此板连接到另一块板。 该板由外部电源供电、USB 仅用作 UART 接口。 另一个板由 USB 供电、同样用作 UART 接口。 这两个电路板都使用 USB 上的 UART 作为控制台、并使用 PA8/PA9上的 UART 作为两个电路板之间的通信通道。 然后、我突然意识到 由外部电源供电的电路板不再闪存。 外部电源是一个直流电源、至少配置为1A 电流限值。 稍后、另外两个板获得相同的结果。 但这并不总是导致结果出现、因为后来我通过这种方式连接了两个板、工作正常。
谢谢!
起重机
尊敬的 Crane:
由于您提到的其他两个电路板正在工作、因此无法连接到任何东西的电路板很可能已锁定或已损坏。 从数据表中可以看出、 G3507无法处理高于100mA 的电流。 因此、电路板似乎已失效。
此致、
Diego Abad
尊敬的 Diego:
为了澄清一点、当我说"... 后来、我看到两块板以这种方式正常连接。"时、我是指通过 PA9/PA8上的 UART 通信连接这两块板。 这意味着以这种方式连接两个板并不是全部三个板都遇到了我打算解决的这个问题的原因。
所以、您的意思是、范围广泛、所以我在刷写时遇到的错误无法通过执行"恢复出厂设置自动"来修复、对吧?
我观察到的一点是电路板仍在工作、但只是不能刷写新代码。 这就是为什么我恐怕是电路板上的调试接口损坏了。 是否有任何方法或任何错误信息来验证此假设?
谢谢!
起重机
尊敬的 Crane:
您可以证明电路板中的一些数据线路(XDS110或 JTAG)并查看是否有任何数据正在通过。 但是、如果电路板仍然使用上一个运行的项目、那么您假设"与电路板的通信"器件中断可能是正确的。 遗憾的是、这无法通过恢复出厂设置来解决、因为它无法连接到电路板。
此致、
Diego Abad
尊敬的 Diego:
SWDIO 和 SWCLK 上的信号在工作板和非工作板上看起来是相同的。 但结果不同。
但是、"强制复位"在程序运行时仍然可以复位电路板。 这可能表明在某些条件下通信仍然存在、并且 SWD 引脚上的硬件正常工作。
因为声明"这可能是器件进入低功耗模式所导致"。 可能当 MCU 处于低功耗模式时 SWD 没有响应。 有没有方法验证这一点?
CS_DAP_0: Error connecting to the target: DAP Connection Error. This could be caused by the device having gone to low power mode. Try forcing an external reset.If the error persists, try forcing BSL, a Mass erase or a Factory Reset. Check device FAQs for more information. CS_DAP_0: GEL: Error while executing GEL_DAPInit_remoteFactoryReset(1): Connect failed at GEL_Connect() [mspm0_cs_dap_init.gel:359] at GEL_DAPInit_remoteSECAPCommand(0x020AU, autoReset) [mspm0_cs_dap_init.gel:323] at GEL_DAPInit_remoteFactoryReset(1)
我在寻找此问题的根本原因、以防止再次发生这种情况、因为我们已经得到三个电路板连续不工作、我们还不知道导致这种情况的原因。 我想知道什么样的操作可能会导致 MCU 进入低功耗模式 、因为我从来没有特意这样做。 如果我们能够做到这一点、那么我们可以看看 处于低功耗模式的 MCU 的行为是否与我们现在看到的行为相同。
谢谢!
起重机
尊敬的 Crane:
我认为原因可能是当前馈送的电路板的1A 电流。 我建议将其降低到数据表中看到的水平。 当您 提到 "强制复位"时、您是指您尝试的原始复位、"S1按下、然后 S3按下"? 如果是这种情况、则 Launchpad 的该部分可能不会损坏(此时电路板的主闪存将被擦除、这意味着 Launchpad 处于非活动状态)。 我不认为有一种可以锁定器件的低功耗模式、但可以随意尝试。
此致、
Diego Abad
尊敬的 Diego:
我在前面提到过1A 限制是为电源设置的电流限制、而不是馈送到电路板的电流。 这意味着如果电路板消耗的电流超过1A、电源将不会提供该电源。
上一次开机自检中提到的"强制重置"是"恢复出厂设置自动"失败后的按钮、如下图所示。
谢谢!
起重机
尊敬的 Crane:
该错误通常表示 Launchpad 无法与 IDE 通信。 有时、此错误不仅仅是器件进入深度睡眠模式(与您现在看到的类似)。 您是否愿意与他人分享您正在使用的项目? 我想在我的某个开发板中运行它、看看它是否可能是程序的问题。
此致、
Diego Abad
尊敬的 Diego:
是的、这就是错误消息所显示的内容。 我将与您分享该项目。
谢谢!
起重机
尊敬的 Crane:
我在 LP-MSPM0G3507中运行您的项目。 我成功调试了 CCS 20.0.2中的内容并在"S1 + S3"复位后重置 LaunchPad。 由于该程序可以在该 Launchpad 上运行、因此我认为您当前的硬件设置可能出现问题、导致该 Launchpad 无法与 CCS 通信。
此致、
Diego Abad
尊敬的 Diego:
是的、这是因为电路板有问题、而不是程序有问题。 这就是我想要找出的问题及其潜在原因。
您刚才提到深度睡眠模式。 电路板可能有问题吗?
谢谢!
起重机
尊敬的 Crane:
由于电路板在您设置好它之前就已工作、因此我认为问题可能出在电路板上。 我们所拥有的低功耗模式不应将电路板锁定到无法与 IDE 通信的地步。
此致、
Diego Abad
尊敬的 Diego:
如果问题与主板无关、并且您测试了该程序 是否正在工作、那么 可能还有什么问题会导致 主板和 IDE 之间没有通信?
该电路板在放置到我的设置中之前已经工作、在放置到我的设置中之后已经工作了。 但从某段时间开始、它不再起作用。 这就是我们从头开始讨论的内容、对吧?
谢谢!
起重机
尊敬的 Crane:
由于在您的设置中、该板在某一时刻停止通信、因此必然会出现某种情况、该情况可能会破坏其与 IDE 进行通信的功能。 您是否能够想到任何可能导致器件损坏的特定事件? 例如器件处于设置状态然后出现故障后经过的时间、器件在项目的哪个点停止与 IDE 通信、测量到电路板的电流输入。
此致、
Diego Abad
尊敬的 Diego:
通过 UART 通信连接两个电路板时会发生这种情况。 但我不记得确切的任何时刻或任何事件,因为它突然发生,我没有准备测量多少时间过去,电流到板,等等.
现在、电路板中的程序仍在运行、只是无法用新程序刷写、也无法与调试器连接。 在执行"恢复出厂设置自动"之前、错误会出现。
有两个潜在原因:1)调试引脚断开;2) 如 错误消息中所述、器件处于低功耗模式。
现在的问题是:1) 是否有任何其他潜在原因? 2) 是否有办法验证器件是否确实处于低功耗模式、以便它不会对调试器/IDE 做出响应。 如果它处于低功耗模式、则不应该运行、对吧?
我们已经讨论了很多。 如果对这些问题没有新的意见、现在就可以了。
感谢您的支持!
起重机
尊敬的 Crane:
另一种测试低功耗模式的方法是使用万用表并测量通过 LaunchPad 的电流(将一个引脚连接到任何接地引脚、另一个引脚连接到任何3.3V 引脚)。 为了获得准确的结果、您需要从电路板上移除所有跳线并从外部为电路板供电。 获得电流读数后、将其与 器件数据表7.5 "电源电流特性"中给出的电流估计值进行比较。 但是、处于低功耗模式的器件不应使调试引脚不工作。 除此之外、我还能想到其他会使董事会破裂的事情。
此致、
Diego Abad
尊敬的 Diego:
我稍后会测量电流。
我们刚刚得到一个新的电路板、它不能刷写此错误。 这种情况发生在我们断开并重新连接了连接到此板的传感器板的电源时。
刷写新程序时、错误消息如下所示:
"CORTEX_M0P: GEL Output: Memory Map Initialization Complete CORTEX_M0P: File Loader: Memory write failed: Timed out waiting for target to halt CORTEX_M0P: GEL: File: C:\work_ccs1281\prj_mspm0_lcd\Debug\prj_mspm0_lcd.out: Load failed. CORTEX_M0P: Failed CPU Subsystem Reset: (Error -2063 @ 0x0) Unable to reset device. Power-cycle the board. If error persists, confirm configuration and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 20.0.0.3178)"
在执行"test connection:(测试连接:)"时、信息如下所示:
[Start: Texas Instruments XDS2xx USB Debug Probe_0] Execute the command: %ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity [Result] -----[Print the board config pathname(s)]------------------------------------ C:\Users\CRANES~1\AppData\Local\TEXASI~1\ CCS\ccs1281\0\0\BrdDat\testBoard.dat -----[Print the reset-command software log-file]----------------------------- This utility has selected a 560/2xx-class product. This utility will load the program 'xds2xxu.out'. The library build date was 'Sep 26 2024'. The library build time was '14:57:19'. The library package version is '20.0.0.3178'. The library component version is '35.35.0.0'. The controller does not use a programmable FPGA. The controller has a version number of '13' (0x0000000d). The controller has an insertion length of '0' (0x00000000). This utility will attempt to reset the controller to enter SWD mode. -----[Print the reset-command hardware log-file]----------------------------- This emulator does not create a reset log-file. -----[Perform the SWD Mode Integrity test]----------------------------------- This test will read the IDCODE register 1 time. The IDCODE register value is 0x6ba02477.
对该错误有什么想法、如何解决?
谢谢!
起重机
尊敬的 Diego:
电流始终在100mA 左右。 无论移除多少个跳变、它都不会影响电流。 它比规格中的 IDDrun 大得多。 不确定它为什么这么高。 如果这样、它不应该处于低功耗模式。
谢谢!
起重机
尊敬的 Crane:
我以前没有遇到此错误。 但是、由于与器件通信、因此应尝试进行 MSPM0_MSPM0_LaunchPad_Auto、这样就可以将 Mailbox_Factory 重置为出厂设置。 至于高电流消耗、请注意电流消耗是器件允许的最大值。 长时间保持该电流电平可能会导致器件中出现异常行为。
此致、
Diego Abad
尊敬的 Diego:
对于新损坏的主板、"出厂重置自动"功能正常(对于以前损坏的主板、即使"出厂重置自动"功能不起作用)、但在完成"出厂重置自动"后、按照上一篇文章中的说明刷写程序时仍然出现错误。
对于100mA 电流、项目不会消耗、它是未连接的裸 LaunchPad 板、甚至会移除所有跳线。 目的是按照您的建议检查它是否处于低功耗模式。
谢谢!
起重机
尊敬的 Crane:
如果 LaunchPad 单独到达100mA、更为令人担忧的是、因为这是器件的最大输入电流、AKA 在其上运行工程、这很可能会将该电流增加到高于100mA 的水平。 您是否可以尝试从设置中卸下电路板、然后将标准的 micro-USB 电源从计算机中馈入它? 您是否看到电流消耗相同?
至于您看到的错误、您是否能够尝试仅使用 micro-USB 电缆通过 CCS 刷写电路板而未连接到您的设置?
此致、
Diego Abad
尊敬的 Diego:
我按照 您建议的方式在之前的一个帖子中测量电流、以验证它是否处于低功耗模式。 是什么意思?
The other way to test for low power mode will be to use a multimeter and measure the current going through the launchpad (connecting one pin to any ground pin and the other to any 3.3V pin.) For accurate results, you'll need to remove all jumpers from the board and power the board externally.
对于新损坏的板、通过多次执行"恢复出厂设置自动"来修复。
谢谢!
起重机
尊敬的 Diego:
我有点困惑。 测量电流的目的不是以这种方式判断 MCU 是否处于低功耗模式? "你说什么? 以这种方式测量电流时、没有任何东西连接到此 MCU。
谢谢!
起重机
尊敬的 Crane:
这只是关于器件电流限制的建议。
此致、
Diego Abad
尊敬的 Diego:
好的。 那么、在之前的一篇文章中、您说以下内容是什么意思:
[报价 userid="565794" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1460590/mspm0g3507-flashing-problem/5631089 #5631089"]针对低功耗模式进行测试的另一种方法是使用万用表并测量流经 Launchpad 的电流(将一个引脚连接至任何接地引脚、将另一个引脚连接至任何3.3V 引脚。) 为了获得准确的结果、您需要从电路板上移除所有跳线并从外部为电路板供电。 获得当前读数后、将其与 器件数据表中7.5电源电流特性中给出的电流估计值进行比较。那么、这不是要验证低功耗模式?
谢谢!
起重机
尊敬的 Crane:
此方法可用于验证器件是否处于低功耗模式、因为电流消耗与器件所处的功耗模式直接相关。 我想说的是、该器件在功率模式 RUN0下似乎以正常 AKA 运行、而且该器件的电流高于我的预期电流。 然而、由于它似乎保持在100mA AKA 的最大值、它处于数据表提到的限制范围内。
此致、
Diego Abad
尊敬的 Diego:
那么、根据100mA 电流消耗的结果、该器件未在低功耗模式下运行、对吧?
谢谢!
起重机
尊敬的 Crane:
根据这些读数、这是我可以假设的情况。 通常、实际的低功耗模式使器件能够进入微安范围、而不是毫安范围。
此致、
Diego Abas
尊敬的 Diego:
好的、明白了。
但实际上、空间中的电流没有很大差异。
这里是低功耗模式电流:
它以 uA 为单位、但值 可能在毫安范围内。 不知道为什么会这样。
谢谢!
起重机
尊敬的 Crane:
您是对的。 但在运行模式和睡眠模式之间的差异几乎增大了一倍。 因此、该器件极不可能处于睡眠模式。 还应指出的是、在特定功耗模式下设置器件的方法是通过 SysConfig。 设备通常进入休眠模式的方式是通过__ WFI ()或__ WFE ()。
此致、
Diego Abad
好的、明白了。 谢谢 Diego!
起重机