Using a HD44780-1602 LCD with TWI adapter-board, both from China via EBAY (example: http://www.ebay.com/itm/IIC-I2C-...).
No specs, but said 'Arduino compatible' - which seems to mean PCF8574 I2C I/O Expander based.
Can't find an 'Arduino' schematic so figured I'd have to send it bit-patterns to determine how the PCF8574's outputs are mapped to the 1602 pins.
Got it to talk to AVR via Fleury bit-bang code - can see on scope: Start / SLA-W is ACK'ed / W-data-byte ACK'ed / STOP, so all looked good.... definitely getting the ACK's from PCF8574 as I disconnected and Fleury code did detect the NACK.
Probed the 1602's pins (ms-nyble, r/w, E) and don't see the W-data on them.... tried alternating 1's then 0's in W-data.... all ACK'ed, but never appear on 1602 pins - pins just static.
Started looking at PCF8574 spec - very confusing on one issue - thought maybe somebody here might know.
The data byte is followed by an acknowledge sent from this device. If other data bytes are sent from the master, following the acknowledge, they are ignored by this device. Data are output only if complete bytes are received and acknowledged. The output data will be valid at time, tpv, after the low-to-high transition of SCL and during the clock cycle for the acknowledge.
But they follow this statement with timing diagrams that show a 2nd data byte recieved before the 1st data byte is sent to its output port....
These seem contradictory.... anybody understand this?
Sorry about the long-winded question.... but wanted to give full details.