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.
This commit is contained in:
2026-10-03 00:41:20 +03:00
parent b90325bfef
commit 724224a503
16 changed files with 2548 additions and 0 deletions
+240
View File
@@ -0,0 +1,240 @@
# Входы и выходы платы 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.