Howdy, I've written a blog post on interfacing the 5V DS1307 RTC via I2C, and I'd like to verify whether a logic level converter (e.g. level shifter) is really needed. I became aware that it may not be needed after reading this comment in simon.monk LED Clock using Raspberry Pi blog post:
Gordon Henderson said...
Not quite sure why you're using a level convertor here... I2C is driven by open collector outputs with the master providing the pull-ups - which the Pi does via on-board 1.8K ohm resistors... The display should never drive the bus back to the Pi, so there really shouldn't be a need...
-Gordon
August 21, 2012 3:51 PM
Simon responded:
Simon Monk said...
@Gordon. I think you are right I don't think it is necessary. I had a level converter anyway and did the wiring before finding out about the protocol. I thought their may be some 'acks' going on.
No, the display should never be driving the bus.
August 22, 2012 12:40 AM
and then later:
Simon Monk said...
@Gordon, I just checked that the display doesn't do any nasty pulling up of the bus to 5V, and it doesn't. So I took the level converter out and it works just fine without it.
August 24, 2012 1:06 AM
This left me wondering if this should be the case for all I2C modules. Anyone have thoughts on this?
Thanks,
Drew