Ethernet контроллер для LinuxCNC (STM32, FPGA)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Prav
Мастер
Сообщения: 680
Зарегистрирован: 14 июл 2015, 05:10
Репутация: 112
Настоящее имя: Петр Раввинский
Откуда: Москва
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение Prav »

Если очень хочется на МК "и рыбку съесть и кости сдать", то для плавной программной траектории на приемлемых частотах, нужно выбирать хотя б двуядерные МК
.

А они стоят в два раза дороже и пошло-поехало...
Аватара пользователя
Serg
Мастер
Сообщения: 21914
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5147
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение Serg »

Как будет время покажи как выглядит на лог.анализаторе непрерывная последовательность шагов с аппаратного генератора шагов (на таймере) например по 10имп. со значениями ARR: 2, 3, 4, 8, 16, ... При PSC=0.
Лучше с куском исходника, чтоб можно было удостовериться в повторяемости результата.

P.S. И дело тут не многоядерности МК, а в самой архитектуре ARM-Cortex.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 6734
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2827
Настоящее имя: Миша
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение MX_Master »

Prav писал(а): А они стоят в два раза дороже и пошло-поехало...
ESP32 нынче такие дорогие :hehehe:
Serg писал(а): Как будет время покажи как выглядит на лог.анализаторе непрерывная последовательность шагов с аппаратного генератора шагов (на таймере) например по 10имп. со значениями ARR: 2, 3, 4, 8, 16, ... При PSC=0.
Для более плавного вывода и более широкого диапазона частот играть нужно обеими величинами. Мы же не просто дискретность в вакууме обсуждаем. Применительно к выводу импульсов для управления ШД, и в диапазоне частот, который физически может выдать софт, дискретность вывода таймера нас более чем устроит. При этом ЦП ещё успеет отдохнуть.

Если мы начнём обсуждать применимость таймеров для каких-то других задач, где нужны точные частоты на уровне десятков МГц, там даже код расчехлять не придётся. Будет достаточно пары кликов калькулятора, чтобы понять какую большую и неприемлемую дискретность мы получим.
Аватара пользователя
MX_Master
Мастер
Сообщения: 6734
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2827
Настоящее имя: Миша
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение MX_Master »

Прикольные ща цены на STM'ы... Мне, канеш, много не надо. Но по факту, штучно можно купить STM32F429VIT6 (180 МГц, 2Мб флэша, 256Кб ОЗУ) на 20% дешевле, чем популярный STM32F407VET6 (168 МГц, 512Кб, 192Кб) :) Хорошо, что пин совместимых чипов довольно много - от STM32F207xxxx до STM32F439xxxx.

Дефицит чипов, насколько я понял, будет продолжаться не меньше года, а то и дольше. Надо, пока есть возможность, брать непопулярные, но подходящие чипы, что есть в наличии. А уж потом, когда (если) дефицит поубавится, можно будет перейти на что-то популярное.
Аватара пользователя
Serg
Мастер
Сообщения: 21914
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5147
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение Serg »

MX_Master писал(а): Мы же не просто дискретность в вакууме обсуждаем.
Ну можешь изобразить полный цикл разгона от 0 до Fmax и обратно до 0, всё равно у тебя на самом пике будет меняться только ARR при PSC=0, суть от этого не изменится, я просто предложил изобразить лишь наглядный кусок для понимания сути. Также можешь использовать низкие частоты - эффект полностью сохраняется, просто не так хорошо заметен на анализаторе. И код там не при чём - это особенность работы таймеров и прерываний.

На всякий случай напомню суть проблемы: дело совсем не в доступном наборе частот для плавного повышения/понижения результирующей. А в плавности перехода между двумя соседними частотами, например чтобы после последнего шага с периодом M следом шёл чёткий шаг с периодом N без каких-либо лишних импульсов и пауз.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
mmv
Мастер
Сообщения: 461
Зарегистрирован: 24 май 2016, 21:58
Репутация: 27
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение mmv »

Такой вопрос: был период следования М, потом между импульсами пришло задание двигаться с периодом следования N через какое время нужно выставить следующий импульс?
А зачем кстати частоты больше МГц?
Комплект плат PinCET для модернизации станков на Linuxcnc.
viewtopic.php?f=19&t=11116#p268407
Аватара пользователя
MX_Master
Мастер
Сообщения: 6734
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2827
Настоящее имя: Миша
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение MX_Master »

В идеале, внутри контроллера должен крутиться свой сервоцикл, именно он должен переключать частоты. Со стороны LinuxCNC задания могут приходить хаотично (+/-200мкс). Поэтому менять периоды шагов на лету нежелательно.

Частоты выше 1 МГц, в основном, для серв.
mmv
Мастер
Сообщения: 461
Зарегистрирован: 24 май 2016, 21:58
Репутация: 27
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение mmv »

Какая разница насколько нестабильно приходит задание. (+/-200 это очень много) обычно цифры +/-20-30 МКС. Пришло новое исполняй новое прямо сейчас. И причем здесь нестабильность сервопрериода. Приходит задание по середине между импульсами, неважно вообще какой там сервопериод. Длительность между импульсами может быть больше сервопрериода вообще.
Про 1 МГц:
Все же максимальная частота задаёт соотношение между дискретностью перемещения и максимальной скоростью. 1000000 это очень хорошее соотношение. Вряд ли кому нужно будет микронная точность и Макс скорость выше 60 м/с. Я по крайней мере не могу себе представить такую задачу.
Я вот понимаю что нет какого то Т.З. конкретного.
Комплект плат PinCET для модернизации станков на Linuxcnc.
viewtopic.php?f=19&t=11116#p268407
Аватара пользователя
MX_Master
Мастер
Сообщения: 6734
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2827
Настоящее имя: Миша
Контактная информация:

Re: Ethernet контроллер для LinuxCNC (STM32, FPGA)

Сообщение MX_Master »

Чтобы утверждать, что правильно, а что нет, надо быть более подкованным в теме.

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

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

Про 1 МГц :
В драйвере серв есть свой "фильтр" входящих импульсов. При последующей обработке и выводе с учётом настроек драйвера, кривые входящие периоды могут значения не возыметь. Так что, абсолютная точность частот не сильно и нужна.
Ответить

Вернуться в «LinuxCNC»