Можно ли подключать устройства с питанием 3,3 В к шине 5 В I2C?

i2c

У меня есть несколько устройств на шине I2C:

  1. RTC DS3231SN
  2. TMP100 датчик температуры
  3. EEPROM 24LC256

Все устройства питаются от сети 3,3 В. Напряжение на шине I2C составляет 5 В.

Вопрос: В норме ли разница напряжения на шине и питании устройства?

, 👍0

Обсуждение

Лучше использовать переводчик уровней. Или вы можете попробовать питать подтягивающие устройства от 3,3 В, обычно это работает, но выход 3,3 В CMOS, взаимодействующий с логическим входом CMOS 5 В, не совместим на 100%, поскольку некоторым устройствам может потребоваться почти 3,5 В для обнаружения высокого уровня., @KIIV

КИЕВ, Спасибо за помощь!, @Delta

Используете ли вы голые чипы или у вас есть разделительная плата. Если последнее, проблема может быть в том, что Arduino включает внутренние подтягивающие резисторы внутри MCU. На разветвлениях уже есть подтягивающие резисторы, поэтому плата Arduino не должна этого делать (но делает). Обычно это не имеет значения и помогает людям, использующим голые микросхемы и забывающим добавить подтягивающие резисторы на линии I2C. Чтобы отключить их; см. https://arduinoprosto.ru/q/13448/disabling-i2c-internal-pull-up-resistors. После этого линии I2C должны показывать 3,3 В вместо 5 В., @Gerben


1 ответ


Лучший ответ:

1

Есть устройства на 3,3 В, входы которых рассчитаны на 5 В; это может быть и так для ваших устройств, но я бы не рискнул. Используйте преобразователь уровней, разработанный для I2C, например https://www.adafruit.com/product/757. Или вы можете сделать свой собственный; https://cdn-shop.adafruit.com/datasheets/an97055.pdf объясняет, как такой уровень преобразователь работает. Используйте BSS138, если вам удобно паять компоненты SMT; в противном случае используйте 2N7000.

,

ДжейЭй, Спасибо за ответ!, @Delta

Для DS3231 максимальное напряжение при Vcc+0.3V. TMP100, по-видимому, допускает до 6 В независимо от Vcc. Максимум 24L256 составляет «Vcc + 1,0 В»., @Gerben