BSS138 4-Channel Logic Level Converter

Adafruit · 4-channel I2C-safe Bi-directional Logic Level Converter PID 757, BSS138

Двунаправленное согласование открытого стока I²C между шинами 3,3 В и 5 В.

Автор: SLDV LAB

Опубликовано · Обновлено

СложностьСредне
Проекты с компонентом

О МОДУЛЕ

Что делает 4-channel I2C-safe Bi-directional Logic Level Converter PID 757, BSS138

Четыре MOSFET BSS138 передают низкий уровень между сторонами, а высокий уровень задаётся собственными подтяжками каждой стороны. Направление для I²C определяется автоматически: отдельного управляющего входа нет.

Такой модуль подходит прежде всего для open-drain шин. Он не является универсальным быстрым двунаправленным буфером: время фронта зависит от подтяжек и ёмкости проводов. Работу push-pull UART или SPI нужно оценивать отдельно; для быстрых SPI, светодиодных лент и длинных проводов предпочтителен подходящий активный согласователь. Нельзя использовать плату как преобразователь аналогового сигнала, источник питания или драйвер нагрузки.

Пример переводит I²C Uno R3 с 5 В на 3,3 В и проверяет наличие ADS1115 на младшей стороне. Подтяжки к HV и LV не должны быть перепутаны. Обозначения каналов бывают HV1/LV1 или B1/A1; соединять следует парные стороны одного MOSFET, сверившись со схемой своей платы. На выбранной Adafruit PID 757 стоят подтяжки 10 кОм; A1–A4 относятся к LV, B1–B4 к HV. Это описание конкретной платы не заменяет проверку схемы внешних устройств.

BSS138 4-Channel Logic Level Converter. Фото: Dave Astels / Adafruit. Оригинал: https://learn.adafruit.com/assets/65825 . Лицензия фотографии: CC BY-SA 3.0, https://creativecommons.org/licenses/by-sa/3.0/ . Изменения: Из фотографии сервотестера выделена полностью видимая лицевая сторона платы преобразователя уровней. Окружающая Proto FeatherWing, регулятор и фон исключены. Сохранены все видимые паяные соединения; скрытая нижняя сторона не восстанавливалась. Пропорциональное масштабирование, размещение на предоставленном фоне и JPEG-сжатие. Геометрия, маркировка и видимые детали не перерисовывались. Цветокоррекция и повышение детализации не применялись. Адаптация фотографии распространяется по той же лицензии. Adafruit 757, плата преобразователя уровней с припаянными контактами; выделена из фотографии сервотестера Dave Astels. Нижняя сторона не показана, фото не является схемой подключения.

Схема распиновки

Авторская распиновка SLDV LAB: Adafruit 757, BSS138 4-channel. Сторона компонентов; LV вверху справа, HV внизу справа. Верхний и нижний ряды слева направо. Для других ревизий и плат требуется отдельная проверка.

Схема относится к документированной Adafruit 757. На обложке выделена видимая сторона платы из проекта; скрытые контакты нижней стороны и разводка проекта не реконструировались.

Источники: 1, 2. Авторская схема SLDV LAB по фактам документации.

Характеристики

Каналов
4
Принцип
MOSFET + подтяжки к каждой стороне
Направление I²C
Автоматическое для open-drain
Гальваническая развязка
Нет
Подтяжки платы на каждой стороне
10 кОм
Интерфейс
I²C
Питание модуля
В примере LV = 3,3 В, HV = 5 В, GND общий; это опорные напряжения подтяжек, преобразователь не создаёт питание 3,3 В из 5 В.

ПРАКТИКА

Подключение

Контакт модуляКонтакт платыНазначение
HV5V Uno R3Высоковольтная сторона логики, не произвольное высокое напряжение.
LV3.3V Uno R3Низковольтная сторона; от этого же 3.3V питается ADS1115.
GNDGND Uno и ADS1115Обязательная общая земля.
B1 (HV) ↔ A1 (LV)A4/SDA Uno ↔ SDA ADS1115Высокая и низкая стороны одного канала; проверить соответствие маркировки A/B.
B2 (HV) ↔ A2 (LV)A5/SCL Uno ↔ SCL ADS1115Вторая парная линия, для clock stretching тоже двунаправленная.
Остальные каналыНе подключатьОбе стороны получают свои подтяжки; не суммировать избыточно много резисторов.
ADDR внешнего ADS1115GNDАдрес тестового устройства 0x48; его собственные подтяжки только к 3,3 В.

Подходит для Arduino, ESP32, Raspberry Pi. Выберите контакты по документации своей платы.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги интегрировать BSS138 4-Channel Logic Level Converter. Сначала уточни точную плату модуля, контроллер, среду, питание и задачу. Проверь схему, логические уровни и маркировку контактов; затем дай согласованные подключение, зависимости и полный минимальный пример с обработкой ошибок. Объясни безопасную первичную проверку и ожидаемый результат. Уточни тип выходов обеих сторон, скорость и ёмкость шины; проверь подтяжки. Не обещай совместимость с любым SPI или UART по одному названию BSS138.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Плата и ядро
Arduino Uno R3; Arduino AVR Boards 1.8.6

Распиновка относится к ATmega328P Uno R3; не Uno R4 и не ESP32.

Опорные уровни
HV = 5 В; LV = 3,3 В

Нужны оба питания и общая земля; не подключайте 5 В к LV.

Начальная скорость I²C
100000

Для проверки коротких проводов; максимальная скорость конкретной схемы не гарантируется.

Ожидаемый адрес за конвертером
0x48

ADS1115 питается от 3,3 В, ADDR соединён с GND.

Arduino: полная проверка I²C через согласователь

cpp
#include <Wire.h>
void setup() {
  Serial.begin(115200);
  Wire.begin();
  Wire.setClock(100000);
  Wire.setWireTimeout(25000, true);
}
void loop() {
  Wire.beginTransmission(0x48);
  uint8_t error = Wire.endTransmission();
  if (error == 0) Serial.println("ADS1115 ACK through level converter");
  else { Serial.print("I2C error: "); Serial.println(error); }
  if (Wire.getWireTimeoutFlag()) {
    Wire.clearWireTimeoutFlag();
    Serial.println("Check stuck-low lines and pullups");
  }
  delay(1000);
}

Полный скетч для Uno R3 с Arduino AVR Boards 1.8.6 и внешним ADS1115 на 3,3 В. Конвертер собственной библиотеки и адреса не имеет. API Wire сверено; не компилировалось и не проверялось на аппаратуре. ACK подтверждает связь с устройством, а качество фронтов проверяют осциллографом.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты