Страница 53 из 71
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 10 фев 2021, 21:02
vmarkiv
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 10 фев 2021, 21:16
Kost_irk
Нужные пины отпилить и проводками накидать, счетчики переназначить.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 10 фев 2021, 22:13
MX_Master
Это на своём экземпляре готового контроллера я могу что-то отпилить и припаять. На чужих - нет
Поэтому задача требует программного решения. И, по-моему, я уже знаю как вести подсчёт, загружая проц МК только по необходимости. Надо повесить одно прерывание на событие изменения нужных входных сигналов (EXTI). Тогда проверка состояния пинов и код подсчёта будут выполняться, только когда нужно, а не постоянно.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 10 фев 2021, 22:26
Serg
MX_Master писал(а): ↑
Что-то мне подсказывает, что запустить постоянное прерывание на высокой частоте (400-800 КГц) - это довольно расточительно

Контроллеру не будет хватать времени на другие дела. Нужен какой-то более хитрый способ
Надо не думать, а посчитать время, нужное на обработку такого прерывания: считать другой вход и соотв. увеличить или уменьшить счётчик, сбросить флаг... Прерывание можно "вешать" только на один вход.
Но т.к. быстрые энкодеры не всем нужны, то логичнее было бы сделать счётчики на отдельных МК, например на F0, G0, L0 и забирать с них значения по I2C/SPI.
Ибо не стоит пытаться объять необъятное.

Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 10 фев 2021, 22:56
MX_Master
Два SPI, кстати, наружу есть. Как и два RS232. И доп. устройства подключить вполне себе можно. Но сделать программный счётчик, если есть возможность, тоже неплохо.
Такты, да, примерно считал. Если прерывание будет примерно на 200 тактов, то в теории при 120 МГц чаще 600 КГц вызывать не получится. Стессна, это без учёта других дел и прерываний МК. Если всё учесть, ну где-то 100КГц. Что тоже неплохо. Но главное, если есть возможность, не вызывать его постоянно, это будет ещё лучше.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 12 фев 2021, 04:24
Kost_irk
MX_Master писал(а): ↑
Это на своём экземпляре готового контроллера я могу что-то отпилить и припаять. На чужих - нет
Не вижу никаких проблем, это называется отладка железа. Кому надо - сделают, остальные пойдут лесом. Если руки из жопы - контор по ремонту электроники полно. В следующей версии железа учесть. Даже в оборудовании именитых контор проводки попадаются.
MX_Master писал(а): ↑
Надо повесить одно прерывание на событие изменения нужных входных сигналов (EXTI). Тогда проверка состояния пинов и код подсчёта будут выполняться, только когда нужно, а не постоянно
Только не забудьте учесть, что каждый энкодер будет свое прерывание генерить, что отрицательно сказывается на их количестве, а если это происходит синхронно и быстро - можно опоздать к проверке второго входа. Аппаратную периферию не просто так придумали, если бы все было так просто - то дрыгали бы ногами и все. А что, в этих ваших стмах коммутатор периферии не завезли?
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 12 фев 2021, 06:54
MX_Master
В готовом китайском контроллере NVEM, на котором я тренируюсь, ничего физически менять и добавлять не надо. Программный счётчик это просто приятный бонус.
В стм'ах комутатор пинов есть, но он не настолько всесилен, чтобы менять любые пины местами. Это, всё-таки, не плисинка.
На все внешние события (EXTI) можно по факту повесить только один обработчик. Внутри него можно не только считать, но и рулить флажками новых прерываний, если такие появились прямо во время подсчёта.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 18:41
MX_Master

