Страница 2 из 2
Re: Счётчик шагов на STM32
Добавлено: 08 фев 2020, 14:36
MX_Master
Сергей Саныч писал(а):Вообще-то без учета особенностей конкретных драйверов ШД такой счетчик сможет отлавливать только наиболее грубые ошибки, типа неправильного количества импульсов "туда" и "обратно". Реальные драйверы могут иметь разные тонкие глюки.
Например, могут отрабатывать лишний шаг при переключении сигнала DIR при определенном состоянии STEP, что может на определенных УП приводить к накоплению ошибки. Поскольку наш счетчик, скорее всего, будет "честно" считать STEPы, то эта ошибка останется незамеченной.
я уж не говорю об аналоговых нюансах из-за медленных входных оптронов драйвера.
Дык, счётчик как раз призван отделить мух от котлет. Дополнительно на экране мы можем показывать статистику по таймингам и частотам. Длину сигнала STEP и его отступ от сигнала DIR. Минималку/максималку по частоте и т.д. Эта инфа будет очень полезна при поиске косяков.
Re: Счётчик шагов на STM32
Добавлено: 14 фев 2020, 20:42
MX_Master
Сделал первую версию с простым программным счётчиком
https://github.cnc32.ru/MX_Master/stepdir_counter
В папке
Debug есть готовая прошивка (hex). Кол-во шагов смотрю прямо в глобальных переменных через
STM Studio + китайский
ST-LINK v2. Проверил на 4-х осях до 200 КГц - полёт нормальный. Вощем-то, для моих задач этого вполне достаточно. Вся
соль программного счётчика в основном цикле выглядит так
Код: Выделить всё
port = GPIOA->IDR;
if ( (port & STEP_X_Pin) && !(port_old & STEP_X_Pin) ) pos_X += (port & DIR_X_Pin) ? -1 : 1;
if ( (port & STEP_Y_Pin) && !(port_old & STEP_Y_Pin) ) pos_Y += (port & DIR_Y_Pin) ? -1 : 1;
if ( (port & STEP_Z_Pin) && !(port_old & STEP_Z_Pin) ) pos_Z += (port & DIR_Z_Pin) ? -1 : 1;
if ( (port & STEP_A_Pin) && !(port_old & STEP_A_Pin) ) pos_A += (port & DIR_A_Pin) ? -1 : 1;
port_old = port;
Распиновка для синей пилюли
Re: Счётчик шагов на STM32
Добавлено: 14 фев 2020, 20:55
aftaev
Сергей Саныч писал(а):я уж не говорю об аналоговых нюансах из-за медленных входных оптронов драйвера.
Выпаиваем ноги выходные у оптрона и туда припаиваем счетчик шагов

Re: Счётчик шагов на STM32
Добавлено: 14 фев 2020, 20:57
aftaev
MX_Master писал(а):Дополнительно на экране мы можем показывать статистику по таймингам и частотам. Длину сигнала STEP и его отступ от сигнала DIR. Минималку/максималку по частоте и т.д. Эта инфа будет очень полезна при поиске косяков.
Вообще класс будет. Втыкаешь его в лпт материнки и смотришь что происходит

Например у нас на эрозии стоит китайская платка которая больше 1500гц(да скорость задается в Гц) начинает хорошо пропускать шаги.
Re: Счётчик шагов на STM32
Добавлено: 15 фев 2020, 08:19
MX_Master
Следующую версию, сделаю так, как
советовал дядя Серёжа 
Если кому-то нужна версия под дисплей, напишите модель дисплея. И не забудьте закинуть автору 5 копеек доната на этот дисплей, потому что на руках из экранчиков ничего нет
Если нужен ещё какой-то функционал, пишите.