TMС2130: примененные технологии и подключение к RURAMPS4D в режиме конфигурирования по SPI

svs0724
Идет загрузка
Загрузка
14.03.2018
17597
52
печатает на RepRap
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

94

В данной статье я попробовал собрать максимум информации о фирменных технологиях Trinamic, используемых в драйверах TMC2130 из разных источников, а так же о подключении этих драйверов для конфигурирования через интерфейс SPI к плате RURAMPS4D и настройке прошивок 3D принтеров для работы с TMC2130.

Для начала немного теории, кому это не интересно, может пролистать до раздела «Подключение и настройка».

Описание технологий TRINAMIC.

Контроллеры и драйверы от TRINAMIC отличает от других драйверов, то, что они получают информацию о параметрах вращения из сигналов обратной ЭДС и токов обмоток. Полученные данные позволяют добиться прецизионного управления мотором. В настоящий момент TRINAMIC предлагает шесть базовых технологий:

stallGuard2™ – основополагающая технология, позволяющая оценивать момент на валу двигателя по обратной ЭДС и токам обмоток;

coolStep™ – вторая по важности технология, позволяющая оптимизировать ток обмоток с учетом прикладываемой нагрузки;

spreadCycle™ – технология, позволяющая обеспечивать прецизионное плавное движение двигателя;

stealthChop™ – технология, обеспечивающая беспрецедентное снижение шума до уровня характерного для обычных двигателей постоянного тока;

dcStep™ – технология, гарантирующая защиту от пропуска шагов и от потери положения вала двигателя;

microPlyer™ – технология разбиения шагов управления на 16 дополнительных микрошагов с автоматической подстройкой длительности.

Рассмотрим данные технологии подробнее и начнем со stallGuard2™:

stallGuard2™ – технология, позволяющая измерять нагрузку на валу двигателя. На самом деле название этой технологии весьма говорящее. Применительно к двигателям слово «stall» в переводе с английского означает «останавливаться», а сама stallGuard первоначально разрабатывалась как программная альтернатива концевым датчикам. Когда подвижный механизм упирается в препятствие, нагрузка двигателя возрастает, что и обнаруживает stallGuard. Однако сейчас данная технология шагнула далеко вперед и позволяет использовать получаемые измерения в качестве сигналов обратной связи для прецизионного управления движением. Рассмотрим принцип работы stallGuard.

Схема измерения определяет электрическую энергию, подаваемую в двигатель (EI) и энергию, которая возвращается в источник питания (EB). Разница между этими показателями определяет энергию, которая была передана механической системе (EM). stallGuard2 контролирует значение EB, и, если оно приближается к нулю, это значит, что вся энергия передается в систему и подвижный механизм, скорее всего, уперся в препятствие.

Принцип измерения нагрузки двигателя в технологии StallGuard2 от TRINAMIC

Любой электродвигатель имеет потери, поэтому часть энергии рассеивается в виде тепла ET, кроме того, в разных приложениях используются разные двигатели, которые отличаются по параметрам и работают при разных условиях с различной нагрузкой. Чтобы учесть эти особенности, вводится коэффициент ограничения SGT.

Настройка параметров StallGuard2



Коэффициента SGT определяет максимальный допустимый момент на валу в данном конкретном приложении. Если момент превышает это значение, можно считать, что двигатель остановился. После того, как значение SGT задано, StallGuard2 пересчитывает величину ST таким образом, чтобы при максимально допустимом моменте его значение было равно нулю. Обычно SGT выбирают с некоторым запасом с учетом калибровки.

Оценка показаний StallGuard2



Для оценки показаний StallGuard2 используется выход DIAG1 на плате драйвера TMC2130. Его можно подключить на вход концевого выключателя.

coolStep™– еще одна базовая технология от Trinamic. Она позволяет управлять током питания обмоток с учетом прикладываемой нагрузки.

Если не углубляться в тонкости, то принцип работы coolStep достаточно прост. Микросхема драйвера с помощью StallGuard2 определяет нагрузку на двигателе и ток в обмотках, а coolStep использует эти данные для подстройки тока. Если нагрузка растет, ток увеличивается. И наоборот, если нагрузка падает, то ток уменьшается вслед за ней.

  • Принцип работы технологии coolStep от TRINAMIC
  • Использование coolStep дает следующие преимущества:
  • Повышение КПД до 75%;
  • Минимизация перегрева двигателя;
  • Возможность отказа от принудительного охлаждения двигателя;
  • Возможность использования менее мощных и менее дорогих двигателей.



coolStep поддерживает оптимальное значение тока, что позволяет снизить потери, и, как следствие, значительно повысить КПД системы. На графике, показанном ниже, видно что, на частотах выше 60 об/мин использование coolStep приводит к росту КПД на 20%. Здесь стоит отметить, что, так как данная технология использует данные от StallGuard2, она также эффективно работает только на средних частотах.

Повышение КПД при использовании coolStep TRINAMIC

