[clug] HWR question

David Austin david at d-austin.net
Sun Mar 1 02:03:31 MST 2015


On 1 March 2015 at 19:57, Eyal Lebedinsky <eyal at eyal.emu.id.au> wrote:

> On 01/03/15 19:45, David Austin wrote:
>
>> On 1 March 2015 at 19:28, Eyal Lebedinsky <eyal at eyal.emu.id.au> wrote:
>>
>>  On 01/03/15 17:02, Alex Satrapa wrote:
>>>
>>>  On 1 Mar 2015, at 15:18, Eyal Lebedinsky <eyal at eyal.emu.id.au> wrote:
>>>>
>>>>
>>>>> So I am looking at interfacing a 3.3v mcu to a 5v device (over i2c).
>>>>>
>>>>>
>>>> Here’s one option:
>>>>
>>>> http://letsmakerobots.com/node/39234
>>>>
>>>> I have not tested this, so I make no claims as to the performance of
>>>> this
>>>> solution.
>>>>
>>>> I have one of those level converters, so if you want to test it out
>>>> let’s
>>>> make a date to meet at MHV, any night next week but Monday is good for
>>>> me,
>>>> and I think we are trying to get “Electronics Night” up and running
>>>> again
>>>> for Thursdays.
>>>>
>>>>
>>> I agree, and these devices are what I will use. I actually bought one
>>> from
>>> AX a few months ago,
>>> but when I unwrapped it this week I found it to be an RS232 device, where
>>> the lines are probably
>>> not bidirectional.
>>>
>>> The device I highlighted in the question was different, it did not have
>>> active signal conversion
>>> and I could not see how it is safe al all.
>>>
>>>
>> Most often you will not need active level conversion.  That is a function
>> of the devices
>> being open-drain/pull-down.  It also depends on the different voltage
>> levels - 5V and
>> 3.3V are close.
>>
>> The easiest option is to have the pullups connected to the lowest supply
>> voltage (3.3V).
>>
>> You will have to read the datasheet of the MCU and I2C device in question.
>>
>> For example, the DS1307 you mention, requires a Logic 1 input V_IH
>> of at least 2.2V - therefore, it should work just fine on an I2C bus where
>> the
>> pullups are connected to 3.3V.
>>
>> I2C devices are generally (intentionally) designed to be fairly tolerant
>> of
>> the actual bus voltages.
>>
>
> I understand this. Yet, the mcu says it is not 5v tolerant, and the ds1307
> will drive 5v to the SDA. I wonder what the risk is. Should I blow a full
> $3 on testing this?
>
>
Open-drain/pull-down only means that the device pulls the wire down only.
Neither the I2C device or the MCU will actively drive *any* voltage onto
the I2C wires.  The DS1307 will not (can not) "drive 5v to the SDA".

The pullup resistors supply the positive voltage to SDA/SCL.


BTW, the da1307 did not work with this mcu, but the ds3231 is happy (as
> it promised).
>

The DS1307 should work, given pullups to 3.3V.

David


More information about the linux mailing list