JetHome E1: элегантный красавец на ESP32

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Сегодня мы поговорим об очередном контроллере для DIY рынка на ESP32, это красавец JetHome E1 в элегантном корпусе на DIN-рейку. Кроме стильного корпуса, этот контроллер обладает интересной начинкой (тут и Ethernet интерфейс и 5 встроенных реле и прочие атрибуты подобных контроллеров) и хорошей родословной — его выпускает компания, которая специализируется на производстве Linux контроллеров и мини-компьютеров и имеет большой опыт в этом деле и даже собственную производственную линию в Санкт-Петербурге.

То есть это ещё один контроллер отечественного производства (как и Lavritech V7.1 Lite), причём выпускаемый на промышленном оборудовании с «заводским качеством». Ну и по традиции я приглашаю посмотреть, что и как там устроено внутри и что нам предлагает JetHome E1 для решения наших задач по автоматизации.

Продуктовая линейка JetHome E1


Компания (торговая марка) JetHome специализируется на производстве Linux контроллеров, флагманом которых на данный момент является модель JetHome JetHub D1+, но поскольку в сферу наших интересов (сейчас) входят контроллеры на ESP32, то далее мы будем рассматривать линейку JetHome E1 и конкретную модель, имеющуюся в моём распоряжении, JetHub E1 PD76-R5.

Для начала нам нужно познакомиться с архитектурой контроллеров JetHome, которая несколько необычна. Вообще, по моим наблюдениям, сколько существует производителей контроллеров, столько существует и подходов к их проектированию. Все решают одну и ту же задачу, но каждый делает это по-своему (в меру своего понимания и опыта).

В этом смысле контроллеры JetHome отличаются необычной архитектурой — в них «процессорный» модуль (плата) отделён от «базовой» (периферийной) платы и соединяется с ней 40-пиновым шлейфом.

Я не могу назвать такой подход ни плохим, ни хорошим, могу только отметить его необычность. Недостатков я в нём не обнаружил, кроме некоторых сомнений по транспортировке практически всех сигналов по 40-пиновому шлейфу — я не уверен как это скажется на помехоустойчивости и стабильности работы контроллера. С другой стороны, на этой архитектуре давно выпускаются различные модели JetHome и никаких проблем (видимо) нет.

Из плюсов такого решения можно отметить большую гибкость использования (сочетания) различных процессорных плат с различными периферийными, вплоть до использования одного периферийного блока с процессорными платами на разных CPU/MCU, например процессорной платы E1-CPU (ESP32) и процессорной платы D1P-CPU (Amlogic A113x).

На данный момент существует 3 варианта периферийных плат: PD76-BASIC, PD76-R5, PD76-UM7. Более подробное представление о них вы можете составить по следующей таблице. Плата PD76-R5, имеющаяся в моём распоряжении, отмечена серым фоном.



В готовом изделии полное название модели складывается из названий её составных частей: JetHome JetHub E1 PD76-R5.

Важное замечание. Разработка и улучшение контроллеров происходит постоянно, на данный момент готовится выпуск усовершенствованной модели, но по запросу всё ещё можно приобрести рассматриваемую модель JetHub E1 PD76-R5.

JetHub E1 PD76-R5





Теперь поговорим о самом контроллере в комплектации JetHub E1 PD76-R5. Прежде всего обращает на себя внимание его внешний вид — разработчикам (вернее китайским дизайнерам) удалось невозможное — JetHub E1 выглядит не хуже (а скорее даже более стильно), чем признанный эталон дизайна DIY контроллера — наш старый знакомый Norvi Сёма из Шри-Ланки.

Фотография этого не передаёт, но JetHub E1 весит больше Сёмы и в целом ощущается как кирпич очень солидное изделие («вещь»). Расплачиваться за столь впечатляющий дизайн приходится нестандартными размерами корпуса, по информации с сайта производителя его ширина составляет 4,3U.

Начинка JetHub E1 PD76-R5 состоит из микроконтроллера ESP32 (Wi-Fi, Bluetooth и т. д.) и прочих компонентов и подсистем:

