Files
lighthub/documentation/hardware/pins_io.md
T
andry 724224a503 docs: import wiki pages into the repo (core/integrations/hardware)
Ported the relevant lazyhome.ru dokuwiki pages to markdown, verified against
the code; each page carries a 'cross-check with code' section where behavior
differs from or extends the wiki.
2026-10-03 00:41:20 +03:00

241 lines
25 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Входы и выходы платы LightHub
> Источник: Wiki LightHub (lazyhome.ru), страница «входы_выходы». Снапшот от 2026-10-02.
## Электропитание
Контроллер имеет на борту DCDC преобразователь, который может обеспечивать питание устройства, а также, воспомогательных приборов от напряжения в диапазоне 12-29В
(Только v2.2) При превышении напряжения 30В, а также, при переполюсовке, сработает защитный TWS диод, замкнув цепь питания, что приведет к отключению самовосстанавливающегося предохранителя контроллера, рассчитанного на ток 1,2А либо к срабатыванию защиты используемого блока питания.
DCDC преобразователь может работать в двух режимах, выбираемых джампером JХ (серый на рисунке ниже)
Если джампер замкнут - выходное напряжение преобразователя составляет 5В, если разомкнут - 7В (на более ранних версиях железа было 9В, но мы уменьшили это значение для меньшего тепловыделения на линейном стабилизаторе устройства)
~~Процессорная плата Ардуино может питаться как с выхода DCDC преобразователя так и непосредственно от входного питания устройства.
Режим питания платы Ардуино выбирается джампером J4 (желто-фиолетовый на рисунке ниже)
В "желтом" режиме, Ардуино питается с выхода DCDC, в фиолетовом - от входного питания.
_Важно: при использовании второго (фиолетового) режима, контроллер следует питать от источника 12В. Использование источника 24В выведет процессорную плату из строя_~~
Внимание: Используйте контроллер версии 2.2 ТОЛЬКО в режиме, когда плата Ардуино питается от DCDC преобразователя. (J4 в Желтом режиме). Испытания показали, что DCDC преобразователь в ином случае работает нестабильно.
Если выбран режим питания Ардуино от DCDC преобразователя, преобразователь должен быть настроен на напряжение 7В (джампер JX разомкнут), так как 5В, в большинстве случаев, недостаточно для стабильной работы Ардуино.
Соответственно, единственное допустимое расположение джамперов: J4 - Желтый режим, JX-разомкнут
В этом режиме напряжение 7В с выхода DCDC преобразователя можно использовать для питания внешних цепей до 2А
~~Режим преобразователя 5В может быть использован для питания внешней нагрузки током до 2,5А подключенной к винтовым клеммам X24 в том случае, если контроллер запитан от внешнего источника 12В~~
В данном режиме, входное напряжение питания контроллера: 12-24В
(рекомендуется 12В для уменьшения нагрузки на линейный стабилизатор опорного напряжения 10В)
~~Возможные конфигурации электропитания
|Входной диапазон |J4 |JX | Макс. ток UEXT 3.3V | Макс. ток UEXT 5V |Примечание|
|---|---|---|---|---|---|
|12-24В| DCDC (желтый)| OPEN (9V)|100mA|600mA|На клеммах X24 напряжение 9В|
|12В| Vin (фиолетовый)| OPEN (9В)|100mA|300mA|На клеммах X24 напряжение 9В|
|12В| Vin (фиолетовый)| CLOSED (5В)|300mA|300mA|На клеммах X24 напряжение 5В|~~
Джампером J2 можно задать напряжение, подаваемое на переферийный разъем стандарта UEXT
Возможны варианты 3,3В (стандартное напряжение UEXT) и 5В (нестандартное, но требуемое для ряда модулей)
См. рисунок ниже.
Контроллер поставляется с перемычками, установленными для работе в диапазоне питающих напряжений 12-24В и UEXT 3,3В
_Внимание: логические уровни сигналов на разъеме UEXT соответствуют применяемой процессорной плате: 5В для MEGA2560 и 3,3В для DUE_
_Подача уровней, превышающие данные значения, могут вывести процессор из строя._
## Версия платы 2.2
### Разьемы и джамперы
(см. иллюстрацию на [wiki-странице](https://www.lazyhome.ru/dokuwiki/doku.php?id=входы_выходы) — `инфографика.pdf`, В PDF)
(см. иллюстрацию на [wiki-странице](https://www.lazyhome.ru/dokuwiki/doku.php?id=входы_выходы) — `lighthub22_pinout.png`)
В этой таблице приведено соответствие физических PIN-ов Arduino Mega/DUE и входов/выходов платы LightHub 2.2
**В конфигурации контроллера пока можно использовать только цифровое значение из столбца MPU PIN**
Выберете по таблице интересующий вход или выход, найдите в таблице номер MPU PIN, его используйте в конфиге
Также, таблица пригодится чтобы преобразовать названия аналоговых каналов в цифровой номер PIN
_Внимание: максимальные уровни сигналов на клеммниках PWM 0-3, PWM 10, и разъеме RJ-45 (UNPROT 0-7) соответствуют применяемой процессорной плате: 5В для MEGA2560 и 3,3В для DUE_
_Подача на данные разъемы напряжений, превышающие данные значения, могут вывести процессор из строя._
_Данные входы не защищены. Подключайте к ним только локальную слаботочную нагрузку_
| Mnemonic | MPU PIN # | Plug | Plug PIN | Gnd | Comment |
|---|---|---|---|---|---|
|A0|54|X36 (IDC)|3|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A1|55|X36 (IDC)|4|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A2|56|X36 (IDC)|5|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A3|57|X36 (IDC)|6|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A4|58|X36 (IDC)|7|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A5|59|X36 (IDC)|8|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A6|60|X36 (IDC)|9|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A7|61|X36 (IDC)|10|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|-|-|X36 (IDC)|17|13,14,15,16|CAN H - (Начиная с V3.0)|
|-|-|X36 (IDC)|18|13,14,15,16|CAN L - (Начиная с V3.0)|
|A8|62|X36 (IDC)|19|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A9|63|X36 (IDC)|20|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A10|64|X36 (IDC)|21|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A11|65|X36 (IDC)|22|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|DA12|66|X36 (IDC)|23|13,14,15,16|Дискретный защищенный вход (слаботочный выход)|
|DA13|67|X36 (IDC)|24|13,14,15,16|Дискретный защищенный вход (слаботочный выход) - не использовать в случае использования CAN (начиная с V3.0)|
|DA14|68|X36 (IDC)|25|13,14,15,16|Дискретный защищенный вход (слаботочный выход) - не использовать в случае использования CAN (начиная с V3.0)|
|DA15|69|X36 (IDC)|26|13,14,15,16|Дискретный защищенный вход (выход)|
|+10V|-|X36 (IDC26)|2|1|Опорное напряжение 10В|
|POUT0|22|X15||X14|Мощный дискретный выход|
|POUT1|23|X16|||Мощный дискретный выход|
|POUT2|24|X17|||Мощный дискретный выход|
|POUT3|25|X18|||Мощный дискретный выход|
|POUT4|9|X19|||Мощный PWM выход. Продублирован слаботочным на X11|
|POUT5|8|X20|||Мощный PWM выход. Продублирован слаботочным на X10|
|POUT6|11|X21|||Мощный PWM выход. Продублирован слаботочным на X12|
|POUT7|12|X22|||Мощный PWM выход. Продублирован слаботочным на X13|
|PWM0|4|X7|||Незащищенный PWM вход/выход |
|PWM1|5|X6|||Незащищенный PWM вход/выход |
|PWM2|6|X8|||Незащищенный PWM вход/выход |
|PWM3|7|X9|||Незащищенный PWM вход/выход |
|PWM10|10|X414|||Незащищенный PWM вход/выход |
|UNPROT0|33|X35 (RJ45)|1|Shield|Незащищенный дискретный вход/выход|
|UNPROT1|32|X35 (RJ45)|2||Незащищенный дискретный вход/выход |
|UNPROT2|31|X35 (RJ45)|3||Незащищенный дискретный вход/выход |
|UNPROT3|30|X35 (RJ45)|4||Незащищенный дискретный вход/выход |
|UNPROT4|29|X35 (RJ45)|5||Незащищенный дискретный вход/выход |
|UNPROT5|28|X35 (RJ45)|6||Незащищенный дискретный вход/выход |
|UNPROT6|27|X35 (RJ45)|7||Незащищенный дискретный вход/выход |
|UNPROT7|26|X35 (RJ45)|8||Незащищенный дискретный вход/выход |
|IN0|42|X27 (IDC26)|14|13|Опторазвязанный вход двухпроводный|
|IN1|44|X27 (IDC26)|12|11|Опторазвязанный вход двухпроводный|
|IN2|46|X27 (IDC26)|10|9|Опторазвязанный вход двухпроводный|
|IN3|48|X27 (IDC26)|8|7|Опторазвязанный вход двухпроводный|
|IN4|43|X27 (IDC26)|6|1|Опторазвязанный вход|
|IN5|45|X27 (IDC26)|5|1|Опторазвязанный вход|
|IN6|47|X27 (IDC26)|4|1|Опторазвязанный вход|
|IN7|49|X27 (IDC26)|3|1|Опторазвязанный вход|
|IN8|34|X27 (IDC26)|22|21|Опторазвязанный вход двухпроводный|
|IN9|36|X27 (IDC26)|20|17|Опторазвязанный вход двухпроводный|
|IN10|38|X27 (IDC26)|18|19|Опторазвязанный вход двухпроводный|
|IN11|40|X27 (IDC26)|16|15|Опторазвязанный вход двухпроводный|
|IN12|35|X27 (IDC26)|26|1|Опторазвязанный вход|
|IN13|37|X27 (IDC26)|25|1|Опторазвязанный вход|
|IN14|39|X27 (IDC26)|24|1|Опторазвязанный вход|
|IN15|41|X27 (IDC26)|23|1|Опторазвязанный вход|
|+10V|-|X27 (IDC26)|2|1|Опорное напряжение 10В|
### Варианты подключения к дискретным входам
Для гальванической развязки дискретных входов, использованы симметричные оптроны. Симметричные - это значит они открываются либо положительным либо отрицательным потенциалом (3-12В).
Это позволяет использовать фактически любые контактные или потенциальные датчики, соединенные как с плюсом питания так и с нулем.
8 из 16-ти оптронов (IN4-IN7, IN12-IN15) соединены одним общим проводом, который выведен на pin1 разьема Х27
Другие 8 оптронов (IN0-IN3, IN8-IN11) выведены обоими контактами на соответствующие выходы разьема X27, согласно таблице выше
Последовательно с входом оптрона установлен токоограничивающий резистор
Опционально, может быть запаян резистор "0 ом" с нижней стороны платы, который соединит Pin1 с общим проводом контроллера, но в стандартной поставке это не делается для сохранения универсальности.
Соответственно:
* Pin1 нужно самостоятельно подключить к общему нулю системы вовне контроллера - тогда входы (IN4-IN7, IN12-IN15) будут активироваться подачей напряжения 3-12В на соответствующие контакты X27 (например, на контакт 6 для активации входа IN4)
* Либо Pin1 можно подключить к источнику опорного напряжения 10В (Pin2) а соответствующий вход активировать соединением его с нулем. (Внимание, сначала при помощи омметра убедитесь что не впаян опциональный резистор, соединяющий Pin0 с нулем контроллера)
Для работы со входами (IN0-IN3, IN8-IN11) обратный контакт этих входов надо, также, подключить либо к нулю либо к опорному напряжению (X27 Pin 13, 11, 9, 7, 21, 17, 19, 15) по аналогии с Pin1
Это можно сделать как при помощи перемычек на клеммнике, так и запаивая специально выведенные джамперы на верхней стороне платы (возле оптронов)
Запаивание джампера подключает обратный вход соответствующего оптрона к Pin1, обьединяя его с общей группой входов
Возможность полностью гальванически изолировать контролируемый сигнал от контура LightHub бывает очень важна для обеспечения безопасности или помехозащищенности. Например, вы контролируете цепи, гальванически связанные с электросетью или удаленные обьекты, обьединение нулевых проводов которых с нулем контроллера крайне нежелательно (концевики ворот, например)
В этом случае, используйте входы (IN0-IN3, IN8-IN11) не подключая обратный контакт входа к цепям контроллера. Используйте два выделенных провода, чтобы подключить вход к контролируемому устройству.
## Версия платы 2.0 (устаревшая)
### Разьемы и джамперы
(см. иллюстрацию на [wiki-странице](https://www.lazyhome.ru/dokuwiki/doku.php?id=входы_выходы) — `lighthub2pinout.jpeg`)
В этой таблице приведено соответствие физических PIN-ов Arduino Mega/DUE и входов/выходов платы LightHub 2.0
**В конфигурации контроллера пока можно использовать только цифровое значение из столбца MPU PIN**
Выберете по таблице интересующий вход или выход, найдите в таблице номер MPU PIN, его используйте в конфиге
Также, таблица пригодится чтобы преобразовать названия аналоговых каналов в цифровой номер PIN
#### Таблица контактов
| Mnemonic | MPU PIN # | Plug | Plug PIN | Gnd | Comment |
|---|---|---|---|---|---|
|A0|54|X36 (IDC)|1|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A1|55|X36 (IDC)|2|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A2|56|X36 (IDC)|3|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A3|57|X36 (IDC)|4|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A4|58|X36 (IDC)|5|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A5|59|X36 (IDC)|6|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A6|60|X36 (IDC)|7|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A7|61|X36 (IDC)|8|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A8|62|X36 (IDC)|19|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A9|63|X36 (IDC)|20|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A10|64|X36 (IDC)|21|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|A11|65|X36 (IDC)|22|13,14,15,16|Аналоговый защищенный вход (слаботочный выход)|
|DA12|66|X36 (IDC)|23|13,14,15,16|Дискретный защищенный вход (слаботочный выход)|
|DA13|67|X36 (IDC)|24|13,14,15,16|Дискретный защищенный вход (слаботочный выход)|
|DA14|68|X36 (IDC)|25|13,14,15,16|Дискретный защищенный вход (слаботочный выход)|
|DA15|69|X36 (IDC)|26|13,14,15,16|Дискретный защищенный вход (выход)|
|POUT0|22|X15||X14|Мощный дискретный выход|
|POUT1|23|X16|||Мощный дискретный выход|
|POUT2|24|X17|||Мощный дискретный выход|
|POUT3|25|X18|||Мощный дискретный выход|
|POUT4|9|X19|||Мощный PWM выход. Продублирован слаботочным на X11|
|POUT5|8|X20|||Мощный PWM выход. Продублирован слаботочным на X10|
|POUT6|11|X21|||Мощный PWM выход. Продублирован слаботочным на X12|
|POUT7|12|X22|||Мощный PWM выход. Продублирован слаботочным на X13|
|PWM0|4|X7|||Незащищенный PWM вход/выход |
|PWM1|5|X6|||Незащищенный PWM вход/выход |
|PWM2|6|X8|||Незащищенный PWM вход/выход |
|PWM3|7|X9|||Незащищенный PWM вход/выход |
|UNPROT0|33|X35 (RJ45)|1|Shield|Незащищенный дискретный вход/выход|
|UNPROT1|31|X35 (RJ45)|2||Незащищенный дискретный вход/выход |
|UNPROT2|32|X35 (RJ45)|3||Незащищенный дискретный вход/выход |
|UNPROT3|30|X35 (RJ45)|4||Незащищенный дискретный вход/выход |
|UNPROT4|29|X35 (RJ45)|5||Незащищенный дискретный вход/выход |
|UNPROT5|28|X35 (RJ45)|6||Незащищенный дискретный вход/выход |
|UNPROT6|27|X35 (RJ45)|7||Незащищенный дискретный вход/выход |
|UNPROT7|26|X35 (RJ45)|8||Незащищенный дискретный вход/выход |
|IN0|42|X27 (IDC26)|12|11|Опторазвязанный вход двухпроводный|
|IN1|44|X27 (IDC26)|10|9|Опторазвязанный вход двухпроводный|
|IN2|46|X27 (IDC26)|8|7|Опторазвязанный вход двухпроводный|
|IN3|49|X27 (IDC26)|6|5|Опторазвязанный вход двухпроводный|
|IN4|43|X27 (IDC26)|4|25,26|Опторазвязанный вход|
|IN5|45|X27 (IDC26)|3|25,26|Опторазвязанный вход|
|IN6|47|X27 (IDC26)|2|25,26|Опторазвязанный вход|
|IN7|48|X27 (IDC26)|1|25,26|Опторазвязанный вход|
|IN8|34|X27 (IDC26)|20|19|Опторазвязанный вход двухпроводный|
|IN9|36|X27 (IDC26)|18|15|Опторазвязанный вход двухпроводный|
|IN10|38|X27 (IDC26)|16|17|Опторазвязанный вход двухпроводный|
|IN11|40|X27 (IDC26)|14|13|Опторазвязанный вход двухпроводный|
|IN12|35|X27 (IDC26)|24|25,26|Опторазвязанный вход|
|IN13|37|X27 (IDC26)|23|25,26|Опторазвязанный вход|
|IN14|39|X27 (IDC26)|22|25,26|Опторазвязанный вход|
|IN15|41|X27 (IDC26)|21|25,26|Опторазвязанный вход|
---
## Сверка с кодом (2026-10-02)
**Поиск variant.cpp / ldscripts (платформа DUE):**
- В репозитории **нет собственного** `lighthub/variant.cpp`. Для DUE используется вариант из пакета PlatformIO `.platformio/packages/framework-arduinosam/variants/arduino_due_x/variant.cpp` (см. [flashing.md](flashing.md) — нужно добавить в него `void USART0_Handler(void) __attribute__((weak));`).
- В каталоге `ldscripts/` есть только лд-скрипты STM32 (`stm32f103rb.ld` и т.п.); **DUE-лд-скриптов в репозитории нет**.
- В исходном коде пины каналов **не заданы фиксированной таблицей** — конфиг ссылается на номера пинов напрямую (цифровое значение столбца «MPU PIN»), поэтому автоматической сверки «wiki ↔ код» по конкретным пинам не проводится. Таблица wiki является эталонной картой пинов платы.
**Соответствие номеров пинов стандартной распиновке DUE:**
- Аналоговые входы `A0`–`A11` → пины **54–65** — **совпадает** со стандартной нумерацией аналоговых пинов Arduino DUE (A0=54 … A15=69). Расхождений нет.
- Остальные пины (POUT 8–25, PWM 4–10, UNPROT 26–33, IN 34–49) — все в диапазоне цифровых пинов DUE (0–53), соответствуют стандартной нумерации.
**Различия между ревизиями платы (2.2 и 2.0):**
- Столбец **MPU PIN # идентичен** в обеих таблицах — номера пинов MCU не менялись между ревизиями.
- Различается столбец **Plug PIN** (физические контакты разъемов X36/X27/X35) — например, в rev 2.2 для `A0`–`A7` это контакты 3–10 X36, а в rev 2.0 — 1–8; раскладка опто-входов IN в X27 тоже отличается. Это изменение именно **реvisions платы**, а не программных пинов — при работе в конфиге всегда используйте столбец **MPU PIN #** (он одинаков).
- В rev 2.2 добавлены контакты CAN H/L (X36 пины 17/18, начиная с V3.0) и вход PWM10 (X414, пин 10), которых нет в rev 2.0.