В своём блоге я разбирал очень интересный контроллер Lavritech L1 Lite, сделанный на основе «материнской» платы LavriBoard7 Lite. Этому были посвящены пять статей: обзор, архитектура, программирование внутренних модулей, программирование внешних блоков на DIN-рейку, пример подключения электросчётчика SDM220 по протоколу RS485.

Все эти статьи относились к так называемой Lite версии, то есть к урезанной версии контроллера с одним регионом SOCKET1. Сегодня в моём распоряжении имеется полноценная версия контроллера Lavritech L1 с тремя регионами сокетов на базе платы LavriBoard7 версии V1.8. Об этом замечательном девайсе и пойдёт речь в этой статье.

Контроллеры Lavritech


У меня сложилось впечатление, что из-за повышенной сложности внутренней организации плат LavriBoard7 не все сумели по достоинству оценить потенциал модульной архитектуры контроллеров Lavritech — на самом деле это очень перспективная технология и настоящий «ящик Пандоры» (так же названа одна из статей цикла) — вы можете буквально как из кубиков Lego собирать модификации контроллера под свои задачи.

Чем больше я работаю с этой платформой — тем больше она мне нравится. Применительно к DIY, контроллеры Lavritech — это одна из немногочисленных альтернатив «монструозным» контроллерам компании Kincony, когда можно просто взять нужное железо и запрограммировать ESP32 или вообще просто залить одну из готовых прошивок для него.

(Хотя сам производитель позиционирует эти контроллеры в основном не для DIY, а для профессиональных инсталляторов систем автоматизации и делает проекты и выпускает коммерческие изделия на основе этих плат.)


Контроллеры Lavritech L1 и Lavritech L1 Lite

Немного о терминологии.

Разработчики Lavritech люди творческие и мыслят нестандартно и оригинально (Think, так сказать, Different), что отражается также и на наименовании их изделий и продуктовых линеек — сходу в этом «творческом беспорядке» не так-то легко разобраться. Попробую кратко «расставить всё по полочкам»:

Нужно различать контроллеры Lavritech (как законченные изделия в корпусе) и «материнские» платы, лежащие в основе этих контроллеров.

Контроллеры называются Lavritech L1 (полная версия) и Lavritech L1 Lite (урезанная версия для простых проектов).

Платы называются LavriBoard7 (полная версия с тремя регионами сокетов) и LavriBoard7 Lite (упрощённая версия с одним регионом сокетов).

Причём LavriBoard7 — это как название плат, так и название самой платформы (архитектуры) этих плат. Под платформой в данном случае подразумевается совокупность разъёмов и прочих элементов на плате и их расположение относительно друг друга и самой платы (это принципиально важно). Цифра 7 непосредственно не несёт какой-либо смысловой нагрузки — это просто часть названия архитектуры (изначально это было количество разъёмов на плате).



Платы LavriBoard7 и LavriBoard7 Lite

Теперь давайте перейдём непосредственно к анатомированию пациента Lavritech L1 и посмотрим как он устроен и как мы можем его использовать в разработке своих IoT систем.

Lavritech L1


Начнём с упаковки. Контроллер Lavritech L1 поставляется в небольшой картонной коробке, которая также содержит две антенны — LoRa 868 МГц и GSM для модуля SIM800L.



Тут нужно помнить, что Lavritech L1 — это модульный контроллер и его начинка может кардинально отличаться от имеющейся в моём распоряжении — внутри могут быть установлены различные модули из номенклатуры, содержащей десятки вариантов (DI, AI, DO, RS485, LAN, CAN, LoRa, GSM и т. д. и т. п.) и, соответственно, в комплекте могут быть другие антенны или их может не быть вовсе — всё зависит от того, какую конфигурацию вы выберите.

Модули выпускаются как самой компанией Lavritech, так и доступна широкая номенклатура совместимых модулей из экосистемы Wiren Board, что в совокупности даёт практически неограниченные возможности по наполнению контроллера — доступны буквально десятки модулей и я даже не знаю какое количество их сочетаний — наверное сотни или тысячи.

(И что самое интересное — никто не мешает вам сделать свой оригинальный модуль под потребности вашего проекта — благо развести и распаять небольшой модуль не в пример проще, чем целый контроллер.)


Моя небольшая, но очень интересная коллекция LT-совместимых модулей

С обратной (верхней) стороны корпуса Lavritech L1 видны Ethernet разъём и два антенных SMA разъёма: в плате — для LoRa и в корпусе — для GSM модуля SIM800L. В других модификациях контроллера вместо LAN модуля на чипе WIZnet W5500 могут быть установлены (внутренние) WB SPI модули различного назначения или колодки для вывода GPIO контактов микроконтроллера ESP32 напрямую или через транзисторы с открытым коллектором или в т. н. PWM конфигурации (как тебе такое, Илон?).


Обратная сторона луны

Теперь от общего обзора контроллера переходим к разбору его содержимого — платы LavriBoard7 и установленных в моей конфигурации модулей.