Процессорная плата E1-CPU

  • Микроконтроллер ESP32-WROOM-32
  • EEPROM AT24C64 8КБ
  • Ethernet на LAN8720A
  • Часы реального времени на PCF8563
  • Элемент питания CR1220
  • Micro-USB разъём
  • USB-UART на CP2102
  • Индикатор питания PWR (зеленый светодиод)
  • Два индикаторных светодиода STAT (зеленый и красный)
  • Кнопка FUNC
  • Кнопка USER
  • Интерфейс JTAG


Периферийная плата PD76-R5

  • 6 дискретных входов «сухой контакт»
  • 5 реле 16A
  • EEPROM AT24C64 8КБ
  • Разъём UART1
  • Разъём IO1
  • JXM слот
  • Напряжение питания 9-56 В
  • Питание Passive PoE 12-48 В
  • Опционально PoE IEEE 802.3af Class 0


В целом очень и очень неплохо, есть всё необходимое для контроллера такого класса и области применения. Из пожеланий можно отметить наличие дисплея, ещё пары кнопок, аппаратного Watchdog-а и интерфейса для подключения внешних блоков на DIN-рейку.

В списке пожеланий нет беспроводных модулей, интерфейса RS485 и прочих дополнений, потому, что в контроллере присутствует JXM слот и, теоретически, всё необходимое можно подключить при помощи JXM модулей (при их наличии).

Ложка дёгтя. Производитель в новых моделях решил отказаться от поддержки JXM модулей в пользу новой архитектуры внутренних интерфейсов. Теперь модули расширения будут содержать встроенный микроконтроллер STM32 и унифицировано общаться по специальной шине. Этот подход имеет некоторые достоинства и право на жизнь, но мне больше нравится «старая-добрая» JXM архитектура с прямым доступом (программиста) к подключаемому железу.

Разбираем контроллер


Ну что ж, общее представление о пациенте мы получили, теперь приступаем к его препарированию, я уже достал свой любимый скальпель и расчехлил микротом. Отжимаем 4 защёлки и снимаем верхнюю крышку контроллера. Кстати, JetHub E1 оказался чемпионом по лёгкости разборки — стоит только слегка поддеть отвёрткой защёлки, как верхняя крышка сама «отстреливается» от основания.



На фото видна периферийная плата PD76-R5. Сверху находятся четыре 2-контактных и один 3-контактный разъёмы реле. Снизу, по порядку: разъём питания, разъём JXM модуля и два разъёма входов «сухой контакт».

В центре платы 5 реле, плата (модуль) питания, конденсаторы, и несколько разъёмов: межблочный для 40-контактного шлейфа, два 4-контактных (белые) UART1 и IO1, и две (чёрные) колодки JXM слота.

Фото нижней части контроллера крупнее и с другого ракурса. Хорошо видны разъём Ethernet интерфейса и модуль питания с катушкой индуктивности.



Далее фото верхней части контроллера с её содержимым. Виден 40-контактный шлейф (шаг 1,27 мм) и процессорная плата E1-CPU. Несмотря на субтильность, эта плата содержит множество элементов, включая сам микроконтроллер ESP32-WROOM-32 (чуть позже мы это разберём более подробно).



Откручиваем шурупы и вынимаем процессорную плату из корпуса. Видны: микроконтроллер ESP32-WROOM-32, разъём Micro-USB, кнопки, резервная литиевая батарейка, микросхемы и прочие элементы.



Продолжаем разбирать JetHub E1 PD76-R5 и вынимаем периферийную плату из поддона. С обратной стороны ничего нет, кроме реле, защитных элементов и колодок для подключения нагрузок.



Процессорная плата отдельно крупным планом. Кроме прочих элементов видны контактные площадки 40-пинового разъёма (сам разъём установлен с обратной стороны платы).



Схемотехника


К сожалению, производитель не раскрывает схему своих контроллеров, поэтому далее мы сможем только немного приоткрыть их схемотехнику, ориентируясь на расположение компонентов на платах. Это не так много, как хотелось бы, но общее представление о начинке JetHub E1 PD76-R5 мы сможем получить.

Примечание. Все производители контроллеров делятся на две категории — тех, кто свободно публикует схему своих изделий и тех, кто делает из неё секрет. По моим наблюдениям, лидеры DIY рынка (Arduino, Adafruit и т. д.) свободно публикуют схемы, что только добавляет им доверия пользователей и репутацию (а также прибыль). Что скрывают те, кто делает секрет из схем своих контроллеров — совершенно непонятно — при наличии образца «нарисовать» его схему и печатные платы — это дело нескольких часов (максимум — дней) для более-менее квалифицированного схемотехника.

