Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/octaprog7/mpydac
Модуль MicroPython для управления MCP4725, 12-битный ЦАП с EEPROM. Module for controlling the MCP4725, a 12-bit DAC with EEPROM. TCL5615 10-bit SPI DAC.
https://github.com/octaprog7/mpydac
dac i2c spi
Last synced: about 2 months ago
JSON representation
Модуль MicroPython для управления MCP4725, 12-битный ЦАП с EEPROM. Module for controlling the MCP4725, a 12-bit DAC with EEPROM. TCL5615 10-bit SPI DAC.
- Host: GitHub
- URL: https://github.com/octaprog7/mpydac
- Owner: octaprog7
- License: mit
- Created: 2024-10-13T09:50:04.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-11-07T17:56:44.000Z (2 months ago)
- Last Synced: 2024-11-07T18:46:14.360Z (2 months ago)
- Topics: dac, i2c, spi
- Language: Python
- Homepage:
- Size: 878 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Модуль 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](https://github.com/octaprog7/mpyDAC/blob/master/pics/board_4725.jpg)
# Среда разработки (IDE)
## IDE
![alt text](https://github.com/octaprog7/mpyDAC/blob/master/pics/ide_4725.png)# 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](https://github.com/octaprog7/mpyDAC/blob/master/pics/board_5615.jpg)
## Raspberry Pi Pico RP2040 + TLC5615
![alt text](https://github.com/octaprog7/mpyDAC/blob/master/pics/pico_plus_5615.jpg)