Так же технология coolStep позволяет значительно снизить избыточное тепловыделение.

spreadCycle™– технология, позволяющая обеспечивать прецизионное плавное вращение шагового двигателя. Перед тем как рассказать о ее основных особенностях, рассмотрим классический алгоритм коммутации обмоток двигателей (Classic Chopper).

Для питания обмоток шаговых двигателя используются мостовые схемы. При этом применяют три комбинации состояний ключей:

On Phase (On) – фаза прямого протекания тока (фаза 1);

Fast Decay Phase (FD) – фаза форсированного обратного протекания тока (фаза 2);

Slow Decay Phase (SD) – фаза свободной циркуляции тока (фаза 3).

Коммутация обмотки шагового двигателя



Очевидно, что для управления током обмотки хватило бы и двух первых фаз (ON и FD), однако добавление фазы свободного протекания тока (SD) позволяет минимизировать потери и снизить уровень шумов. Длительность этой части периода в драйверах от Trinamic жестко задается пользователем с помощью таймера.

При использовании традиционного алгоритма Classic Chopper цикл коммутации состоит из трех вышеперечисленных фаз: On – FD – SD. При этом динамически изменяется только длительность фазы прямого протекания тока (On), а время обратного протекания тока (FD) фиксировано. Отсечка первой фазы происходит при срабатывании компаратора. Длительность второй фазы (Fast Decay) в микросхемах от Trinamic программируется пользователем с помощью таймера. Она должна быть не слишком короткой, чтобы ток успевал снизиться, но и не слишком длинной, чтобы не возникали дополнительные шумы и потери мощности.

Диаграмма токов при традиционном алгоритме коммутации



После задания фиксированной длительности фазы FD производят калибровку смещения, чтобы добиться непрерывного тока в катушках.

Форма токов при традиционном алгоритме коммутации до и после калибровки смещения



У традиционного алгоритма есть недостатки. Во-первых, вращение двигателя не всегда оказывается плавным, а при недостаточно точной калибровке это становится особенно заметно. Во-вторых, коммутация обмоток приводит к возникновению значительных помех и характерных шумов шаговых двигателей. При этом даже повышение рабочей частоты не всегда помогает от них избавиться. С другой стороны, рост частоты приводит и к увеличению потерь.

В отличие от традиционного алгоритма, при использовании spreadCycle™ цикл коммутации разбит на четыре этапа: On – SD– FD– SD. При этом возможна автоматическая подстройка как длительности фазы прямого тока (On), так и фазы обратного тока (FD). Это позволяет добиваться максимально быстрого отклика и прецизионного контроля тока обмотки.

Диаграмма токов при алгоритме коммутации spreadCycle™



spreadCycle™ имеет сразу три важных преимущества над традиционным алгоритмом:
  • повышение плавности движения;
  • снижение шума от двигателя;
  • уменьшение уровня помех.

Обеспечение плавности движения – одно из ключевых требований для прецизионных приложений, например, для 3D принтеров и станков с ЧПУ. Снижение уровня шума – важное условие для повышения комфорта работы как для операторов на промышленных объектах, так и для обычных пользователей в домашних или офисных условиях. Если же от механизма требуется получить минимальный уровень шума, то следует обратить внимание на следующую технологию с говорящим названием stealthChop™.



stealthChop™– технология, обеспечивающая беспрецедентное снижение шума при работе шаговых двигателей.

stealthChop использует обратную связь не по току, как в spreadCycle, а по напряжению. При этом контролю тока уделяется гораздо меньше внимания. Таким образом, в stealthChop нет необходимости в фазе FD, а последовательность коммутаций выглядит следующим образом: On– SD. Такой цикл, очевидно, приводит к снижению пульсаций тока.

Сравнение форм сигналов управления при использовании stealthChop™ (слева) и spreadCycle™ (справа)

Даже простое сравнение диаграмм токов в обмотках шаговых двигателей позволяет заметить, что уровень шумов при использовании stealthChop™ хоть немного, но ниже, чем у spreadCycle™ .

Сравнение форм токов при использовании stealthChop™ (слева) и spreadCycle™ (справа)



Одна из причин возникновения акустических шумов при использовании традиционного алгоритма коммутации или алгоритма spreadCycle заключается в динамической автоподстройке длительностей импульсов. При этом даже небольшие шумы приводят к джиттеру частоты, который, в конечном итоге, вызывает характерный шум шаговых двигателей. stealthChop использует жестко заданную частоту коммутации, что и становится причиной уникальной «тихоходности», сравнимой с показателями двигателей постоянного тока. Таким образом, при должной настройке пользователь услышит только шелест подшипников.

Изменение частоты сигналов при использовании stealthChop™ (слева) и spreadCycle™ (справа)