Начнём с общего вида печатных плат «снизу» и «сверху».

Процессорная плата E1-CPU

Вид сверху на процессорную плату. Тут разместился практически весь контроллер, кроме его периферийной части: ESP32, USB-UART, Ethernet LAN8720A и т. д.



Вид снизу. Маркировка платы, 40-контактный разъём для шлейфа, пины JTAG интерфейса и тестовые контактные площадки.



Периферийная плата PD76-R5

Тут хорошо вины интерфейсные разъёмы и их расположение на периферийной плате. Две чёрные колодки — это составные части одного JXM слота, но визуально их можно принять за два разных разъёма.



Обратная сторона периферийной платы содержит множество электронных компонентов, которые и обеспечивают работу всех её функций.



Теперь подробнее по всем подсистемам контроллера JetHub E1 PD76-R5.

Питание


С верхней стороны периферийной платы в подсистему питания входит колодка для подключения источника 9-56 В, сглаживающие конденсаторы и модуль DC-DC преобразователя (на фото виден вертикально). Сам модуль не типовой китайский, а производства JetHome. Также контроллер поддерживает запитку по стандарту PoE.



С нижней стороны периферийной платы подсистема питания содержит транзистор IRFR5410, LDO регулятор напряжения 1117-33, диоды и прочие элементы.



Реле


Большую часть платы занимают 5 реле (16 А). Четыре из них имеют по 2 контакта на выходных колодках, а одно — 3 контакта на переключение. Производитель на своём сайте указывает, что их рекомендуемый номинальный коммутируемый ток 10 А.



Обслуживанием реле занимается микросхема с I2C интерфейсом PCF8575 (адрес 0x22, порты 8-12) и сборка инвертирующих триггеров Шмитта 74HC14D, плюс прочие элементы обвязки.



Дискретные входы


Дискретные входы обслуживает та же микросхема с I2C интерфейсом PCF8575 (адрес 0x22, порты 0-5) и ещё одна сборка инвертирующих триггеров Шмитта 74HC14D.



Производитель указывает: «Замыкание дискретного входа должно производиться на общий контакт (GND). Соблюдайте внимательность при подключении дискретных входов. Не допускайте подачи напряжения на дискретные входы, на плате установлены подтягивающие резисторы к 5 В».

Ethernet


Микросхема «физики» Ethernet интерфейса LAN8720A установлена на верхней плате (мы её рассмотрим чуть позже), а на плате периферии находится разъём для подключения Ethernet кабеля.



И с обратной стороны платы — согласующий трансформатор HB1601SNL.



40-контактный разъём


40-контактный разъём (шаг пинов 1,27 мм) для подключения шлейфа и процессорного модуля (в нашем случае) E1-CPU.



Разъём IO1


В этот разъём выведены два GPIO с микроконтроллера ESP32, предназначенные для обслуживания CAN интерфейса. Соответственно, этот разъём и его контакты можно использовать либо как простые GPIO, либо, дополнив соответствующей обвязкой, как CAN интерфейс.



Разъём UART1


Это дополнительные выводы UART(1) интерфейса (GPIO33, GPI34). К этому разъёму можно подключить какое-то дополнительное оборудование с UART интерфейсом или соединить (шлейфом) этот разъём с JXM модулем, который устанавливается рядом.



JXM слот


JXM слот состоит из двух 12- и 4-контактных разъёмов, которые разделены на плате, но составляют одно целое (как слот). Также на фото ниже видны (аж) четыре отверстия в плате для ключей JXM модуля. Зачем нужно такое их количество и почему нельзя было обойтись 1-2 отверстиями не очень понятно.



Ниже приведено фото типового JXM модуля, в данном случае модуля реле (к сожалению, самого модуля нет в моём распоряжении, поэтому я не могу сделать более качественное фото). Поскольку производитель в новых версиях контроллера решил перейти на другую архитектуру, то JXM модулей в продаже скорее всего уже не появится, но при желании (необходимости) подобный модуль можно сделать самостоятельно.



В JXM слот выведены контакты I2C и SPI интерфейсов, а также линии питания и дополнительные GPIO. Распиновка слота есть на сайте производителя. Подробнее о работе с JXM модулями мы, возможно, поговорим в следующих статьях.

