
*3,3 V lub 5 V wybierane zworką.
**to samo wyjście DAC na obu pinach.

https://github.com/adafruit/Adafruit-MCP2221-PCB
Sterownik i lokalny adapter HTTP dla konwertera MCP2221A USB → GPIO / ADC / I2C / UART, w szczególności płytki Adafruit 4471 ze złączem STEMMA QT / Qwiic.
Projekt dostarcza:
04d8:00dd oraz powiązanego portu UART CDC;MCP2221A nie jest zamiennikiem przemysłowego modułu ADC Modbus. Ma trzy wejścia ADC o rozdzielczości 10 bitów, bez separacji galwanicznej i mierzy wyłącznie napięcia w zakresie ustawionego napięcia logiki płytki. Sygnałów 5 V, 10 V, 24 V ani pętli 4–20 mA nie wolno podłączać bez właściwego dzielnika, zabezpieczenia lub izolowanego kondycjonera.
Wymagany jest Linux i Python 3.10 lub nowszy.
cd ~/github/oqlos/usb-adc-mcp2221
python3 -m venv .venv
.venv/bin/pip install -e '.[api,dev]'
Biblioteka ustawia BLINKA_MCP2221=1 automatycznie przed pierwszym dostępem do
sprzętu. Jeżeli urządzenie jest widoczne w lsusb, lecz HID jest niedostępny dla
użytkownika, dodaj regułę /etc/udev/rules.d/60-mcp2221.rules:
SUBSYSTEM=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="00dd", MODE="0660", GROUP="plugdev", TAG+="uaccess"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="00dd", MODE="0660", GROUP="plugdev", TAG+="uaccess"
Gotowy plik znajduje się w deploy/udev/60-mcp2221.rules.
Następnie przeładuj reguły udev i odłącz/podłącz urządzenie. Nie używaj MODE="0666"
na systemie produkcyjnym.
Polecenia zwracają dane JSON, dzięki czemu można ich używać w skryptach i monitoringu.
usb-adc-mcp2221 health
usb-adc-mcp2221 info
usb-adc-mcp2221 adc 1 --samples 16 --sample-delay 0.01
usb-adc-mcp2221 adc-all --samples 8
usb-adc-mcp2221 i2c-scan
usb-adc-mcp2221 gpio-read 0
Zmiana stanu wyjścia wymaga jawnego potwierdzenia:
usb-adc-mcp2221 gpio-write 0 1 --confirm-output
usb-adc-mcp2221 dac 16 --confirm-output
usb-adc-mcp2221-api
curl http://127.0.0.1:8212/health
curl 'http://127.0.0.1:8212/api/v1/adc/1?samples=16'
curl http://127.0.0.1:8212/api/v1/i2c/scan
Interfejs HTTP celowo nie udostępnia zapisu GPIO ani DAC. Domyślnie nasłuchuje tylko
na 127.0.0.1:8212. Konfiguracja odbywa się przez:
MCP2221_API_HOST;MCP2221_API_PORT;MCP2221_REFERENCE_VOLTAGE — domyślnie 3.3.
Szczegóły elektryczne są w docs/HARDWARE.md, a kontrakt integracji z OqlOS w docs/OQLOS_INTEGRATION.md. Wprowadzenie do samej idei sterowania układem MCP2221 z komputera opisuje docs/CIRCUITPYTHON_MCP2221.md — polskie tłumaczenie przewodnika Adafruit wraz ze schematami.
Katalog hardware/ zawiera schemat i layout płytki Adafruit 4471 (EagleCAD, kopia repozytorium adafruit/Adafruit-MCP2221-PCB, licencja CC BY-SA 3.0) oraz część Fritzing tej samej płytki. Pozwalają zweryfikować przypisanie pinów, rezystory pull-up I2C i zworkę napięcia logiki, zanim podłączysz zewnętrzny układ. Szczegóły i pochodzenie: hardware/README.md.
.venv/bin/pytest
.venv/bin/ruff check .
Testy jednostkowe nie wymagają podłączonego urządzenia.