Предыстория вопроса

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

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

Цель и средства

Опишу основные этапы «большого пути».

  1. В системе есть два двигателя. Первый силовой (5кВт) BLDC с уже имеющимся контроллером VESC. Второй — которым и нужно управлять (более слабый), шаговый мотор.

  2. На каждом двигателе присутствует по энкодеру. Значение «скорость» и «положение» необходимо считывать с них.

  3. Разрабатываемый блок будет работать совместно с VESC контроллером. Взаимодействие по CAN шине.

  4. Скорость вращения шагового мотора должна регулироваться: 0 — 850 об/мин.

  5. Необходим вариант «изолированной» работы разрабатываемого блока от VESC. То есть вращение шагового мотора необходимо подстраивать в зависимости от показаний энкодера с вала тяговой установки на VESC.

  6. Необходим вариант, когда в силовом инверторе производится расчёт скорости вращения мотора. Эта скорость передаётся в разрабатываемую плату управления по CAN.

  7. Реализовать работу с двумя энкодерами: раз или двас.

  8. Реализовать поддержку двух концевых выключателей.

  9. Напряжение питания системы: 72 В.

  10. Необходимо наличие RS232 и RS485 для внешней связи и управления установкой (один на выбор, или-или).

  11. Реализовать стандартный STEP/DIR интерфейс с гальванической развязкой.

  12. Установить три светодиода для отображения статусов.

  13. Установить 4 переключателя для выбора режима работы.

  14. Постараться разработать прототип для контрактной сборки в дружественном Китае у одного из производителей электроники.

  15. Разработать блок дешёвый на производстве мелкими сериями.

Вообще это выжимка из большого ТЗ с картинками и блэкджеком для того, чтобы не публиковать тут текста на 15 минут внимательного прочтения.

Анализ ТЗ

Шаговый мотор был приведён в ТЗ — это ST57–100E. Какой момент он должен обеспечить и какую скорость, тоже дано. Ну, по классике видится использование H‑моста для управления каждой обмоткой. Драйвер и ключи будут подобраны потом в процессе детальной проработке схемы и после расчётов. Примерная прикидка дала очень малую частоту тока (что‑то до 5кГц, что меня совсем не пугает). А вот напряжения и токи сразу показались большими. Нужно детально рассчитать.

Интерфейсная часть.

CAN, RS232, RS485 особо и нечего рассматривать, просто запомнить, что нужны под них UART на контроллере и выбрать микросхемки китайские подешевле из тех, в которых уверен. А совсем идеально будет, если напряжения их питания ещё будут совпадать с питанием контроллера.

STEP, DIR интерфейс. Что‑то слышал про него, 5 минут чтения в интернете и понял, что тут тоже особо нет ничего сложного. Нужна гальваническая развязка — оптопара.

Завести два концевых выключателя. Вообще, датчики бывают с выходом npn и pnp, предусмотрю‑ка, на всякий случай, возможность подключения любых типов (я просто уверен, что когда‑то купят или поставят не те датчики), и защиту от КЗ (на этот же случай).

Энкодеры. Один энкодер штатно установлен на шаговом моторе, второй же — покупной. Радует, что питания у них одинаковые — уже меньше работы. Энкодеры имеют дифференциальные выходы сигнала, стандартные выходы инкрементальных сигналов А и В, а один ещё имеет и метку полного оборота Z. Для таких решений сразу вспомнилось стандартное решение на AM26C32CD, кстати, тоже питается от +5В и, конечно же, китайского производства. Их, пожалуй, и применю. Хорошим тоном будет также, как и с концевыми выключателями, предусмотреть защиту от КЗ по питанию.

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

Немного математики

После анализа пунктов ТЗ начал изучать тёмные моменты (не материю, а жаль).

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

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

Тип мотора был приведён в ТЗ — это ST57-100E, который имеет следующие параметры:

  1. Количество фаз: 2

  2. Ток фазы: 4,2 А

  3. Сопротивление обмотки 0,8 Ом

  4. Индуктивность 2,6 мГн

  5. Шаг 1,8 градуса (я не математик, но это 200 шагов на оборот ?)

  6. Момент удержания 2,5 Н/м

  7. Имеет встроенный энкодер с питанием +5В

