
Пролог
Как говорят
Чтобы стать хорошим инженером, надо изучать примеры успешных разработок.
Взять хоть стол с подъемной столешницей. Стол для программиста - это вообще святое. От удобства стола зависит производительность труда программиста и, как следствие, качество результата всей работы. Именно за столом на работе по сути и проходит вся трудовая жизнь.
В 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?
Комментарии (0)

xSVPx
13.09.2025 18:08В таком столе главное механика. Двигатель любой можно приспособить(если вдруг родной умер), переделать управление на esp32 и управлять им после этого как заблагорассудится. Былоб желание.

aabzel Автор
13.09.2025 18:08Весь H-мост можно было бы сделать на трех компонентах. Два внешних N-канальных полевика и один драйвер на основе ASIC VNHD7008AY. Плата получилась бы компактнее, а схемотехника - проще.


randomsimplenumber
13.09.2025 18:08Н мост можно взять готовый. Можно собрать из 2 полумостов. Типовых решений - вагон.

aabzel Автор
13.09.2025 18:08Есть ли российские микросхемы драйверы Н мостов?

checkpoint
13.09.2025 18:08КР1128КТ4 - четырехканальный полумостовой токовый переключатель с ограничительными диодами на выходах. Ток очень низкий (0,6 A), но можно соединять два H-моста параллельно.
Еще есть КР1128КТ3А - тоже самое но без диодов, Iн = 1А.

aabzel Автор
13.09.2025 18:08Н мост можно взять готовый.
Самый дешевый вариант поставить DRV8870

цена 39 RUR


aabzel Автор
13.09.2025 18:08Или весь H мост собрать на одной L6203.


checkpoint
13.09.2025 18:08Китайская промышленность выпускает готовые модули на базе L298N с ограничительными диодами. Цена от 113 руб. Можно собрать и самому, но L298N в Чипдипе обойдется в три раза дороже.

randomsimplenumber
13.09.2025 18:08Семи-сегментный индикатор стал показывать непонятный токен rE5
Сия вундервафля разработана, походу, лет 30 назад. В 21 веке можно добавить пару баксов на нормальный дисплей.
Подобная конструкция у меня в теплице форточку открывает. Мотор от стеклоподьемника, Н-мост из 2 реле и mosfet для плавного старта, концевик, датчик Холла вместо енкодера. Вся теплица дешевле чем стол с моторчиком ;)

aabzel Автор
13.09.2025 18:08А какой у Вас ASIC для драйвера H-моста?

randomsimplenumber
13.09.2025 18:08esp32c3 ;)

aabzel Автор
13.09.2025 18:08Программно решили делать защиту от КЗ?

S-trace
13.09.2025 18:08Если мост на двух реле собран - реле похоже имеют несколько контактных групп (минимум по две). Если групп 3 или больше - можно сделать аппаратную электрическую взаимоблокировку (по схеме как у контакторов вспомогательные блок-контакты подключаются в реверсивной схеме, но там по хорошему ещё и механическая взаимоблокировка дополнительно подстраховывает).
В принципе можно блокировку сделать и с двумя контактными группами, но это малость сложнее и требует дополнительных компонентов (прежде всего приходят на ум транзисторные ключи на размыкание питания катушек крест-накрест друг от друга).

randomsimplenumber
13.09.2025 18:08У моста на 2 реле нет запрещенных состояний. А от кз защита в блоке питания

VelocidadAbsurda
13.09.2025 18:08Как уже сказали, защита от КЗ решается и на стороне БП, а более важная, на мой взгляд, функция драйвера FD2103, не упомянутая в статье: управление N-канальным транзистором в верхнем плече (схема с накачкой внешнего конденсатора Cbs, формирующая напряжение затвора выше напряжения питания, без чего N-канальник не откроется).

randomsimplenumber
13.09.2025 18:08MC33886, на который у меня были планы, оказался битым. Строить charge pump не хотелось, а паяльник уже включил.. Пришлось импровизировать.

checkpoint
13.09.2025 18:08Я бы добавил polyfuse (восстанавливаемый предохранитель) на 3А в цепь питания моста. На всякий случай.
VT100
78M - не LDO. А вот его перегрев и перегрев соседних конденсаторов при высаживании такого входного напряжения - более, чем вероятны. Особенно, если в простое не отключается индикация.
P.S. Grammar-nazi mode:
..... длина SPI шины тут составляет около полутора метров.
..... длина SPI шины тут составляет примерно полтора метра.
DanilinS
Да, гасить напряжение от 28 вольт до 5 линейным стабилизатором не слишком разумное решение.
randomsimplenumber
Многие так делают. Нормальное решение.
VT100
Даже если на всё про всё потребляется 50 мА, то мощность рассеяния на стабилизаторе - более 1 Вт. Соседнему конденсатору придётся несладко.
randomsimplenumber
50 ма - оооочень много.
Я как то ковырял мозги от котла Ferroli - там тоже мелким стабилизатором без радиатора роняют с 30 до 5 В. Ничего не греется.
VT100
Светодиодный индикатор.
"Пока не открыты все архивы - мы имеем право на любые предположения."
DanilinS
Для тока 50 мА не ставят стабилизатор с максимальным током 1А.
Там скорее всего сотни мА.
VT100
Вопрос не в мА как таковых, а в отводе тепла. 78M - уже имеет "пузо".
При 200 мА (5 Вт) - под ним бы уже плата начала обугливаться.
randomsimplenumber
Раз плата не обуглилась - там нет такого тока.
serghs
Оно не "нормальное", оно "широко распространённое"...
А это не всегда критерий правильности.
randomsimplenumber
Критерием истины является практика ;). Работает, точкой отказа не является.
aabzel Автор
Вместо LDO чипа 78M05 лучше бы поставить импульсный DC-DC преобразователь модели SA24403 (Silergy).
Это уменьшит нагрев.