PCA9554 vs. PCF8574 remote i/o i2c expanders
Rayman
Posts: 14,793
Well, I got a bunch of PCA9554's from Digikey after Mike asserted they had them in DIP packages...
A quick glance at the data sheet and I though they were drop-in replacements as they had the exact same pinouts...
Well, I just learned that it's not as simple as that because the PCA9554s have output direction registers (like the Prop...) and polarity inversion registers that possibly need to be set...· The command structure is a hair different...
Still, I like the PCA9554 because it can source a bit and so I don't have to add a bunch of pull-up resistors...·
I suppose the direction and inversion registers are nice too...
A quick glance at the data sheet and I though they were drop-in replacements as they had the exact same pinouts...
Well, I just learned that it's not as simple as that because the PCA9554s have output direction registers (like the Prop...) and polarity inversion registers that possibly need to be set...· The command structure is a hair different...
Still, I like the PCA9554 because it can source a bit and so I don't have to add a bunch of pull-up resistors...·
I suppose the direction and inversion registers are nice too...
Comments
Output with the (older) PCF8574 has to be selected by adding a pull-up to the write line, as setting the line "HIGH" means in fact TRI-state.
Setting a line HIGH is necessary to read it as input.
This is just for information..
I suppose this is really a better chip for me because I can individually control the pin I/O directions...· Also, the PCF8574·misbehaves if used improperly, and I don't think that can happen with this chip.· And, I may need polarity inversion one day, you never know...
Post Edited (Rayman) : 12/11/2007 7:05:09 PM GMT
It does use some other objects for the low level I2C access ... the same ones that provide I2C EEPROM and SD card access.
Still, what I have is a minimal driver.· Given the way you can't share objects very well in SPIN, I think it's better for me this way...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Just getting started with Propeller?
Propeller Cookbook
PropDOS
I had a look at the Digikey site and can't seem to find a DIP version of the PCA9554. Downloaded the TI datasheet; can't seem to find a hint of the DIP package there either. I'm sure I'm missing something. Will you kindly post the Digikey part number for the DIP version you purchased.
Thank You,
David
PCA9554AN
You'll find it...
http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=en&site=US&keywords=pca9554+dip&x=21&y=12
I download the Philips NXP datasheet instead of the TI datasheet and yes there is a DIP specified
in the NXP DS, unlike in the TI datasheet.
But it seems like the DIP part is being deprecated, at least by DigiKey (and NXP?)
DigiKey page for the NXP part says:
"Part will become a non-stocking item when stock is depleted; minimums will apply.
Order the quantity available or the quantity available plus a multiple of the minimum order quantity"
I should have remebered to try the likes of "AN" contactinated at the end of the part number,
I seem to remember this results in a PDIP often, especially with traditional 74XX logic.
Certainly DigiKey's filters need a fix.
Thanks all for the help... & Happy Holidays!
David
PCA9554N
The PCA9554AN is a variant with a slightly different I2C address...
http://www.rayslogic.com/Propeller/Programming/I2C/i2c.htm
This was the problem I was working on when I fried my proto board (Apparently, because I plugged a PCF8574 into it's socket backwards [noparse]:([/noparse] ). Now that I've fixed the proto board, I found this bug in the PCA9554 driver ( ">0" should be "=>0").