KinCony M30

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

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

M30 как раз и принадлежит к такой категории — на нём установлены ESP32 и ARM и для обоих частей производитель предлагает готовые прошивки. Обо всём этом мы и поговорим далее...

Структурная схема

С M30 не всё так просто — контроллер гибридный, содержит два MCU, и сходу там трудно понять что к чему относится и что за что отвечает. Поэтому для начала я приведу структурную схему контроллера с указанием основных частей, их принадлежности и взаимосвязей.

Общий принцип такой: контроллер содержит два MCU, один из которых (ARM) отвечает за измерение электропараметров, а второй (ESP32) работает в связке с измерителем и имеет традиционную обвязку (Ethernet, USB/UART, GSM и т. д.).

ARM имеет закрытую прошивку, поставляемую вместе с контроллером, а ESP32 поставляется «голым», но производитель предлагает скачать для него специализированную версию KCS (прошивка KinCony для ESP32).

Структурная схема KinCony M30

Структура несколько замороченная, у меня лично никак не укладывается в голове то, что каналы измерения подключены к ARM части, а индикаторные светодиоды — к ESP32. Логичнее было бы и светодиоды подключить к ARM. А ещё лучше — выкинуть всю ARM часть и повесить всё на ESP32 — мощности и быстродействием ESP32 должно вполне хватить для выполнения подобных задач.

Концепция работы

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

Ядром (основной частью) является измерение электропараметров по 30 линиям. Эта функция выполняется ARM частью, которая имеет выходы для связи с внешним миром в виде интерфейсов RS485 и I2C на внешних колодках контроллера. По интерфейсу RS485 (Modbus) можно получать данные по всем 30 каналам измерения и осуществлять взаимодействие с контроллером обычным для Modbus образом.

То есть, другими словами, ARM часть является довольно обособленной и в каком-то смысле самодостаточной — она измеряет электропараметры и отдаёт эти данные по интерфейсу RS485. И для этого M30 имеет прошивку ARM части, установленную на заводе при производстве контроллера.

В этом смысле ESP32 часть является «нашлёпкой», обеспечивающей весь остальной функционал, в том числе связь по множеству дополнительных интерфейсов (Wi-Fi, Ethernet, GSM и т. д.).

Обмен данными между ESP32 и ARM частями осуществляется по Modbus интерфейсу поверх UART соединения (да, вот такие вот затейники работают в KinCony).

Характеристики M30

Теперь давайте познакомимся со списком формальных характеристик M30.

ESP32 часть

  • ESP32 в модификации ESP32-WROOM-32UE
  • Внешняя Wi-Fi антенна
  • 30 светодиодов WS2812
  • Разъём для подключения модуля GSM 4G
  • Возможность подключения внешней GSM антенны
  • Ethernet
  • microSD картридер
  • Разъём USB-B
  • Кнопки «Reset» и «Download»

ARM часть

  • ARM в модификации Artery AT32F413CBT7 (Cortex-M4, 200МГц, 128 кБ)
  • 30 каналов измерения тока
  • 3 канала измерения напряжения
  • Внешний RS485 интерфейс
  • Внешний I2C интерфейс

Прочее

  • Внутренний интерфейс ESP32 – ARM
  • Индикатор наличия питания
  • Разъём питания 12/24 В

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

Внешний вид

Внешний вид не вызывает никаких нареканий. Всё сделано строго и по делу. Некоторое оживление вносят две линейки светодиодов. Сама концепция этих светодиодов несколько спорная, но, с другой стороны, возможность одним взглядом оценить потребление тока по 30 линиям — это совсем неплохо.

Внешний вид

Вид контроллера со снятой металлической крышкой. Всё выполнено аккуратно, в новом стиле контроллеров KinCony третьего поколения. Замечание можно сделать только по поводу расположения microSD картридера — он находится внутри корпуса и для доступа к нему нужно разбирать контроллер.

Вид контроллера со снятой крышкой

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

Вид сверху на плату M30. Возможно, стоило расположить три колодки линий измерения напряжения не отдельно, а вместе, в один ряд.

Вид сверху

В своих материалах KinCony упоминает измерение напряжений в трёхфазной системе 380 В и на плате даже сделаны небольшие пропилы возле силовых дорожек. Но я бы рекомендовал два раза подумать прежде, чем работать с таким напряжением на M30. Или по крайней мере принять все меры предосторожности (книжка «Юный электрик», резиновые перчатки и резиновый коврик вам в помощь).

Вид снизу

Питание

Подсистема питания выполнена на DC/DC преобразователе XL1509 (3,3 В). Светодиод показывает наличие напряжения питания.

Схема питания

Ядро ESP32

По какой-то причине все последние официальные схемы контроллеров KinCony содержат ошибки в распиновке ESP32. Не буду далее вдаваться в этот вопрос, правильную распиновку ESP32 см. ниже в этой статье.