EEPROM AT24C64 (1)


В контроллере JetHub E1 PD76-R5 имеются две микросхемы EEPROM памяти AT24C64 (8 КБ), одна из которых установлена на периферийной плате (I2C адрес 0x56), а другая — на процессорной плате (её я опишу чуть ниже). По задумке производителя «данная память может быть использована для хранения конфигурации, настроек и т. д.». Две микросхемы памяти это, видимо, издержки архитектуры контроллера, в которой присутствует деление на процессорную и периферийную платы.



ESP32


Теперь переходим к разбору содержимого процессорной платы. Прежде всего, на ней установлен сам микроконтроллер ESP32-WROOM-32, который является «мозгом» всей системы.



LAN8720A


Рядом с микроконтроллером ESP32 установлен чип «физики» Ethernet интерфейса LAN8720A. Это известное и хорошо изученное, можно сказать типовое, решение по обеспечению ESP32 работой с Ethernet. Соответственно, с программированием этой подсистемы никаких проблем нет.



USB-UART


Разъём Micro-USB, популярная микросхема USB-UART моста CP2102 и соответствующая обвязка — тут всё просто и ожидаемо, никаких сюрпризов производитель не преподнёс.



RTC на PCF8563


Микросхема часов реального времени PCF8563 с I2C интерфейсом, плюс элемент питания CR1220 для поддержания часов в рабочем состоянии при отключении питания контроллера. Для микросхемы PCF8563 имеется хорошая программная поддержка, в частности, популярная Arduino библиотека.



EEPROM AT24C64 (2)


Вторая микросхема EEPROM памяти AT24C64 (8 КБ), установленная на процессорной плате (адрес на I2C шине 0x54). С одной стороны, вторая микросхема памяти — это немного перебор, с другой — кашу маслом не испортишь, пусть будет.



PCF8575 и прочие элементы


На процессорной плате также находится микросхема I2C расширителя портов PCF8575 (адрес 0x20), к которой подключены 2 светодиода STAT (порты 0 и 1) и пользовательская кнопка USER (порт 2). Порты с 8 по 14 выведены в периферийный разъем.



JTAG


На обратной стороне процессорной платы находятся контактные площадки для JTAG разъёма. Так что «профессионалам» будет чем заняться долгими (зимними) вечерами, отлаживая свой код для ESP32 (любители обойдутся простым, но при этом не менее увлекательным и эффективным программированием в Arduino IDE).



Распиновка


Собранная по крохам и приведённая в удобочитаемый формат распиновка контроллера JetHub E1 PD76-R5.



Заключение


Ну вот и закончилось наше путешествие в удивительный мир микроконтроллеров JetHome. Как всегда, мне удалось только немного приоткрыть завесу тайны над содержимым JetHub E1 PD76-R5 и в дальнейшем нас ожидают не менее увлекательные открытия. Как говорится, — оставайтесь с нами — дальше будет ещё интереснее.

P. S.



Разрабатываете или продаёте контроллеры для DIY рынка? Свяжитесь со мной (в профиле есть ссылка) и, возможно, через некоторое время читатели Хабра смогут узнать о ваших разработках и продукции.

Источник: https://habr.com/ru/company/timeweb/blog/693474/


Интересные статьи

Интересные статьи

В этой статье мы популярно объясняем на собственном опыте как организовать массовую выгрузку, обработку и загрузку фотографий товаров из Bitrix, используя Python и минимальное количество SQL. Для проч...
Среди проектов небольших управляемых машинок, оснащенных камерой, особое место занимают те, которые позволяют быстро, с минимумом деталей собрать нечто управляемое по wi-fi. Но, как правило, сложнос...
Субботний вечер омрачен скандалом - сайт не работает, провайдер негодяй, админы - не специалисты, а сервера - решето. Вызов принят, или почему при всей нелюбви к 1С-Битри...
Всем привет. Когда я искал информацию о журналировании (аудите событий) в Bitrix, на Хабре не было ни чего, в остальном рунете кое что было, но кто же там найдёт? Для пополнения базы знаний...
Cтатья будет полезна тем, кто думает какую выбрать CMS для интернет-магазина, сравнивает различные движки, ищет в них плюсы и минусы важные для себя.