3D-печать: Драйверы шаговых двигателей Trinamic TMC2130
Отрегулируйте фазный ток, включите микрошаг и забудьте об этом — это то, что большинство людей хотят от микросхемы драйвера шагового двигателя. Хотя они используются в большинстве наших станков с ЧПУ и 3D-принтеров, будучи монолитными решениями, позволяющими «заставить их вращаться», мы не часто уделяем им много внимания.
В этой статье я рассмотрю драйвер шагового двигателя Trinamic TMC2130, в котором есть больше наворотов, чем вам может когда-либо понадобиться. С одной стороны, этот драйвер можно настроить через интерфейс SPI практически для любого приложения, использующего шаговый двигатель. С другой стороны, вы также можете записывать напрямую в регистры тока катушки и расширить сферу применения далеко за пределы двигателей.
В прошлом месяце мы более подробно рассмотрели микрошаги на распространенных микросхемах драйверов шаговых двигателей, но не упомянули те, которые мы действительно хотим использовать: «умные». Trinamic предлагает одни из самых умных драйверов шаговых двигателей на рынке, а с тех пор, как немецкий хакерский магазин Watterott выпустил коммутационные платы SilentStepStick для TMC2100 и TMC2130, они также устанавливают новый стандарт для 3D-принтеров DIY, фрезерных станков и устройств захвата и перемещения. роботы. Недавно я приобрел набор обоих для своего 3D-принтера Prusa i3, и мое внимание действительно привлек TMC2130 с интерфейсом конфигурации SPI.
TMC2130 SilentStepStick не следует путать с гораздо более популярным вариантом TMC2100. Как следует из названия, она представляет собой коммутационную плату, совместимую со StepStick, и, как и ее знаменитый брат, имеет микросхему Trinamic на нижней стороне маленькой печатной платы. Несколько переходных отверстий и медных выступов отводят тепло от центральной площадки микросхемы, позволяя радиатору на верхней стороне эффективно охлаждать драйвер.
Однако, в отличие от TMC2100, этот мотор не запустится сразу. У вас есть два варианта: подключить его в автономном режиме, что практически превращает его в TMC2100, или подключиться к его SPI-интерфейсу и набрать номер, если вы хотите, чтобы ваш шаговый двигатель встряхнулся или зашевелился. Фактически, большое количество регистров конфигурации делает TMC2130 чрезвычайно уязвимым для взлома чипом, поэтому я даже не думаю о соединении перемычки на нижней стороне SilentStepStick, которая активирует автономный режим.
Как уже было сказано, прежде чем драйвер что-либо сделает, его необходимо настроить, и стоит отметить, что все регистры конфигурации по своей природе нестабильны, поэтому, если я хочу использовать их в своем 3D-принтере, мне нужно настроить их как часть запуска принтера. рутина.
RAMPS 1.4 на моем 3D-принтере подключает аппаратный интерфейс SPI базовой платы Arduino через разъем AUX3, а также два дополнительных цифровых контакта (D53 и D49), которые я использовал для сигналов выбора кабеля. Обжав кабель для подключения двух TMC2130 к разъему AUX3, я смог начать копаться в программной части.
Уоттеротт предоставляет пример эскиза, который записывает базовую конфигурацию в регистры драйвера и вращает подключенный шаговый двигатель. Отличная штука, но в таблице данных описано 23 регистра конфигурации, ожидающих точной настройки, и еще 8, из которых нужно считать данные диагностики и состояния. Итак, я написал небольшую библиотеку Arduino, которая сделает многочисленные параметры конфигурации более практичными. После этого я мог бы просто включить свою библиотеку в прошивку 3D-принтера Marlin-RC7, которую я использую. К счастью, текущий кандидат на выпуск Marlin уже поддерживает драйверы TMC26X, поэтому я мог бы повторно использовать часть его кода для создания ответвления Marlin, которое включает 59 параметров TMC2130 в файлы конфигурации на основе определений. А потом я мог бы пригласить маленьких приятелей покататься.
Когда аппаратное обеспечение было настроено, а программное обеспечение заработало как положено, я провел несколько тестов на работоспособность: включение и выключение параметров и проверка того, как меняется поведение драйвера во время печати. Поскольку TMC2130 позволяет настраивать практически все, что он делает, это хороший первый шаг, который помогает исключить некоторые переменные и выбрать другие, которые заслуживают более глубокого изучения. Большинство настроек можно изменить «на ходу» и во время печати, однако не все параметры можно безопасно изменить во время работы двигателей.