Si534x/9x/8x General Troubleshooting Guidelines: My timing device does not lock
This is a common question for jitter attenuator timing devices. One thinks the device is configured properly. The chip was programmed for the correct frequency plan file/ register set and it should just lock and work, but there is indication that the device is not locked either from the LOL alarm status or because downstream systems are failing. The following are some helpful troubleshooting steps to consider particularly for the Si534x/9x/8x jitter attenuator devices.
1. Verify the hardware is set up correctly: Do a quick schematic review, following the checklist: https://www.silabs.com/documents/public/application-notes/AN1051-Si534x-8x-Schematic_Review-Checklist.pdf
Make sure the expected inputs are on, measured and are the correct frequency. Make sure to use proper terminations and input levels and rise time considerations. Make sure the correct source is used on the XAXB input and programmed accordingly to the correct expected frequency. Make sure the correct communications are enabled (either I2C/SPI). Also double check that the frequency plan matches the hardware setup, such that programmed input frequencies, and XAXB input frequency correctly matches the hardware.
2. Verify the alarms: What alarms are active when the device does not lock? Please review the appropriate reference manual to find the register values for these alarms and check the status.
LOL: This is the indicator that the device is not locked. This is the issue you are debugging. This should be set showing the device is not locked. Let’s find out why!
SYSINCAL: This shows at start up the device is stuck in calibration. This indicates that device is busy in the calibration routine. This might be that the chip is improperly set up, programmed incorrectly or has the wrong xaxb input frequency if this alarm remains set.
LOSXAXB: This shows that the PLL is not seeing the XAXB input signal. Is the XTAL soldered properly to the board to the XAXB input pins? If using an XO is it turned on, connected and has the proper input constraints per the datasheet?
XAXB_ERR: There is a problem locking to the XAXB input. This indicates that the part may be programmed to the wrong frequency or the XAXB input may be different from what you were expecting, or there is a violation of the input specifications. Verify all input datasheet specs, the programmed frequency and measure the frequency going into XAXB.
OOF: This flag indicates that the input is outside the set threshold frequency range. You can widen the OOF threshold limits to see how far off the input signal is.
LOS: This is the loss of signal flag indicating that the input does not see an input signal. Please check that the input is connected to the expected input and all datasheet parameters are met.
3. Which input is the device expecting to lock to? Check register IN_ACTV. This is a read only register which give the current selected DSPLL input clock. For the Si5345 this is register 0x0507 as there is only one PLL. For multi PLL devices make sure to verify which PLL the loop is configured to. In multi PLL devices these will be labeled IN_PLLA_ACTV, IN_PLLB_ACTV, IN_PLLC_ACTV, IN_PLLD_ACTV.
4. Verify the input control settings: If pin controlled, then check the pin settings. If register controlled then check IN_SEL. If using a device with Zero Delay mode enabled verify with the reference manual for the input selection details. When this function is enabled the inputs can be register controlled with ZDM_IN_SEL.
5. Verify the device was programmed correctly: The Si534/8x devices have 2-byte wide register addresses but the device is only 1-byte programmable. The upper byte of the address is stored as the PAGE register which is always address 0x01. This often confuses customers. Please review AN926 for details on reading and writing registers with SPI and I2C. This document contains examples on how to properly communicate to the part. https://www.silabs.com/documents/public/application-notes/an926-reading-writing-registers-spi-i2c.pdf . It is also good to do a few sanity checks that the device was programmed correctly by reading back several of the registers written to the device, on different pages.