Home

Awesome

Модуль MicroPython для управления MCP4725, 12-битный цифро-аналоговый преобразователь (ЦАП) с EEPROM памятью. MicroPython module for controlling the MCP4725, a 12-bit digital-to-analog converter (DAC) with EEPROM memory.

Описание

MCP4725 — это маломощный, высокоточный, одноканальный, 12-битный буферизированный ЦАП с выходным напряжением и энергонезависимой EEPROM памятью. Его встроенный прецизионный выходной усилитель позволяет ему достигать размаха аналогового выходного сигнала от 0 до Vcc - напряжение питания. У данного ЦАП опорным напряжением является напряжение его питания, поэтому, его обязательно нужно стабилизировать, например с помощью TL431(0.5%), TL1431 (0.4 %), LM4040(0.1 %)! Если у вас возникли вопросы по работе ЦАП, читайте документацию от производителя!

Применения

Питание

Напряжение питания 2.7, 5.5 В (3.3 и 5.0 В)!

Адрес датчика

Диапазон адресов датчика: 0x60..0x6F.

Шина I2C

Просто подключите контакты (VCC, GND, SDA, SCL) платы с MCP4725 к соответствующим контактам Arduino, ESP или любой другой платы с прошивкой MicroPython и аппаратной поддержкой шины I2C.

Загрузка ПО в плату

Загрузите прошивку micropython на плату NANO(ESP и т. д.), а затем файлы: main.py, mcp4725module.py и папку sensor_pack_2 полностью! Затем откройте main.py в своей IDE и запустите/выполните его.

Типы данных

mcp4725_data

Именованный кортеж, содержащий информацию о режиме работы ЦАП и значении выходного регистра.

mcp4725_status

Именованный кортеж, содержащий полную информацию о состоянии ЦАП, режиме его работы, значении, записанном в регистр вывода, данных записанных в EEPROM (режим работы, значение регистра вывода).

Диапазон выходного напряжения

Данный ЦАП выдает напряжение в диапазоне 0..Vcc - напряжение питания. Все виды нестабильности напряжения питания ЦАП напрямую влияют на выходное напряжение! Измеряйте выходное напряжение между выводами платы V out и GND.

Методы класса MCP4725

def MCP4725.get_status() -> mcp4725_status

Возвращает полную информацию о текущем состоянии ЦАП и данные из EEPROM.

def MCP4725.set_status(self, out: [int, float], power_mode: int, save: bool)

Устанавливает новое состояние выхода ЦАП, режим работы ЦАП.

out - значение, записываемое в выходной регистр ЦАП. может быть типов int и float

power_mode

Параметр save определяет, запись значений out и power_mode в EEPROM. Записанные в EEPROM параметры, устанавливаются ЦАП автоматически, после включения питания! Внимание, у EEPROM кол-во записей может быть ограничено!

Плата с MCP4725

alt text

Среда разработки (IDE)

IDE

alt text

07.11.2024. Добавил поддержку SPI ЦАП TCL5615 (модуль TLC5615mod.py).

Импортируйте TCL5615mod.py и работайте с ним. Чтобы включить демонстрацию работы с TCL5615, установите main.tlc5615 в True.

Источник опорного напряжения

К сожалению, на моей плате с TCL5615, ИОН выдает напряжение 2.51 Вольта, при напряжении питания TCL5615 в 4.7 Вольта. Напряжение ИОН не должно превышать Vcc/2 - 0.4. То есть при Vcc = 5 В, Vref <= 2.1 В.

Для этого ЦАП хорошо подходят ИОН с Vref = 2.048 В в корпусе SOT23-3:

Подключение выводов

Вывод платы TCL5615Преобр. уровня, сторона HVПреобр. уровня, сторона LVИмя вывода платы с Raspberry Pi Pico
DINHV1LV119 (MOSI)
SCLKHV2LV218 (SCK)
CSHV3LV320 (CHIP SELECT, выбор пользователя)
DOUTHV4LV416 (MISO)
GNDGNDGNDGND
VCCHV+ 5 V
LV+3.3 V

Плата с TLC5615

alt text

Raspberry Pi Pico RP2040 + TLC5615

alt text