C28xx: Failed CPU Reset: (Error -1137 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.450.0)
C28xx: Trouble Reading Register PC: (Error -1137 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.450.0)
C28xx: Trouble Reading Register ST1: (Error -1137 @ 0x6) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.450.0)
C28xx: GEL: Error while executing OnReset(1): Target failed to read register ST1 at (ST1&~(0x0100)) [f28335.gel:312] at C28x_Mode() [f28335.gel:38] at OnReset(1) .
C28xx: Trouble Reading Register ST1: (Error -1137 @ 0x6) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.450.0)
连接出现这个问题 该如何解决
ccs报错1137Device is held in reset. Take the device out of reset, and retry the operation.
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
檀越@新空间 2025-07-23 20:03关注晚上好🌙🌙🌙
本答案参考通义千问你遇到的错误信息是:
Device is held in reset. Take the device out of reset, and retry the operation.
这是在使用 TI 的 CCS(Code Composer Studio) 开发 TMS320C28xx 系列芯片(如 C28335、C28377D 等) 时,常见的调试连接问题之一。这个错误通常表示目标设备(MCU)仍然处于复位状态,导致无法进行调试或读写寄存器。
✅ 原因分析
- 硬件复位未释放:MCU 可能被外部电路强制拉低了复位引脚(如 RSTN),导致无法正常启动。
- 电源不稳定:MCU 没有正确上电,或者电压不稳,导致无法进入运行状态。
- JTAG 接口配置错误:CCS 配置中 JTAG 接口设置不正确,例如选择的接口类型与实际使用的不同(如 XDS110 vs XDS560)。
- GEL 脚本问题:某些 GEL 脚本(如 f28335.gel)可能在初始化过程中尝试读取寄存器,但此时 MCU 仍处于复位状态。
- 芯片损坏或焊接不良:MCU 或相关电路存在物理问题。
🔧 解决方案
1. 检查硬件连接和电源
- 确认 MCU 已正确供电,电压稳定(通常为 3.3V 或 5V)。
- 检查复位引脚(RSTN)是否被拉低,确保其处于高电平。
- 检查 JTAG 接口是否连接稳固,尤其是 TCK、TMS、TDI、TDO 和 GND 引脚。
2. 手动解除复位
- 如果你是通过开发板进行调试,可以尝试手动按下复位按钮或断开复位信号源,让 MCU 进入运行状态。
- 如果使用的是开发板(如 TI LaunchPad),请参考手册确认复位方式。
3. 检查 CCS 配置
- 打开 CCS -> Debug Configurations。
- 选择你的调试配置(如 XDS110 / XDS560)。
- 确保 Target Connection 设置为正确的接口类型。
- 在 Advanced Settings 中,检查 Reset Type 是否为
System Reset或CPU Reset,根据实际情况调整。
4. 修改 GEL 脚本(可选)
如果问题出在 GEL 脚本(如
f28335.gel)中,可以尝试修改脚本以跳过某些初始化步骤:示例代码修改:
// 原始代码(可能导致错误) OnReset(1) { // 读取 ST1 寄存器 ReadReg(ST1); } // 修改后(添加延时或判断) OnReset(1) { // 添加延时,等待 MCU 退出复位 Delay(100); // 假设 Delay 是一个可用函数 // 读取 ST1 寄存器 ReadReg(ST1); }注意:GEL 脚本一般由 TI 提供,不建议随意修改,除非你非常清楚其作用。
5. 更新 Emulation Package
- 确保你安装的是最新版本的 Emulation Package。
- 在 CCS 中,点击 Help -> Check for Updates,更新所有插件和驱动。
6. 尝试不同的 JTAG 接口
- 如果你使用的是 XDS110,尝试换成 XDS560 或其他支持的 JTAG 接口。
- 确保 JTAG 接口驱动已正确安装。
7. 测试 MCU 是否损坏
- 使用示波器或逻辑分析仪检查 MCU 的时钟信号是否正常。
- 尝试用另一个相同的 MCU 替换当前芯片,看是否仍有相同问题。
🛠️ 总结步骤(有序列表)
- 检查电源和复位信号,确保 MCU 正常上电并退出复位。
- 检查 JTAG 接口连接,确保信号线连接稳固。
- 在 CCS 中检查调试配置,确认接口类型和复位方式正确。
- 尝试手动复位 MCU,或通过开发板复位按钮操作。
- 更新 CCS 和 Emulation Package,确保软件环境无误。
- 检查 GEL 脚本是否有异常,必要时进行简单修改。
- 更换 MCU 测试,排除硬件故障可能性。
⚠️ 提示
如果你是在使用 TI 的官方开发板(如 C28335 DSK),建议按照官方文档中的调试步骤进行操作,避免自行修改底层脚本。
如有更多关于硬件设计或 CCS 配置的问题,欢迎继续提问!
解决 无用评论 打赏 举报