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.

PCA9534: P04 causes failure when used as input to read a high value

Part Number: PCA9534

Tool/software:

We have 2 different products using the PCA9534 to act as a GPIO expander.

The first product is using Linux 6.6.23-gf296dd2c-g84641290ab13

The second product is using Linux 5.10.48-bsp-yocto-ampliphy-i.mx6-pd21.1.1

We are observing this error for both products:

All GPIO pins work correctly when used as outputs and driven high or low.

GPIO P00-P03, P05-P07 all work correctly when used as an input and connected to 3.3V (reads 1) or 0.0V (reads 0).

GPIO P04 works when connected to 0.0V (reads 0) but causes the PCA9534 to fail when connected to 3.3V

After connecting P04 to 3.3V, the command returns "gpioget: error reading GPIO values: No such device or address" and the PCA9534 stops responding to all commands.

Here is the schematic section of the GPIO expansion chip

  • Hi Christyan,

    I will have to get back to you by noon CST tomorrow. 

    Regards,

    Tyler

  • Hi Christyan,

    After connecting P04 to 3.3V, the command returns "gpioget: error reading GPIO values: No such device or address" and the PCA9534 stops responding to all commands.

    Usually a change on the IO side should not affect the I2C read/write on the other side. 

    Is there anyway to monitor what happens on the I2C side with an o-scope while P04 is connected to 3.3V? 

    Regards,

    Tyler

  • Usually no, and for the other 7 input pins the PCA9534 seems to behave correctly, but when P04 is driven to 3.3V, the SCL and SDA lines are both driven low (the low value here is around 300mV on each, compared with 3.3V normally)

  • Hi Christyan,

    Is P04 configured as an output LOW while it is being driven to 3.3V externally? 

    Is there any way to monitor ICC through the device? 

    Have you tried another PCA9534 in the place of this device to see if the issue resolves itself? An A-B-A swap would give us more information here. 

    Regards,

    Tyler

  • I have configured all 8 GPIO as input pins for this testing.

    I can monitor ICC for the entire board, but not for this device in particular. I am seeing a spike of about 12W additional power consumption when connecting P04 to 3.3V

    I have not replaced the PCA9534 on this board, but I have tested additional boards, of 2 different models, built around 2 years apart, and observed the same issue on all boards tested.

    For a contrast, I also tested again with connecting 3.3V to P00, which also shows an increase of 12W additional power, but is working as an input (can correctly read 0 or 1 depending on if I am connected to GND or 3.3V)

  • I checked with my SW engineer and we are using the standard Linux driver for PCA9534 to drive this device.

    github.com/.../gpio-pca953x.c

    I am using the libgpiod commands (gpioset and gpioget) to control the pins of the device.

  • I believe I have discovered the issue, a ground connection on our test device was connected up to the probe that was being used to drive the power, separate from the PCA9534.

    After cleaning up the test setup and re-testing, the device appears to be working and no noticeable additional current is consumed.