К сожалению, stealthChop имеет невысокие динамические характеристики и не подходит для приложений, в которых требуются значительные ускорения. Так как драйверы и контроллеры от Trinamic позволяют переключаться между stealthChop и spreadCycle, то имеет смысл комбинировать эти алгоритмы с учетом диапазона частот и ограничений по разгону/ торможению. Если же по каким-то причинам использование фирменных алгоритмов затруднено или неоправданно, то всегда можно перейти к традиционному методу коммутации.

Оптимальное использование stealthChop™ и spreadCycle™



В руководствах пользователя от Trinamic приведено несколько интересных исследований по эффективности различных алгоритмов коммутации. На графике представлены результаты одного из них. На низких частотах вращения (до 100 об/мин) лидирует stealthChop, далее почти до 1000 об/мин значительное преимущество имеет spreadCycle.

Испытания stealthChop™ и spreadCycle™



С другой стороны, крутящий момент в режиме stealthChop™ не падает примерно до 350об/мин. Если перевести обороты вала в скорость перемещения хотенда, то например, для моего принтера с кинематикой CoreXY и 20-зубыми шпулями в режиме stealthChop™ без потерь мощности можно работать на скоростях до 230мм/c, но при серьезных ускорениях желательно переключаться в spreadCycle на скоростях выше 150 мм/с, я пока разгонял до 170мм/c, при скоростях выше настроено на переключение в spreadCycle.



microPlyer™ – еще одна фирменная технология от Trinamic, направленная на повышение плавности движения. microPlyer используется для разбиения шагов на 16 дополнительных микрошагов с автоматической подстройкой длительности.

dcStep™– технология, по заявлению инженеров Trinamic, гарантирующая защиту от пропуска шагов и от потери информации о положении вала двигателя. Это очень полезная технология для различных прецизионных механизмов. Дело в том, что двигатель может пропускать шаги при избыточной нагрузке на вал, что приводит к потере контроля за положением. В традиционных приложениях, чтобы защититься от такой ситуации, максимально допустимый момент на валу ограничивался примерно на уровне 50% от реального максимального момента двигателя. С помощью dcStep этого можно избежать.

Если в процессе работы произошло увеличение нагрузки выше заданного значения, то dcStep автоматически снижает частоту вращения в соответствии с текущим моментом на валу и пропуска шагов не происходит.

Временная диаграмма частоты вращения двигателя

Благодаря такому подходу удается значительно расширить полезную область использования двигателя. При этом из него можно «выжать» до 80…90% от максимального момента, то есть при использовании dcStep для решения задачи хватит и менее мощного двигателя.

Для управления dcStep используются три вывода (сигнала):

- DCEN – отвечает за активацию режима dcStep. Включение происходит или при подаче на вывод высокого уровня, или при достижении определенной скорости (задается в регистре TPWMTHRS). В данном случае dcStep не работает в stealthChop режиме.

- DCO – появление низкого уровня на данном выводе, сигнализирует микроконтроллеру о том, что мотор не готов, и микроконтроллер приостанавливает выдачу сигнала STEP на драйвер.

- DCIN – появление низкого уровня дает команду драйверу приостановить выдачу «шагов» на мотор и устанавливает DCO в низкий уровень. Используется для синхронизации двух моторов.

В документации не совсем понятно сказано про синхронизацию моторов, а именно откуда должен поступать сигнал DCIN, как я понял, DCIN одного драйвера должен быть подключен к DCO второго и наоборот. Но мое мнение может быть неверным.



Для TMC2130 возможны два варианта использования dcStep. В первом варианте управление dcStep происходит с использованием внешнего микроконтроллера.

Вариант реализации dcStep c использованием микроконтроллера.

Если драйвер обнаруживает перегрузку и пропуск шагов, он выставляет сигнал DCO в низкий уровень, в свою очередь, микроконтроллер прерывает выдачу STEP/DIR сигналов на микроконтроллер до возвращения DCO обратно к высокому уровню.

Временная диаграмма работы dcStep с использованием сигнала DCO.

Второй вариант работы dcStep происходит без взаимодействия с внешним контроллером.

В этом случае, при обнаружении драйвером перегрузки и пропуска шагов, происходит увеличение или уменьшение (в зависимости от направления вращения) регистра LOST_STEPS, вместе с этим драйвер снижает частоту вращения вала (минимум задается в регистре VDCMIN) для снижения нагрузки. После уменьшения нагрузки до допустимой, драйвер продолжает работу с мотором и добавляет шаги из регистра LOST_STEPS к принятым от контроллера.

Временная диаграмма работы dcStep с использованием LOST_STEPS



Уменьшение резистивных потерь и нагрева драйверов при работе на больших токах.

Хочу так же упомянуть один момент, обнаруженный в документации на TMC2130. Разработчики советуют ставить диоды Шоттки с целью уменьшения нагрева драйвера при работе на токах выше 1.2А. В stealthChop режиме эффект от применения диодов меньше, чем в spreadCycle.

Подключение и настройка.



Рассмотрим схемы подключения TMC2130:

