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
- int в диапазоне 0..4095, значение, записываемое в выходной регистр ЦАП без преобразования. 0 - V out = 0 В. 4095 - V out = Vcc.
- float в диапазоне 0..100 % от напряжения питания ЦАП. 0% - V out = 0 В. 100% - V out = Vcc.
power_mode
- 0 - нормальный режим работы. выход АЦП включен. Нога ИМС, V out, подключена к преобразователю код-напряжение.
- 1 - режим энергосбережения 1. Нога ИМС, V out, отключена от преобразователя и подключена к шине GND через сопротивление 1 КОм.
- 2 - режим энергосбережения 2. Нога ИМС, V out, отключена от преобразователя и подключена к шине GND через сопротивление 100 КОм.
- 3 - режим энергосбережения 3. Нога ИМС, V out, отключена от преобразователя и подключена к шине GND через сопротивление 500 КОм.
Параметр save определяет, запись значений out и power_mode в EEPROM. Записанные в EEPROM параметры, устанавливаются ЦАП автоматически, после включения питания! Внимание, у EEPROM кол-во записей может быть ограничено!
Плата с MCP4725
Среда разработки (IDE)
IDE
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:
- LM4040CELT-2.0
- TS3320AMR
Подключение выводов
Вывод платы TCL5615 | Преобр. уровня, сторона HV | Преобр. уровня, сторона LV | Имя вывода платы с Raspberry Pi Pico |
---|---|---|---|
DIN | HV1 | LV1 | 19 (MOSI) |
SCLK | HV2 | LV2 | 18 (SCK) |
CS | HV3 | LV3 | 20 (CHIP SELECT, выбор пользователя) |
DOUT | HV4 | LV4 | 16 (MISO) |
GND | GND | GND | GND |
VCC | HV | + 5 V | |
LV | +3.3 V |