Comments on Leakage and input currents from PCA9554 I2C GPIO expander
Parent
Leakage and input currents from PCA9554 I2C GPIO expander
I’ve got a simple circuit board where a PCA9554 is controlling the a switch MIC94090YC6. There’s a 100kΩ pull-down resistor. A GPIO pin on PCA9554 is an input on power-up. The leakage current from the PCA9554 input across the 100kΩ developed 1.6V, and it was more than enough for an uncommanded turn on of the load switch.
The fix of course is a stiffer pull-down resistor. The leakage and input currents in the datasheets look like this.
PCA9554 and PCA9554A are covered by one datasheet p.13
PCA9554B and PCA9554C are covered by a separate datasheet p.16
The entry in the PCA9554A doesn't make a lot of sense. The datasheet doesn't explain why there are two input currents, or how they're measured.
The entry in the PCA9554B datasheet makes sense, although it caught me by surprise.
$ I_{IL} $ = -100uA doesn't feel like a small input current.
update:
Or, use a different processor [I/O expander] with less ridiculous I/O pin leakage levels.
PCA9534 has got more reasonable leakage current ±1uA for both $ V_I = V_{SS} $ and $ V_I = V_{DD} $ .
Is the high leakage current in the PCA9554 intentional? It it a feature which so far evaded my understanding? Otherwise why did Philips make two similar parts in the same family where one has this weird leakage current?
Texas Instruments and On Semiconductor make PCA9554 too. They have the identical -100uA leakage in the datasheets. If it's a bug, they didn’t fix it.
Post
For the PCA9554 spec, note the Vdd and Vi levels specified in the third column. The first row says that the leakage with Vdd at 3.5 V can be up to ±1 µA when the pin is held high (Vi = Vdd). The second line says that when the power voltage is 5.5 V and the pin held low, the pin can source up to 100 µA.
Yes, that last spec is pretty high. However, they are reasonably clear about it, so it's up to you to design the circuit accordingly or use a different part. Going to the B or C versions actually makes it worse for 3.6 V power or less.
Let's say that you don't want the pin voltage to exceed 500 mV with a pull-down resistor. The value of that resistor can be calculated as (500 mV)/(100 µA) = 5 kΩ.
If 5 kΩ too low to leave there permanently, then you have to do something else. Examples are using a transistor to hold the line low during power up, then turn off the transistor when the processor is ready to drive the output pin. Or, use a different processor with less ridiculous I/O pin leakage levels.

0 comment threads