Jump to content

    
baritono

МК на замену Ардуине

Recommended Posts

Сделал прототип специализированного ЧПУ-станка на Ардуине Мега. Всё бы ничего, но проц подтормаживает. Запаздывает управление несколькими шаговиками на приличной скорости и микрошаге, реакция на датчики. И это ещё прототип, на рабочем варианте скорости будут выше. Подскажите, на какой "взрослый" микроконтроллер лучше заменить? По периферии ничего особенного не надо, кроме GPIO ничего не используется, максмум будет I2C. Главное - скорость проца и минимум гемора с разработкой под Линкусом из командной строки. Загрузка-отладка через UART, без проприетарных IDE и тому подобного. Смотрю на STM32 и платы на его основе - правильно? Ещё смотрю платы вроде Raspberry Pi (лежат несколько без дела разных видов), но не охота возиться с Линкусом на станке, нравится простота работы с микроконтроллером.

Share this post


Link to post
Share on other sites

В своё время работал в подобном направлении. Я бы посоветовал вам связаться с промышленным электроприводом. Тот же Siemens, ABB  и т.п. Если вопрос коммерческий, то проще купить. Разработка привода будет дороже.

3 часа назад, baritono сказал:

Подскажите, на какой "взрослый" микроконтроллер лучше заменить?

Для начала сформируйте все требования, которые "взрослый" микроконтроллер должен окучить. Вы один МК хотите нагрузить тремя (или сколькими?) осями + интерфейс пользователя + ещё что?

3 часа назад, baritono сказал:

возиться с Линкусом на станке

Он уместен для графического интерфейса пользователя. Для управления приводами в реальном времени он мне видится скептически. Тут лучше взять bare-metal.

3 часа назад, baritono сказал:

Смотрю на STM32 и платы на его основе - правильно?

Смотрите на те МК, которые обеспечат вас нужной периферией в первую очередь. Например, если для обратной связи у вас используется квадратурный энкодер, то и МК нужно выбирать с таким аппаратным входом и таймером, который вам аппаратно посчитает расстояние, скорость, ускорение. Связь по току планируете? Если да, то нужно выбирать МК с АЦП с нужной разрядностью, скоростью преобразования и т.п.

Share this post


Link to post
Share on other sites

Для начала, что есть "приличная" и "не приличная" скорость, сколько шагов в секунду?



Шаговики сейчас работают в режиме 1600 шагов на оборот, один из них на максимальной скорости (до 2000 об/мин). То есть, более 50 тыс. шагов (там ещё понижающий редуктор стоит). Есть желание заменить этот быстрый на сервопривод, которому не нужны будут шаги, но это пока только желание.


Например, если для обратной связи у вас используется квадратурный энкодер, то и МК нужно выбирать с таким аппаратным входом и таймером, который вам аппаратно посчитает расстояние, скорость, ускорение. Связь по току планируете? Если да, то нужно выбирать МК с АЦП с нужной разрядностью, скоростью преобразования и т.п.



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

Share this post


Link to post
Share on other sites

Рекомендую попробовать, например, STM32F072: у него достаточно таймеров, чтобы одновременно работать с тремя шаговыми двигателями (три таймера на генерирование сигналов STEP и три таймера на прием данных от инкрементальных энкодеров). Сам собираюсь управление одной штукой на этом МК сделать.

Другой недорогой вариант — STM32F303, но там уже кортекс-М4 со всеми вытекающими…

Share this post


Link to post
Share on other sites
5 часов назад, baritono сказал:

Смотрю на STM32 и платы на его основе - правильно?

Вчера было правильно, сегодня - только если вы делаете изделие в единичном экземпляре. Тогда можно купить у китайцев одну-две BluePill на STM32F103 и строить вокруг нее. Если же изделие хоть сколько-нибудь серийное - с поставками STM32 сейчас полный швах. Лучше сразу закладываться на чистокровного китайца GD32, с ними вроде как проблем поставок не наблюдается.

 

Share this post


Link to post
Share on other sites
2 часа назад, baritono сказал:

Эти функции лежат на драйверах двигателей.

Что вы ещё скрываете от нас, мистер? По каким критериям мы должны угадывать вам подходящую модель "взрослого проца"?

