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.

[参考译文] CCS/TMS320F28377S:InitSysPll()调试卡死!

Guru**** 2478765 points
Other Parts Discussed in Thread: C2000WARE, TMS320F28377S

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/719492/ccs-tms320f28377s-initsyspll-debug-get-stuck

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARE

工具/软件:Code Composer Studio

大家好、

我为 f28377开发了 CAN 闪存内核代码。 我使用了 InitSysCtrl()例程,但当我调试时,代码卡在 以下代码上。

while (ClkCfgRegs.SYSPLLSTS.bit.lock!= 1)

//ServiceDoG()

如何解决此问题?

谢谢、此致

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

    您好、Hakan、

    您能否提供更多详细信息,特别是有关用于 InitSysPll()函数的参数的详细信息?

     时钟源是什么,频率是多少?

     什么是 PLL 倍频器?

     -分压器是什么?

     -您的目标系统时钟是什么?

     -您从哪个版本的 C2000Ware 获得了 InitSysPll()?

    一旦您有了这些信息、我们就可以尝试找出问题所在...

    谢谢、此致、

    Joseph

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

    你好 Josephi

    我使用的是 c2000Ware 最后版本(1.00.05.00)。 我还在使用 F2837xS_sysctrl.c 来使用 InitSysCtrl()例程。

    我不确定这些值是否正确。
    小数乘法器为0
    整数乘法器为40
    时钟源为 XTAL_OSC 1
    时钟速度为200MHz
    DIVSEL 为 PLLCLK_by_2 1

    调试卡在以下代码阶段:

    while (ClkCfgRegs.SYSPLLSTS.bit.lock!= 1)

    //ServiceDoG()


    谢谢、此致。

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

    只要您使用10MHz XTAL (10MHz * 40 div 2 = 200MHz),我就不会看到您传递给 InitSysPll()函数的参数有任何错误。 您使用的是哪种类型的电路板、您可以确认 XTAL 值(10MHz)吗? 您是否还可以在设置中确认输入时钟确实来自 XTAL (如果有的话、也许可以检查 DIP 开关的位置)?

    如果您的 XTAL 值不正确(如果乘法器设置为40、可能大于10MHz)或根本没有时钟、则会出现此错误。

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

    只需检查您是否在调试此问题方面取得了进展。 请告诉我您是否已解决。

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

    您好、Joseph、

    我很抱歉我的回复太晚了!
    实际上、我没有更改 InitSysCtrl 函数以及 InitSysPll 函数中的任何值。 我正在使用 CAN_EXTERNAL_Transmit 示例代码的 SYSCTRL 源文件。 此源文件可以正常工作。 我将此源文件复制到另一个项目中、并发生此错误。 我仍然无法解决它。


    谢谢和问候!

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

    clock_source =ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL、它使用 XTAL_OSCC.SO、我认为有一个时钟。

    ClkCfgRegs.SYSPLLMULT.ALL =((fmult<<8U)| imult);
    当我进行调试时、这个阶段的值为40。 我认为是真的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Hakan、

    在您的电路板上、是否可以获得 X1引脚的示波器截图? 这是一种确认方法、即确实有一个连接 TMS320F28377S 微控制器的时钟。

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

    我正在使用 Launch XL f28377。

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

    您好、Hakan、

    好的、如果您无法探测 Launchpad 上的 X1引脚、则可以尝试使用微控制器的内部振荡器之一。  在 InitSysPll 函数调用中、能否将 XTAL_OSC 参数替换为 INT_OSC1或 INT_OSC2。  这2个内部振荡器设置为10MHz。  这样做是为了使 PLL 以内部时钟为源。  查看您的代码是否仍然停留在 InitSysPll 函数上-这只是为了调试您的问题。

    谢谢、此致、

    Joseph