Part Number: LMK04832
Other Parts Discussed in Thread: LMK04828,
We are going to use the LMK04832 in our new designs.
This device is a sibling of the LMK04828 which we are currently using, however there are various differences between the two.
I have several questions related to programming the LMK04832 (see below).
Please advise.
Thanks,
Beni Falk
-----------------------------------------------------------------------------------------------------------------
All unqualified references below are to the LMK04832 datasheet Revision C (January 2018).
1. Register 0x16e does not appear in Table 5, however it does appear in Table 77. Does it actually exist?
2. TICS Pro software (version 1.6.10.0) includes the HSg_PD field (in the clock outputs diagram). This field is mapped to register 0x103 bit 6 (for clock output group 0_1). This field also appears in SNAU282 (LMK04832SEPEVM User's Guide from September 2022) in section 2.1.1.
However this field is not defined in the datasheet - there it is specified as reserved with POR value 1.
Which is correct?
3. Digital delay adjustment:
Table 3 defines DCLK_DIV_ADJUST which is used for synchronizing SYSREF to clock.
Table 18 specifies digital delay adjustment based on divide values for clock outputs to share a common edge.
These tables are similar, except that Table 3 specifies adjust value -1 for DCLKX_Y_DIV equal to 6, while Table 18 specifies adjust value +1 for clock divide value 6.
a) Is the datasheet correct (i.e., digital delay offset for the sake of SYSREF to clock synchronization for clock divider value 6 is different from the offset needed to synchronize different clock outputs)? Or is there an error in one of these tables?
b) What is the necessary adjustment when using clock divider value 1? Or is digital delay only applicable when clock divider value is greater than 1?
c) What if we have several clock outputs using different divider values that need to be synchronized --and-- we have SYSREF outputs that need to be properly synchronized to clock outputs. If I understand correctly, need to do the following (for each relevant clock group):
- Adjust clock digital delay per Table 18.
- Adjust SYSREF digital delay per Table 3 using the adjusted DCLKX_Y_DDLY value calculated in the previous step.
Am I correct?
d) Regarding equation (1) in section 8.3.5 - I need to calculate SCLKX_Y_DDLY given SYSREF_DDLY and DCLKX_Y_DDLY (rather than to calculate SYSREF_DDLY given DCLKX_Y_DDLY and SCLKX_Y_DDLY).
The above equation yields the following:
SCLKX_Y_DDLY = DCLKX_Y_DDLY - 1 + DCLK_DIV_ADJUST + DCLK_HS_ADJUST - SYSREF_DDLY
Can I use this to calculate SCLKX_Y_DDLY?
Note: the example provided in section 8.3.5 is problematic since it assumes SCLKX_Y_DDLY = 2, which is an invalid according to the datasheet. Am I missing something?
4. Clock divider values 2 and 3 - Table 3 and Table 18 include a note saying that to program divide by 2 or by 3, it is necessary to program divide by 4 and then back to divide by 2 or 3.
Assuming that need to program clock divider for output clock group 0_1 to 3. I plan to do the following:
- Write 4 to register 0x100
- Write 0 to register 102 bits 1:0
- Write 3 to register 0x100
Is this the correct way to go? Or do I need to do something else?

