3
\$\begingroup\$

Let me preface by saying that I am new here, and I can't seem to solve this problem for the life of me.

Problem: I am using the LTC2655BIGN-H16 DAC and attempting to interface with it via I2C with an ESP32-Pico-D4 Dev board, with a 3.3V to 5V logic level shifter in between. However, despite numerous attempts at debugging I can't seem to get the ESP32 to recognize the DAC. Additionally, there is some strange behavior when connecting an additional (working) peripheral via I2C, and the DAC to power in the same circuit. I have no doubt I must be missing/overlooking some things, but at this point I'm just stumped.

Any help would be immensely appreciated.

Attempts:

Attempt 1: The circuit for my setup is below. My Setup

As far as I can tell, I've followed the manufacturers directions exactly, yet the DAC is never detected when attempting to communicate directly (NACK), or even running a simple address scanner. It may be important to note that I am using one of these cheap logic level shifters. I've tried:

  • Modifying and playing around with the values of the pull-up resistors.
  • Changing the GPIO pins used for I2C.
  • Swapping out different brand-new LTC2655 chips.
  • Changing the I2C speed.
  • Verifying and experimenting with the code.

All physical connections have been checked more times than I can count. I know that the ESP32 is indeed outputting the correct bus signal because I've verified it with an oscilloscope.

Additionally, I know that the code scanning for I2C devices works as expected because if I swap out the LTC2655 with the ADS1115 board (excluding the pull-up resistors since the ADS1115 board already has on-board 10k pull-ups) it detects the correct address without any issue.

Attempt 2: In order to eliminate as many variables as possible (and not trusting myself) I decided to ditch my circuit setup entirely and buy this evaluation board straight from the manufacturer. As far as I can see, the main LTC2655 setup is pretty much identical to what I had already, but I wanted to be sure.

Same setup with the ESP32 and the logic level shifter, except now I have it hooked up to the corresponding pins on the evaluation board instead (5V, GND, SCL, SDA). Still no luck, it can't recognize the DAC.

Weird behavior: I've noticed that whenever I have the ADS1115 board connected normally and to the I2C bus, and I have the code running and detecting it, then even if I connect just the power to the evaluation board, the ESP32 all of a sudden no longer detects the ADS1115 either (the indicator light for the ADS1115 board also turns off). I verified that the evaluation board is not damaged or shorted, it draws ~1.6mA which is normal and expected for this DAC, so I see no reason how it can be a significant enough load to cause a voltage drop. When removing it, everything goes back to normal and the ADS1115 instantly shows up as recognized again.

Suspects: I'm definitely not an electronics engineer, but if I had to guess the problem might have something to do with the logic level shifter (it's the only variable that remained constant during all my tests and attempts, so that's that only thing I can think of).

Datasheets/Schematics

Let me know if any additional information is required.

\$\endgroup\$
3
  • \$\begingroup\$ Have you verified the logic levels on the 5V side? Those homemade logic level translators could have issues. \$\endgroup\$ Commented Jan 19, 2023 at 5:32
  • \$\begingroup\$ Thank you for the helpful reply! Your suspicions are correct, I just checked and the 5V side is actually hovering at ~3.3V as well (I guess that's what I get for going cheap). I have a dedicated logic level translator IC coming tomorrow, I really hope that was the problem. I will continue to make updates. \$\endgroup\$ Commented Jan 19, 2023 at 5:56
  • 1
    \$\begingroup\$ @SpehroPefhany I have no doubt your wardrobe must be full of capes because you are a hero. The proper logic level translator fixed the issue! \$\endgroup\$ Commented Jan 20, 2023 at 5:54

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.