对于 SSI 外设、我们需要精确的16、0MHz 时钟。 当处理器的时钟为96MHz/6时、它非常适合。 (SSInClk = SYSCLK /(CPSDVSR *(1 + SCR)))。 Fxtal = 25MHz。 现在、使用最新的 Tivaware、这个频率不再可用。 这是由于 SYSCTL_22勘误表造成的。 由于我们仍然需要96MHz 时钟、因此我们需要解决问题。
勘误表中的描述并未完全解释该行为、因为它仅声明:
“当从 PLL 产生系统时钟时,用户将系统控制寄存器位 RSCLKCFG.PSYSDIV 编程为 PLL 输出分频。 该寄存器值可能不会加载到物理分频器中、从而导致系统时钟被2分频。 这种情况将导致系统时钟超出规格。”
时钟的计算方法为:
fin = fXTAL/(Q+1)(N+1)、5MHZ>fin <30MHz
MDIV =薄荷+(MFRA/1024)
fVCO =(fin * MDIV)
SYSCLK = fVCO/(PSYSDIV + 1)
由于我们多年来一直在成功地对 PSYSDIV 进行编程、因此可能存在一些故障行为的条件。 因此、会出现一些问题:
1.是否可以检查 PSYSDIV 的正确编程,如果不正确,是否可以重新编程?
如果是的话
2.如果真正的问题是 SYSCLK 高于120MHz,PSYSDIV 的编程最初可能在较低的 fVCO 上进行?
如果我们通过强制/保持 PSYSDIV 为值1来强制使96MHz 尽可能接近、我们将需要不同的 fVCO 值。 数据表未给出 fVCO 的最小值/最大值、但由于 SYSCTL_22、最大值似乎为240MHz。
3. fVCO 的最大值是否仍为480MHz?
4. fVCO 的最小值是多少?
电源 使用数字并将晶振调整8 PPM 至24.9998063 MHz、我可以得到112MHz 的 SYSCLK、精确地除以7、以获得所需的16MHz。 然后 PSYSDIV = 2、Q = 2、N = 0。