Подключение в режиме STEP/DIR. Данная схема включения подразумевает управление драйверами от микроконтроллера с помощью сигналов STEP/DIR, а также конфигурирование режимов работы драйвера по интерфейсу SPI, в том числе «на лету».

Вторая схема включения драйвера для работы драйвера в Standalone режиме. Подключение почти аналогично первому, за исключением того, что конфигурация драйвера задается жестко перемычками.

Третья схема подключения самая интересная, в ней драйвер управляется и конфигурируется через SPI интерфейс, сигналы STEP/DIR в данном случае не нужны. Но для такой схемы работы необходим дополнительный контроллер от Trinamic, например TMC4361. Данный контроллер получает информацию о перемещениях по SPI от микроконтроллера, и так же по SPI управляет драйвером.



В нашем случае используется первая схема подключения, рассмотрим ее подробнее.

В исполнении драйверов от компании Watterott, перемычка, отвечающая за включение SPI_MODE разомкнута, и соответственно режим конфигурирования по SPI включен по умолчанию. Кроме этого перемычки CFG4 и CFG5 установлены таким образом, что на выводе DCEN_CFG4 установлен низкий уровень, а на DCIN_CFG5 высокий уровень. В драйверах от FYS версии 1.0 необходимо перевести описанные выше перемычки к такому же виду. В версии от FYS 1.1. перемычки уже установлены как на драйверах Watterott.



Согласно документации, в режиме конфигурирования по SPI, dcStep отключен, и на вход синхронизации моторов постоянно приходит высокий уровень.

Как я понимаю в таком случае режим dcStep работает при достижении определенной скорости (задается в регистре TPWMTHRS) и отключен в работе в stealthChop. Кроме того непонятно что делать с синхронизацией осей при таком включении перемычек, а если не синхронизировать оси XY при пропуске шагов, то ничего путного не получится. Есть предположение, что режим dcStep вообще не используется в данном исполнении, но это надо еще внимательно изучить прошивку и сделать ряд экспериментов. Если я ошибаюсь на счет dcStep, поправьте меня.

Теперь займемся подключением TMC2130 к SPI на плате RURAMPS4D. Во первых, выводы: SDI, SCK, CS, SDO для драйверов FYS 1.0 необходимо переставить на верхнюю поверхность модуля драйвера, в версии 1.1. уже ничего перепаивать не надо.

Для подключения SDO, SDI, SCK я использовал разъем SPI_ETH на RURAMPS4D, CS взял с выводов, предназначенных для подключения драйвера четвертого экструдера, а так же выводы X_MAX, Y_MAX, Z_MAX.

Кроме того если планируется применять sensorless режим (парковка без концевых датчиков), необходимо припаять пин к выходу DIAG1 драйвера и кинуть провод на вход концевика.

После подключения, приступаем к конфигурированию прошивки. Сразу хочу сказать, что корректно TMC2130 завелись только в Marlin 2.0 и Repetier. В Mk4Duo при работе в режиме spreadCycle моторы издают высокочастотный писк, кроме того при переходе со слоя на слой, хотенд совершает какие то хаотические перемещения, и новый слой начинает печататься совсем в другом месте стола. Разработчику о проблеме написал, но на данный момент похоже не исправили.

Для начала необходимо установить в Arduino IDE библиотеку для работы с TMC2130 -TMC2130Stepper.h, после чего настраиваем конфигурацию прошивки:

Настройки конфигурации в Marlin 2.0:

В файле pins . h задаем значения CS для каждого драйвера согласно схеме подключения:

//

// Steppers

//

#define X_STEP_PIN 37 // Support Extension Board

#define X_DIR_PIN 36

#define X_ENABLE_PIN 38

#define X_CS_PIN 61

#define Y_STEP_PIN 32 // Support Extension Board

#define Y_DIR_PIN 35

#define Y_ENABLE_PIN 34

#define Y_CS_PIN 14

#define Z_STEP_PIN 30 // Support Extension Board

#define Z_DIR_PIN 2

#define Z_ENABLE_PIN 33

#define Z_CS_PIN 15

#define E0_STEP_PIN 29

#define E0_DIR_PIN 28

#define E0_ENABLE_PIN 31

#define E0_CS_PIN 43

#define E1_STEP_PIN 22

#define E1_DIR_PIN 24

#define E1_ENABLE_PIN 26

#define E1_CS_PIN 41

#define E2_STEP_PIN 25

#define E2_DIR_PIN 23

#define E2_ENABLE_PIN 27

#define E2_CS_PIN 39

В файле Configuration_adv.h

#define HAVE_TMC2130 //включение поддержки TMC2130 в режиме конфигурирования по SPI

#if ENABLED(HAVE_TMC2130) || ENABLED(HAVE_TMC2208)

// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY

#define X_IS_TMC2130 //указывает какие драйвера у нас подключены по SPI

#define Y_IS_TMC2130

#define Z_IS_TMC2130

#define E0_IS_TMC2130

