(Comments from Blogger)
2017-03-13 by MaC
I’m wondering if those I2C adapters for LCD could be used as simple GPIO expanders ?
2017-03-13 by Russell Graves
GPO expanders, certainly - they’re not capable of input with these chips, though.
2017-03-14 by Aaron
@MaC
Or you could spend $5 and get SparkFun 16 Output I/O Expander Breakout - SX1509 - BOB-13601 - SparkFun Electronics from SparkFun. Or go DIY from one of these http://www.mouser.com/Search/Refine.aspx?Keyword=I2C+GPIO+expander
2017-03-25 by vandi
Thank you!
2017-07-07 by An old fart engineer
Sorry, but these boards are not directly compatible with the GPIO pins on a Raspberry Pi. They’re 5V parts, RPi GPIO pins are 3.3V and not 5V tolerant.
Just wanting to keep people from frying their Pi boards.
2017-07-07 by Russell Graves
Since these are passive/slave devices that never drive the I2C bus lines, they’re OK with a Pi. The Arduino drives them from 0V to 5V, and the Pi will drive from 0V to 3.3V, which is still counted as a logical high.
Unless these are actively driving the bus to 5V, which they shouldn’t be, it’s not a problem. Even I2C stretching involves holding SCL low, not high.
2017-07-08 by An old fart engineer
If the adapter boards are strictly passive - and have no pull-up resistors - you’re right.
Pull-ups are an issue I had in mixing some 3.3 and 5V I2C devices on an Arduino. But on thinking back a bit, they were both ‘active’ devices that could send and receive data, and both had pull-ups. But (human) memory can be faulty.
2017-07-08 by Russell Graves
An I2C slave device can send data, but only on the request of the master - it’s capable of pulling the clock line low to stretch clock cycles, and pulling the data line low to transmit. All the pullups are on the master side, in a normal I2C setup.
I suppose I should put a scope on these and test them out at lower voltages, though!