Дык, счётчик как раз призван отделить мух от котлет. Дополнительно на экране мы можем показывать статистику по таймингам и частотам. Длину сигнала STEP и его отступ от сигнала DIR. Минималку/максималку по частоте и т.д. Эта инфа будет очень полезна при поиске косяков.Сергей Саныч писал(а):Вообще-то без учета особенностей конкретных драйверов ШД такой счетчик сможет отлавливать только наиболее грубые ошибки, типа неправильного количества импульсов "туда" и "обратно". Реальные драйверы могут иметь разные тонкие глюки.
Например, могут отрабатывать лишний шаг при переключении сигнала DIR при определенном состоянии STEP, что может на определенных УП приводить к накоплению ошибки. Поскольку наш счетчик, скорее всего, будет "честно" считать STEPы, то эта ошибка останется незамеченной.
я уж не говорю об аналоговых нюансах из-за медленных входных оптронов драйвера.
Счётчик шагов на STM32
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Счётчик шагов на STM32
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Счётчик шагов на STM32
Сделал первую версию с простым программным счётчиком
https://github.cnc32.ru/MX_Master/stepdir_counter
В папке Debug есть готовая прошивка (hex). Кол-во шагов смотрю прямо в глобальных переменных через STM Studio + китайский ST-LINK v2. Проверил на 4-х осях до 200 КГц - полёт нормальный. Вощем-то, для моих задач этого вполне достаточно. Вся соль программного счётчика в основном цикле выглядит так
Распиновка для синей пилюли
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;
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Счётчик шагов на STM32
Выпаиваем ноги выходные у оптрона и туда припаиваем счетчик шаговСергей Саныч писал(а):я уж не говорю об аналоговых нюансах из-за медленных входных оптронов драйвера.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Счётчик шагов на STM32
Вообще класс будет. Втыкаешь его в лпт материнки и смотришь что происходитMX_Master писал(а):Дополнительно на экране мы можем показывать статистику по таймингам и частотам. Длину сигнала STEP и его отступ от сигнала DIR. Минималку/максималку по частоте и т.д. Эта инфа будет очень полезна при поиске косяков.
Например у нас на эрозии стоит китайская платка которая больше 1500гц(да скорость задается в Гц) начинает хорошо пропускать шаги.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Счётчик шагов на STM32
Следующую версию, сделаю так, как советовал дядя Серёжа
Если кому-то нужна версия под дисплей, напишите модель дисплея. И не забудьте закинуть автору 5 копеек доната на этот дисплей, потому что на руках из экранчиков ничего нет 
Если нужен ещё какой-то функционал, пишите.
Если нужен ещё какой-то функционал, пишите.