[РУКОВОДСТВО] Аналоги и замена микросхем Практика поставок Проверено

MCP4725: ЦАП на I2C, подключение и замена

IC
Служба поставок ICBOMS · Склад в Шэньчжэне, экспресс DDP и подбор аналогов
[ПРОВЕРЕНО] Экспертиза
Прямой ответ службы закупок

MCP4725 — 12-разрядный цифро-аналоговый преобразователь с управлением по I2C: по двум проводам он принимает код от 0 до 4095 и выдаёт на выходе напряжение от нуля до питания, пропорциональное этому коду. То есть на выходе 4096 ступеней между землёй и VDD, и отдельное опорное напряжение не нужно — им служит само питание прибора. В этом и главное отличие от распространённого MCP4922: у того есть внешний вывод опоры и переключатель усиления, а у MCP4725 вывода VREF нет, и выход привязан к питанию жёстко. Из этого следует практическое ограничение: если питание прибора гуляет вместе с нагрузкой, гуляет и выход. Зато схема включения предельно простая: две линии шины, выход, земля и питание, плюс подтяжки на SDA и SCL — на модулях они обычно уже распаяны. Второе, что важно, — память: у прибора есть 4 бита энергонезависимой памяти, в которых хранится значение выхода при включении питания, и прибор выходит на это значение сам, без подачи команды. Третье — как не испортить память: запись значения на выход и запись в память — разные команды, и обычная запись значения память не трогает, а вот команда с записью в память расходует её ресурс. По быстродействию запись в память занимает десятки миллисекунд, и в реальном управлении её делают редко, обычно один раз при настройке. Адрес на шине базовый 0x60, и младший бит задаётся выводом A0, но у разных модулей этот бит бывает зашит по-разному, поэтому при подключении к конкретной плате адрес проверяют сканированием шины, а не берут из документации модуля.

Содержание руководства (10 разделов)

Распиновка MCP4725 (SOT-23-6)

Вывод Назначение
1 VOUT — аналоговый выход
2 VSS — земля
3 VDD — питание 2,7…5,5 В
4 SDA — линия данных I2C, с подтяжкой
5 SCL — линия такта I2C, с подтяжкой
6 A0 — выбор младшего бита адреса

Как формируется выходное напряжение

Выходное напряжение задаётся кодом от 0 до 4095 и равно произведению кода на 4096, умноженному на напряжение питания. Иными словами, при питании 3,3 В ступенька составляет около 0,8 мВ, а при 5 В — около 1,2 мВ. Никакого отдельного опорного напряжения в схеме нет, верхняя граница выхода совпадает с питанием прибора.

Отсюда первое практическое следствие: точность выхода ограничена точностью питания. Если питание прибора идёт от нестабилизированного источника, «плавать» будет не только сам преобразователь, но и вся аналоговая часть схемы, питаемая от того же узла. В схемах, где выход должен быть точным, прибор запитывают от стабилизатора, а не от общей шины питания.

Второе следствие — время установления около 6 мкс. Для большинства задач по формированию опорного напряжения, уровня, имитации сигнала датчика или управления яркостью это ничто; но в схемах, где выход должен успевать за быстрыми изменениями, этот параметр надо учитывать отдельно.

Команды записи и память при включении

Протокол простой: сначала байт команды, затем два байта данных. Команда определяет, куда именно попадёт значение — только на выход, или ещё и в память, или только в память, или с последующей загрузкой из памяти на выход. В самом ходовом случае команда 0x40 означает «записать значение на выход, память не трогать», и она же самая быстрая.

Память у прибора крошечная — 4 бита, — но именно в ней хранится значение, с которым прибор выходит при включении питания. Это удобно: после подачи питания преобразователь сразу выдаёт заданный уровень, без обмена по шине. Для управляющего контроллера это снимает задержку в несколько миллисекунд на старте, а в приборах с батарейным питанием — лишний расход.

