I2C - PI4IOE5V6416 won't respond

Hello,

I am using this library PI4IOE5V6416 - Arduino Reference to talk to a PI4IOE5V6416 chip via I2C. I am using the ATMEGA328p mounted directly on my board.

All my reads and writes are getting NACK.

What am I doing wrong?

Right now for testing purposes, all IO pins are left floating on my board.

Thank you,

Farm Dank

Then why are you powering the chip from the 3V3 supply? The data sheet for this device says it can take 5V, and as that is the voltage from the ATmega328 chip that will also be the voltage of all the signals.

The data sheet says:-

Feature(s)

Operation power supply voltage from 1.65V to 5.5V 
Allows bidirectional voltage-level translation and GPIO expansion between:
    1.8/2.5/3.3/5V SCL/SDA and 1.8/2.5/3.3/5V Port

Same goes for the reset input.

My atmega328p is also powered at 3.3V, so no problem there.

Did the OP run the I2C sanner? If so does the I2C scanner find the device?

Would have been good to know that first.

I am assuming your trace is from a logic analyser and not an oscilloscope.

Yes, this is logic analyzer.

Signal has been validated on oscilloscope as well (I suspected this might be an issue), nothing out of the ordinary there.

Any resistors in the LED_Array box? All LEDs need something to control the current, and a resistor is the simplest thing.

And what about the I2C scan that @Idahowalker mentioned?

Just ran it across my devices. Somehow the address was 0x26, not the 0x20 specified by the datasheet. I guess I misinterpreted it!

I will remember that tip for the future, thanks a lot.

1 Like

The LEDs are implemented properly.

The error was a wrong address, somehow this was wrong.

Datasheet says 0x20 or 0x21, while it is really 0x26.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.