
Пролог
Как говорят
Чтобы стать хорошим инженером, надо изучать примеры успешных разработок.
Взять хоть стол с подъемной столешницей. Стол для программиста - это вообще святое. От удобства стола зависит производительность труда программиста и, как следствие, качество результата всей работы. Именно за столом на работе по сути и проходит вся трудовая жизнь.
В 2024 я купил себе в кабинет для работы стол с подъемной столешницей. Модель MOTOR UP от компании StolStoya. Стоило это изделие 38k RUR. Спустя год электроника подъёма внезапно перестала работать. Произошел полный отказ. Семи-сегментный индикатор стал показывать непонятный токен rE5. Кнопки перестали слушаться. Столешница застыла под потолком. Я не знал, что мне делать. Пришлось разбираться, что же это такое за шайтан машина: электрический стол.
Теория
Стол с подъёмной столешницей это классический пример полезной встраиваемой системы. Смотрите... Есть физический агрегат (монтировка на которой установлена деревянная плита), облепленный датчиками. Есть исполнительный механизм (актюатор), есть объект управления (H-мост), есть вычислитель (микроконтроллер). В первом приближении со стороны техника сборщика мебели вся система выглядит вот так.

High side - ключ, который коммутирует провод на питание
Low side - ключ, который коммутирует провод на землю
В электронике существует классическая электрическая цепочка, которая называется H-мост (H-bridge). H-мост - это два high side и два low side.

Схема H-bridge позволяет пропускать ток через нагрузку в прямом и обратном направлении. Если в эту цепь подключить DC-мотор, то он будет крутиться либо по часовой стрелке (СW) либо против часовой стрелки (CCW). Также можно модулировать величину тока, если переключать ключи PWM сигналом.
H-мосты активно применяют в маломощных устройствах, которые крутят, например, шаговые двигатели в CNC станках или, например, в контроллерах управления автомобильными стекло-опускателями, выдвижными ramp(ами) и дверями в автобусах. Это всё так называемые прошивки-спинеры. H-мостом можно даже имитировать датчики тока.
Практическая часть
Я взял отвертку и демонтировал крышу пластикового саркофага центрального ECU с названием SHD20 и увидел там нечто. Внутри оказалась PCB главной ECU. Тут явно выделяется какой-то микроконтроллер, силовая цепь электропитания, LDO, электролит конденсатор, катушка индуктивности. Но обо всём по порядку...

На прямоугольной микросхеме судя по маркировке 1301 X 032B 84PGP017 IC2 G2204 в главной плате управления заложен немецкий микроконтроллер XMC1302-T038X0032 от компании INFINEON TECHNOLOGIES. Внутри SoC 32-битный британский ARM Cortex-M0 процессор с 32 kBytes Flash и 16kByte SRAM.

Условно MCU XMC1302-T038X0032 можно изобразить так

Соседняя микросхема имеет маркировку FORTIOR FD2103S FK8051. Это не что иное как Half-bridge Gate Driver. То есть 50% от драйвера H-моста. На PCB таких как раз две штуки.

То есть там один H-мост собранный из двух микросхем FD2103S. Reference дизайн предлагается вот такой. Драйвер управляет внешним H мостом который собран на N-канальных полевых транзисторах.

Микросхема FD2103S нужна чтобы аппаратно не позволить одновременно включить два транзистора в плече H моста. Иначе это бы привело к короткому замыканию.

Рядом с драйвером два N-канальных полевых транзистора 10N06BEG. Всего таких 4 штуки.

В углу рядом с Power Jack есть полевой транзистор NCE55P15K .

Присутствует линейный стабилизатор напряжения LDO 78M05.

Микроконтроллерное управление столом потребовалось для плавного разгона и плавного торможения. Это позволяет уменьшить ускорение конструкции. Уменьшая ускорение, уменьшается и сила, воздействующая на механизмы. Уменьшая силу, можно увеличить срок службы всего изделия.
Плата HMI
Сама PCB HMI выглядит вот так

Из ASICов удалось распознать только AiP650EO R4DT219. Это LED Driver. Благодаря ему по SPI можно управлять многопиновыми LED матрицами. По сути AiP650EO это сдвиговый регистр.

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

Блок питания
Блок питания рассчитан на 29V и 52.2W, однако DMM показывал на выходе только 28.2V.

DC-Мотор
Что касается мотора, то его снять не возникло желания. Слишком много пришлось бы разбирать. Однако прозвонка DMM-ом основного 6-ти пинового разъема показала, что обмотка скорее всего выходит на пины M1 и M2. А H1 и H2 это скорее всего выходы инкрементного энкодера. Либо дискретные датчики-концевики.

BOM
Полный BOM можно посмотреть тут. Вот основная выписки из него.
Количество | ASIC | Назначение |
2 | FD2103S | Драйвер двух транзисторов |
1 | XMC1302-T038X0032 | ARM Cortex M0, Flash 32kByte |
4 | 10N06BEG | N-Channel MOSFET |
1 | 78M05 | Стабилизатор напряжения |
1+ | AiP650EO | LED Driver |
1 | NCE55P15K | P-Channel MOSFET |
Глядя на BOM я так понял разработчики акцент делался в первую очередь на уменьшение стоимости финального BOM. Все ключевые элементы уложились в 700 RUR.

