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.

[参考译文] TMS320F28P650DK:WDT 复位&NMIWDT 复位应用问题

Guru**** 2529560 points
Other Parts Discussed in Thread: TMDSCNCD28P65X, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1338714/tms320f28p650dk-wdt-reset-nmiwdt-reset-application-question

器件型号:TMS320F28P650DK
主题中讨论的其他器件:C2000WARETMDSCNCD28P65X

尊敬的专家:

  我的电路板可以独立启动、并且可以正常运行。

  但是、当 CPU1 - WDT 复位发生复位或  CPU2上发生 TRIG CPU1 - NMIWDT ISR 超时复位时、CPU1无法复位成功。

  我参考了 TI 示例代码- CPU2 WDT 复位和 CPU1 NMIWDT ISR TRIG 以复位 CPU2可以成功。 所以、我认为 CPU2复位是可以的。

  另一个 TI 示例代码- CPU1 WDT ISR 与我的应用不匹配、这个示例代码集 WDT 模式是 ISR 模式、因此我没有进行测试。

  顺便说一下,当我复位 CPU1 ,然后使用 JTAG 连接下载代码和重新启动,我可以看到 WDT REG - WDRSn (看门狗复位标志)打开。 我认为 CPU1 WDT 功能正常、但重新启动失败。

  因此、我想知道如何解决 CPU1 WDT 复位或 NMIEWDT 复位的问题?

  谢谢。

