单片机/MCU论坛
直播中

wufan931111

11年用户 1240经验值
擅长:370217
私信 关注
[问答]

TC387无法连接到调试器,并且ESR0输出低怎么解决?

TC387无法连接到调试器,并且连接到ESR0的LED D106变为红色,这意味着ESR0输出低电平。我认为原因是无法释放复位状态,因此设备无法跳转到用户SW。那么如何让它成功跳转到用户SW以便我可以连接到调试器?

回帖(1)

李桂英

2025-8-6 18:18:02

好的,TC387无法连接调试器且ESR0输出低电平、导致LED变红(意味着设备处于硬复位状态),表明主复位PORST信号被持续拉低。这确实会阻止芯片跳出复位状态,从而无法启动用户程序(也就无法响应调试器)。


以下是系统的排查步骤和解决方法:


? 核心问题


ESR0 输出低电平直接表明 PORST 信号为低(处于复位状态)。这意味着:



  1. 某个内部或外部的复位源正在主动保持复位。

  2. 芯片无法执行 BootROM 后跳转到用户程序 (APP0)

  3. 没有用户程序运行,调试通信无法建立。




? 排查与解决步骤




  1. 仔细检查电源供应与复位引脚电压:



    • 所有电源轨: 使用万用表或示波器确认 VEXT, VDD, VBAT, VDDM (如有) 等关键电源引脚在上电后的电压是否在数据手册规定的范围内且足够稳定(无大的纹波或跌落)。

    • 复位引脚 ESR0:

      • 测量 ESR0 引脚上的电压(通常是 PORST_N/PWRRST/RESET_N)。红色LED亮表示低电平(<0.4V)。

      • 目标是:上电后一段时间(可能几十到几百毫秒),这个引脚的电平应该 上升 到高电平(通常是 VDDIO 电平)。如果它始终保持低电平,就是问题的直接表现。


    • 其他复位相关引脚(如果连接外部电路): 检查任何连接到 PORSTESR0 的外部元件(如上拉电阻、外部复位芯片、按钮)。确认外部复位电路未错误地保持复位(例如,坏的上拉电阻、复位按钮卡住、外部复位芯片故障)。




  2. 排查其他可能的内部复位源(WDTLOCK):



    • 看门狗锁定复位(WDTLOCK): 这是最常见的原因之一。如果:

      • 上次调试/烧写时设备进入了错误的安全状态。

      • BootROM 启动时检查安全配置失败。

      • 应用程序意外使能了看门狗但未能正确喂狗。


    • 如何检查/解决:

      • 尝试强制进入 Boot Mode: 这是最关键的诊断和恢复手段。

        • 查找目标板的原理图,找到 TESTP15.0 引脚(这是 TC387 进入引导加载程序的硬件控制脚)。

        • 断电状态下,将 TEST/P15.0 引脚短接到地(GND)。

        • 保持短接状态,给目标板上电。

        • 保持短接状态! 使用 UART-to-USB 转换器连接到芯片的 ASC BSL 接口(通常是 ASC0:RX/TX/GND)。常用的工具是 memtool

        • memtool 中选择正确的串口和波特率(如921600),尝试连接 Boot BSL。

        • 诊断: 如果能成功连接 BSL,说明芯片的核心和基本通讯外设是工作的,问题很可能出在用户代码区域或安全设置上。

        • 解决方法: 一旦连接上 Boot BSL:

          • 使用 memtoolErase 功能擦除整个用户 Flash 区域(包括 PFLASHDFLASH)。擦除前务必保存好你的原始程序! ?

          • 特别检查 Option Byte (BMHD):

            • BMHD_BOOT_MODE: 确保设置为 CPU_BOOT (例如 0x00000xFFFF 表示正常跳转 APP0,具体看手册)。

            • BMHD_LCK: 极其重要! 检查 LCK (LOCK) 字段。特别是 LCK[0] (LOCKCFG0) 或安全启动相关的锁定位。如果被设置为 1 (LOCK状态),它将禁用调试访问并可能强制执行安全启动检查。你需要将它改写为 0 (UNLOCK状态)。这通常是“无法释放复位”或“无法连接调试器”的根本原因。 注意:操作 Option Byte 需要特殊的解锁序列或工具支持。memtool 通常有专门的操作页面进行 BMHD 的读取和编程,仔细阅读 memtool 的文档。操作 BMHD 有风险,务必谨慎。最好参考 Infineon 应用笔记 (AN)。


          • 擦除后或修改 BMHD 后,尝试重新烧写已知好的、不设置调试锁的用户程序 (APP0)


        • 执行完擦除/烧写操作后,断开 TEST/P15.0 短接,完全断电再上电复位,看能否正常启动并连接调试器。


      • 确认上电时序: 如果 VEXT/VDD 等电源上升过于缓慢,超出了 PORST 内部释放电路的容忍范围,它也可能导致类似问题。确保电源设计合理,使用高质量的 LDO/DC-DC,加上足够容量和低 ESR 的退耦电容。





  3. 排查外部复位源:



    • ERAY 模块复位: 如果你使用了 ERAY(用于车载以太网),确认 ERAY0_RST (或其他复位信号名) 硬件信号未意外拉低。ERAY 自身的复位异常也可能通过内部路径阻止主复位释放。

    • 其他外部复位逻辑: 检查电路图上是否有其他复位源连接到 PORST 网络(如外部看门狗芯片、主 MCU、电源管理芯片)。尝试临时断开这些外部复位源(非常小心),看看是否恢复(这有助于定位问题在内部还是外部)。




  4. 调试器连接问题(通常是现象而非原因):



    • 确认连接: 即使芯片在正常运行,如果调试器接口(DAP)引脚连接错误(TCK, TMS, TDI, TDO, TRST, RESET, GND),调试器也会连接失败。再仔细检查一遍连接器和线缆。

    • 连接时序: 确保在目标板上电并稳定(ESR0灯应熄灭)之后再点击调试器的“Connect”。调试器可能在设备初始化完成前就发出请求导致失败。

    • 尝试“Cold-Plugging”:

      • 首先断开调试器与目标板的连接。

      • 将调试器连接到 PC。

      • 给目标板上电,等待约1-2秒(确保所有电源稳定,ESR0应该变高)。

      • 然后 再将调试器连接到目标板的调试接口。

      • 最后在 IDE 中点击连接。





  5. 硬件故障检查:



    • 晶体振荡器: 虽然主复位释放不完全依赖时钟,但一个完全失效的晶体也可能导致后续初始化失败。使用示波器探头检查晶体引脚是否有起振迹象(幅度可能很小,小心测量)。

    • 短路/开路: 仔细检查所有相关引脚(ESR0PORSTVDDGND、调试口)是否与临近引脚存在焊锡桥、过孔损坏或线路断裂。

    • 芯片本体: 检查芯片有无物理损伤(如裂痕、烧痕)或过热迹象。






