0
\$\begingroup\$

I have three sensors on a board. Two of the sensors are the same model and firmware with the same address (MLX90397). I used an LTC4316 to translate the address of one of the MLX90397s.

In Linux (Raspberry Pi Zero), when I used i2cdetect -y 1 all sensors show up correctly.

enter image description here

When I attempt to write to the sensor behind the translator, I receive no errors from the I2C bus API. However, when I attempt to read back from its memory to confirm the read, it doesn't return the asked number of bytes.

The non-translated sensor, however, works just fine.

My bus runs on 3.3 V and I have hooked up 2.2 kΩ pull-up resistors. Is this value too low?

The PCB looks like this:

enter image description here

The chip on the far left is the non-translated sensor. The chip to the left of the middle is the third sensor. To the right of the middle line is the translator, and just before the connector (all the way to the right) is my translated sensor. I'm stating this to demonstrate that the trace isn't too long.

I tried to test every address in the address space for read/write and all addresses except the three fail to READ/WRITE and the one behind the translator fails to READ.

What else should I try?

My Schematic

imgur link to schematic

\$\endgroup\$
4
  • \$\begingroup\$ what is the problematic sensor ? does the other 2 sensors respond as expected ? \$\endgroup\$
    – Rahmany
    Commented Sep 27, 2022 at 12:24
  • \$\begingroup\$ Perhaps a code snippet and ideally a timings capture with an oscilloscope would help a lot. Also, do not insert links to schematics. Embed everything in your question for the sake of readability. \$\endgroup\$ Commented Sep 27, 2022 at 12:25
  • \$\begingroup\$ As stated in my question, there are 2-same model sensor (MLX90397). One works and reads data fine, the translated one doesn't \$\endgroup\$
    – bem22
    Commented Sep 27, 2022 at 14:52
  • 1
    \$\begingroup\$ > Is this value too low? — No, it is too high. Rule of thumb for I²C is 3mA pullup current. So it's 1kΩ at 3.3V. \$\endgroup\$
    – Janka
    Commented Sep 27, 2022 at 15:05

1 Answer 1

4
\$\begingroup\$

In the schematic and in the layout the translation IC4 has no supply voltage at pin 4.
Replace C9 with a piece of wire to correct this as a first attempt.

\$\endgroup\$

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.