On the TMS320F28335, we set up the PLL as follows:
- Set PLLSTS.DIVSEL to 0
- Set PLLCR.DIV = 10
- Wait for PLLSTS.PLLLOCKS
- Set PLLSTS.DIVSEL = 2 (divide by 2)
We have a 24 MHz oscillator, with a desired SYSCLKOUT = 120 MHz. It was recommended by TI that we use this configuration with a divide by 2, rather than simply using PLLCR.DIV = 5 with no divider.
My first question is regarding the clock frequency between steps 2 and 4. Once PLLCR.DIV = 10 takes effect, our frequency is 240 MHz. I see no way around this with the stipulation that PLLSTS.DIVSEL must be 0 while altering PLLCR.DIV, and the stipulation that we should use divide by 2.
1. Is it OK for the frequency to be > 150 MHz while waiting for PLL lock? If so, for how long is it acceptable to have the frequency at 240 MHz? Are there limits on the instructions we can execute during this wait?
2. Also, is step 3 required? If we executed steps 1, 2 and 4, then executed some other instructions, then waited for PLL lock before executing time-critical code, would that be acceptable? Or will the PLL configuration somehow not take effect if we don't wait for PLL lock before setting DIVSEL? In other words, I'd like to do something like
- Set PLLSTS.DIVSEL to 0
- Set PLLCR.DIV = 10
- Set PLLSTS.DIVSEL = 2 (divide by 2)
- Perform cinit, RAM zeroing, etc.
- Wait for PLLSTS.PLLLOCKS
Would this be acceptable?
Thanks,
- Joel