#define E1_IS_TMC2130

#define E2_IS_TMC2130

Дальше задаются значения токов, микрошаг, включение интерполяции и прочее

#define R_SENSE 0.11 // R_sense resistor for SilentStepStick2130

#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current

#define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256

#define X_CURRENT 800 // rms current in mA. Multiply by 1.41 for peak current.

#define X_MICROSTEPS 16 // 0..256

#define Y_CURRENT 800

#define Y_MICROSTEPS 16

#define Z_CURRENT 800

#define Z_MICROSTEPS 16

#define X2_CURRENT 800

#define X2_MICROSTEPS 16

#define Y2_CURRENT 800

#define Y2_MICROSTEPS 16

#define Z2_CURRENT 800

#define Z2_MICROSTEPS 16

#define E0_CURRENT 800

#define E0_MICROSTEPS 16

#define E1_CURRENT 800

#define E1_MICROSTEPS 16

#define E2_CURRENT 800

#define E2_MICROSTEPS 16

#define E3_CURRENT 800

#define E3_MICROSTEPS 16



# define STEALTHCHOP //включение режима stealthChop

# define MONITOR _ DRIVER_ STATUS //включение режима диагностики драйвера на перегрев, при перегреве драйвер будет уменьшать ток на величину CURRENT_STEP_DOWN, до очистки флага перегрева.

# define HYBRID_ THRESHOLD //включение гибридного режима (при превышении скорости задающейся ниже, драйвер переключается из режима stealthChop в более мощный - spreadCycle )

#define X_HYBRID_THRESHOLD 100 // [mm/s]

#define Y_HYBRID_THRESHOLD 100

#define Z_HYBRID_THRESHOLD 3

#define Z2_HYBRID_THRESHOLD 3

#define E0_HYBRID_THRESHOLD 30

#define E1_HYBRID_THRESHOLD 30

#define E2_HYBRID_THRESHOLD 30

#define E3_HYBRID_THRESHOLD 30

# define SENSORLESS _ HOMING // включение режима парковки без концевиков

#if ENABLED(SENSORLESS_HOMING)

# define X _ HOMING _ SENSITIVITY 8 //задаем чувствительность (чем меньше значение, тем выше чувствительность)

#define Y_HOMING_SENSITIVITY 8

#endif

Есть еще опция калибровки Z , но я пока ее не пробовал

//#define TMC_Z_CALIBRATION

#if ENABLED(TMC_Z_CALIBRATION)

#define CALIBRATION_CURRENT 250

#define CALIBRATION_EXTRA_HEIGHT 10

#endif

Многие параметры могут меняться G-кодами, например:

M906 – задает ток драйвера в миллиамперах

M122 S0/1 – выдает информацию о состоянии драйвера

M913 задает скорость для гибридного режима

M914 задает чувствительность в sensorless homing режиме

Настройка конфигурации в Repetier firmware.

Файл Configuration. h

#define DRV_TMC2130

#define SENSORLESS_HOMING

pin will be used, all others are normal step/dir/enable drivers

#define TMC2130_X_CS_PIN 61

#define TMC2130_Y_CS_PIN 14

#define TMC2130_Z_CS_PIN 15

#define TMC2130_EXT0_CS_PIN 43

#define TMC2130_EXT1_CS_PIN 41

#define TMC2130_EXT2_CS_PIN 39

#define MOTOR_CURRENT { 1000,1000,1000,1000,1000,1000 } //задание рабочих токов

#define TMC2130_STEALTHCHOP 1 // включение режима stealthChop

#define TMC2130_INTERPOLATE_256 1 // Enable internal driver microstep interpolation

#define TMC2130_STALLGUARD 0 // чувствительность для sensorless режима

#define TMC2130_PWM_AMPL 255

#define TMC2130_PWM_GRAD 1

#define TMC2130_PWM_AUTOSCALE 1

#define TMC2130_PWM_FREQ 2

# define TMC 2130_ TCOOLTHRS_ X 300 //минимальные скорости при которых работают coolStep и stallGuard 2 (значение – это длительность микрошага)

#define TMC2130_TCOOLTHRS_Y 300

#define TMC2130_TCOOLTHRS_Z 300

В прошивке Repetier нет настроек для включения гибридного режима, мониторинга перегрев драйверов и выдачи отладочной информации.

В целом мне понравилось, как работают драйвера TMC2130: очень тихо, и вместе с тем добиться пропуска шагов достаточно сложно, я пробовал печатать на скорости 200 мм/с, и ускорениями 2000 мм/с, пропуска шагов не было. С другой стороны в исполнении TMC2130 в формате popolu их потенциал раскрыт не полностью.

В данной статье были использованы материалы с сайта компании Терраэлектроника, документация на TMC2130 от Trinamic, а так же различные форумы, посвященные данной теме.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

94
Комментарии к статье

Комментарии

14.03.2018 в 20:01
4

придумают же... Сильная информация!