Расход памяти при этом нужно считать: запись в неё занимает десятки миллисекунд и имеет ограниченный ресурс порядка миллиона циклов. Поэтому в управляющих схемах память трогают редко — обычно один раз при настройке или при смене заданного уровня, а в цикле идёт обычная запись в выход. Ошибка в этом месте выглядит так: прибор работает, но через несколько тысяч перезагрузок перестаёт помнить уровень, и это принимают за брак детали.

Адрес на шине и почему его проверяют

Базовый семиразрядный адрес — 0x60, и вывод A0 задаёт младший бит, давая 0x60 или 0x61. Но в документации разных модулей встречаются и другие значения, потому что у отладочных плат этот бит бывает зашит или разведён иначе, чем предполагает схема прибора. Один и тот же модуль, купленный у разных поставщиков, может отвечать на разных адресах.

Поэтому при подключении к конкретной плате адрес проверяют сканированием шины, а не берут из документации модуля. Заодно сканирование сразу показывает, есть ли на шине конфликт: адрес 0x60 совпадает с адресом генератора тактовой частоты Si5351A, и при работе обоих приборов на одной шине они будут мешать друг другу. Перенести один из них на другой адрес в данном случае нельзя, и решением остаётся развести их по разным линиям или развести по времени.

Чем отличается от MCP4922

Два прибора выглядят похоже и часто продаются рядом, но различаются существенно. У MCP4922 есть внешний вывод опорного напряжения, который может быть и выше, и ниже питания, и переключатель усиления выхода 1 или 2. У MCP4725 ничего этого нет: опора — это питание, усиление фиксированное, а корпус меньше.

Практический выбор между ними: если выход должен уметь выдавать уровни выше питания прибора или ниже нуля — нужен прибор с внешней опорой, то есть MCP4922. Если достаточно выхода в пределах питания, MCP4725 проще, дешевле и занимает меньше места, а входной импеданс у него всего около 1 Ом, и нагрузку он тянет легко.

Разрядность у обоих 12 бит, так что по числу ступеней они равны, и при выборе решают не разрядность, а наличие опоры, корпус и то, с какой платы привыкли работать.

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

  • Разрядность 12 бит, 4096 ступеней, шкала от нуля до напряжения питания.
  • Питание 2,7…5,5 В; диапазон шины I2C — стандартный, быстрый и Fast Mode Plus, до 3,4 МГц.
  • Время установления порядка 6 мкс.
  • Выходное сопротивление около 1 Ом, ток источника и стока до 25 мА.
  • Энергонезависимая память на 4 бита для хранения значения выхода при включении питания.

Частые вопросы

  • Нужен ли внешний опорный сигнал — нет, верхняя граница выхода равна напряжению питания прибора.
  • Как задать напряжение — записать код от 0 до 4095; при питании 3,3 В ступенька около 0,8 мВ.
  • Сохраняется ли значение при отключении питания — да, в памяти прибора; при включении он сразу выходит на это значение.
  • Какой адрес у прибора — базовый 0x60, младший бит задаётся выводом A0; фактический адрес проверяют сканированием шины.
  • Чем заменить — приборами с управлением по SPI, но протокол другой, и в готовой схеме такая замена потребует правки схемы и программы.
[ЗАКАЗ] Комплектация BOM и экспресс-поставка

Примените это к своей спецификации

Отправьте партномера или файл спецификации (Excel / CSV). По каждой строке проверим складские остатки в Шэньчжэне, наличие заводской упаковки и проверенные аналоги — с отгрузкой единой партией.

Открыть форму запроса →

Как написано это руководство

Руководство написано службой поставок ICBOMS в Шэньчжэне и выверено по документам производителей и стандартам, на которые ссылается текст. Формулировки ограничены тем, что делает эта служба, и тем, как оценивают деталь — без ориентировочных цен, сроков поставки и остатков: всё это считается по каждой строке отдельно, по факту проверки. Дата последней вычитки стоит в начале страницы.