Arduino EIA-422
тел. +7(499)347-04-82
Описание Arduino EIA-422
Вот подробное описание, технические характеристики, список популярных партномеров (Part Numbers) и совместимых моделей для реализации интерфейса EIA-422 (RS-422) на платформе Arduino.
Важное уточнение: У Arduino нет встроенного аппаратного модуля RS-422, как UART (Serial). Стандартный UART Arduino выдает сигналы уровнями TTL (0–5 В или 0–3.3 В). Для преобразования в симметричный сигнал RS-422 (дифференциальные пары) обязательно требуется внешний драйвер/приемник — обычно микросхема типа MAX488, MAX490 или SP3072.
1. Описание
Arduino + EIA-422 (RS-422) — это решение для организации надежной последовательной связи на большие расстояния (до 1200 метров) и с высокой помехоустойчивостью в промышленных условиях.
- Тип интерфейса: дифференциальный, 4-проводной (Tx+, Tx–, Rx+, Rx–) или 2-проводной (если использовать half-duplex с управлением потоком, но RS-422 чаще полнодуплексный).
- Скорость: до 10 Мбит/с (на коротких линиях) или 100 кбит/с на максимальной длине.
- Топология: точка-точка (один передатчик, до 10 приемников). Звезда или шина — только мульти-приемная, передатчик всегда один.
Как это работает: Arduino → UART (Tx, Rx) → преобразователь TTL→RS-422 (например, MAX490) → витая пара → другой Arduino с RS-422.
2. Технические характеристики (типовые для модулей на базе MAX488/MAX490)
| Характеристика | Значение |
|--------------|----------|
| Напряжение питания логики | 5 В (для classic Arduino) / 3.3 В (для Arduino Due, MKR) |
| Напряжение драйвера (питание) | 5 В (большинство модулей) |
| Сигналы RS-422 (дифференциальная пара) | A / B (или Y / Z, + / –) |
| Уровни дифференциального сигнала | ±2 V (минимум) до ±5 V (типовое с нагрузкой 100 Ом) |
| Рабочее расстояние | до 1200 м (при 100 кбит/с) |
| Макс. количество приемников | 10 (MAX48x) |
| Общий режим (Common‑Mode) | от −7 V до +12 V |
| Электростатическая защита (ESD) | ±2 кВ (у MAX48x), у новых модулей — до ±15 кВ |
| Поддержка полного дуплекса | Да (2 витых пары: одна TX, одна RX) |
| Управление потоком (RE/DE) | Ручное или программное |
Для 5-вольтовых плат (Uno, Mega): Используйте модули на MAX490 (полный дуплекс) или MAX488.
Для 3.3-V плат (Due, Zero, MKR): Используйте модули на MAX3488 или SP3072 (3.3 В).
3. Парт номера (Part Numbers) популярных готовых модулей / микросхем
A. Готовые шилды / брейкауты (можно купить на AliExpress или у дистрибьюторов):
| Артикул (MPN) | Производитель | Питание | Тип | Примечание | |--------------|---------------|---------|-----|------------| | 485ARTR | Analog Devices (EVAL-ADM2587E) | 5 V / 3.3 V | Полный дуплекс RS‑422 | Изолированный (2.5 кВ), до 500 кбод | | MAX490ECPA+ / MAX490 ESA+ | Maxim Integrated | 5 V | Полный дуплекс RS‑422 | Самый распространённый чип для Arduino Uno | | MAX488ESA+ | Maxim Integrated | 5 V | Полудуплекс RS‑422 | Используется реже, обычно заменяют MAX485 | | SP3072EEN-L | MaxLinear (Sipex) | 3.3 V | Полный дуплекс RS‑422/485 | Хорошо подходит для Arduino Due | | ISO422-DW | Texas Instruments | 5 V | Полный дуплекс, гальваническая развязка | Дорогой, но надёжный | | DE-422 (плата DFRobot) | DFRobot | 5 V | Полный дуплекс RS‑232/485/422 | На китайских площадках: DFR0001, DFR0259 | | SparkFun RS-422 Breakout (BOB-11868) | SparkFun | 5 V | Полный дуплекс | Основан на MAX490 |
B. Сырые микросхемы (для самостоятельного монтажа):
- MAX490EPD+ (DIP) или MAX490EUD+ (TSSOP)
- SP3072EN-L (SOP-8)
- ADM2587EBRWZ (изолированный)
4. Совместимые модели Arduino
| Модель Arduino | Рабочее напряжение (TTL UART) | Совместимость драйверами на 5 V | Совместимость драйверами на 3.3 V | Примечание | |---------------|------------------------------|------------------------------------|-------------------------------------|------------| | Arduino Uno | 5 V | ✅ (MAX490) | ✅ с Logic-Level Converter (LLC) если нет | Простейший вариант с SoftwareSerial (нестабильно на больших скоростях) | | Arduino Mega 2560 | 5 V | ✅ (MAX490) – использовать Serial1, 2 или 3 | ❌ – драйвер на 3.3 V будет переводным, не гарантировано | Отличный выбор, есть 3 дополнительных аппаратных UART | | Arduino Due | 3.3 V | ❌ – не рекомендуется | ✅ (MAX3488, SP3072) | Нативное 3.3 V, без преобразователя уроняется сигнал UART | | Arduino Leonardo | 5 V | ✅ – совместимо с 5 В логикой | ✅ – требуется LLC (или будет повышение не гарантировано) | только 1 аппаратный UART | | Arduino MKR 1010 / MKR Zero | 3.3 V | ❌ | ✅ (SP3072) | Питание VCC = 3.3 V, ставить лишь 3.3-V драйвер | | Arduino Nano | 5 V | ✅ | ✅ с LLC | UART на пинах D0/D1, часто только для передачи по‑прямой вывод | | Raspberry Pi Pico (ара, совместим с Arduino Core) | 3.3 V | ❌ (Использовать с переводным или драйвер 3.3‑вольтный с выдержкой DIO8, но меньше ток) | ✅ (MAX3488 / SP3072) | До 6 UART применимо. CMOS на 3.3 V |
5. Схема подключения (Пример для Arduino Uno + MAX490)
Arduino TX (D1) --> MAX490 pin DI (Driver Input)
Arduino RX (D0) <-- MAX490 pin RO (Receiver Output)
MAX490 pin RE (Receiver Enable) = GND (всегда приём)
MAX490 pin DE (Driver Enable) = 5V (всегда передача)
Переходный резистор 120 Ом на витой паре
Земли GND Arduino ---------/ ---- Ground cable shield (необязательно)
VCC (5V) -> MAX490 VCC
GND -> MAX490 GND
Витая пара: TX+ (MAX490 pin Y / A)
TX– (MAX490 pin Z / B) отдающий модуль
RX+ (Arduino -> другой приём)
RX– принимающий модуль
6. Программные библиотеки и отладка
- Стандартный
Serial(UART). - Для большого или смешанного протокола: Stream библиотека, Modbus Master/Slave (nModbus for RS‑485/422).
- Для скоростей более 1 Мбит/с необходимы сырые выводы напрямую с драйвера, скорость в
Serial.begin()нужно упорядочивать: до 2 Мбод на Uno/Leonardo, до 6 Мбод на Due (SPI/UART). Только проверить допустимо через тактирование.
7. Важные замечания (неочевидные тонкости RS-422 на Arduino)
- Терминаторы (согласующие резисторы) – только один резистор 120 Ом на приёмной стороне на каждой паре (TX/RX).
- Pull‑down и биuas – обычно не требуются для полнодуплексного RS‑422, в отличие от RS‑485, где они важны (Rx может оказаться “в воздухе”).
- Заземление – обязательна одна общая земля (дополнительная жила витой пары), максимум смещения диапазона между устройствами: (−7 V … +12 V). На сверхдлинных линиях нужно ставить изолированный драйвер (как ADM2587 или ISO‑DG).
- **Скорость на
SoftwareSerial** (> 19200 бод) нестабильна на больших ленках из‑за сигналов без прерыванияUART. Лучше использовать аппаратный UART.
Если нужно добавить конкретные параметры для 10‑7 модулей ESD или фильтр EMG noise – могу дать.