baritono 0 Posted April 13, 2021 · Report post Сделал прототип специализированного ЧПУ-станка на Ардуине Мега. Всё бы ничего, но проц подтормаживает. Запаздывает управление несколькими шаговиками на приличной скорости и микрошаге, реакция на датчики. И это ещё прототип, на рабочем варианте скорости будут выше. Подскажите, на какой "взрослый" микроконтроллер лучше заменить? По периферии ничего особенного не надо, кроме GPIO ничего не используется, максмум будет I2C. Главное - скорость проца и минимум гемора с разработкой под Линкусом из командной строки. Загрузка-отладка через UART, без проприетарных IDE и тому подобного. Смотрю на STM32 и платы на его основе - правильно? Ещё смотрю платы вроде Raspberry Pi (лежат несколько без дела разных видов), но не охота возиться с Линкусом на станке, нравится простота работы с микроконтроллером. Quote Ответить с цитированием Share this post Link to post Share on other sites
Stepanov 0 Posted April 14, 2021 · Report post Для начала, что есть "приличная" и "не приличная" скорость, сколько шагов в секунду? Quote Ответить с цитированием Share this post Link to post Share on other sites
MrBearManul 0 Posted April 14, 2021 · Report post В своё время работал в подобном направлении. Я бы посоветовал вам связаться с промышленным электроприводом. Тот же Siemens, ABB и т.п. Если вопрос коммерческий, то проще купить. Разработка привода будет дороже. 3 часа назад, baritono сказал: Подскажите, на какой "взрослый" микроконтроллер лучше заменить? Для начала сформируйте все требования, которые "взрослый" микроконтроллер должен окучить. Вы один МК хотите нагрузить тремя (или сколькими?) осями + интерфейс пользователя + ещё что? 3 часа назад, baritono сказал: возиться с Линкусом на станке Он уместен для графического интерфейса пользователя. Для управления приводами в реальном времени он мне видится скептически. Тут лучше взять bare-metal. 3 часа назад, baritono сказал: Смотрю на STM32 и платы на его основе - правильно? Смотрите на те МК, которые обеспечат вас нужной периферией в первую очередь. Например, если для обратной связи у вас используется квадратурный энкодер, то и МК нужно выбирать с таким аппаратным входом и таймером, который вам аппаратно посчитает расстояние, скорость, ускорение. Связь по току планируете? Если да, то нужно выбирать МК с АЦП с нужной разрядностью, скоростью преобразования и т.п. Quote Ответить с цитированием Share this post Link to post Share on other sites
baritono 0 Posted April 14, 2021 · Report post Для начала, что есть "приличная" и "не приличная" скорость, сколько шагов в секунду? Шаговики сейчас работают в режиме 1600 шагов на оборот, один из них на максимальной скорости (до 2000 об/мин). То есть, более 50 тыс. шагов (там ещё понижающий редуктор стоит). Есть желание заменить этот быстрый на сервопривод, которому не нужны будут шаги, но это пока только желание. Например, если для обратной связи у вас используется квадратурный энкодер, то и МК нужно выбирать с таким аппаратным входом и таймером, который вам аппаратно посчитает расстояние, скорость, ускорение. Связь по току планируете? Если да, то нужно выбирать МК с АЦП с нужной разрядностью, скоростью преобразования и т.п. Эти функции лежат на драйверах двигателей. Ток, может быть, будет нужно мерять, но чисто порогово - обнаружить близость к предельному. Quote Ответить с цитированием Share this post Link to post Share on other sites
Eddy_Em 0 Posted April 14, 2021 · Report post Рекомендую попробовать, например, STM32F072: у него достаточно таймеров, чтобы одновременно работать с тремя шаговыми двигателями (три таймера на генерирование сигналов STEP и три таймера на прием данных от инкрементальных энкодеров). Сам собираюсь управление одной штукой на этом МК сделать. Другой недорогой вариант — STM32F303, но там уже кортекс-М4 со всеми вытекающими… Quote Ответить с цитированием Share this post Link to post Share on other sites
Сергей Борщ 0 Posted April 14, 2021 · Report post 5 часов назад, baritono сказал: Смотрю на STM32 и платы на его основе - правильно? Вчера было правильно, сегодня - только если вы делаете изделие в единичном экземпляре. Тогда можно купить у китайцев одну-две BluePill на STM32F103 и строить вокруг нее. Если же изделие хоть сколько-нибудь серийное - с поставками STM32 сейчас полный швах. Лучше сразу закладываться на чистокровного китайца GD32, с ними вроде как проблем поставок не наблюдается. Quote Ответить с цитированием Share this post Link to post Share on other sites
MrBearManul 0 Posted April 14, 2021 · Report post 2 часа назад, baritono сказал: Эти функции лежат на драйверах двигателей. Что вы ещё скрываете от нас, мистер? По каким критериям мы должны угадывать вам подходящую модель "взрослого проца"? Quote Ответить с цитированием Share this post Link to post Share on other sites
AlexandrY 0 Posted April 14, 2021 · Report post - Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted April 14, 2021 (edited) · Report post 35 минут назад, AlexandrY сказал: Специально для таких приложений как ваше был сделан Raspberry Pi RP2040 Угу, заложится под нишевое нераспространенное и полудокументированное железо - это супер! По сути STM или LPC(NXP) - будет правильным выбором, ИМХО. 7 часов назад, baritono сказал: Ещё смотрю платы вроде Raspberry Pi (лежат несколько без дела разных видов), но не охота возиться с Линкусом на станке Если не охота, то и не надо, тем более, что под мегу уже осилили. Под линем есть что-то вроде LinuxCNC, если только его допиливать... Edited April 14, 2021 by mantech Quote Ответить с цитированием Share this post Link to post Share on other sites
AlexandrY 0 Posted April 14, 2021 · Report post - Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted April 14, 2021 (edited) · Report post 6 минут назад, AlexandrY сказал: С STM32 пришлось бы метаться по всем углам пытаясь составить целостную картину. И что я там увидел? Гайд по написанию хелло ворд? Поделье типа куба, так и на СТМ на нем без проблем хелло ворд написать... Edited April 14, 2021 by mantech Quote Ответить с цитированием Share this post Link to post Share on other sites
Eddy_Em 0 Posted April 14, 2021 (edited) · Report post 1 hour ago, AlexandrY said: В STM32 вы не получите такого жесткого детерминизма временных диаграм переключения пинов как в Pi RP2040 Ну и чушь! Это ж как, интересно, в линуксе получить "жесткий детерминизм", если он вообще не ртось ни разу? И не надо про кубы тут расписывать: с STM32 элементарно можно работать без всякой дряни. Другое дело, что, как правильно заметил Сергей, сейчас проблемы с поставками МК (в результате цены загнули в 6..10 раз: если год назад я брал STM32F072CBT6 по 60-70 рублей за штучку, то сейчас за них 400-500 просят!). Edited April 14, 2021 by Eddy_Em Quote Ответить с цитированием Share this post Link to post Share on other sites
baritono 0 Posted April 14, 2021 (edited) · Report post А почему не STM32H7, он вроде мощнее? Таймеры - штука хорошая, но в Ардуине я вполне обошёлся, эмулируя их софтово. Рекомендую попробовать, например, STM32F072: у него достаточно таймеров, чтобы одновременно работать с тремя шаговыми двигателями (три таймера на генерирование сигналов STEP и три таймера на прием данных от инкрементальных энкодеров). А почему не STM32H7, он вроде мощнее? Таймеры - штука хорошая, но в Ардуине я вполне обошёлся, эмулируя их софтово. Вчера было правильно, сегодня - только если вы делаете изделие в единичном экземпляре. Тогда можно купить у китайцев одну-две BluePill на STM32F103 и строить вокруг нее. Если же изделие хоть сколько-нибудь серийное - с поставками STM32 сейчас полный швах. Лучше сразу закладываться на чистокровного китайца GD32, с ними вроде как проблем поставок не наблюдается. Девайс только для себя, максимум несколько штук. И не хотелось бы вкладываться в изучение сравнительно малоиспользуемой платформы. STM32 Nucleo вроде есть в продаже, даже в магазинах в Москве. Или это мы остатки доедаем? Миландровские МК сильно хуже китайских?Вот на такие, например, устройства с STM32 смотрю: https://www.chipdip.ru/product/nucleo-h743zi2 Edited April 14, 2021 by baritono глюк Quote Ответить с цитированием Share this post Link to post Share on other sites
baritono 0 Posted April 14, 2021 (edited) · Report post В STM32 вы не получите такого жесткого детерминизма временных диаграм переключения пинов как в Pi RP2040 У Pi RP2040 есть специальный движок для скоростного управления пинами с единичным тактом, такое никакие STM32 не могут. А если нужна многозадачность, то просто сможете использовать два ядра. Ну и главное, у Pi RP2040 все сделано чтобы без проблем программировать его из командной строки. Вкусно всё это выглядит. Но тактовая в 3 с лишним раза ниже, чем у STM32H7, несколько смущает. Как и отсутствие аппаратной плавающей точки. В целом устройство оставляет впечатление варианта "для бедных". Меня цена, в общем, не волнует, продукт не серийный. Edited April 14, 2021 by baritono Quote Ответить с цитированием Share this post Link to post Share on other sites
ViKo 0 Posted April 14, 2021 · Report post 17 минут назад, baritono сказал: Вкусно всё это выглядит. Но тактовая в 3 с лишним раза ниже, чем у STM32H7, несколько смущает. Вы же Ардуине замену ищете. Эта RP2040 заткнёт за пояс десяток Ардуин. Самое подходящее решение для вас. И модно-популярное. Quote Ответить с цитированием Share this post Link to post Share on other sites