Драйвер шагового двигателя TMC2209
Описание
Драйвер шагового двигателя TMC2209 V2.0 для эффективного управления двухфазным шаговым двигателем.
Вращение мотора с микрошагом 1/256 в сочетании с умным контролем питания позволяет сделать 3D-принтер практически бесшумным и прецизионно управлять шаговыми моторами без дрожания и пропущенных шагов.
- Для сборки 3D принтеров и станков ЧПУ
- Драйвер обеспечивает предельно тихий режим работы шагового двигателя
- Плавное вращение мотора с разрешением до 256 микрошагов
- Драйвер не допускает рывков и пропусков шагов при вращении двигателя
- Определение заклинивания и нагрузки на валу двигателя для диагностики
- Управление по интерфейсу STEP/DIR или UART
- Драйвер TMC2209 предназначен для замены предыдущих серий драйверов A4988, DRV8825, TMC2100, TMC2108 и др.
Посмотреть/скачать спецификацию микросхемы TMC2209 (формат PDF размер 1.9 МБ)
Характеристики драйвера TMC2209
Напряжение питания логики: 3.3 - 5 В
Напряжение питания двигателей: 5.5 - 28 В
Номинальный выходной ток: 1.8 А
Максимальный выходной ток: 2.5 А (пиковый)
Режим управления: STEP/DIR или UART
Количество микрошагов: до 256
Определение нагрузки и обнаружение остановки: есть
Размеры: 20 × 15 × 12 мм
Драйвер TMC2209 часто используют для апгрейда характеристик 3Д принтеров и станков ЧПУ. В этом случае модуль TMC2209 ставится вместо штатного драйвера шагового двигателя на отдельной оси, а затем в прошивку принтера (смотри вкладку Настройка Marlin) вносятся соответствующие изменения.
У драйвера TMC2209 есть поддержка функции StallGuard, которая позволяет определить пропуски шагов. Этот функционал может использоваться в Marlin для парковки головы без концевиков (Sensorless Homing).
Драйвер TMC2209 совместим с управляющими платами SKR, MKS GEN V1.4, MKS GEN L, MKS SGEN-L, RAMPS, Lerdge X, Lerdge K, ЧПУ GRBL и другими.
В любых системах управления на основе управляющих материнских плат модуль драйвера TMC2209 получает необходимое питание от материнской платы.
Драйвер шагового двигателя TMC2209 отзывы
Настройка Marlin
В Marlin есть полная поддержка драйверов TMC 2209, включая задание адреса.
Установка типа драйвера (Marlin/Configuration.h):
#define X_DRIVER_TYPE TMC2209
#define Y_DRIVER_TYPE TMC2209
#define Z_DRIVER_TYPE TMC2209
#define E0_DRIVER_TYPE TMC2209
Для работы по UART нужно задать ноги в Marlin/src/pins/....
#if HAS_TMC220x
/**
* TMC2208/TMC2209 stepper drivers
*/
//
// Software serial
//
#define X_SERIAL_TX_PIN PA6
#define X_SERIAL_RX_PIN PA1
#define Y_SERIAL_TX_PIN PA6
#define Y_SERIAL_RX_PIN PA1
#define Z_SERIAL_TX_PIN PA6
#define Z_SERIAL_RX_PIN PA1
#define E0_SERIAL_TX_PIN PA6
#define E0_SERIAL_RX_PIN PA1
// Reduce baud rate to improve software serial reliability
#define TMC_BAUD_RATE 19200
#endif
В данном случае, используются две ноги, как рекомендовано в datasheet. Если используется только одна нога, RX и TX pin нужно поставить одинаковыми.
Настройки адресов драйверов (Marlin/Configuration_adv.h):
/**
* Four TMC2209 drivers can use the same HW/SW serial port with hardware configured addresses.
* Set the address using jumpers on pins MS1 and MS2.
* Address | MS1 | MS2
* 0 | LOW | LOW
* 1 | HIGH | LOW
* 2 | LOW | HIGH
* 3 | HIGH | HIGH
*
* Set *_SERIAL_TX_PIN and *_SERIAL_RX_PIN to match for all drivers
* on the same serial port, either here or in your board's pins file.
*/
#define X_SLAVE_ADDRESS 0
#define Y_SLAVE_ADDRESS 1
#define Z_SLAVE_ADDRESS 2
#define E0_SLAVE_ADDRESS 3
Установка тока и делителя шагов (Marlin/Configuration_adv.h):
#if AXIS_IS_TMC(X)
#define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current.
#define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing
#define X_MICROSTEPS 32 // 0..256
#define X_RSENSE 0.11
#define X_CHAIN_POS -1 // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
#endif
#if AXIS_IS_TMC(Z)
#define Z_CURRENT 800
#define Z_CURRENT_HOME Z_CURRENT
#define Z_MICROSTEPS 32
#define Z_RSENSE 0.11
#define Z_CHAIN_POS -1
#endif
#if AXIS_IS_TMC(E0)
#define E0_CURRENT 800
#define E0_MICROSTEPS 32
#define E0_RSENSE 0.11
#define E0_CHAIN_POS -1
#endif
В данном случае для всех драйверов установлен ток в 800 мА и деление 1/32.
Установка шагов для делителя 1/32 (Marlin/Configuration.h)
/**
* Default Axis Steps Per Unit (steps/mm)
* Override with M92
* X, Y, Z, E0 [, E1[, E2...]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 160, 160, 800, 800 }
Режим работы драйвера (Marlin/Configuration_adv.h):
/**
* TMC2130, TMC2160, TMC2208, TMC2209, TMC5130 and TMC5160 only
* Use Trinamic's ultra quiet stepping mode.
* When disabled, Marlin will use spreadCycle stepping mode.
*/
#define STEALTHCHOP_XY
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
Для контроля за драйверами нужно включить (Marlin/Configuration_adv.h):
/**
* Monitor Trinamic drivers
* for error conditions like overtemperature and short to ground.
* To manage over-temp Marlin can decrease the driver current until the error condition clears.
* Other detected conditions can be used to stop the current print.
* Relevant G-codes:
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
* M911 - Report stepper driver overtemperature pre-warn condition.
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
* M122 - Report driver parameters (Requires TMC_DEBUG)
*/
#define MONITOR_DRIVER_STATUS
#define TMC_DEBUG
На этом настойка закончена. После прошивки важно сначала сделать Initialize eeprom.
Посмотреть состояние драйверов можно командой M122.
У драйвера TMC2208 отсутствует возможность задать адрес. Поэтому для подключения этих драйверов не получится использовать всего 1 ногу. Их можно подключить используя как минимум 4 ноги. Если к плате не подключено никакого дополнительного оборудования, то можно использовать 3 свободных ноги второго экструдера (En, Step, Dir) и ногу PB2.