Насколько я знаю шаговые двигатели делятся по разным параметрам и конструктиву, но есть большие три группы: с постоянным магнитом на роторе, с ротором из специального сплава, который подмагничивается в процессе работы (по-разному называют: реактивный, с переменным магнитным сопротивлением) и гибридный. У меня тут гибридный, который имеет 200 полюсов. Вообще тема интересная и много информации есть в интернете.

Далее я знаю, что двигатели имеют два деления по структуре обмоток: униполярные и биполярные. Мне дан биполярный. Для меня это значит, что для управления мне нужно делать полный мост. То есть я должен обеспечить движение тока в разных направления в каждой обмотке.

Далее, нужно понять, чем питать этот мотор, чтобы получить необходимую скорость с необходимым моментом силы.

Мне нужно его заставить крутиться со скоростью до 850 об/мин. Чтобы узнать сколько шагов в минуту мне нужно с него получить, следует умножить количество его шагов в полном обороте на нужное число оборотов в минуту.

850 (об/мин) * 200 (шаг/об) = 170000 шагов в минуту.

После этого определяю необходимую частоту управления им в кГц. Для этого узнаю количество шагов, которые необходимо сделать в секунду. А потом делю на тысячу (а то в Гц получится).

170000 (шаг/мин) / 60 (сек) = 2833,3(3) (Гц), то есть 2,834 кГц максимум.

Дальше добавляю к математике немного физики. Узнаю, что станет с сопротивлением катушек двигателя при переменном токе заданной частоты (это что-то про реактансы, импедансы…):

R(L) = 2*π*f*L

f – частота, приложенная к катушке индуктивности (наша обмотка двигателя)

L – индуктивность катушки индуктивности

2* π=6,28 ?

Вообще этот расчёт не даст суперточного результата, так как двигатель более сложная система (не катушка индуктивности), с общим сердечником, в котором электромагнитные поля при вращении ротора ведут себя хитрО, да и сам статор – сердечник своеобразно влияет на процесс. НО этот расчёт даёт достаточно информации для проектирования драйвера двигателя и понимания какие токи и напряжения мне нужны. Для более полной картины можно воспользоваться программой Maxwell от ANSYS, если у вас, конечно же, есть столько денег, чтобы себе её купить и есть достаточно времени для её освоения.

2*3,14*2800 (Гц) * 0,0026 (Гн) = 45,7 (Ом) – реактивное сопротивление обмотки мотора.

А ещё у меня есть активное сопротивление, про которое на таких значениях реактивного легко забыть, но лучше учесть:

45,7 (Ом) + 0,8 (Ом) = 46,5 (Ом) - полное сопротивление катушки двигателя.

По закону Ома, чтобы получить необходимый ток в катушке (ну что бы получить нужный мне момент), необходимо приложить к ней:

U = R*I,

U = 46,5 (Ом) * 4,2 (А) = 195,3 (В)

Целых 195В, не малые такие значения.

После этой простой математики и не более сложной физики можно и драйвер начать разрабатывать.

Есть отличный онлайн визуализатор от уважаемых nanotec, который демонстрирует работу двигателей, драйверов и даже обратной связи.

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

А инструмент, показывающий работу в режиме микрошаг – просто шикарен.

Проработка схемотехники

Я люблю рисовать блок-схемы перед началом разработки чего-либо. Первоначальная была приведена в ТЗ заказчиком (но то была общая блок-схема прибора), что, кстати говоря, очень помогло понять суть проекта. Далее рисую в блокноте кучу разных функциональных блоков и соединяю их стрелочками. И когда уже есть какое-то решение, удовлетворяющее ТЗ и моим эстетическим парадигмам, вырисовываю это в чистовик. Вот что у меня получилось:

Ещё один момент, часто финальная реализация отличается от первоначальной блок-схемы из-за того, что в процессе проработки схемы электрической находишь более лучшие решения. Причём, это не тот случай, когда лучшее — враг хорошему. И это нормально (с). Однако без первоначальной блок схемы разрабатывать устройства не рекомендую.

После проработки блок-схемы приступаю к частичной проработке схемотехники и выбору элементной базы. Почему именно так? Поскольку реализовать одну и ту же функцию в приборе, как правило, можно кучей разных способов, а каким именно лучше, решаешь сам. Моя давняя мысль такая: десять схемотехников реализуют одно и то же устройство десятью разными способами; из десяти решений восемь даже будут работать?, шесть будут реально отвечать ТЗ, а три — четыре будут ещё вдобавок элегантно сделаны.

