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.

[FAQ] LP5814: How to solve NACK when send I2C command to LP5814 / LP5815 / LP5816 / LP5817

Part Number: LP5814
Other Parts Discussed in Thread: LP5816, LP5817, LP5815

Tool/software:

Four steps to solve the I2C NACK,

  1. Hardware check
  2. Device I2C slave address check
  3. Real output I2C data bits check
  4. SCL / SDA high low level check

Normally, after these four steps the root cause of I2C NACK should be found and the issue should be solved.

However, there are still additional factors that may introduce the I2C NACK, e.g. clock frequency is out of range, timing parameters violate the spec. Especially when GPIOs are used to simulate the I2C function other than use the standard I2C peripheral of controller.

1. Hardware check

  • Measure the voltage on the VCC pin of LP5814 / LP5815 / LP5816 / LP5817, make sure the voltage is between 2.5V to 5.5V
  • Measure the voltage on SCL / SDA, make sure the SCL / SDA stay in High state as the voltage of VIO while there is not I2C communication. Please note that pull-up resistors are required for SCL / SDA.

2. Device I2C slave address check

  • LP5814 and LP5816 have the same 7-bits independent slave address 0x2C
  • LP5815 and LP5817 have the same 7-bits independent slave address 0x2D
  • LP5814 / LP5815 / LP5816 / LP5817 have the same 7-bits broadcast slave address 0x34

3. Real output I2C data bits check

  • Usually we may see the correct I2C address has been set in the code, but still meet the NACK. Then we may need to doubt the actual output bits on the SCL/SDA are not mapping the code data
  • Use the oscilloscope or digital analyzer to capture the bits on the SCL/SDA
  • Compare the captured bits with the code data

4. SCL / SDA high low level check

  • If the NACK is still received after checking the power rail and I2C address are correct, then we may need to check if the High/Low level of the SCL/SDA satisfy the spec
  • For LP5814 / LP5815 / LP5816 / LP5817,

–Voltage level of SCL/SDA is larger than 1.4V can be recognized as HIGH successfully

–Voltage level of SCL/SDA is less than 0.4V can be recognized as LOW successfully