⚠ 总结诊断路径建议




  1. 首先也是最关键的一步: ? 尝试通过短接 TEST/P15.0 引脚进入 Boot BSL 模式。



    • 成功进入并连接 memtool:问题很可能在用户程序或 BMHD Option Byte 的安全锁配置上(特别是 LOCKCFG0 被设置)。擦除用户 Flash(PFLASH, DFLASH),仔细检查和重新编程 BMHD(重点解锁 LOCKCFG0),然后烧写新的用户程序。

    • 无法进入 BSL 或连接:问题更可能出在 电源、PORST 外部电路、上电时序、芯片硬件故障、或 TEST 引脚电路问题 上。需要仔细测量电源和复位信号。




  2. 排除外部复位: 如果电路有连接到 PORST 的外部复位源,尝试临时断开它们。




  3. 仔细测量: 在整个排查过程中,反复测量 ESR0 (或PORST_N)、核心电源 VDD、主电源 VEXTVBAT 等关键点的电压水平(值、稳定性、上电波形)。




  4. 检查硬件连接: 始终重新检查调试器和目标板硬件连接,以及目标板上任何与复位相关的跳线或开关状态。




  5. 审视最近的变更: 这个问题是在什么操作后发生的?刷写了新固件?修改了硬件?连接了新的外设?恢复到最后一次确认正常的软件/硬件状态往往是突破口。




解决这个问题需要耐心地进行硬件测量和软件配置检查。强制进入 Boot BSL 模式通常是解锁设备并重置配置的最有效方法。如果擦除 Flash 和重置 BMHD(特别是解锁LOCKCFG0)后问题依旧,请仔细检查电源和复位信号,必要时更换芯片评估是否为硬件损坏。祝你顺利!??

举报

更多回帖

发帖
×
20
完善资料,
赚取积分