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.

PCA9539: INT signal low on power up and after reset, also while held in reset.

Part Number: PCA9539


Tool/software:

We're using the  PCA9539RGER i2c GPIO expander and are experiencing issues with some of them.  We have used thousands of these chips in the past without any issue.  Here is what we are experiencing:

The INT signal on the chip is low after POR and even while the chips are held in reset (RESET line is forced low).  The expected behavior (we've observed in the past) is that the chips release the INT signal (and go HI-Z) after reset and after power-up, or after reading the input register(s) via I2C.

We have four of the PCA9539RGER chips connected to the same RESET and INT lines that go off the board to the micro.  None of the inputs are changing state (they are all pulled through resistors (1K - 4.7K).  However, the INT signal is going low.  When I do a read of the input register the INT line goes high-z again (as it should).  I have noticed that it doesn't seem to matter which chip input register I read (I've had more consistent results after reading input register 0).    

If I tie the RESET to ground (circuit common) and then power up I still see the INT line is low (not HI-Z but actual 0).  It seems to be that the chips are not behaving as they should, at least not as the datasheet says they should or as we've observed in the past.  Do you have any suggestions or explanation why this may be happening?  Please note that we do have a pullup resistor at the micro input, but I've left that board disconnected and am testing only the  PCA9539RGER chips without the micro (we have headers for the i2c lines and test points near the chips).
 

  • Hi Darrell,

    Thank you for your question. 

    Just to quickly confirm, is there a PU resistor on /INT somewhere in the schematic? This is an open-drain output. 

    After the PCA9539's are powered up, and /RESET = VCC, can we conduct a register read out of each PCA9539 in the system to ensure that each IC went back to its default state according to the datasheet? This would tell us that the device was properly reset. 

    Regards,

    Tyler

  • Yes there is a PU resistor in /INT on the board that plugs into the board with the PCA9539 devices.  I've been using VCC as my reference (instead of GND) and placing the other lead on the /INT signal.  In other cases, I've plugged the board with the PU resistor and checked it the usual way (using GND as reference).  I see the same results either way, the /INT signal is improperly asserted.  Asserting the /RESET signal also asserts the /INT signal, but that is not how this chip is supposed to operate.  I checked for shorts between any of the inputs and the /RESET pin but found none.  Please also note that I can read the input register of any of the four PCA9539 devices and the /INT signal de-asserts, even if it's not the chip that had the "changed input state". 

    I've conducted a read of the PCA9539 devices at power up and verified the correct values:

    0x02 = 255

    0x03 = 255

    0x04 = 0

    0x05 = 0

    0x06 = 255

    0x07 = 255

  • Hi Darrell,

    I agree with you that these cases are abnormal: 

    Asserting the /RESET signal also asserts the /INT signal, but that is not how this chip is supposed to operate.
    Please also note that I can read the input register of any of the four PCA9539 devices and the /INT signal de-asserts, even if it's not the chip that had the "changed input state". 

    Were these devices bought from a reputable distributor? Digikey, Mouser, TI, etc? 

    Another way I could think to debug is that you could measure ICC to see which I/O expander is pulling LOW on /INT. The device that pulls more current than the others should be the device that is pulling /INT low. This could help localize the issue if it is just one I/O expander. The difference should be reading uA to mA when the /INT is being asserted. 

    The reading of any of the I/O expanders to de-assert the interrupt doesn't make sense to me. Are we certain that the addresses are all unique to each of the 4 I/O expanders? 

    Regards,

    Tyler

  • Thank you Tyler, 

    The devices were purchased by our contract manufacturer (presumably through Digi-key, Mouser, etc...)  I check that each of the chips has a unique I2C address.  It turned out to be a bad batch of chips.  Replacing the chips with new ones (different date code) resolved the issue.