1
\$\begingroup\$

I am trying to program the [LMK03318][1] clock generator using the [CodeLoader IDE][2] from TI and the [USB2ANY programming module][3].

I am seeing issues with the SDA and SCL lines. When I probe the SDA and the SCL line, there seems to be an issue with the line failing to go low.

Unfortunately, I cannot take a screen shot of the oscilloscope so I drew up a similar diagram:

[![Timing Diagram][4]][4]

The I2C ports are LVCMOS with 10 kΩ pull-up resistors to 3.3 V with the specs given below.

One thing that I've noticed is that the clock and data lines look normal when reprogramming, but it only works after it has been programmed once.

To program it the first time I just reclick the program EEPROM button until it works. I wonder why the SDA/SCL port on the LMK03318 seems to be "stuck" in some unwritable state.

[![LMK03318 I2C Specs][5]][5]

\$\endgroup\$
2
  • \$\begingroup\$ 10k pullups for I2C are insufficient. Usb2any has switchable 1.5k pullups. Enable these. \$\endgroup\$
    – Kartman
    Commented Jan 26, 2022 at 0:14
  • 1
    \$\begingroup\$ Can you explain this in more detail? The 10ks are used as pullups the in the actual design. I only use the USB2ANY when programming the on-board LMK. I have added a schematic as well. \$\endgroup\$
    – Aaron
    Commented Jan 26, 2022 at 16:45

1 Answer 1

1
\$\begingroup\$

10K bus pull-up resistors are fine for 100 kbps (standard mode) on an I2C bus with up to 120 pF bus capacitance. That's 30% of the 400 pF max. for standard mode.

But if you're using 400 kbps (fast mode) or going through connectors and/or wires, you'll want a much stronger pull-ups than that. Use 680R for both. If your 10K pull-ups are part of the board, connect 730R pull-ups to 3.3 V. Each will be in parallel with a 10K and give the 680-odd ohms.

Refer to the below graphs, taken from NXP UM10204 'I2C Bus Specification And User Manual' rev. 03. The latest revision of the spec' and this diagram can be found here. Note that specific spec' revisions can't be linked to on the NXP site, only the single and changing 'latest'.

enter image description here

\$\endgroup\$
1
  • \$\begingroup\$ TonyM - Hi, I don't disagree that 10 kΩ pull-up are too weak. Your answer is suggesting low-value (i.e. strong) pull-up resistors, but the question includes the description that: "there seems to be an issue with the line failing to go low". Proper photos of the I2C signal waveforms would help, but based on that description in the question, won't your recommendation of strong pull-up resistors work against whatever problem is causing the signals "failing to go low"? What am I missing that explains how strong pull-ups can help that? Thanks. \$\endgroup\$
    – SamGibson
    Commented Jan 27, 2022 at 19:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.