Итак, у меня самое интересное — это драйвер мотора, с которого и начну. По рассчитанным мною параметрам двигателя, требованиям к его скорости вращения и зная питающее напряжение, были выбраны силовые ключи. Выбор пал на N‑канальные транзисторы. Проще было бы сделать на P — канальных в верхнем плече и на N — канальных в нижнем, но P‑ канальные сильно проигрывают по параметрам. Далее, для их управления заложить бы всеми известные полумостовые драйверы IRхххх, но я сделал свои на транзисторах. Это решение проигрывает по некоторым параметрам интегральным драйверам, но действительно сильно выигрывает по цене. Как говорится: «копейка рубль бережёт, а рубль голову стережёт». Да и очень порой хочется изобрести велосипед. Типа йога для извилин.

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

Вообще на 100 кГц уже заваливается фронт, но меня это не беспокоит, так как в этом изделии скорость переключения будет достаточно маленькая.

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

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

Ещё здесь есть важный момент. Фильтр на входе ОУ и полоса среза самого ОУ. Конденсаторами стоит выставить верную частоту, что бы блок не уходил постоянно в защиту при работе, и что бы защита была не настолько «дубовой», чтобы допустить фиаско. Этому моменту я уделил особое внимание при пусконаладке.

После этого была нарисована схема цифровых интерфейсов, реализованная на одних из самых простых и дешёвых микросхемах, производства Поднебесной — спасибо товарищу Си за наше почти счастливое настоящее! Чтобы мы без него делали…

Из приятных особенностей отмечу, что все микросхемы имеют питание 3,3В, что удобно как для организации общего питания с контроллером, так и для согласования уровней. На линиях, выходящих «наружу» установлены простые защитные диоды, из-за различия в уровнях напряжений интерфейсов не получилось сделать оптимизацию и применить одинаковые супрессоры, «каждому своё» — не буду напоминать, где эта надпись присутствовала — ночь на дворе…

Как писал выше, ещё при анализе ТЗ были идеи как ввести энкодеры. Такие микросхемы и применил. AM26C32 также производится китайскими производителями микроэлектроники и стоит копейки, а в юанях и того дешевле будет. При этом в надёжности не проигрывает американским от TI.

Из интересного на этой схеме. Энкодеры питаются от 5В, так что само применение микросхем с ещё одним доменом питания меня не смутило. По-любому +5В было бы в устройстве. Очень не рекомендовано выводить напряжения питания наружу с устройств. Всегда есть вероятность, что внешнее КЗ обесточит всё устройство и все наши надёжности сведутся на нет замыканием какого-то провода. Поэтому, тут организованы стабилизаторы тока на выходах питания энкодеров. При замыкании выхода питания на землю, максимальный ток в этой цепи составит 100мА, приемлемо. Видим на схеме прикидку по мощности на транзисторах (440 и 60 мВт), не страшно, но полигон подключить стоит к ним по жирнее при трассировке.

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

А сами входы были сделаны достаточно универсальными, выбор типа датчика (PNP или NPN) выбирается внешним переключателем, который подключает подтягивающий резистор.

Из внешнего осталось реализовать STEP, DIR. Тут есть простая гальваническая развязка, защита от переполюсовки включения и схема, как расширяющая входной диапазон напряжений управления, так и являющаяся источником тока для диода оптопар.

Далее HMI (капец модное слово сейчас) интерфейс, то есть светодиоды и переключатели.

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

А сейчас шок-контент! Что же управляет всей это схемой на россыпухе и китайских микросхемах? Американский микроконтроллер серии Tiva, а точнее TM4C123xxx. Не логично как-то это, но обо всём по порядку.

А завершает и питает всю схему китайская троица из двух DC/DC понижающих конвертеров и одного линейного стабилизатора.

Китайские XLsemy имеют в своём ряду интересные, надёжные и дешёвые (жаль, низкочастотные, но за всё надо платить) преобразователи напряжений. Тут высоковольтный, аж с диапазоном входных напряжений 100+ (В) очень выручил, ибо питание от 75В, а надо учесть и выбросы с моста и вообще добавить запас на надёжность.

Общая структура проекта выглядит так:

После разработки схемы, как правило, заказываю комплектацию, но данный проект будет собираться «под ключ» в Китае, так что пока просто выгрузил BOM и отправил на оценку изготовителю.

Изначально будет собрано 2 экземпляра для отладки. А это даёт некое удорожание компонентов и монтажа. Вот что мне прислали, привожу не полный BOM, но порядок цен можно понять:

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