B.R.
螺栓

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

    您好!

    当您说重新启动失败时,重新启动时会发生什么? 它会在 BootROM 或您的应用中的某个点卡滞吗?  

    维维克·辛格

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

    您好!

      我使用了 JTAG 来监控地址。

      在应用模式下、CPU1起始地址为0x08463B、CPU2起始地址为0x0E2F44。

      CPU1 WDT 复位时、CPU1在 BootROM 中卡在0x3FB181、CPU2在 APP 中卡在0x0E2F44。

      所以、我认为 CPU1卡在了 BootROM 中。 CPU1无法进入应用代码。

      如何解决问题?

    B.R.
    螺栓

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

    可能是当发生 WDT 复位时、CPU2在 CCS 中暂停且未运行?  

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

    您好、Vivek、

      我不这么认为。

      当我没有连接到 CCS 时、F28p65可以独立加电成功进入 APP、但也无法通过 WDT 复位来唤醒成功。

      那么、我连接到 CCS、我找到了前面提到的情况。

      CPU2已准备就绪、等待地址位于应用起始地址、因此我认为这种情况不会影响 CPU1导致 BootROM 中的 CPU1停止。

     或者、请详细说明您描述的情况。 为什么 CPU2已经等待应用程序起始地址的情况会让 CPU1在 BootROM 中停止?

      如果您认为有任何情况或测试方法、请告诉我如何操作、让我来尝试一下。

     如果您有可让 CPU1成功执行 WDT 复位或 NMIEWDT 复位的示例代码、请让我参考、谢谢。

    B.R.
    螺栓

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

    您好!

     或者,请告诉我有关您描述情况的详细信息。 为什么 CPU2已经等待应用程序起始地址的情况会让 CPU1在 BootROM 中停止?

    我当时想、如果 CCS 已连接并且 CPU2已暂停、则 CPU 代码不会运行、CPU1可能会等待来自 CPU2的握手、但看起来情况并非如此。  

      如果您认为有任何情况或测试方法,请告诉我如何操作,让我试试。

    在这种情况下、我建议加载 BootROM 符号 ( \libraries\boot_rom\f28P65x\rev0\rom_sources\CPU1\ccs_files\Release)并查看 CPU1确切等待的内容。  

    此致、

    维维克·辛格

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

    您好、Vivek、

      感谢您的响应、但我不清楚地了解 BootROM 代码的汇编代码。

      因此、我尝试了另一种测试方法、我将硬件板从应用板更改为 F28P65x 控制卡。

      对于 F28P65x 控制卡、CPU2 WDT 复位 TRIG CPU1至 NMIWDT 复位成功。

      因此、我们应用板的布局会影响 WDT 复位功能。

      请给我 一些电路板布局的信息来解决这个问题、谢谢。

    B.R.
    螺栓

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

    螺栓、

      请提供 一些电路板布局的信息,让我来解决这个问题,谢谢。

    您可以在 C2000Ware ( \boards\controlCARDs\TMDSCNCD28P65X\revA\documentation)

    维维克·辛格

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

    您好!

    如果您对此主题还有任何进一步的疑问、

    维维克·辛格

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

    您好、Vivek、

      抱歉、要延迟回复此问题。

      我已在 C2000Ware 文档中详细了解了电路板布局布线。  

      我无法找到两个板之间的问题。 我让硬件团队检查一下。

      顺便说一下、我们的 OSC CLK 是20 MHz、您认为这个差异就是问题了吗?

      目前,问题仍未解决。 如果我有任何问题,我将再次答复这一问题,谢谢。

    B.R.
    螺栓

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

    您好!

    顺便说一句,我们的 OSC CLK 是20 MHz,您认为这种区别是问题吗?

    这应该不会导致任何问题。  

    维维克·辛格

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

    您好、Vivek、

      

       在 TRM4.5.1引导流程-图4-1器件引导流程中、我不明白说明:"HW:启用 WDG 将时钟分频器设置为/4启用 ECC"。 这是关于硬件布局的描述吗?

       您能解释一下这个描述吗? 也许这是解决这个问题的关键。

    B.R.
    螺栓

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

    该陈述是关于 bootcode 采取的一些操作、而与电路板布局无关。  

    下面开启-

     顺便说一句,我们的 OSC CLK 是20 MHz,您认为这种区别是问题吗?

    由于您拥有20MHz OSC、因此您是否已正确更新 PLL 设置、以确保时钟符合规定的规格。

    维维克·辛格

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

    您好、Vivek、

       谢谢您的解释

       在我的应用程序初始化时,程序会执行 InitSysPll(),将 PLL 设置为20MHz。

       是否有其他设置需要执行的操作?

       I TEST HW XRST 引脚设置为低电平以重新启动系统可以成功。  

       到目前为止、我总结了有关重启测试的两个结论。

         1.我们的主板可以 POR 和 XRST 重新启动系统成功,但它不能 WDT 和 NMIWDT 重新启动。
           ->我们的主板 IC 版本=  F28P650DK9 ZEJ 7A 美元

         2、我们的代码可以在 TI 的控制卡上成功的完成 WDT 和 NMIWDT 重新启动、 即使应用代码集 PLL 是20MHz。
           -> TI 的控制卡 IC 版本=  XF28P650DK9 ZEJ 7美元

      通过介绍、您有什么建议让我修复硬件或软件错误吗?

       IC 修订版0和 A 的差异是否会导致问题?

      当 WDT 和 NMIWDT 复位发生时、引导流程是否需要读取一些引脚信息? 如果是、请向我提供引脚信息、谢谢。

    B.R.
    螺栓

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

    您好!

    在我的应用程序初始化时,程序执行 InitSysPll ()以将 PLL 设置为20MHz。

    您的意思是200MHz 吗? 您能给我发送函数调用的快照吗?

       IC 修订版0和 A 的差异是否造成此问题?

    不、这不应该有任何不同。

      发生 WDT 和 NMIEWDT 复位时,引导流程是否需要读取一些引脚信息?

    引导流程仅读取 BOOTMODE 引脚值、以便在任何复位后引导器件。  

    请注意 WDT 和 NMIWDT 复位也将切换 XRSn 引脚(XRST ),所以行为应该相同。  

    此致

    维维克·辛格

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

    您好、Vivek、

       感谢您的回复。

     关于软件代码:

       我的代码参考:c2000Ware_5_01_00_00\device_support\f28p65x\common\source\f28p65x_sysctrl.c

       初始化时,main() 调用 InitSysCtrl()函数来执行 PLL 设置。

       要修改 OSC 20MHz,我只需修改 InitSysCtrl()的函数,如下图所示。

       

      被调用函数: InitSysPll()只是引用 f28p65x_sysctrl.c ,它没有修改。

      此 PLL 设置是否正确?

     关于硬件布局:

      切换 XRSn 引脚(XRST)是否  属于 SW 控制?

      如果 XRSn 引脚由 HW 配置拉高、则 WDT 和 NMIWDT 复位以切换 XRSn 失败吗?

    B.R.
    螺栓

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

    我会检查 SW 部件、然后给您回复。

      is toggle XRSn pin (XRST ) contribution SW control ?

    否、XRSn 引脚将始终在 WD 和 NMIWD 复位时切换。  

      如果硬件配置将 XRSn 引脚拉高, WDT 和 NMIWDT 复位是否会切换 XRSn 失败?

    根据上拉值、它可能会产生影响。 我建议扩大 XRSn 引脚的范围、查看这在器件发出 WD/NMIWD 复位时是否会切换。 如有可能、请分享示波器捕获。

    维维克·辛格

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

    您好、Vivek、

       您是否 检查有任何问题的软件部件?

      感谢您提供硬件信息、我将检查引脚上拉值。

    B.W.
    螺栓

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否 检查有任何问题的软件部件?

    SW 对我来说很好。 您可以尝试拉出 XCLKOUT 并检查时钟阵列。

    维维克·辛格  

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

    您好、Vivek、

      我们的硬件团队修改 XRSn 引脚的上拉状态、然后 WDT 和 NMIWDT 复位成功。

      问题在于 XRSn 引脚来自另一个 IC 的 GPIO 复位控制、当该 IC 不输出低电平时、它始终输出高电平、因为 WDT 和 NMIWDT 无法成功进行硬件切换。 因此、我们的硬件团队修改了这个问题、让 WDT 和 NMIWDT 可以成功地切换 XRSn 引脚以复位系统完成。

      感谢您的支持。

    B.W.
    螺栓