Плата LavriBoard7


Вынимаем плату из корпуса (кстати, корпус разбирается очень легко — достаточно поддеть отвёрткой четыре фиксатора) и видим некое подобие IBM PC в мире контроллеров: материнская плата, в которую вставлен центральный модуль на ESP32 и три модуля, установленные в т. н. «регионы сокетов» SOCKET1, SOCKET2 и SOCKET3 (о регионах и сокетах см. подробнее в предыдущих статьях цикла).



В данном случае в слоты установлены модули:

LT-SIM800L V2.1 (новое название LTE2R-SIM800L) — 2G GSM модуль, установлен в WB разъём SOCKET1, использует для связи с микроконтроллером ESP32 интерфейс RX/TX и подключается к внешней антенне, установленной на корпусе контроллера.

LT-DI-WD6 V1.0 (новое название LTEU-DI-WD6-ISO) — модуль 6-и цифровых входов с групповой гальванической изоляцией и I2C управлением. Установлен в EUHP разъём региона SOCKET2 и использует соответствующие боковые колодки для DI входов.

LT-ADS1115 V2.0 (новое название LTEU-ADS1115-ISO) — модуль на 4 аналоговых входа 4-20 мА с групповой гальванической изоляцией и I2C управлением. Установлен в EUHP разъём региона SOCKET3 и использует соответствующие боковые колодки для AI входов.

Под эту конкретную конфигурацию на корпусе имеются соответствующие наклейки. Обратите внимание: надписи для основных функций контроллера сделаны на корпусе лазером, а для сменяемых модулей предусмотрены наклейки — вы можете в любой момент заменить модуль на другой и соответствующим образом промаркировать контакты колодки.



На фото платы (см. выше) также виден установленный DC/DC модуль питания на входное напряжение 8-36 В. Напомню, платы Lavritech по умолчанию поставляются без модуля питания и предусматривают работу от стабилизированного источника постоянного напряжения 5 В (об этом есть надпись на корпусе).

При помощи перемычек на плате модуль питания может быть сконфигурирован для работы в режимах с общей или изолированной землёй.

Ниже представлен внешний вид материнской платы контроллера без установленных модулей расширения, только с одним центральным модулем на ESP32. Надпись «LavriBoard Max V7.1.8» — это старый вариант названия, по «новому стилю» плата должна называться «LavriBoard7 V1.8», что гораздо более логично и понятно.



На обратной плате распаян LoRa модуль, что, на мой взгляд, несколько не системно — разновидностей радиомодулей существует огромное количество (для решения различных IoT задач) и непонятно почему следует отдавать предпочтение именно LoRa. Хотя, с другой стороны, кашу маслом не испортишь — пусть будет, а если понадобится, то другие беспроводные интерфейсы можно добавить традиционным для контроллеров Lavritech способом — при помощи соответствующих модулей.



Три региона сокетов


Поскольку полная версия платы LavriBoard7 и её Lite версия отличаются в основном только количеством регионов сокетов, то здесь я не буду подробно останавливаться на архитектуре плат (о ней вы можете почитать в предыдущих статьях). Здесь я только немного подробнее разберу возможности, которые нам даёт наличие трёх сокетов на борту.



Как вы видите, полная версия платы имеет три региона сокетов, каждый из которых содержит три разъёма (WB, WB SPI и EUHP), две колодки по четыре контакта и несколько конфигурационных резисторов.

Более подробная схема региона сокета:



Здесь боковые разъёмы (WB/WB SPI) непосредственно соединены с выходными колодками, а в центре этой конструкции находится разъём EUHP. Тонкость заключается в том, что положение разъёмов относительно друг друга и относительно самой платы контроллера строго определены, что позволяет использовать эти разъёмы как по отдельности, так и совместно для установки широких модулей, которые используют для подключения все три разъёма одновременно.

Другими словами, в любой из трёх сокетов (SOCKET1, SOCKET2, SOCKET3) можно установить от одного до трёх модулей. Что в совокупности для полной версии платы даёт нам возможность установки до девяти модулей одновременно.

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

Технические подробности


Вообще, теме электрического подключения модулей к контроллеру Lavritech L1 и его конфигурации нужно посвящать отдельную статью, частично я эту тему уже освятил в статье «Lavritech V7.1 Lite: открываем ящик Пандоры». Здесь я только кратко остановлюсь на общих принципах подобных подключений.



Каждый сокет имеет т. н. «конфигурационные резисторы» (перемычки), которыми можно подключить GPIO линии от микроконтроллера ESP32 к разъёмам WB и WB SPI по схеме UART/I2C. Эта схема во многом условна — эти линии могут использоваться как контакты соответствующих интерфейсов, так и просто как GPIO линии, назначение которых определяется программистом прошивки (тут у нас полная свобода действий). Разумеется, разъём WB SPI кроме этого имеет возможность работы по SPI интерфейсу.