А сам приступлю к разработке печатной платы.

PCB

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

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

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

На картинке видно самое начало компоновки.

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

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

Ну, скажите, какой проект в «наше трудное время» массового ипортозамещения делается без собственного логотипа? Вот и в данном случае человек предоставил своё лого для размещения на плате.

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

Заказ плат

Платы заказывал в Китае с вариантом сбора комплектации ими. Дело в том, что так в цене выигрываем по стоимости компонентов, нежели приобретая их в России, при этом мелкосерийная сборка сейчас на родине дешевле: человеческая сила у нас ныне ценится дешевле. Зато заказывать серии плат со сборкой на автоматах выгоднее, чем собирать тульским «Левшой» — пока автоматы там ещё дешевле, чем люди тут. Но не стоит отчаиваться...

Вот так выглядит посылка с Китая. Видим плату и элементы по пакетикам. Разложено всё с умом, удобно — как для людей…

Монтаж блоков

Монтаж блоков был осуществлён вручную, но с использованием проверенных временем технологий. Без паяльного трафарета, но зато паста наносилась дозатором и компоненты на неё устанавливались пинцетом вручную. После этого блок поехал в печку на оплавление. Результат — с пылу-жару — высший класс!

После печки были доставлены выводные элементы обычным паяльником.

В финале, после сборки, блок стал выглядеть так:

После монтажа идёт этап контроля.

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

Пусконаладка

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

Микроконтроллер

Выше писал, что на удивление был выбран и заложен в схему не Китайский артери или wch или любой другой от гига, а американский 32-разрядный микроконтроллер на базе Arm Cortex-M4F.

А связано это с 4 причинами:

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

Во‑вторых, этот электронный блок разрабатывался в конце 2022, когда кризис кремния + санкции сделали всеми любимые stm какой‑то фантастически дорогой редкостью, а упоротые заявления директоров ST ещё и подорвали веру в то, что в мелкосерийных устройствах стоит применять их продукты. А эти контроллеры, не знаю почему и как, до сих пор в избытке на складах и спокойно покупаются в РФ. На Элитане, Алиэкспрессе и на складе JLC, PCBway они лежат тысячами. При этом их цена около 5–6$ при штучной закупке. Как это происходит — не знаю, но меня устраивает подобный расклад.

В‑третьих, в этих контроллерах есть все необходимые интерфейсы, а если посмотреть глубже, то даже больше. Например, вот что видим в описании про PWM: «усовершенствованное управление, включающее в себя: восемь блоков генератора широтно‑импульсной модуляции, каждый с одним 16-разрядным счётчиком, два ШИМ‑компаратора, генератор ШИМ‑сигнала, генератор мёртвой зоны и селектор прерываний / триггеров АЦП; два ШИМ‑входа для отключения с низкой задержкой; два модуля интерфейса квадратурного кодера (QEI) с позиционным интегратором для отслеживания положения кодера и определения скорости с помощью встроенного таймера». То есть, даже два энкодера, которые у меня есть в блоке, супер удобно заведутся и почти не будут отжирать программных ресурсов. Я уже не говорю про простое управление двумя H‑мостами. Даташит, для тех, кто ещё может открывать сайт Texas Instruments.

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

Для контроллеров от Texas есть своя программа, похожая на куб от ST. Она помогает сделать распиновку на контроллере и сгенерировать ioc файл из этого. Также помогает учесть некоторые возможные проблемы при дальнейшем написании программы, когда вдруг какой-то интерфейс не ремапится.

Для работы с программой не нужно даже инструкцию читать, настолько отличная работа была проделана UX дизайнерами. Что куда нажать — понимается интуитивно. Порог вхождения, пожалуй, 5 минут. Вот так выглядит раскидка пинов в моём проекте:

Сама же прошивка пишется тоже в бесплатном Code Composer Studio. Ну ладно, заканчиваю оду тексасу (тем более они мне не платят за рекламу — жлобы! Всё же нашёл недостаток!) и продолжу.

Пусконаладка. Продолжение.

Как и следовало ожидать, изобретённый велосипед заработал со скрипом. Именно тот драйвер верхнего плеча, с которым хотелось поэкспериментировать, доставил кучу проблем, но на самом деле подарил кучу знаний.

Сделал ещё несколько вариантов управления верхним ключом. На трансформаторе и на оптопаре. В принципе, оно как бы всё работает, но....