14.03.2018 в 20:21
5

Очень хорошо

14.03.2018 в 20:32
0

Все это будет работать на дельте? Я как раз начал дельту собирать и лежит рурампс в загашнике. Стоит заказывать для нее такие драйвера? И стоит ли брать эти драйвера на экструдер?

14.03.2018 в 20:45
1

Не вижу причин не брать их на дельту. На экструдер не ставил еще, купил ещё версии 1.0 FYS и все как то руки не дойдут четвертый драйвер переделать.

14.03.2018 в 20:34
5

Я сейчас по-ходу какой-то информационный оргазм получил Оо

14.03.2018 в 20:51
2

Вот спасибо!!!

14.03.2018 в 21:11
2

Опять покупать что то новое..

14.03.2018 в 21:20
1

Ну это как раньше постоянно компьютеры апгрейдили ;)

14.03.2018 в 22:20
0

Сильно отличается для 2208 драйверов система? Там пишут что не SPI уже, там UART

14.03.2018 в 22:35
2

Ну судя по документации на сайте производителя, технологий stallGuard2 и coolStep y 2208 нет, соответственно не будет sensorless homing и подстройки тока 'на лету' в зависимости от нагрузки.
Ну и максимальный ток у TMC2130 - 2,5A, а на TMC2208 - 2A

14.03.2018 в 22:38
2

Молодец!

14.03.2018 в 22:42
1

Вот и прекрасно. Так и поступлю, фанероид-завоид собирается неспешно, подожду теперь драйверы.

09.09.2018 в 17:35
0

как успехи с драйверами ? фанеройд - завойд не поёт ?

09.09.2018 в 21:11
0

Еще не собрал. Все не до него.

11.09.2019 в 08:57
0

А сейчас?)

14.03.2018 в 22:54
2

Очень рад, что есть реализация на отечественной базе RURAMPS.

Остальное - вполне можно брать почти 'цельнотянутое' с опенсорсного i3 MK3 от Йосифа, где Тринамики ставились изначально.

Полный перечень проверенных 'фич' - можно прочитать здесь:
[url]https://www.prusa3d.com/original-prusa-i3-mk3/
раздел 'Full features list'.

Это - не новация уже, а - серийно выпускаемое изделие, с открытыми чертежами и исходниками.

15.03.2018 в 07:56
1

Статься понравилась, автору зачет, лайк и в избранное.
Но хотелось мне в рамках этой статьи поднять ещё одну схожую тему:
Использование sensorless mode, доступного на этих драйверах на кинематике h-bot
Я подозреваю, что напрямую подключив пины DIAG1 ко входам концевиков не получится использовать этот режим.
Ведь в h-bot один мотор фактически перемещает каретку сразу по двум осям. И, например, при home по оси X, при упирании каретки в ограничители сигнал StallGuard получат оба мотора одновременно. То же самое будет и при парковке по оси Y.
Я предполагаю, что на h-bot sensorless mode получится реализовать только с использованием дополнительной логики и пина DIR с обоих драйверов.
Разнесите меня в пух и прах, если я не прав.

PS. Уже лежат пара драйверов, перепаял ноги под управление SPI, убрал/поставил перемычки. Останавливает только отсутствие поддержки (без плясок с бубном) в Repetier Firmware (не хочу обратно на Marlin) и отсутствие времени поплясать с бубном.

15.03.2018 в 08:17
1

У меня на corexy работает sensorless mode без дополнительноц логлогики. Видимо программно этот вопрос как то решен. Нам же известно какая ось в данный момент паркуется, и при обнаружении остановки любого из двигателей возможно по этой оси координаты в ноль выставляются.

15.03.2018 в 08:53
1

Судя по всему Вы правы. Решение чисто программное.

03.04.2018 в 16:30
0

Подскажите пожалуйста, при использовании данного режима как указывать концевики в прошивке Репитера?

17.03.2018 в 00:26
0

По идее если есть обратная связь с обмоток двигателя, то драйвер должен работать еще и как тахогенератор/энкодер... Т.е. еще и возвращать точное положение осей матери... Хм, если обратная связь с матерью реализована...

19.03.2018 в 02:51
0

Очень сильно!

07.04.2018 в 23:19
0

Не пробовали сравнить работу с делением шага в 1/16 с интерполяцией с делением 1/256 без интерполяции?

22.04.2018 в 23:38
0

Попробовал, дуня не вывозит, сходит с ума, так что 1/128 ещё можно, а 1/256 уже нет.

22.04.2018 в 23:51
0

Ну народ уже понемногу перелезает на серию Cortex-M4, там наверное потянет, вопрос только надо ли

14.05.2018 в 13:34
0

Огромное спасибо за статью.
У меня вопрос про 'Третья схема подключения самая интересная'. 
Вот в новой прюши похоже управление идет именно через SPI? 
Где можно поподробнее почитать про эту схему подключения.
Да и не понятно зачем там дополнительный контроллер. Неужели сама ардуина не потянет такое управление?

