I2C controller for HD44780 LCD displays
erco
Posts: 20,256
I have several older parallel-input HD44780 LCD displays that were always in the "too much work to use, but too nice to toss" category, even before the Shack's blowout sale on $5 Parallax LCDs with that wonderful built-in serial interface. Just saw this I2C adapter to drive the older 44780/1602 types. Probably worth a shot for $1.66, I'm ordering one to try.
http://www.ebay.com/itm/M3AO-1602LCD-Display-IIC-I2C-TWI-SP-I-Serial-Interface-Board-Module-Port-/281169588018?pt=LH_DefaultDomain_0&hash=item4177036f32#ht_4399wt_1362
http://www.ebay.com/itm/M3AO-1602LCD-Display-IIC-I2C-TWI-SP-I-Serial-Interface-Board-Module-Port-/281169588018?pt=LH_DefaultDomain_0&hash=item4177036f32#ht_4399wt_1362
Comments
BTW they are $1.51 here: http://www.ebay.com/itm/New-5V-IIC-I2C-Serial-Interface-Board-Module-For-Arduino-1602-LCD-Display/360791383879?rt=nc&_trksid=p2047675.m1851&_trkparms=aid%3D222002%26algo%3DSIC.FIT%26ao%3D1%26asc%3D261%26meid%3D4815539989708715093%26pid%3D100005%26prg%3D1088%26rk%3D5%26rkt%3D5%26sd%3D281169588018%26#ht_4175wt_879
How hard would it be to use with the PCA9554.
The chip pinouts and i2c bus address are the same.
Duane J
The PCA9554 has a few more tricks up its sleeve, but is still easy to use.
Jon
Just what I was looking for, thanks! Is it in need of tweaking or pretty much workable?
Thank Heavens! I haven't been able to get any clear documentation, though there are supposedly Arduino libraries for this.
From what I can gather... it can be used with an LCD or as a port expander. But the trail goes cold with those claims of possiblity.
I picked up one of these locally in Kaohsiung with a Funzino label on it and marked 1602 type IIc (It seems to be a second generation, Erco's picture seems to be a type I or another type iic variant).
i am now actively trying to make it work on a Propeller with a 2x16 LCD / no backlight, and with Tachyon Forth.
I presume the 1602 was intended to indicate it is to be used with 2x16 LCDs but it may work with all and anything if you have to initialize the LCD and it passes through all op codes without modification.
The thing is without a schematic, so with several versions of the board floating around and the SPI addressing reconfigurable via on board jumpers... some reverse engineering may be useful.
NOTE _ I corrected the inactive pins and have attached a schematic
If one wants to use the device as an i/o expander, one may only get 7 bits (or possibly 8 bits, but I know not where that last one is) out of it.
NOTE_The 8th bit may be driven indirectly to provide back light power via pin 12
How ridiculous that they have followed the wayback original recommended "4-bit CPU data bus" connections so blindly that they even connect the R/W bit! How ludicrous, with the I2C interface and a 4-bit connection there is no way in the wide world that the busy could ever be read fast enough to even see if it was busy. Ergo, this is even more redundant than with a parallel interface. Anyway, the Forth code for this is trivial so if it starts to look complicated then it's the wrong way.
++++++
Above all...
Before I get started with creating code in Forth, Jonny Mac has provide a complete package of Spin code that will allow me to confirm that the device works.
I know that this is a Parallax standard... providing code that proves the product you bought is in good order. But this is not exactly a Propeller product.
Thanks for making it that much easier to use.
i have been able to make it work : init the lcd (16x2) , draw character but the problem i got is when i want to set the cursor position.
i send the command for put the cursor to the first position of the second line who should be 0x80 + the adress (0x40 for the first of second line) then i send 0xC0.
but nothing happend , the cursor stay at is position , i don't really know what i'm lacking.
if someone got an idea of something i maybe missed.
just found this old thread.
Did you try and succeed with Tachyon?
Or do you know of Tachyon code.
Just got those modules too to use with a load of displays waiting.
Thanks,
Markus
[edit] just found Peter's code for the 8-bit parallel version of this display driver.
so it only needs adaption to 4-bit and I2C ...
but if somebody did this already I'd prefer that ;-)