Собрал обратно станок.
Что сделал:
1. Запитал МК от отдельного БП 5 вольт, это кроме прочего исключает рассинхронизацию позиции в Планет СНС и реальном положении (при питании с компа то можно "виртуально" перемещаться по координатам.)
2. Провёл цельный провод ЮСБ от компа, который впаял прямо в плату, питание с компа, ессно, отключил. Провод с хорошим экраном.
3. Дополнительно одел второй экран (экранирующую оплётку) на этот ЮСБ кабель, оплётка с "военки")), старых, добрых времён). Ессно, экран подключил только одним концом. В довершение повесил на оба конца кабеля ЮСБ ферритовые кольца, пусть будут.
4. Дополнительно связал массу компа с массовым проводом на стороне МК, масса МК и остальной периферии изначально гальванически развязана, так и оставил.
5. Сделал экран вокруг платы МК.
6. Провёл дополнительный заземляющий провод к корпусу станка из общей точки земли электроники, минус силовой части МК соединён с землёй. Дополнительный, так как масса была сделана к плите шпинделя, заземляя его.
7. Ну и остальные мелочи к делу не относящиеся)), ибо как всегда, как станок поехал, так всё некогда). В общем, не было печали, да само напросилось)
Ну и главное, что я думаю по поводу моей проблемы.
1. Плата [вероятно] построена на ПИКе и возможно на 18Ф4550.
2. Максимальная частота выдачи на драйвер ШД действительно 20 кГц, посмотрел свой же скрин (
здесь)
3. В зависимости о выставленных делителей на драйвере ШД можем получить разную максимальную реальную скорость перемещения по координатам.
Без делителя, ессно максимальную скорость перемещения, а это чревато риском срыва ШД.
4. Вне зависимости от делителя, максимальная скорость достигается лишь при перемещении по одной координате, при одновременно движении по диагонали (X+Y), показывает скорость больше, а по факту максималка делится между двумя ШД и реальное перемещение медленнее.
Ладно, это всё лирика).
Мысли по поводу, и что с этим делать?
По поводу. Контроллер этот никак не шустрый (с таким не работал, но даташит посмотрел). Тактовая 48 мГц, да и скорее всего как у всех младших семейств ПИКов одна операция за 4 такта, а значит 12000000 операций в сек предел. Лениво вчитываться в даташит, но может даже модуль ЮСБ работает автономно от ЦП.
Этот МК имеет лишь два ШИМ модуля, потому его предел аппаратное управление лишь двумя осями одновременно.
Как выглядит проблема для станка:
Так как ШД запущены на максималке, стартовать без ухода в срыв они могут лишь с некоторым ускорением, и стартуют с ним, а потом происходит тот самый короткий пропуск сигнала, что для ШД означает СТОП и тут же мгновенный СТАРТ. При высоком токе драйвера ШД, хоть и с ударом, но переваривает этот пропуск сигнала, а при малом токе драйвера уходит в срыв.
В чём причина то?
Что именно - х.з. Это могут сказать только разработчики исходника для МК.. и для компа.
Но я думаю, что проблема скорее в ПО контроллера. Когда начинаешь гонять контроллер на пределе скорости, именно на максималке, то в программе МК может происходить какой-то сбой. Например, полагаю, что для стабильности работы ШИМ (выдачи импульсов) следует использовать прерывание, а прерывание чревато, при не верном входе/выходе потерей данных, достаточно забыть прописать в какой нить функции "static" и всё, глюк готов. Кроме прочего, как я помню, в момент перезаписи регистра таймера, заведующего ШИМ, происходит остановка этого таймера.
Лан, не буду дальше гадать, ибо причин может быть тьма.
Мой мнение, проблема в не до конца допиленном ПО контроллера. И в выборе слабого контроллера, IMHO, лично я не понимаю выбора именно этого камня, ибо в наше время за те же деньги или даже дешевле можно найти на порядок более мощный камушек. Ну разве что выбор ПИКа дело привычки и знаний этого камня.
Что с этим делать?
Не заставлять гонять на пределе. Судя по всему это всё, всё решение.
Что сделал я:
1. Выставил делитель драйвера 1/10.
2. В Планет СНС выставил 400 тиков на 1 мм хода (ШВП 1605). Чесс сказать, у меня в голове и калькуляторе не укладывается, но минимальный шаг при таком раскладе 0.0025 мм. И не в теории, а на практике, проверил цифро-микрометром (точность 0.001), реально так и шагает. Не понятно, ибо мотор с углом 1.8 градуса. С логикой не сходится или я не верно считаю)). Но факт. Проверил много раз. Как нить сниму кино на Ютуб.
3. Выставил максимальную скорость на ось 2500 и ускорение 250. При таких значениях, что одна ось, что обе перемещаются на меньшей, чем предельная скорость, т.е. у МК есть некоторый запас по частоте.
Прогнал много раз тестовый G-код с резкими поворотами/заворотами, загибами)).
Всё ровно.
Конечно, лишь время покажет, но на сегодня я для себя ответ получил.
Спасибо за участие и подсказки!