Схема ESP32

USB/UART

Переходник USB-UART на CH340C, USB-B разъёмом для самостоятельного программирования контроллера и двумя кнопками «Reset» и «Download».

Схема USB/UART

microSD картридер

Я долго искал на схеме пин SS (CS) выбора устройства на шине. Оказывается его там вообще нет — картридер единственное устройство на ESP32 SPI.

Схема SD

Ethernet

Стандартная для контроллеров KinCony схема подсистемы Ethernet на LAN8720A.

Схема Ethernet

GSM 4G

KinCony M30 предусматривает возможность подключения 4G GSM модуля SIM7600, что добавляет новое измерение как самому контроллеру, так реализуемым на нём проектам.

Схема GSM

Внешний вид и распиновка модуля SIM7600.

Модуль SIM7600

30 светодиодов WS2812

Как ни крути, а 30 светодиодов WS2812 — это изюминка контроллера (ни у кого нет, а у M30 — есть). Вся гирлянда подключается к ESP32.

Схема подключения светодиодов

Ядро ARM

В качестве ARM ядра используется микроконтроллер AT32F413CBT7 компании Artery. Но на официальной схеме указан STM32F103CBT6.

ARM микроконтроллер

С распиновкой AT32F413CBT7 всё понятно и никаких вопросов не возникает (см. схему ниже). SPI интерфейс используется для обслуживания микросхем получения данных о 30 токовых каналах и 3 каналах напряжения.

Схема ARM части

Каналы измерения

BL0910

В качестве измерителей применяются три специализированные микросхемы BL0910 с SPI интерфейсом. Входные сигналы формируются соответствующей обвязкой. Для тех, кто будет самостоятельно программировать M30, формулы расчёта данных приведены на схеме.

Схема измерителя

BL0910 — это микросхема многоканального измерителя параметров электроэнергии, не требующая дополнительной калибровки и обеспечивающая точность измерения с погрешностью менее 1%. Может работать в разных конфигурациях входов. В контроллере M30 она работает в режиме 1U10I, то есть измеряет 10 линий тока и одну линию напряжения. Соответственно, для обслуживания трёх фаз напряжения и 30 каналов тока применены 3 микросхемы BL0910.

BL0910 может измерять RMS ток и напряжение, активную мощность, активную энергию и другие параметры, может измерять «быстрый ток» (используется для обнаружения неисправностей, таких как перегруза по току).

Микросхема имеет 11 высокоточных Sigma-Delta АЦП, которые могут измерять 11 сигналов (ток и напряжение) одновременно. Структурная схема BL0910 в режиме 1U10I приведена ниже.

BL0910

Более подробно о BL0910 нужно писать отдельный материал, что явно выходит за рамки этой статьи, поэтому на этом мы пока остановимся.

RS485

Стандартная для KinCony схема подсистемы RS485. За тем только исключением, что подключена она не к ESP32, а к AT32F413CBT7.

Схема RS485

Распиновка

Правильная распиновка модуля ESP32 контроллера KinCony M30.

Распиновка KinCony M30

Внешние соединения

Что и как подключать к M30 в интерпретации производителя. Стиль иллюстрации сохранён, только немного окультурен (на экзерсисы их дизайнера просто больно смотреть).

Внешние подключения KinCony M30

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

Внешние подключения KinCony M30

Программное обеспечение

Как я уже отметил выше, программное обеспечение M30 состоит из двух частей — встроенной проприетарной прошивки для ARM микроконтроллера и загружаемой версии фирменной прошивки KCS для ESP32.

Поскольку версия KCS специализированная, то она «знает» об архитектуре ARM части M30 и протоколах общения с ней. Соответственно, после установки этой прошивки в ESP32, пользователю становятся доступны все возможности контроллера M30.

Прошивка KCS

Кроме непосредственно поддержки специфических функций M30, прошивка KCS обеспечивает стандартный для таких систем функционал. Например, взаимодействие по протоколу MQTT и интеграцию с популярными системами автоматизации.

Прошивка KCS

Компания KinCony питает пристрастие к системе Home Assistant, поэтому предлагает конфигурационные файлы и примеры интеграции с HA.

Прошивка KCS

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

А как же DIY?

Для тех, кого не устраивает набор возможностей, предоставляемый фирменным софтом KinCony, остаётся возможность самостоятельного программирования M30. ESP32 часть программируется обычным образом, а для программирования ARM части на плате есть соответствующий разъём. Так что можно снести «родную» прошивку AT32F413CBT7 и сделать всё так, как хочется лично вам.

Заключение

У меня KinCony M30 вызывает противоречивые чувства: с одной стороны, немного странная архитектура и проприетарные прошивки, а с другой стороны, кто мешает всё запрограммировать самому? А с третьей стороны, зачем программировать самому, когда все функции уже реализованы в фирменных прошивках?

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