В конце концов решено было сделать по старому, проверенному варианту, хотя некоторые идеи я всё же сохранил.

И так, я заменил элементы «И», собранные на транзисторах, на классическую логику. И применил интегральные драйверы полумостов.

Всю эту доработку сделал на маленькой плате, которая будет вставать на первую версию моего контроллера.

Плата получилась достаточно компактная и отлично ложится на основную плату контроллера.

Понятно, что в дальнейшем, после отладки, эта схемотехника перекочует на основную плату, где и достойно займёт своё место.

Установка платы потребовала снятия всех моих предыдущих экспериментов с драйвером верхнего и нижнего ключей и снятие транзисторных элементов «И».

И после этой доработки, плата начала работать стабильно, чего от неё и ждал.

Что дальше?

Сейчас имеем рабочую плату и несколько вариантов управления. Вот и набор всего и вся для проекта.

Мне кажется, у этого проект есть интересные перспективы, хотя спрос на него точно не большой. Ну а я пока жду завершения процесса отладки и буду не спеша вылавливать косяки электронного блока, что бы в версии 2 уже всё было гут.

Может быть, ещё что-то изменится, но это уже, как говорится: совсем другая история…

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


  1. a9d
    01.12.2024 04:06

    Ставить CAN/485 интерфейс без изоляции весьма смело.


    1. RV3EFE Автор
      01.12.2024 04:06

      Совершенно нормальная история, если модули, связанные им, находятся в одном устройстве с общей землёй.

      Во всех машинах CAN используется без изоляции.


  1. slog2
    01.12.2024 04:06

    Молодцы, разработка на уровне, не стыдно и показать. Занимался когда-то подобным изобретением велосипедов, но потом понял что нет таких задач в автоматизации, которые невозможно реализовать из готовых контроллеров. Это в итоге дешевле, если не планируются тысячные партии. И главное потом ремонтопригодно.

    спасибо товарищу Си за наше почти счастливое настоящее!

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


    1. Goron_Dekar
      01.12.2024 04:06

      нет таких задач в автоматизации, которые невозможно реализовать из готовых контроллеров.

      полно таких задач, если у вас есть ограничения на стадии ТЗ. Например, санкционная безопасность + открытые спецификации + гарантии 10-20 лет и, опппа!, на рынке ничего нет. Либо западная фирмА, но тогда запреты на поставку, мутные серые схемы и нет сервиса, либо Си, у которого из гарантий только гарантия продавцом, что он получит деньги.


      1. slog2
        01.12.2024 04:06

        Лучше, чем "западная фирмА", которая на рынке уже десятки лет, вам не сделать. Особенно из комплектухи от Си. Так что вы в начале пути в тупик. В конце этого пути СССР сдох по причине тотального отставания почти во всех областях техники. Зато какой фронт работ впереди, импортозаместить весь мир!


        1. Goron_Dekar
          01.12.2024 04:06

          Лучше, чем "западная фирмА", которая на рынке уже десятки лет, вам не сделать.

          Вот поэтому сначала плюсанул ваш коментарий, а потом написал ответ. Конечно, не боги горшки обжигают, и, иногда, можно увидеть исключения, но они, как говорится, только подтверждают правило.

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


          1. slog2
            01.12.2024 04:06

            Я тоже выбрал "закрываться". Электроника осталась в качестве хобби. И то, превратилась из удовольствия в решение проблем где купить не поддельные детальки и где в этот раз заказать платы.


        1. AlexisVaBel
          01.12.2024 04:06

          prom-auto.ru последний плк работает под jvm, реализованые проекты по замене сименса, а также просто ценой сименс подвинуть. Где-то можно найти ниши, где можно двигать и больших дядей


    1. RV3EFE Автор
      01.12.2024 04:06

      Если всё делать на покупных контроллерах, то и сообщество хабрахабра можно разгонять и сайт закрывать. И в вузах перестать преподавать электронику.


      1. slog2
        01.12.2024 04:06

        Если всё делать на отечественных контроллерах, то кроме лишнего геморроя разработчикам и увеличения цены продукта, других перспектив не видно.


  1. nixtonixto
    01.12.2024 04:06

    Итак, я заменил элементы "И", собранные на транзисторах, на классическую логику. И применил интегральные драйверы полумостов

    У STM32, который раз в 5 дешевле вашего TI контроллера, есть аппаратный вход Break, позволяющий обойтись без этой "классической логики".


    1. Goron_Dekar
      01.12.2024 04:06

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


      1. nixtonixto
        01.12.2024 04:06

        Если логика сидит на том же питании, что и контроллер - велики шансы, что она сгорит вместе с ним. Если же вы имеете ввиду зависание или некорректную программу контроллера, то вход Break работает асинхронно и подключён напрямую к таймеру, а в некоторых чипах логика работы этих входов-выходов вообще задаётся фузами.


        1. arthuru1
          01.12.2024 04:06

          Без изоляции драйверов при выбивании верхнего транзистора 75в окажется на контроллере


      1. ABRogov
        01.12.2024 04:06

        с большими мощностями стоит поставить логику как защиту

        Любопытно, откуда у этого мифа растут ноги? Почему вы думаете, что вот эта "защитная" логика как раз и не приведет к фатальным последствиям?

        Уже около десяти лет занимаюсь силовухой на МК (STM32), и не разу они не подводили. Ни разу он не завис. Вообще не помню в своей практике, что бы контроллеры зависали. С чего бы им? Ну или там если совсем с ошибками плата, типа резонатор за 10 см стоит... ну это логикой не лечится.


    1. RV3EFE Автор
      01.12.2024 04:06

      Вы видимо не читали статью. Ваш стм было тогда даже не купить и за 5т.р.

      А вы уверены, что ваш стм реально дешевле?


      1. nixtonixto
        01.12.2024 04:06

        ТОГДА МСП были доступны лишь потому, что их в СНГ практически не используют. Мы, когда метались в поисках контроллеров, тоже перевели одно изделие на G2353 - его в элитане было более 20тыс штук, купили 2 партии по 10тыс - и всё, больше они до конца кризиса не появлялись, во всей России их было в наличии не больше пары тысяч штук, изделие пришлось переводить обратно на СТМ. СТМ же пропали потому, что большинство производителей используют их, поэтому сразу выгребали всё, что привозили.

        МСП всегда был дороже, вначале АВР/ПИК, сейчас и СТМ. Если вам нужен именно Кортекс-М4, то у СТМ они от $1,5 за 512к флеши, если достаточно М0, то они от $0,5. И все они доступны более 50тыс штук.


  1. iliasam
    01.12.2024 04:06

    Я правильно понял, что микрошага тут нет?

    Входное напряжение - 70В, но по расчету "Целых 195В, не малые такие значения.".
    На высоких скоростях драйвер не сможет обеспечить нужный ток?


    1. RV3EFE Автор
      01.12.2024 04:06

      Микрошаг можно реализовать программно и это вопрос желания его сделать.

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


  1. ktod
    01.12.2024 04:06

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

    Ради процесса - ок, ради результата - сомнительно.

    Имхо, конечно.


    1. ABRogov
      01.12.2024 04:06

      Да, интегральные драйверы не помешали бы. А так как в той картинке, где пионеры коня доят по книжке.


  1. Gudd-Head
    01.12.2024 04:06

    У вас по ТЗ скорость вращения от 0 об/мин, а вы поставили накопительный конденсатор в верхний ключ. Как так?


    1. alcotel
      01.12.2024 04:06

      При нулевой скорости ШИМ не останавливается. Обычно ШИМом подстраивают средний ток через обмоку.


      1. RV3EFE Автор
        01.12.2024 04:06

        Всё так


  1. Quqas
    01.12.2024 04:06

    без применительно к статье, а скорее из показанной гифки: зачем тут в принципе шаговый двигатель?

    где тут требования к долям оборота, резким старт-стопам, смене направления?

    0-850 слишком размыто и одновременно "просто"


    1. RV3EFE Автор
      01.12.2024 04:06

      Это некая логика работы изделия, которую я не могу рассказывать, так как договаривались с товарищем, что открытая часть разработки пока только моя.


  1. alexhott
    01.12.2024 04:06

    Однозначно + , читать гораздо интереснее чем про копирование серийного устройства.


    1. RV3EFE Автор
      01.12.2024 04:06

      Спасибо!


  1. jmnemonik
    01.12.2024 04:06

    Не понял. Если "Коллега, талантливый конструктор, разрабатывает порой необычные вещи. ", то причем тут автор статьи?? Кто, в итоге, разрабатывал: коллега или ТС?


    1. iliasam
      01.12.2024 04:06

      Так дальше же написано: "Для одной из его разработок требовался инвертор для управления шаговым двигателем".
      Т.е. автор поста делал электронику по просьбе своего коллеги.


      1. jmnemonik
        01.12.2024 04:06

        И там же написано: "тут на кофепоинте оказался я — человек, который что‑то слышал про электронику."

        То есть он совсем не спец и лишь "что-то слышал про электронику".

        Как он мог делать такой девайс если всего лишь "что-то слышал"??


        1. iliasam
          01.12.2024 04:06

          Думаю, это юмор.
          Посмотрите профиль автора, почитайте его статьи.
          Есть и такое: https://www.rlocman.ru/authors/author.html?di=656973-Aleksej-Tyurin


  1. Megobari
    01.12.2024 04:06

    Хорошо проделанная работа!

    Особенно интересно было "не стандартное" решение управления верхним ключом. Как правило сейчас схемотехники создают схемы из соединения микросхем по даташиту, а некоторые даже не помнят как работает стабилитрон, не говоря уже о транзисторах...


    1. alcotel
      01.12.2024 04:06

      Особенно интересно было "не стандартное" решение управления верхним ключом

      , которое в итоге не заработало, хотя и было успешно промоделировано.

      На рассыпухе имеет смысл собирать что-то нетиповое или сложно покупаемое. Типовые узлы, особенно когда они многоканальные, дешевле брать готовые. На 50-100V Китайцы понаделали неплохих драйверов по вменяемым ценам, можно в любом самокате или гироскутере их увидеть.

      Тут я согласен с предыдущим комментом. Непонятно, почему товарищ именно драйверы затворов решил собрать по частям? А не, например, CAN-трансивер, или SMPS.


      1. RV3EFE Автор
        01.12.2024 04:06

        В данном устройстве именно драйвер затвора высоковольтный на рассыпухе был интересен. Куча решений для низковольтных и очень мало для 100В и выше.


        1. alcotel
          01.12.2024 04:06

          Да, драйвер верхнего ключа на рассыпухе - это вызов. Это прикольно - посоревноваться с другими, я вот тут пример приводил. Без сарказма. Плюсую ваще без вопросов!

          Это одна из многих штук (вместе с Bandgap reference, токовыми зеркалами, chopper opamp...), которая в интегральном исполнении за счёт особенностей расположения активки на одной кремниевой подложке обычно получается гораздо лучше рассыпухи. Но всё-таки получается.

          Я на последнем месте работы с противоположным больше встречался. Когда, например, для генератора тупого меандра с частотой +-валенок (синхронизация пачки DCDC-преобразователей) коллеги с многолетним опытом без зазрения совести ставят спец.микросхему от TI за $100500. В рекламе видели. Не 555й аналог, и не мультивибратор из компонентов, которые уже есть в BOM. И даже засинхрить друг-то друга... Нет. "Мы же крутые разрабы, и мы ставим только крутые микросхемы".
          Вот как-то так.


    1. RV3EFE Автор
      01.12.2024 04:06

      Спасибо!


  1. MaFrance351
    01.12.2024 04:06

    Отличная техническая статья.

    МК китайские сам осваиваю ради опыта работы с ними. Но пока есть аналог в виде "традиционных" STM32, буду и дальше использовать именно их. Разработка под них всё же в разы приятнее.

    Если не секрет, где оно стоит? 75 вольт питания - как будто что-то железнодорожное/метрошное.


    1. RV3EFE Автор
      01.12.2024 04:06

      Спасибо! Это не железнодорожное, но и где конкретно, профессиональная этика не велит распространяться. Могу сказать, что питание там идёт от мощного химического элемента.


      1. MaFrance351
        01.12.2024 04:06

        Ну, в общем-то, так и думал. В метро именно 75 вольт, так как там вагонная батарея на такое напряжение.


        1. RV3EFE Автор
          01.12.2024 04:06

          О, не знал. Ну тут чисто совпадение)


        1. alcotel
          01.12.2024 04:06

          В смысле, для "низковольтного" питания индикации, аварийного вызова, оповещения, рекламы? Типа как в авто-электро-мобилях и грузовиках 12-24 вольта? Правда что-ли? Интересно. Не знал.


          1. MaFrance351
            01.12.2024 04:06

            Да, все низковольтные цепи (в том числе управления) там 75 В. Уже внутри блоков преобразуются в необходимые.

            Даже USB-зарядки на поручне работают от 75 В. Внутри DC-DC от, кажется, Traco Power.


            1. RV3EFE Автор
              01.12.2024 04:06

              Оно там достаточно "чистое", без жёстких выбросов, или как основная сеть?


  1. alcotel
    01.12.2024 04:06

    Решение для вывода питания наружу позаимствую, интересно получилось.

    А вот драйверы мосфетов - сомнительно. Да, китайцы применяют такие, видел. Но во-первых, зачем здесь выкладывать неработающую схему?

    Во-вторых не мешало бы перед проектированием посмотреть, что люди уже сделали, и оно работает. Например, вот так. Если удастся полную схему найти, то увидите, что китайцы там даже высоковольтный DCDC-преобразователь на рассыпухе делают.


    1. RV3EFE Автор
      01.12.2024 04:06

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


  1. tttinnny
    01.12.2024 04:06

    упоротые заявления директоров ST ещё и подорвали веру в то, что в мелкосерийных устройствах стоит применять их продукты

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


    1. VT100
      01.12.2024 04:06

      Так-то... STM обделался с поставками в 2020 году.


      1. tttinnny
        01.12.2024 04:06

        Ну это дело обыденное... Мне больше интересны неадекватные вбросы от руководства) они как-то больше оживляют


        1. RV3EFE Автор
          01.12.2024 04:06

          https://www.ixbt.com/news/2021/05/19/nachalos-vtoroj-po-velichine-proizvoditel-mikroshem-v-evrope-povyshaet-ceny-na-vsju-produkciju.html
          и как следствие
          https://ru.investing.com/news/stock-market-news/article-93CH-2552296
          При это у них было ещё несколько приколов факапных с курсом фирмы. Гуглится через политику STM и заявления их руководства.


  1. VT100
    01.12.2024 04:06

    Именно тот драйвер верхнего плеча, с которым хотелось поэкспериментировать, доставил кучу проблем

    А что именно, помимо затяжки нарастающего фронта проходной ёмкостью VT18? При высоком Vcc - недостаточное для переходных процессов Vce у VT22, VT26?

    Затяжку можно неплохо элиминировать...

    ... используя вместо VT18 биполярный транзистор с общей базой, используемый как переключатель тока. Так в цепи баз драйвера (VT22, VT26, R88, R96) появляется достаточно стабильный и предсказуемый ток, линейно перезаряжающий все паразитные ёмкости. Его стабильность и предсказуемость - обеспечивается тем, что питание МК (3,3 В) примерно в 5 раз больше напряжения Vbe и его температурных вариаций.


    1. alcotel
      01.12.2024 04:06

      С ОБ тут не получится. Когда откроется нижний ключ, верхний тоже может открыться.

      А в этой схеме ещё и делители R90+R88 и R92+R94 мешают ключам нормально закрываться. В симуляции-то Vgth будет среднее по больнице, а в реальности - большой разброс.

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

      Китайский вариант драйвера

      Тут как раз примерно как вы и сказали, Q1 включён, как генератор тока. Включение с ОБ возможно работало бы ещё быстрее.

      Но эта схема по-моему не снята до конца. Чего-то сверху не хватает.


    1. RV3EFE Автор
      01.12.2024 04:06

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


      1. RV3EFE Автор
        01.12.2024 04:06

        Более реально делать на оптопаре + пуш-пуль как драйвер. Это решение оказалось более стабильно и менее потребляющее, из-за высокого уровня напряжения верхнего ключа. То есть level-shifter почти без потерь.
        Но тогда проще ставить интегральные драйверы.


  1. PTM
    01.12.2024 04:06

    что за слономышь?


    1. RV3EFE Автор
      01.12.2024 04:06

      Это просто уникальный тэг


  1. trouble-maker
    01.12.2024 04:06

    Автор не первопроходец, вот микрошаговый драйвер с допфункционалом с векторным регулированием, два Н-моста, всё управление на МК: http://mb7707.su/other/gallery/glr-18.html

    Вот видео, хотя сейчас тытруб почти заблочили: https://www.youtube.com/watch?app=desktop&v=AtGOFw1Jl6s

    Разработано было на основе первого опытного мощного микрошагового драйвера для ЧПУ станка, но там алгоритм был костыльный скалярный с расчётом мгновенной ЭДС с ограничением скорости на уровне 150об/мин, дальше был срыв синхронизации: http://mb7707.su/other/gallery/glr-16.html