опять я в этом
STM32F2/F4 наступил на те же грабли с двумя
DMA контроллерами (DMA1, DMA2). Из-за "китайской" разводки контроллера
NVEM приходится искать обходные пути для высокочастотного вывода сигналов. Для каждого
STEP канала я юзаю связку "Аппаратный таймер >
DMA канал >
GPIO порт". Но львиная доля аппаратных таймеров завязана на
DMA1, который не имеет доступа к
GPIO. Доступ есть только у
DMA2, с которым связана только пара аппаратных таймеров.
По итогу, чтобы вывод шагов на
NVEM'ках был максимально быстрым (хотя б до 2 МГц), надо в компромиссе найти ещё один компромисс. Использовать для вывода шагов для 6-ти каналов не 6 таймеров, а всего 2. И как-то там выкручиваться с заданием частот для разных каналов. Ещё один компромиссный способ я, канеш, придумал. Но при нём на смену частоты всех 6-ти каналов может уйти до половины миллисекунды. Чем меньше каналов используется, тем времени уходит меньше, но всё равно расточительно. Плюс ко всему, выходная частота получается не совсем точной и прыгает скважность.
Вощем, мысль "развести свою плату" приходит в моск всё чаще с каждым новым открытием на тестах

Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 19:56
D.L.
MX_Master писал(а): ↑
Вощем, мысль "развести свою плату" приходит в моск всё чаще с каждым новым открытием на тестах
А после разведения платы под stm32 придёт мысль что надо было разводить плату под sp6

, уровень сложности примерно одинаковый.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 20:03
alex_sar
D.L. писал(а): ↑
А после разведения платы под stm32 придёт мысль что надо было разводить плату под sp6 , уровень сложности примерно одинаковый.
А потом чего доброго придёт мысль что MESA то уже этого того, давно сделана )
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 20:23
D.L.
alex_sar писал(а): ↑
А потом чего доброго придёт мысль что MESA то уже этого того, давно сделана )
А кого это останавливало, клоны и месаподобное появляется регулярно.

Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 20:49
MX_Master
Месы с полным обвесом обходятся покупателю от
200$. Без обвеса - от
90$. Российский клон - от
70$. Если собрать что-то похожее на
7i92, но с
STM32 на борту, обойдётся в
10-20$. Для конечного покупателя получится
40-50$. Если собрать с обвесом -
30-40$, для покупателя -
60-70$. Если б я был обычным покупателем и выбирал, что прикупить, цена и функционал - вполне себе адекватные

По большому счёту, покупателю всё равно какой там чип. Главное, чтобы работало быстро, надёжно и, по возможности, недорого.
Да, вощем-то, и месы за
200$ для многих не проблема на фоне всего прочего. Но есть ряд проектов, где месы будут избыточны

И микроконтроллера хватит с головой.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 20:58
alex_sar
Да, mesa дороговата для мелочи, но можно сделать недорогой клон.
Вот инфа для размышления
https://jlcpcb.com/parts/componentSearc ... 9-2TQG144C
Сам чип будет стоить $4.6 от 10 штук, всё остальное там мелочь.
Ну разъемы ещё денег стоят.
STM32F4 будет по цене в том же районе, не вижу там никакой экономии.
И ничего не надо мутить с нуля, всё уже проверено тыщами леммингов. Скучно, но практично.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 21:09
MX_Master
Да чё там размышлять.. Делать клон просто для личных нужд - смысла нет

К тому же, для себя я могу простую макетку поставить. Скоро, кстати, так и придётся сделать.
Цельный готовый контроллер нужен для других людей. Желательно, с русской поддержкой и доками. Английские доки по LinuxCNC и месе вызывают у некоторых покупателей небольшое помутнение
После контроллера у меня в планах человеко-понятная система ЧПУ на основе LinuxCNC. Так что свой контроллер понадобится в любом случае.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 21:15
alex_sar
То есть с нуля сделать контроллер, прошивку, драйвера в linuxcnc и документацию проще, чем клона mesa и перевести документацию? Ну ОК, пускай так )
В любом случае удачи! Больше контроллеров, меньше цены.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 21:28
MX_Master
В конечном итоге, я хочу сделать так, чтобы настройка системы и контроллера были в пару кликов. Ну а полагаться на другого (американского) производителя, переводить его доки - это такое себе. Можно потом все результаты труда потерять, если производитель сменит курс.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 21:49
COM9000
MX_Master писал(а): ↑
После контроллера у меня в планах человеко-понятная система ЧПУ на основе LinuxCNC
PathPilot ?
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 22:07
MX_Master
ПутьПилот заточен под конкретные ПК и станки компании. Он не общедоступен.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 23:17
COM9000
Его можно купить за очень вменяемые деньги.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 16 фев 2021, 23:39
MX_Master
Флэшка за 25$ с резервным образом системы, которая настроена и предназначена только для
их контроллера - это ни разу не общедоступная система

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