I have a web4robots i2c LCD which works great by itself hooked to pins 4&5 of my Arudino Uno.
I have a DS1307 on a breakout board which I got off ebay. Looks like it might have its own pullup resistors already on the board. It works great by itself on those same pins.
I can read and write the time just fine.
When I put them both on the i2c bus together, I get all kinds of crazy results from 0:0:0 time to giberish and random numbers(Im doing serial output back to the PC .. not even trying to write to the LCD ..its just hooked up...
I have tried with and without additional pull-up resistors. Its not a power issue because I have tried with an external 12v wallwart, and It works fine with the LCD powered but I2C lines not connected.
I am scratching my head here. Any tips?
Thank you !
Ryan
I remember someone else having a similar problem. It turned out that one of their two devices was not fully I2C compliant. It worked fine by itself but since it did not implement addressing it responded to every request on the bus, even requests for other devices. Check the specifications for our LCD to see if it's supposed to work with other I2C devices on the same bus.
Thank you for the help John.
http://web4robot.com/LCDCtrl.html is the controller.
In the manual it does say:
"I2C Slave Interface : Industry standard Philips I2C bus compatible interface.
Data rate 100 kbps. "
A little more testing shows that the LCD operates OK on the I2C bus with both hooked up, but the clock always returns 0:0:0 when I write the time to the LCD.
When I have both hooked up but run code that ONLY read/write to the RTC and shows results via serial back to the PC I get mixed results of 0:0:0 and sometimes random times.
Is there a better i2c controller I should buy for my LCD ?
I may be able to sacrifice two more I/O pins and just run it serial .. but would prefer not to.
Thanks !
it was the wire I was using (old ide ribbon cable) must have been a capacitance issue. works fine with breadboard wire.