您好!
我的客户对 Tiva TM4C1294NCPDT 的勘误表 SYSCTL#22有一些疑问。
勘误说明为:
当从 PLL 生成系统时钟时、用户将系统控制寄存器位 RSCLKCFG.PSYSDIV 编程为 PLL 输出分频。 该寄存器值可能不会加载到物理分频器中、从而导致系统时钟被2分频。 这种情况将导致系统时钟超出规格。
1) 1)客户 认为 、在-10°C 下加电时、他们可能会在几块电路板上遇到此问题。 这些相同的板在较高温度下正常运行、而其他板在整个温度范围内正常运行。 应用变通办法似乎可以解决-10°C 时出现问题的主板,但他们更有信心 解决真正的问题,而不仅仅是间歇性的问题。 您能否提供任何其他信息来说明哪些条件会导致未按照勘误表中所述加载寄存器?
2) 2) 不确定 我们是否完全理解勘误表。 说明听起来像是当您向寄存器写入除以2以外的值时、RSCLKCFG.PSYSDIV 寄存器可以错误地设置为除以2。 这将使 我们相信 RSCLKCFG.PSYSDIV 应该始终被设定为2分频以确保它按照您的期望进行分频。 但是、变通办法中的代码会将 RSCLKCFG.PSYSDIV 设置为不同的值。 但是、变通办法中的更改确实会始终将 PLLFREQ1.Q 设置为除以2 (旧代码除以1)。 描述是否错误、可能无法正确加载的实际上是 PLLFREQ1.Q?
3) 3)权变措施以160MHz 或240Mhz 而非320MHz 或480MHz 运行 VCO 频率。 这意味着、使用权变措施无法同时以120MHz 运行 CPU、以32MHz 运行 ADC 时钟以2MSPS 运行。 对吧?
4) 4) 我们希望运行25MHz MOSC、480MHz VCO、32MHz ADC 时钟和120MHz CPU/SYSCLK。 在处理勘误表 SysCtl#22时、可以使用以下有效方法之一:
a. 将 PLLFREQ0.mint 设置为乘以192、将 PLLFREQ1.Q 设置为除以2、将 PLLFREQ1.N 设置为除以5、将 ADCC.CLKDIV 设置为除以15、并将 RSCLKCFG.PSYSDIV 设置为除以4。
或
b. 将 PLLFREQ0.mint 设置为乘以96、将 PLLFREQ1.Q 设置为除以1、将 PLLFREQ1.N 设置为除以5、将 ADCC.CLKDIV 设置为除以15、并将 RSCLKCFG.PSYSDIV 设置为除以4。 但是、根据需要循环并重写 PLLFREQ1、直到 PLLFREQ1.Q 正确回读、并循环重写 RSCLKCFG.PSYSDIV、直到它正确回读。 此外、在 RSCLKCFG.PSYSDIV 被正确读回之前、延迟从 PIOSC 切换到 PLL 时钟。
对 SYSCTL_22的任何其他见解都将是有益和感激的。 提前感谢您的支持!
谢谢!
Errol Leon
应用工程师
现场应用工程师