Share this post


Link to post
Share on other sites
35 минут назад, AlexandrY сказал:

Специально для таких приложений как ваше был сделан Raspberry Pi RP2040

Угу, заложится под нишевое нераспространенное и полудокументированное железо - это супер!  

По сути STM или LPC(NXP) - будет правильным выбором, ИМХО.

7 часов назад, baritono сказал:

Ещё смотрю платы вроде Raspberry Pi (лежат несколько без дела разных видов), но не охота возиться с Линкусом на станке

Если не охота, то и не надо, тем более, что под мегу уже осилили. Под линем есть что-то вроде LinuxCNC, если только его допиливать...

Edited by mantech

Share this post


Link to post
Share on other sites
6 минут назад, AlexandrY сказал:

С STM32 пришлось бы метаться по всем углам пытаясь составить целостную картину.

И что я там увидел? Гайд по написанию хелло ворд? Поделье типа куба, так и на СТМ на нем без проблем хелло ворд написать...

Edited by mantech

Share this post


Link to post
Share on other sites
1 hour ago, AlexandrY said:

В STM32 вы не получите такого жесткого детерминизма временных диаграм переключения пинов как в Pi RP2040

Ну и чушь! Это ж как, интересно, в линуксе получить "жесткий детерминизм", если он вообще не ртось ни разу?

И не надо про кубы тут расписывать: с STM32 элементарно можно работать без всякой дряни. Другое дело, что, как правильно заметил Сергей, сейчас проблемы с поставками МК (в результате цены загнули в 6..10 раз: если год назад я брал STM32F072CBT6 по 60-70 рублей за штучку, то сейчас за них 400-500 просят!).

Edited by Eddy_Em

Share this post


Link to post
Share on other sites

А почему не STM32H7, он вроде мощнее? Таймеры - штука хорошая, но в Ардуине я вполне обошёлся, эмулируя их софтово.


Рекомендую попробовать, например, STM32F072: у него достаточно таймеров, чтобы одновременно работать с тремя шаговыми двигателями (три таймера на генерирование сигналов STEP и три таймера на прием данных от инкрементальных энкодеров).



А почему не STM32H7, он вроде мощнее? Таймеры - штука хорошая, но в Ардуине я вполне обошёлся, эмулируя их софтово.


Вчера было правильно, сегодня - только если вы делаете изделие в единичном экземпляре. Тогда можно купить у китайцев одну-две BluePill на STM32F103 и строить вокруг нее. Если же изделие хоть сколько-нибудь серийное - с поставками STM32 сейчас полный швах. Лучше сразу закладываться на чистокровного китайца GD32, с ними вроде как проблем поставок не наблюдается.



Девайс только для себя, максимум несколько штук. И не хотелось бы вкладываться в изучение сравнительно малоиспользуемой платформы. STM32 Nucleo вроде есть в продаже, даже в магазинах в Москве. Или это мы остатки доедаем? Миландровские МК сильно хуже китайских?

Вот на такие, например, устройства с STM32 смотрю: https://www.chipdip.ru/product/nucleo-h743zi2

Edited by baritono
глюк

Share this post


Link to post
Share on other sites



В STM32 вы не получите такого жесткого детерминизма временных диаграм переключения пинов как в Pi RP2040



У Pi RP2040 есть специальный движок для скоростного управления пинами с единичным тактом, такое никакие STM32 не могут.
А если нужна многозадачность, то просто сможете использовать два ядра.
Ну и главное, у Pi RP2040 все сделано чтобы без проблем программировать его из командной строки.



Вкусно всё это выглядит. Но тактовая в 3 с лишним раза ниже, чем у STM32H7, несколько смущает. Как и отсутствие аппаратной плавающей точки. В целом устройство оставляет впечатление варианта "для бедных". Меня цена, в общем, не волнует, продукт не серийный.
Edited by baritono

Share this post


Link to post
Share on other sites
17 минут назад, baritono сказал:

Вкусно всё это выглядит. Но тактовая в 3 с лишним раза ниже, чем у STM32H7, несколько смущает.

Вы же Ардуине замену ищете. Эта RP2040 заткнёт за пояс десяток Ардуин. Самое подходящее решение для вас. И модно-популярное.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.