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.

[参考译文] TMS320F2.8377万D:Micro Stuck in BootROM代码

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/634600/tms320f28377d-micro-stuck-in-bootrom-code

部件号:TMS320F2.8377万D
主题中讨论的其他部件:C2000WARE

您好,  

微控制器(F2.8377万D)似乎卡在bootrom代码中。 这不是正常现象,只能通过应用程序中的监视程序重复重置来重新创建。 一旦微控制器进入这种“僵尸”状态,我就能够连接JTAG (经过修改的凝胶,不会更改CPU状态)并读取寄存器并找到它被卡住的地址(0x3fe2ee)。我们可以看到它在分支无条件地卡在同一位置,实际上是1。 连接CPU寄存器和反汇编视图中的bootrom代码快照。 问题

  1. 在bootrom中,哪些情况会导致此说明?
  2. 为什么看门狗不触发? (在bootrom中是否打开了看门狗?

注册内容:/CFS文件/__key/communityserver-discussions-组件文件/171/CCS_5F00_Export_5F00_PeripheralMap.txt

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

    在此错误条件下,您能否检查GPIO72/GPIO84的值。 每次重置BOOTPIN值都被采样,如果在某个时间这些值未被正确采样(由于噪音或外部驱动程序),则设备将无法正确启动。

    此致,

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

    卡住的位置是"等待启动"。 这很可能是由于Vivek所述的引导模式选择引脚上的值存在一些问题。 有关可能导致等待引导的各种流的详细信息,请参阅TRM或引导代码源。

    如果OTP Boot Configure Word使用有效的密钥进行编程,则可以在不启用看门狗的情况下进入等待启动。 等待引导的默认状态已启用监视程序。 此外,它在退出引导之前已启用。

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

    启动引脚(GPIO72和GPIO84)通过10kOhm电阻器连接到3.3V,不用于任何其他用途。 10千欧是否太弱?

    如果我可以将问题中描述的商品标记为unit_A,则我们还有两个商品处于相同情况。  

    unit_B:似乎卡在0x3FEFB3地址,并在两个指令之间循环。

    从寄存器中,看门狗被禁用。

    我们有意将GPIO84接地,将台式装置置于"等待"模式。 已连接JTAG,并可以确认其卡在 0x3fe2ee处(就像在原始问题中一样),我们还可以看到监视器已禁用。

    在这些主板中,OTP启动配置未使用,仅留空(将仔细检查)

    问题:

    1. 看门狗在"等待"模式下被禁用,请确认。
    2. 启动模式针脚上的10k Ω 上拉电阻是否太弱?  

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

    Sandeep,

    是,在等待引导时禁用了监视程序。

    电阻值取决于 主板上预期的噪音类型。 10kOhm 灵敏度值可能不足以适应非常嘈杂的环境。

    您是否检查过GPIO 72/84值以确保其确实是由于错误的GPIO值 ?

    此致,

    Vivek Singh

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

    Vivek,  

    您能否详细说明您希望我在GPIO 72/84上检查的内容。 是否要我检查GPADAT寄存器? 我怀疑它将显示为1,将进行检查以确定。 BootROM可能由于 瞬态而读数较低。 bootrom是否将这些引脚采样值存储在ram中? 它可以确认进入"等待"模式的原因。

    这种情况并不是每次都发生,我们必须运行一个周期周期,定期复位,它将在某个时刻进入这种状态。

    谢谢!

    Sandeep

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

    PIN值不存储在RAM中,每次重置时都会对其进行采样。 如果要重复使用GPIO,请确保将其保持在正确的状态指定的时间量(~1.5ms)。

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

    此外,您还可以通过从C2000Ware加载ROM符号,并使用没有凝胶脚本(在目标连接上重置设备)的目标配置,来仔细检查引导期间确定的引导模式。 boot填充的BootMode全局变量可从RAM读取。

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

    "bootmode"变量,这正是我想要的,太棒了。 如何查找这些芯片上的启动ROM代码版本? 我在C2000Ware版本0和版本B中看到了两个版本。我找不到F2.8377万D的引导ROM指南,就像TMS320x2834x www.ti.com/.../sprufn5b.pdf的引导ROM指南。

    此外,对于Unit_B:它卡在另一个位置0x3FEFB3,它的位置是什么以及如何到达这里。

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

    所有引导详细信息都在TRM中: www.ti.com/.../spruhm8
    “等待点”部分将告诉您引导可能被卡住的常见地址范围。 它会在您刚刚发布的地址的情况下查找,您可以在"并行引导"中等待。

    请检查启动ROM版本,v 1.1 是版本B,v 1.0 是版本0。 此的存储位置在TRM中。

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

    您好,Chris:  

    我在TRM上的Acrobat中使用了搜索 ,应该刚刚浏览了引导部分。 这些芯片中的引导ROM是Rev B,BootMode变量为02,对应于“等待”模式。 这意味着当采样GPIO 84的启动引脚读低时。 您是否知道从通电的电源轨中,何时采样这些引脚?  在TRM中,这些引脚在重置时禁用上拉,因此完全取决于外部上拉以设置启动模式。

    谢谢!

    Sandeep

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

    是的,他们依靠外部上拉。 在启动结束时对其进行采样。 我没有确切的时间,正如我所提到的,我们建议从设备启动开始时起,将启动GPIO保持在所需状态~1.5毫秒。

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

    Sandeep,

    我想知道10k拉电阻器是否太弱。 你们已经试过1K上拉电阻器了吗? 我们可以更改引导模式引脚,但无法在没有引导模式引脚的情况下直接引导至闪存。

    此外,是否已确保启动引脚处于正确状态至少1.5毫秒?

    此致,

    Manoj

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

    Sandeep

    已编辑:另一个要考虑的选项是对OTP位置进行编程,以便对两个引导GPIO中的每个使用相同的GPIO。 这基本上只需要您使用一个启动销,然后对其进行强力拉拔。 这将导致获取引导模式。  

    此致
    Chris

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

    您是否能够尝试这些建议? 这一问题是否已得到解决?

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

    大家好,  

    该问题尚未解决,我们尝试了很多事情。我们尝试了1K电阻器,但问题仍然会发生。  此外 ,我们有时必须运行超过36小时的循环测试来重新创建,这使得诊断非常困难。 在一个实例中,问题可能在几分钟内重新出现,但一旦我们将bootloder (我们的引导加载程序代码在闪存中运行)更改为其他版本进行测试并恢复,因为此后无法在该设备上重新创建。  

    我们从示例中获取了biky应用程序并启用了看门狗,因此它会不断重置,在5个设备上运行超过15小时,并且无法重现问题。 到目前为止,我们可以看到重复下载固件(然后重置看门狗)的测试似乎导致了此问题。 闪存擦除/程序中是否有任何可能导致此问题的原因?

    我们正在设置几个单元,将此问题作为测试场至少出现一次,并将其用于运行测试,这样我们就可以增加重新出现问题的机会。

    谢谢!

    Sandeep  

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

    我看不出重复下载固件会导致此问题。 了解这些问题的答案可能有助于缩小问题范围。 请您了解一下这一点吗?

    1)您是否在应用程序代码中使用引导模式PIN?
    2)您是否已尝试在应用程序代码中不使用引导模式PIN?
    3)看到问题时闪存是否被擦除?
    4)一旦您发现问题? 您是否能够重复生产?

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

    您好,Manoj,  

    1)您是否在应用程序代码中使用引导模式PIN? 否,引脚被拉至10K,不连接或用于任何用途
    2)您是否已尝试在应用程序代码中不使用引导模式PIN?  引导模式引脚配置为使用上拉进行输入
    3)看到问题时闪存是否被擦除?  我必须检查笔记,然后返回。
    4)一旦您发现问题? 您是否能够重复生产?  需要很长时间,有时需要24小时的固件下载重复循环,每分钟一次。

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sandeep,
    此外,如果您也可以监控VDDIO,以查看错误发生时是否出现中断?

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

    我们在两个引导选择GPIO引脚上有范围,并捕获了bootrom选择不同模式的实例。 轨迹是实线,没有任何故障,所以3.3V导轨是实线的。

    Sandeep