14.05.2018 в 15:10
0

1. Как организовано управление в новой прюше, я не знаю, пока не удалось ее плату 'поковырять'
2. Подробнее только в даташит на TMC2130 и TMC4361A
3. В отдельном контроллере как раз вся суть данного подключения: основной микроконтроллер уже может не генерировать STEP/DIR сигналы, а отправляет по SPI на TMC4361A только позицию, на которую надо повернуть вал мотора (в градусах там или в микрошагах не знаю, не разбирался еще подробно), скорость и ускорение; TMC4361A на основе этих данных уже сам занимается генерацией STEP импульсов. Кроме того у TMC4361A  есть интерфейсы для подключения энкодера, соответственно можно организовать обратную связь, исключив таким образом пропуски шагов, ШД становится почти сервомотором. При этом разгружается основной МК, и упрощается программа управления моторами. Кроме этого TMC4361A генерирует STEP сигналы, особым образом, в следствие чего мотор работает еще тише и плавнее

14.05.2018 в 15:59
0

В случае использования TMC4361A управление TMC2130 разве не по SPI идет?

14.05.2018 в 16:05
0

TMC2130 управляться по SPI не могут, только конфигурироватся. т.к не могут сами генерить STEP импульсы.
Есть TМС5130/60 - там уже на одном чипе контроллер и драйвер разместили, вот с ними уже можно работать только через SPI

26.08.2018 в 21:10
0

Запилил драйвера по SPI в плату ZRIB v5.3, Почему то отказались работать драйвера, подключенные к Y+ X+, Повешал на свободные 45, 47.
Всё вроде подробно и понятно, кроме одного, что делать с резисторами Vref, сколько вольт на них выставлять? Предполагал, что при переключении в режим конфигурирования по SPI будет использоваться какой нибудь внутренний ИОН, ну раз ток задаётся конфигурированием. Оказалось - нет, По крайней мере в режиме удержания резисторы очень даже регулируют (надо было ещё на ходу потестировать) Всё это говорит о том, что установив в прошивке ток скажем 1А, получим что-то, зависящее от Vref.

Наверняка поизучав даташит, можно получить ответ на этот вопрос, но не люблю я сложные даташиты :) 

28.08.2018 в 17:27
0

Всем привет
Начинаю работать с TMC2130, мотор крутить как надо научился, а нагрузку для определения остановки измерить не могу. 
Настраиваю по SPI, кручу через STEP/DIR
В регистре DRV_STATUS в поле SG_RESULT все время нули (естественно, во время вращения).
Что пробовал:
разные значения в SGT
максимальный/минимальный ток в IHOLD/IRUN
вкл/выкл фильтр SFILT
разную величину микрошага и разную скорость подачи STEP импульсов.

Думаю может настройки PWM влияют...
(PWM_AUTOSCALE вкл, PWM_FREQ= 1, PWM_GRAD = 13, PWM_AMPL = 0x32

10.09.2018 в 04:14
0

доброго времени суток, удалось ли решить проблему ?

10.09.2018 в 11:18
0

Нужно было увеличить ток и поставить скорость побольше

10.10.2018 в 10:20
1

Наконец-то завёл на RuRAMPS/Due (Fribot Z-Helix CoreXY): драйверы шикарные - по всем осям в гибридном режиме, sensorless :) шикарные драйверы, отличный обзор и разбор в статье!

15.10.2018 в 13:04
0

Почему вы взялись разбираться именно в TMС2130? TMC2660 и TMC5130 выглядят тоже очень привлекательно

15.10.2018 в 13:38
0

Потому что они продаются в виде модулей. Хотел для себя изначально понять чем TMC2103 отличаются от 2208 и 2100.
TMC5130/60 конечно интереснее и сейчас на них кое что разрабатываю, но для остальных оно зачем, если модулей драйверов для них нет и купить нельзя.

15.10.2018 в 17:26
0

Спасибо, понял. 

Еще, как вы считаете на каком рубеже скоростей печати и ускорений dcStep может уже не справляться и появляется необходимость в енкодере? или dcStep полностью снимает проблему пропущенных шагов в 3д принтере?

06.03.2019 в 13:13
0

Очень ждём Вашу интегрированную 32х-битную плату! Да ещё с навороченными тринамиками))

19.09.2019 в 21:03
0

А теперь, вроде, появились. 

Или это не то? 

18.11.2018 в 09:42
0

На версии 1.3 конфигурация аналогичная ? В марлине 2.0 присутствуют обе платы (1.1 и 1.3). Так вот, в версии 1.3 нужно переназначать pins.h в соответствующем файле платы ?

30.11.2018 в 01:06
0

