I'm trying to configure an Si5340 with I2C. The I2C_SEL is floating, which I heard is OK since it's supposed to have an internal pullup. I see a SiLabs Si5430 reference design that uses an --external-- pull up to drive an LED on the I2C_SEL. The forum post shows Si5394 I2C_SEL pin which --internal-- pullup (https://www.silabs.com/community/timing/forum.topic.html/si5394_i2c_sel_pinlevel-i1KS).
Other I2C devices program OK. But Si5430 won't respond.
Can someone verify this Si5340 has an internal I2C_SEL pullup?
I2C_SEL is internally pull up with a 20kOhm resistor.
Do you have an Si5340 OPN? Is the I2C address correct? What is the power supply of the I2C interface? Would you please check if the programming timing is correct according to the I2C timing specification?
Through some experimentation I found what led me to think the part was not talking I2C. I took the register file output generated from ClockBuilderPro and wrote it to Si5430. Parts of this code caused the part to "lock up", where it would not respond at the correct I2C address.
1) The preamble
2) The Rev D stuck divider fix
After removing both the preamble/postamble and "Rev D divider fix", I was able to write Si5430 without bad return codes.
I'm still can't get OUT1 to operate as expected. But I'm not blocked.
I have no idea about why you can get the I2C response when you do not write preamble and the fix to chip.
Talking with Si5340 is simply I2C/SPI communication, the I2C machine will not check what the input register value meaning.
Let me know if you have any questions.