
Модуль цифро-аналогового преобразователя MCP4725 (12 бит, I2C, EEPROM)
# Модуль цифро-аналогового преобразователя MCP4725 (12 бит, I2C, EEPROM) Модуль на базе микросхемы MCP4725 от Microchip представляет собой 12-битный прецизионный цифро-аналоговый преобразователь (ЦАП
- Артикул:
- 2352
# Модуль цифро-аналогового преобразователя MCP4725 (12 бит, I2C, EEPROM)
Модуль на базе микросхемы MCP4725 от Microchip представляет собой 12-битный прецизионный цифро-аналоговый преобразователь (ЦАП / DAC) с управлением по интерфейсу I²C. В отличие от аппроксимированного сигнала ШИМ (PWM), модуль формирует истинный аналоговый сигнал с гладким выраженным уровнем напряжения. Наличие встроенной энергонезависимой памяти EEPROM позволяет сохранять выходное значение напряжения даже после отключения питания, а архитектура Rail-to-Rail обеспечивает размах сигнала от 0 В до полного напряжения питания.
---
### Технические характеристики
| Параметр | Значение |
| --- | --- |
| Микросхема | Microchip MCP4725 |
| Разрядность ЦАП | 12 бит (4096 уровней дискретизации: 0 – 4095) |
| Интерфейс связи | I²C (Standard 100 кГц, Fast 400 кГц, High-Speed 3.4 МГц) |
| I²C адреса | `0x60` (по умолчанию, адресный контакт A0 на GND) или `0x61` (A0 на VCC) |
| Напряжение питания (VCC) | 2.7 – 5.5 В DC |
| Встроенная память | EEPROM (для сохранения настроек и напряжений по умолчанию) |
| Выходной тип | Rail-to-Rail (размах выходящего напряжения от GND до VCC) |
| Время инициализации | ~6 мкс после подачи питания |
| Энергопотребление | Сверхнизкое (~0.2 мА в рабочем режиме, 60 нА в режиме Sleep) |
| Габариты платы | 15 × 15 мм |
---
### Назначение контактов (Pinout)
- VCC: Питание модуля (2.7 – 5.5 В DC, служит также опорным напряжением).
- GND: Общий провод (земля).
- SDA: Линия данных шины I²C.
- SCL: Линия тактирования шины I²C.
- OUT / VOUT: Аналоговый выход сформированного напряжения.
- ADDR / A0: Выбор I²C адреса (притянут к GND ➔ `0x60`, при подтяжке к VCC ➔ `0x61`).
---
### Пример скетча для Arduino
Скрипт генерирует ступенчато увеличивающееся напряжение на выходе MCP4725 и одновременно считывает его с помощью встроенного АЦП Arduino (пин A0) для проверки точности:
```cpp
#include
#include
#define analogVin A0
Adafruit_MCP4725 MCP4725;
void setup(void) {
Serial.begin(9600);
// Инициализация ЦАП с адресом 0x60 (или 0x61)
MCP4725.begin(0x60);
}
void loop(void) {
uint32_t MCP4725_value;
int adcValueRead = 0;
float voltageRead = 0;
float MCP4725_expected_output;
// Перебор значений от 0 до 4095 с шагом 15
for (MCP4725_value = 0; MCP4725_value < 4096; MCP4725_value += 15) {
// Расчет теоретического напряжения на выходе
MCP4725_expected_output = (5.0 / 4096.0) * MCP4725_value;
// Установка напряжения на ЦАП (false — без перезаписи EEPROM)
MCP4725.setVoltage(MCP4725_value, false);
delay(250);
// Считывание значения АЦП Arduino
adcValueRead = analogRead(analogVin);
voltageRead = (adcValueRead * 5.0) / 1024.0;
// Вывод измерений в Serial Monitor
Serial.print("MCP4725 Value: ");
Serial.print(MCP4725_value);
Serial.print("\tExpected Volt: ");
Serial.print(MCP4725_expected_output, 3);
Serial.print("\tADC Read: ");
Serial.print(adcValueRead);
Serial.print("\tMeasured Volt: ");
Serial.println(voltageRead, 3);
}
}
```
---
### Область применения
- Генераторы сигналов и звука: Формирование синусоидальных, треугольных, пилообразных волн и аудиосигналов без применения тяжелых фильтров НЧ.
- Прецизионное управление нагрузкой: Задание опорного напряжения для лабораторных блоков питания, драйверов токовых петель и регулируемых источников тока.
- Калибровка и измерительные стенды: Эмуляция показаний аналоговых датчиков для проверки автоматики и контроллеров.
- DIY-аудио и синтезаторы: Использование в музыкальных проектах, синтезаторах речи и управляемых напряжением генераторах (VCO/VCA).
---
### Преимущества
- 1. Истинный аналоговый сигнал (12 бит)
- Выдает 4096 дискретных уровней напряжения без пульсаций и шума, характерных для фильтрованного ШИМ.
- 2. Встроенная EEPROM-память
- Позволяет сохранить заданный уровень напряжения в память микросхемы — при включении модуль сразу выдаст необходимое напряжение до установки связи с МК.
- 3. Выход Rail-to-Rail
- Обеспечивает полный диапазон регулировки от 0 В до VCC без «мертвых зон» у границ питания.
- 4. Адресация и масштабируемость
- Наличие переключаемого адреса позволяет разместить два независимых модуля на одной шине I²C.