Суммируя разведданные получилась такая схема. ARM микроконтроллер управляет одним H-мостом.

Достоинства данной модели электрического стола
++Есть программный плавный разгон и плавное торможение.
++Если оторвать мотор, то HMI покажет токен E01. Можно заключить, что в прошивке есть Load Detect, чтобы проверять факт оторванного мотора.
++HMI показывает высоту с погрешностью как будто бы до 10 см. Однако это не особо интересно.
Что можно улучшить в электрическом столе?
Если немного пофантазировать, то на тему электрического стола можно придумать весьма много улучшений:
--Уменьшить шероховатость столешницы. Сейчас если провести ногтем против волокон, то палец застревает. Чтобы написать синей ручкой на A4 надо подкладывать стопку минимум из 10 листов. На ИКЕЯ-вских столах такого не было, тут - есть.
--Вместо LDO чипа 78M05 лучше бы поставить импульсный DC-DC преобразователь модели SA24403 (Synchronous Step Down Regulator) от компании Silergy. Это уменьшит нагрев IC.

--Добавить ручку на случай отказа электроники.
--Уменьшить массу деталей. Особенно ножек.
--Микроконтроллер можно было бы выбрать и подешевле. Тот же APM32F030C8T6 от компании Geehy стоит в 6 раз дешевле чем XMC1302-T038X0032. Даже STM32F030K6T6 дешевле на 100 RUR (280 RUR). При этом они тоже ARM Cortex-M0. Вариантов аналогов масса.

--Добавить интерфейс командной строки CLI поверх UART, чтобы устанавливать высоту из PyTTY. UART нужен даже не только для управления, сколько для чтения диагностики, коды ошибок. Например чтение наработки на отказ, выбор режима работы, установка калибровки, конфиги и обновление прошивки загрузчиком.
--Добавить блокировку от детей, а то они на нем станут кататься как на лифте.
--Добавить голосовое управление высотой через инфраструктуру умного дома.
--Регулировать высоту стола от TV пульта (или пульта от кондиционера).
--Добавить esp-01 модуль, чтобы управлять столом по WiFi через PuTTY и читать диагностику.
--Добавить под столешницей гамак для всяческих бумаг.
--Добавить к ножкам колёсики, чтобы можно было подкатывать стол к тем коллегам с которыми надо плотно работать на данном конкретном этапе.
--Данный стол очень долго пришлось собирать. Монтаж требовал сверления направляющих для саморезов, однако дрели не было в комплекте.
--Весь H-мост можно было бы сделать на двух компонентах. MCU и один драйвер на основе ASIC DRV8870. Плата получилась бы компактнее, дешевле, а схемотехника - проще.

Итог
Удалось получить базовое начальное представление о структуре электронной начинки в столе на подъёмной столешнице. Это по сути драйвер одного H-моста, который вертит ось DC-мотором. Всем заправляет прошивка-спинер в MCU. Только и всего. Это обыкновенный ПЛК(PLC) для H-моста.
Электрический стол может быть прекрасным учебным примером для освоения встраиваемых микроконтроллерных систем и ТАУ на практике среди технических университетов.
К слову, сама ошибка была вызвана тем, что стол потерял калибровку. Надо было вручную опустить стол до предела вниз и подать питание. Код ошибки исчез. После этого всё начинало нормально работать.
Если у вас тоже есть стол с элеватором, то напишете, пожалуйста, в комментариях про свою модель.
Ссылки
Название | URL |
Как я покупал стол с регулируемой высотой | |
FD2103S | |
H-мост: Load Detect (или как выявлять вандализм) | |
DRV8870DDAR, Драйвер Brushed DC двигателей, 3.6А [HSOP-8 EP] | |
BOM | https://docs.google.com/spreadsheets/d/1O2WSUAk4vj2druayIJhZvlOFlnic84qghIHtkdB-PJg/edit?gid=0#gid=0 |
SA24403FCA | https://www.chipdip.ru/product/sa24403fca-silergy-8025122151 |
Cделал компьютерный стол с подъемным механизмом | |
XMC1302T038X0032ABXUMA1 | https://www.chipdip.ru/product/xmc1302t038x0032abxuma1-infineon-8024052489 |
Словарь
Акроним | Расшифровка |
BOM | bill of materials (список компонентов) |
ЗК | Короткое замыкание |
MCU | microcontroller |
DC | direct current |
ПЛК | программируемые логические контроллеры |
LDO | Low-dropout regulator |
ТАУ | теория автоматического управления |
AC | Alternating current |
DMM | digital multimeter |
ECU | Electronic Control Unit |
SWD | Serial Wire Debug |
PCB | printed circuit board |
SPI | Serial Peripheral Interface |
LED | light-emitting diode |
HMI | Human-machine interface |
ASIC | Application Specific Integrated Circuit |
Вопросы
--Как на стороне микроконтроллера можно проверить факт оторванной нагрузки в H-мосте?
--Существуют ли в продаже отдельные stand alone ПЛК контроллеры для управления H-мостом по UART, RS232 , RS485 или CAN?