«Серединный» разъём EUHP может использоваться как отдельно (для отдельных модулей или разъёмов), так и для совместной работы с боковыми разъёмами WB/WB SPI (в основном для проброса входных/выходных линий на колодки) в составе «широких» модулей.

В трёх предыдущих абзацах я кратко описал общий принцип организации регионов сокетов. Теперь несколько слов о различиях электрических соединений SOCKET1, SOCKET2 и SOCKET3:

SOCKET1: с точки зрения электрических соединений это самый простой сокет — тут имеется возможность выбрать назначение интерфейсных пинов SDA/SCL или S1_RX/S1_TX (S3_RX/S3_TX) для WB/WB SPI разъёмов и пин INT для разъёма EUHP. Выбор той или иной конфигурации производится при помощи перемычек (резисторов с нулевым сопротивлением) на плате. Номера резисторов и схема распиновки есть в Wiki на сайте производителя (см. также распиновку ниже).

SOCKET2 и SOCKET3: с этими сокетами дело обстоит несколько сложнее — контакты I2C интерфейса SDA/SCL и пин INT разъёма EUHP подключаются так же, как и у SOCKET1, а контакты RX/TX для этих сокетов могут браться при помощи конфигурационных перемычек из матрицы линий SPI и прочих пинов LAN и LoRa модулей (зависит от конфигурации). Кроме того, SOCKET3 не имеет WB SPI разъёма — оба разъёма просто WB.

С одной стороны, такая схема даёт в руки разработчика беспрецедентную свободу действий — вы можете при помощи перемычек на плате создать нужный вам вариант распиновки сокетов. С другой стороны самостоятельная конфигурация регионов SOCKET2 и SOCKET3 требует хорошего понимания архитектуры LavriBoard7.

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

Распиновка


Ниже представлена распиновка центрального модуля плат LavriBoard7 (полной версии с тремя регионами сокетов).



Некоторые контакты, обозначенные на распиновке как линии модулей ETH и LORA, на самом деле являются многофункциональными и в конфигурациях контроллеров без LAN и LoRa модулей могут использоваться, например, как GPIO или PWM линии для вывода на колодки — всё это конфигурируется перемычками на плате.

Заключение


Это был только краткий обзор полной версии контроллера Lavritech L1, на самом деле эта тема практически неисчерпаема — можно написать статьи по конфигурации плат LavriBoard7, применению различных модулей, практических проектах на основе этой технологии и её перспективах развития.



Возможно, захочется почитать и это:


Комментарии (8)


  1. Tavrid
    17.08.2023 09:40

    И все же я считаю попытки инженеров впихнуть все в универсальный DIN корпус - неверным вектором развития и эволюции контроллеров.
    Так как все это потом попадает в другую коробку, где масса оборудования под напряжением, а производители не особо задумываются о защите от наводок, наивно полагая, что DIN корпус "железный", в итоге возникают "сюрпризы" в работе.
    В концепции матплаты Lavritech дикое количество разъемных соединений, и как показал опыт отправки кубсата в космос (отвалился контакт с SD) - все эти соединения = зло, сложно предугадать момент когда соединение пропадет, возможности распаять все эти соединения практически нет (разве что заказав индивидуально мат.плату без распайки socket-разъемов).


    1. smart_alex Автор
      17.08.2023 09:40

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

      Если смущают разъёмные соединения — никто не мешает впаивать модули прямо в плату.


  1. shadovv76
    17.08.2023 09:40

    на первый взгляд это отладочная плата ESP32 с большим количеством разъемов. Корпус красивый, но не обоснованно большой в высоту.

    производитель модуль готовый использовал? или сам модуль тоже сами разводили?

    что именно в этой плате позволяет говорить о надежности использования ее в качестве серийного контроллера?

    производитель добавил какие то защиты по сигнальным линиям? гальванически развязали от "поля" (оптопары, супрессоры, защиты от переполюсовки)? предусмотрели резервирование питания? резервирование Flash-памяти? горячее подключение сигнальных линий?


    1. Tavrid
      17.08.2023 09:40

      Формфактор "на DIN рейку" уже говрит о том, что это больше для домашнего использования, в этом формате защиту не впихнуть. Я сам крутил и так и сяк и понял, что нужно использовать нормальный корпус общий пластик + металл внутри для защиты вычислительной части.


    1. smart_alex Автор
      17.08.2023 09:40

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

      Косвенно о работоспособности контроллеров говорит то, что Lavritech делает свои проекты на них (и, насколько я знаю, нареканий на их работу у заказчиков нет).


      1. shadovv76
        17.08.2023 09:40

        да поправил. вопросы производителю :)

        автоматически ассоциировал автора с ним


      1. shadovv76
        17.08.2023 09:40

         :)


        1. smart_alex Автор
          17.08.2023 09:40

          У них есть Telegram группа (найти можно по аббревиатуре EUHP) — там можно получить ответы на любые вопросы непосредственно от разработчиков.