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.
您好!
电路板上没有 X1/X2引脚的外部 XTAL。 因此、我想将 OSC1CLK 用于 USB 的 PLL2。 我将引用以下使用 XTAL 来实现 PLL2的源代码。
C:\ti\controlSUITE\device_support\f2806x\v151\F2806x_examples_ccsv5\USB_dev_serial\USB_dev_serial.c
但是、它不会通过对 PLL2STS 寄存器的 PLL2LOCKS 位的轮询。
SysCtrlRegs.PLL2CTL.bit.PLL2CLKSRCSEL = 2;
SysCtrlRegs.PLL2CTL.bit.PLL2EN = 1;
SysCtrlRegs.PLL2MULT.bit.PLL2MULT = 6;
while (!SysCtrlRegs.PLL2STS.bit.PLL2LOCKS);
下面没有有关 INTOSC1的说明、但我可以将 PLL2CLKSRCSEL 设置为0或1 (不是2或3)吗? 此外、我能否在0和1上获得相同的效果?
F2806x TRM (SPRUH18F):表1-27. PLL 2配置(PLL 2 CTL)寄存器字段描述
在初始化过程中、用户需要选择 X1或 GPIO_XCLKIN 作为时钟源。
此致、
Kazu
您好、Haun、
感谢你的答复。 我使用 TMDSDOCK28069和 USB_DEV_serial 示例软件确认了该操作。
C:\ti\controlSUITE\device_support\f2806x\v151\F2806x_examples_ccsv5\USB_dev_serial\USB_dev_serial.c
在此软件中 、PLL2CLKSRCSEL = 2由 SysCtrlInit 在 main 函数之后设置。 我将该值从2更改为0、然后它成功地传递了 PLL 锁定的 while 语句。
// SysCtrlRegs.PLL2CTL.bit.PLL2CLKSRCSEL = 2;
SysCtrlRegs.PLL2CTL.bit.PLL2CLKSRCSEL = 0;
SysCtrlRegs.PLL2CTL.bit.PLL2EN = 1;
SysCtrlRegs.PLL2MULT.bit.PLL2MULT = 6;
while (!SysCtrlRegs.PLL2STS.bit.PLL2LOCKS);
[引用 user="Adam Haun"]您可以将 PLL2CLKSRCSEL 设置为0或1、但无法使 USB 正常工作。 USB 要求位时钟的容差优于0.25%、内部振荡器的容差也不是很好。 您需要一个用于 USB 的晶体。[/quot]
您是不是说 INTOSC1不适合 USB 操作、即使它在选择 INTOSC1时成功通过了 PLL2锁定的 while 语句。
此致、
Kazu
"您是否意味着 INTOSC1不适合 USB 操作、即使它在选择 INTOSC1时成功通过了 PLL2锁定的 while 语句。"
正确。 即使使用温度调整、我也认为内部振荡器的容差也不能超过1%。 您可能能够在室温下使用它、但不可靠。 它可能会在高温下发生故障。