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.

PCA9555: Some problems using PCA9555

Part Number: PCA9555

Dear,

Our customer have two problems when using PCA9555, please help to analyze:

1. They use PCA9555 to scan keypad, after several restarting ( restarting the whole system instead of PCA9555 and initializing PCA9555 every time ), keypad scanning will be false. The schematic as follows.

2. The standby-current consumption is 1 uA max in datasheet, but the current they tested actually is about 470 uA. So what configuration should we do to reduce the current ?

I will appreciate that if you rely to me, thank you !

  • Hello Shaw,
    Can you tell me what you mean by restarting? Do they power down the supplies? Can you also tell me how they have configured the IO expander? Are they configuring some as inputs? outputs? if so which one is what? Give me all register information please.
    -Francis Houde
  • Hi fhoude,

    Thank you for your reply.

    Our customer use KEY0 to KEY4 to scan 3*4 keypad, LCD_RES and LCD_CS are used to control the reset and enabling of LCD. HAL_DETC, EN_BAT, LED, BEEP, INT are reserved. In design, the display of K1 to K12 is 0 to 9, *, #, respectively. PCA9555 and LCD communicate with MCU by I2C. They scan the keypad by polling the IO and not using interrupt function. They only configure the IOs which are used and other IO which are not used remain the default state.

    Now, they come across the problem: when power on at the first time, the display of LCD is correct. But when they power on and power down the whole system every 2 to 3 sec( they tend to test the system stability), the scan value of keypad is false, and the false of each condition is not the same. So what cause this problem? Please give some suggestion, thank you!

    Note: the schematic are shown as follows.

  • Hello Shaw,
    Can you verify that the switches are momentary switches? Also, How fast are they scanning? Are they monitoring the I/O pins while recording the poling communications? This is a simple IO expander and it doesn't have a FIFO memory. I am concerned that the polling is not catching the instance of the button push. You need to look at I/O's while looking at I2C traffic to see what the state of the I/O when reading the status via I2C.
    -Francis Houde
  • Hi fhoude,

    Thank you for your reply.

    I have tested PCA9555 which is not connected to other components, and the value of the Input Port 0 register via I2C is high level when corresponding port is float, the value is low level when corresponding port is connected to GND, the value is high level when corresponding port is connected to VCC. It indicates that PCA9555 is working properly, right? So, can you give them some suggestions both in hardware and in software to avoid the keypad scanning error?