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.

[参考译文] TMS320F2812:在重复复位之前、时钟输出异常

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1163471/tms320f2812-the-output-of-clock-abnormal-until-after-repeatedly-reset

器件型号:TMS320F2812

大家好、

我的客户设置 PLLCR=0xA;。 但时钟输出通常 为30MHz。 仅在重复复位后才能达到150MHz。 当  PLLCR=0x8时也是如此;

谢谢、此致

耶鲁李

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

    耶鲁大学

    您是说 PLLCR = 0x8时、时钟输出= 30MHz 时存在相同的问题、还是该配置正确获得了120MHz 时钟?

    客户使用 TI 函数来更改 SYSCTRL.c 中的 PLL

    EALLOW;
          SysCtrlRegs.PLLCR.bit.DIV = val;
          EDIS;
    
       // Optional: Wait for PLL to lock.
       // During this time the CPU will switch to OSCCLK/2 until the PLL is
       // stable.  Once the PLL is stable the CPU will switch to the new PLL value.
       //
       // This switch time is 131072 CLKIN cycles as of Rev C silicon.
       //
       // Code is not required to sit and wait for the PLL to lock.
       // However, if the code does anything that is timing critical,
       // and requires the correct clock be locked, then it is best to
       // wait until this switching has completed.
    
       // If this function is run from waitstated memory, then the loop count can
       // be reduced as long as the minimum switch time is still met.
    
       // iVol is volatile so the compiler will not optimize this loop out
       //
       // The watchdog should be disabled before this loop, or fed within
       // the loop.
    
          DisableDog();
    
       // Wait lock cycles.
       // Note,  This loop is tuned to 0-waitstate RAM memory.  If this
       // function is run from wait-stated memory such as Flash or XINTF,
       // then the number of times through the loop can be reduced
       // accordingly.
          for(iVol= 0; iVol< ( (131072/2)/12 ); iVol++)
         

    需要等待一段时间、在此期间需要禁用看门狗、以便它不会复位器件。

    如果客户遵循上述要求、则客户系统在一步中从30MHz 变为150MHz 时可能会出现问题。  如果发生上述变化时芯片无法满足其浪涌电流需求、则可能会导致这种情况。  一个潜在的解决方案是以增量步进 PLL、以逐渐增加电流负载、直到释放150MHz。

    如果以上都不起作用、我会要求客户在 PLL 变化期间监控 XRSn 引脚、以查看来自器件的任何复位。

    最棒的
    Matthew

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

    您好、Matthew、

    感谢您的回复。

    [引用 userid="8973" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1163471/tms320f2812-the-output-of-clock-abnormal-until-after-repeatedly-reset/4376227 #4376227"]您是指 PLLCR = 0x8时、时钟输出= 30MHz 时存在相同的问题、还是该配置正确获得了120MHz 时钟?

    时钟输出= 30MHz 也存在同样的问题。

    [引用 userid="514648" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1163471/tms320f2812-the-output-of-clock-abnormal-until-after-repeatedly-reset~]仅在重复复位后才能实现150MHz。
    jingwei wang 说:
    需要等待时间,在此期间需要禁用看门狗,因此不会重置器件。

    我没有明确表示、 这里的重置是由客户手动执行的。

    [引用 userid="8973" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1163471/tms320f2812-the-output-of-clock-abnormal-until-after-repeatedly-reset/4376227 #4376227"]潜在的解决方案是以增量步进 PLL 以逐渐增加电流负载、直到发布150MHz 为止。

    客户在执行此操作后也可能遇到相同的问题。 这种问题不是每次都发生、而是有一定的可能性。  成功配置器件后、即使手动复位也不会出现类似问题。  这个问题只在调试期间发生、并且将程序写入闪存以供离线执行是没有问题的。

    谢谢、此致

    耶鲁李

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

    耶鲁大学

    您是指 CCS/调试器复位吗?  客户是使用 GEL 命令"设置 PLL 比率"来设置时钟、还是通过代码执行来设置时钟?

    最棒的

    Matthew

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

    您好 、Matthew、

    我们找到了原因。 客户没有 连接 XPLLDIS 引脚上的上拉电阻。

    非常感谢您的帮助!

    谢谢、此致

    耶鲁李