When folks need more I/O, the most common solution seems to be the 74xx595 shift register. For applications that need to drive a lot of LEDs, the MAX7219 is often the chip of choice.
I might have found something better - the NXP (and TI) PCA9555 I/O expander.
This chip provides 16 bidirectional I/O lines and is driven by the I2C bus. You can parallel up to 8 of these chips on one I2C bus, providing up to 128 bidirectional I/O lines.
You can find the data sheet here: http://www.nxp.com/acrobat_download/datasheets/PCA9555_7.pdf
Some benefits:
1. It's inexpensive. USD $1.55 from Mouser in either DIP or SOT packaging.
2. It adds bi-directional I/O to Picaxe chips that either don't provide bi-directional ports, or not enough bi-directional ports for your application.
3. For LED driving applications, it's much cheaper to use one (or more) of these than it is to use MAX7219 chips.
4. Outputs can source or sink 50 milliamps.
5. Provides an interrupt-on-change function.
6. Built-in pullup resistors on all pins configured as inputs. (While normally desirable, this might create a problem for some designs. Use "naked" Picaxe ports for such cases.)
7. Still being manufactured in a through-hole package!
8. Works in 5 volt systems.
Note that there are I2C I/O expanders by various manufacturers available in both 8 and 16-bit configurations. Google for more information.
In general, I think that most designs would be better implemented using an I2C I/O expander rather than a -595 or -7219 solution.
Have fun!
Tom
I might have found something better - the NXP (and TI) PCA9555 I/O expander.
This chip provides 16 bidirectional I/O lines and is driven by the I2C bus. You can parallel up to 8 of these chips on one I2C bus, providing up to 128 bidirectional I/O lines.
You can find the data sheet here: http://www.nxp.com/acrobat_download/datasheets/PCA9555_7.pdf
Some benefits:
1. It's inexpensive. USD $1.55 from Mouser in either DIP or SOT packaging.
2. It adds bi-directional I/O to Picaxe chips that either don't provide bi-directional ports, or not enough bi-directional ports for your application.
3. For LED driving applications, it's much cheaper to use one (or more) of these than it is to use MAX7219 chips.
4. Outputs can source or sink 50 milliamps.
5. Provides an interrupt-on-change function.
6. Built-in pullup resistors on all pins configured as inputs. (While normally desirable, this might create a problem for some designs. Use "naked" Picaxe ports for such cases.)
7. Still being manufactured in a through-hole package!
8. Works in 5 volt systems.
Note that there are I2C I/O expanders by various manufacturers available in both 8 and 16-bit configurations. Google for more information.
In general, I think that most designs would be better implemented using an I2C I/O expander rather than a -595 or -7219 solution.
Have fun!
Tom
Last edited: