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.
请教专家:我在调试F2812,设置PLLCR=0xA;,但经常没有起作用,输出频率是晶振频率30M,只能反复断电复位,才可以到150M,也设置过PLLCR=0x8;,输出仍然是30M.
您好,您有使用sysctrl.c中TI提供的函数去改变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++)
这里需要wait time,并且在此期间需要禁用看门狗,这样就不会reset。
如果您按照上述步骤,在一个步骤之内将您的系统从30MHz配置到150MHz可能会碰到一个问题。如果发生上述变化时芯片无法满足其浪涌电流需求,则可能会导致这种情况。一个解决方案是逐步增加PLL以逐渐增加电流负载,直到150MHz。
有人提到Xp_PLLDIS管脚需要上拉,如果上拉,上电后,CCS提示故障,根本无法进入到工作状态。
如果在复位期间XPLLDIS引脚被拉低,则会禁用PLL。具体报错是什么?
其余问题我需要和相关工程师讨论一下。
Yale Li:谢谢!根据您的建议,我对xPLLDIS引脚作上拉,上电,未出现上次故障,多次测试后可以倍频。虽有疑问,但也算是有一个解决办法,再次感谢您的帮助!