Skip to content

Модуль MicroPython для управления MCP4725, 12-битный ЦАП с EEPROM. Module for controlling the MCP4725, a 12-bit DAC with EEPROM. TCL5615 10-bit SPI DAC.

License

Notifications You must be signed in to change notification settings

octaprog7/mpyDAC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Модуль 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

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:

  • 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

Плата с TLC5615

alt text

Raspberry Pi Pico RP2040 + TLC5615

alt text

About

Модуль MicroPython для управления MCP4725, 12-битный ЦАП с EEPROM. Module for controlling the MCP4725, a 12-bit DAC with EEPROM. TCL5615 10-bit SPI DAC.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages