Резисторный делитель на шине I2C

Здравствуйте. К шине I2C Arduino UNO подключены дисплей LCD1602 и датчик BMP180 с обвязкой. У этих модулей есть подтягивающие резисторы к +5V. Напряжение питания этих модулей 5V. Ещё необходимо подключить FM24CL16, напряжение питания которого 3.3V. Если между GND и SDA (SCL) включить резистор такой, чтобы напряжение между GND и SDA было 3.3V (то же самое проделать с SCL), затем подключить к I2C FM24CL16.
Будет ли работать такая схема?

https://aliexpress.ru/item/1005005627073341.html?sku_id=12000033797688721

2 лайка

Заманчивый модуль.
Но есть вопрос.
Подтяжку какую-либо надо делать?

Переставь подтяжку с +5 на +3,3.

3 лайка

В датчике и дисплее есть свои подтяжки к +5. В модуле, который предлагает @nik182 в #2, есть какие-то резисторы. Возможно это подтяжка. Даташит к этому модулю пока найти не могу.

Подтяжка должна быть одна. И к нужному напряжению. Остальное снимай.
ЗЫ: Там скорее всего безсвинец, его хорошо (и быстро) плавит фен на 420гр.

Похоже, что подтяжка в этом модуле есть. Причем с двух сторон.

И Пельдж!!!

Вот отличная статья на тему преобразования уровней.

Можно не покупать модули а самому собрать именно то преобразование которое тебе нужно.

2 лайка

FM24CL16 отлично работает и от 5в тоже, поэтому не надо ничего выдумывать, питай все от 5в

Даташит

1 лайк

Дык, да нет же вроде
■ Voltage operation: VDD = 2.7 V to 3.65 V

1 лайк

Даташит на FM24CL16B . Из даташита я понял, что напряжение питаания: 2.7 V to 3.65 V. Но преобразователь уровней не нужен. Можно подключать к пятивольтовой I2C.

Если не трудно, покажите, где это написано, я пропустил наверное
(просто номер страницы, скриншот необязательно)

Страница 9, Maximum Ratings, в самом верху слева и вниз по этой стороне.
И там же справа: Operating Range
Range Ambient Temperature (TA) VDD
Industrial –40C to +85C 2.7 V to 3.65 V

Так это предельные значения. То есть , когда микросхема “не сдохнет”.
Я бы лучше опирался на это

Screenshot_3.83png - копия - копия

А там , хозяин-барин))

Поэтому я заказал то, что предложил @nik182 в #2.

Бывают еще пятивольтовые версии, но у них в наименовании нет буквы “L”:
FM24C16.

И вот только что попробовал в PROTEUS. Там на схеме FM24CL16 запитана от 3.3V. И мои контрольные примеры работают. А при 5V примеры выскакивают на ошибку.

Вот именно. Можно взять такую, и не париться

Подтяжку ставь на 3,3 и не парься! Что непонятно? Или с одного раза не доходит?

Делитель делит в обе стороны. Он и ответ от 3.3 вольтового устройства поделит.

Лучше взять один транзистор (у вас на картинке как раз и нарисована схема, два отдельных согласоватора уровней) и два резистора. Раньше так и делали, пока чипы не появились специальные.

Так что можно купить готовый согласоватор - маленький чип, на 4-6-8-16 каналов, можно спаять самому по вашей схеме (транзистор подойдет практически любой, только смотрите, чтобы максимальные напряжения (gate-source, source-drain) соответсвовали вашей задаче. Маломощный транзистор, с малой емкостью.

У делителей на резисторах есть одна неприятность - вкупе с емкостью устройства\проводов это создаст RC цепочку, которая будет заваливать фронты у всех цифровых данных на I2C. Это в свою очереь означает, что скорость (частота) высокой быть не может. Делители хороши там, где сигнал меняется относительно медленно.

1 лайк

Не доходит. Чтобы поставить подтяжку на 3.3 нужно убрать её с дисплея и с датчика. Нужно мне такое варварство? Нет. Мне проще дождаться согласователь. Там есть подтяжка и на 3.3 и на 5.