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.

AM2431: AM2431 PLL programming sequence – actual delay values used by SYSFW?

Part Number: AM2431
Other Parts Discussed in Thread: DRA829J

I have a question regarding the PLL programming sequence on AM2431.

In the Technical Reference Manual (p.455–456), there is a table titled “Table 5-472. Programming Sequence of PLLCTRL, HSDIV, and PLL”.
In this table, several steps explicitly require a Delay (I count seven delay points), but the TRM does not specify the actual delay duration (for example, in microseconds or clock cycles).

My understanding is as follows, and please correct me if this is wrong:

  • SYSFW internally performs a sequence equivalent to this table when configuring PLLs.
  • For the steps marked as Delay, SYSFW likely inserts either:
    • a fixed time delay (e.g. based on a timer), or
    • a polling-based wait (e.g. waiting for PLL lock / status bits to change).

However, from the documentation, I cannot find:

  • the actual delay values, or
  • whether these delays are time-based or status-bit–based.

Could you please clarify:

  1. How long is each Delay step?
  2. Are the delays implemented as fixed waits, or are they conditional waits (e.g. polling lock/status)?

Thank you for your support.

  • Hello Kanno Itsuki,

    I will need to check a little more. Currently I found a thread where it is discussed that the dalay is 1 us long after PLL disable and can be omitted on other places:

     DRA829J: PLL Programming Requirements 

    Regards,

    Stan

  • Hello Stan,

     

    I understand that you are still checking this.
    I hope you will be able to check this and let me know once you have any updates.

     

    I carefully reviewed the referenced DRA829J thread in detail to align my understanding.
    I was able to confirm the statement that a 1 µs delay is required after PLL disable.
    However, I could not find a clear statement indicating that this Delay step itself can be omitted.

     

    In addition, according to the AM243x Technical Reference Manual, Delay steps are explicitly indicated not only after disabling the PLL, but also at several other points in the “Entire Sequence for Programming PLLCTRL, HSDIV, and PLL”.

     

    For reference, I have listed the full sequence from the TRM below, with all Delay steps explicitly marked:

    step1. Unlock PLL registers 
    step2. If PLL0, configure PLLCTRL block 
    step3. Configure external bypass so that no transient clock propagates 
    step4. Delay 
    step5. Disable HSDIV(s) 
    step6. Delay 
    step7. Disable PLL 
    step8. Delay 
    step9. Reset HSDIV(s) 
    step10. If PLL0, configure PLLCTRL block 
    step11. Configure HSDIV(s) divider value 
    step12. Clear HSDIV(s) SYNC_DIS 
    step13. Delay 
    step14. Clear Reset HSDIV(s) 
    step15. Configure PLL multiplier 
    step16. Configure PLL dividers 
    step17. Configure “random” PLL controls 
    step18. Delay 
    step19. Enable PLL 
    step20. Wait for Lock 
    step21. Enable HSDIV(s) 
    step22. Delay 
    step23. Configure external bypass to pass PLL 
    step24. Delay 
    step25. If PLL0, configure PLLCTRL block 
    step26. Lock PLL registers 

     

    To be clear, my main question is simply:
    for each of the Delay steps above, how long is the intended delay?
    Are all of them expected to be 1 µs, or does the required delay differ depending on the step?

     

    Best regards, 
    KANNO, Itsuki
  • Hello Itsuki Kanno,

    Yes, I understood the gaps in TRM: Delay is unspecified.

    Unfortunately I will not be able to support you further for this topic. The statement from Sitara team is:

    "PLL programming should only be performed using the APIs in SYSFW in the SDK"

    Thanks and regards,

    Stan