под 1.3 переназначать не нужно, проверено(только пока без sensorless). главное замкнуть перемычки для spi. 
правда есть косяк на плате(если верить автору платы - китайцы слегка запороли партию), у драйвера экструдера от SDO пина нет дорожки к нижней spi перемычке(можно подпаять проводок) 
PS фотка не моя, но я сделал так же ) [IMG]https://pp.userapi.com/c852132/v852132071/a3d/JIn1H8IqiX4.jpg[/IMG]

05.12.2018 в 14:22
0

О, моя фотка) колхоз из витухи)

30.11.2018 в 14:19
0

А это как-то можно опознать по работеконфигурированию ? Просто возможно у меня другая партия и никаких проблем с экструдером не наблюдается. Или это проблема вообще всех плат V1.3 ?

30.11.2018 в 14:22
0

Это проявляется только если в слоте E0 стоит драйвер TMC2130 в режиме конфигурации по SPI

30.11.2018 в 15:19
0

У меня собственно так и есть. Драйвер прописан в adv.conf по SPI и всё вроде норм.
Правда если раскомментировать #define MONITOR_DRIVER_STATUS то Marlin не заводится и пишет ошибку, оно ?
PS А со слотом E1 подобных проблем нет ?

30.11.2018 в 15:40
1

Да, там ошибка именно при чтении статуса из регистров драйверов (обрыв MISO), а запись конфигурации в регистры работает, потому сами дрова работают. С остальными слотами такого нет

30.11.2018 в 16:28
0

Спасибо большое, а то я уж думал что драйвера пришли какие-то бракованные. А разработчик куда-то пропал. На email не отвечает да и сайт что-то не пополняется. Документация разве что в разрозненных постах на этом сайте. Ой извините, похоже вы и есть разработчик :) Раз уж так то спрошу: китайский BL-toch версии смарт (где разрезав дорожку на плате можно подключатся к логике 3.3В) можно подключать на любой endstop разъем ?

20.06.2019 в 09:44
0

Коллеги, помогите советом.

Ультик. Перешел на Due + RuRamps4Due 1.1 + tmc2130 (конфигурирование по spi, sensorless homing(X+Y), остальные настройки стандартные). Пробная печать кубика со стороной 1 см.: 
Кубик
Фактически каждый слой мещен в ту или иную сторону. 
1. Предположил что пропуски из-за низкого тока. Попробовал выставить больший ток на драйверах (1000 вместо 800) - теперь головка не паркуется, упирается в край и продолжает трещать. В настройках можно выставить чувствительность (x_stall_sensitivity), по умолчанию стоит 8. А вот в какую сторону изменять это значение - не понятно (в большую/меньшую).
2. Есть еще одно предположение, которое буду проверять - помехи при печати с карты памяти. Печатаю с карты ReprapFullGraphic Controller, который, пока не срезал микросхему согласования уровней, давал кашу. Теперь экран показывает нормально, но только после перезагрузки, при первом включении на половине экрана каша. Провода обернуты фольгой, но если для первого включения это помогает плохо - может помехи при передаче информации от карты вызывают такие танцы...
Upd.: Печатал напрямую через usb - результат тот же.

Кто как настраивал эти драйвера? Как с таким бороться?

28.07.2019 в 07:42
0

Приводя графики гладкой синусоиды тока обмоток двигателя автор демонстрирует непонимание сути происходящего в системе двигатель объект. Напротив, неравномерная нагрузка на инструмент и, как следствие, двигатель, должно отразиться на графике тока обмоток в виде, как раз, искажения привычной синусоиды, только в это случае можно полагать что система работает по другому, более 'Правильно'. И вообще, принцип управления DIR STEP это архаизм от которого надо уходить. Правильнее выдавать задание 'STEP' в виде вычисленного заранее значения требуемого момента на каждую новую метку времени 'STEP'. Системы с разделением функций на контроллер двигателя и контроллер перемещений ужасны в своей нелогичности, они изначально спроектированы без обратной связи с модулем моушен. Еще раз предлагаю в контроллере перемещений вычислять не пресловутые DIR STEP а требуемый от двигателя момент на каждую новую метку времени что-то типа NEXT TORQUE, причем это будет единственный входящий в контроллер двигателя сигнал в виде числа со знаком, что, кстати, и обеспечит смену направления перемещения. А обратную связь заводить программным или аппаратным энкодером.

22.10.2019 в 22:23
0

Дамы и господа с последним MArlin 2.0 не компилируется по причине отсутствия 

#define TMC_USE_SW_SPI

  #define TMC_SW_MOSI -1

  #define TMC_SW_v -1

  #define TMC_SW_SCK -1

Вопрос в том, какие пины сюда вписывать, если в pinout этого нет? Спасибо

22.10.2019 в 22:31
0

А при чем тут SW_SPI? На RURAMPS к TMC хардварный SPI идет, SW_SPI для программного.

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Печать для мебельных механизмов.

Задумчивый дяденька

Показал принтёр - 2. И чуть-чуть о мамкиных "экспертах-первопечатниках".

Боевой скелет

Проблемы печати на материале PET-G, PLA

Обзор ABS 350р/кг