Металл2024 Реклама
Метобр2024 Реклама

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

chak198
Идет загрузка
Загрузка
25.10.2022
6643
13
Техничка

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

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

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

7

Доброго времени суток, уважаемые коллеги! Сегодня сделаем правильное подключение БОЛЬШИХ (или не очень :))) ) внешних драйверов для 3D принтера, чтобы все РАБОТАЛО и работало как надо: без смещений и прочей чепухи, которую даже опытный боец может принять за износ механики!

-На что обратить внимание в первую очереди?

-Напряжение не только ПИТАНИЯ, но и  ЛОГИКИ! Далее капсом не пользуюсь;))

Дело в том, что наши платы выдают до 3,3 вольта на логический сигнал (не нужно сейчас лезть с мультиметром, это на десерт!!!!), для  драйвера по типу А4988 вполне, а вот что побольше и подальше от управляющей платы часто требует 4,5-5 вольт или даже 12/24 вольта но в паре с резисторами (чтобы не спалить мозги). Сегодняшние претенденты на звание идеально совместимой пары управляющей платы и внешнего драйвера для точного перемещения.....

Плата SKR V2.0 и драйвера DM556. У кого что-то другое (хоть пара рампс и tb6600) не переживайте, инструкция универсальна!!!

Собственно драйвер:

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))И плата:

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

От платы на драйвера у нас всегда идут только два управляющих сигнала: STEP (его ещё называют PULSE) - сигнал шага и DIR - в какую сторону "шагать". Можно посмотреть их на обороте платы или на маленьком драйвере (в какую ячейку  втыкивается ножка когда вставляете драйвер), у маленьких драйверов это соседние ножки,  также найдем GND напротив DIR:

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие)) 

Мои STEP (левая ячейка для одной ножки) и DIR (правая ячейка для одной ножки), GND напротив DIR

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Проверим же наверняка сколько  вольт выдают пины нашей логики! В 99,9% случаев у плат для 3D принтеров это будет до 3,3 вольт. Замеряем напряжение мультиметром в режиме постоянного тока на каком-нибудь из рабочих концевиков (тот что щелкает при парковке), для этого отключаем его и тыкаем щупами в логический пин (тот что не +5V) и GND, у меня получилось +3,25 V (если перепутали плюс и GND,то покажет -3,25 V)

-Почему не измерил пины STEP и DIR?

-Для этого пришлось бы использовать не мультиметр за 450 рублей, а осциллограф, который бы улавливал импульсный ток во время движения по осям. STEP и DIR импульсные сигналы, имеющие частоту (до 200 000 раз в секунду ) и ширину (грубо говоря это длительность импульса),  в отличии от вкл/выкл режима концевичков. Однако и то и то идет по пути логического сигнала от управляющего чипа, вряд ли будет иное напряжение на STEP и DIR. Если нет осциллографа, но очень хочется проверить что выдает именно STEP и DIR , то придется поменять одного из них местами с логическим пином концевика, по этому поводу я снял небольшое видео где меняю пины термисторов https://www.youtube.com/watch?v=oS29VAp2JGo  , главное не забудьте потом вернуть все на место!  

Переходим к драйверу!!! Гуглим DM556 pdf, нам выдается инструкция то ли даташит (уж как не называй) на наш драйвер. Иногда есть несколько инструкций, смело выбирайте наиболее удобную (с красивыми табличками и рисунками)). Листаем до табличек с описанием токов нашим драйверам:Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Тут нас интересуют:

1) Output current - максимальный ток на двигателе, который указывается в PDF двигателя и выставляется маленькими переключателями на драйвере 

2) Supply voltage - напряжение блока питания драйвера , 36 ок, но пальцы лучше не сувать 

Если набрать название нашего мотора и слово PDF, то там помимо ампер будет указание VDC и значение порядка 1-5 вольт, однако драйвера управляют моторами не постоянным током, а по принципу шим (кто слышит писк мотора - это работа шим), что это читайте отдельно, но если коротко 36 вольт подаются не постоянно, а вкл/выкл много много раз в секунду

3) Logic signal current -  ток для логического сигнала , до 16 мА, то есть до 0,016 А

4) Pulse input frequency - частота логики в кГЦ, до 200 кГЦ (Понадобится при прошивке )

5) Что-то там про сопротивление изоляции, не важно))

Проматываем до таблички управляющих сигналов и тут... 4-5 V для верхнего сигнала PUL (STEP) и DIR!!!  А при наличии резисторов можно и 12 вольт и 24, но у нас только 3,25 V.  

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Что касается сигнала ENA (Enable) его обычно не подключают т.к. из-за него драйвер будет игнорировать сигналы STEP и DIR , зачем оно нам?)) Но кому надо тому надо!)) Перед тем как начнем паять (или кому удобнее собирать брэдборд) листаем наш pdf и находим схемку с сопротивлением пинов драйвера:Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Сопротивление 270 Ом, при напряжении 4-5 вольт ток по закону Ома как раз около 16 мА, при 12 и резисторе на 1 кОМ +270 Ом уже 9,5 мА, при 24 и 2кОМ + 270 Ом тоже в районе 10 мА, как того и требует инструкция. На наших платах достаточно 5-ти вольтовых источников питания для концевиков, используем их. Тут нужно загуглить ближайший "Магазин радиотехники" и набрать npn транзисторов и к ним резисторов (dc-dc повышающие преобразователи не прокатят). Стоят они по несколько рублей (а иногда и по рублю), какие именно нужно можно легко подсчитать:

Сопротивление как DIR так и STEP у драйвера 270 Ом, напряжение хотим 4-5V (это напряжение коллектор-эмиттер), а управляющий сигнал порядка 3,25 вольт (это напряжение база-эмиттер) . Под такие цели можно найти много транзисторов, я выберу 2N3904, у которого напряжение база-эмиттер до 6 вольт, а коллектор-эмиттер аж до 40. 

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))На один драйвер понадобится 2 транзистора. Резисторов же нужно аж 2 штуки. Рассчитаем какие нужны:

Т.к. у нас напряжение +5 вольт с платы, а транзисторы снижают напряжение где-то на 0,6 вольт, то при 4,4 вольтах и 270 Ом ток коллектор-эмиттер будет около 16 мА, что хорошо. Смотрим на картинку - база это лапка посередине, к ней подключаем наши 3,25 вольт через резистор номиналом (3,25-0,6)/(0,016/200)=33000 Ом или 33 кОМ, где 3,25 V это напряжение логики, 0,6 V падение напряжение, 0,016 A подсчитанный выше ток, 200 это средний коэффициент усиления (hfe) транзистора с картинки выше. Таким образом нам нужен резистор 33-35 кОМ. Также необходим более мощный резистор на 500-1000 кОМ (1 мегаом), который будет служить стягивающим резистором, получится так:

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Осталось совсем немного!! Надо подправить прошивку под наш внешний драйвер: задать частоту, длительность импульса и задержки)) Кто перепиновывал пин - вернуть все обратно.  Заходим в Configuration_adv.h, изменяем количество сегментов (у нас ведь теперь хорошие большие драйвера:))

/ Moves (or segments) with fewer steps than this will be joined with the next move

#define MIN_STEPS_PER_SEGMENT 1

Далее устанавливаем задержки для сигнала DIR по PDF файлу драйвера (таблички в начале), у меня это минимум 5 микросекунд, тут её указывают в наносекундах, значит 5000 ns, я поставлю 6000

/**

 * Minimum delay before and after setting the stepper DIR (in ns)

 * 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire)

 * 20 : Minimum for TMC2xxx drivers

 * 200 : Minimum for A4988 drivers

 * 400 : Minimum for A5984 drivers

 * 500 : Minimum for LV8729 drivers (guess, no info in datasheet)

 * 650 : Minimum for DRV8825 drivers

 * 1500 : Minimum for TB6600 drivers (guess, no info in datasheet)

 * 15000 : Minimum for TB6560 drivers (guess, no info in datasheet)

 *

 * Override the default value based on the driver type set in Configuration.h.

 */

#define MINIMUM_STEPPER_POST_DIR_DELAY 6000

#define MINIMUM_STEPPER_PRE_DIR_DELAY 6000

Очень важная штука - ширина импульса, в табличке пишут что pul не менее 2,5 микросекунд, но лучше я поставлю 5 микросекунд.

/**

 * Minimum stepper driver pulse width (in µs)

 * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers

 * 0 : Minimum 500ns for LV8729, adjusted in stepper.h

 * 1 : Minimum for A4988 and A5984 stepper drivers

 * 2 : Minimum for DRV8825 stepper drivers

 * 3 : Minimum for TB6600 stepper drivers

 * 30 : Minimum for TB6560 stepper drivers

 *

 * Override the default value based on the driver type set in Configuration.h.

 */

#define MINIMUM_STEPPER_PULSE 5

И конечно же частота импульса. Драйвера способны выдавать до 200 кГц, но мы увеличили длительность импульса в 2 раза, поэтому уменьшаем частоту в 2 раза и оставляем 100 кГц  

 * Maximum stepping rate (in Hz) the stepper driver allows

 * If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE)

 * 5000000 : Maximum for TMC2xxx stepper drivers

 * 1000000 : Maximum for LV8729 stepper driver

 * 500000 : Maximum for A4988 stepper driver

 * 250000 : Maximum for DRV8825 stepper driver

 * 150000 : Maximum for TB6600 stepper driver

 * 15000 : Maximum for TB6560 stepper driver

 *

 * Override the default value based on the driver type set in Configuration.h.

 */

#define MAXIMUM_STEPPER_RATE 100000

    

!!!!И ТЕПЕРЬ САМОЕ ВАЖНОЕ!!!

Без чего драйвера не будут работать (а так могут неплохо "шевелиться" и на 3,25 вольт):

Практически для всех больших драйверов тут нужно поменять false на true

// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.

define INVERT_X_STEP_PIN true

#define INVERT_Y_STEP_PIN false

#define INVERT_Z_STEP_PIN false

#define INVERT_I_STEP_PIN false

#define INVERT_J_STEP_PIN false

#define INVERT_K_STEP_PIN false

#define INVERT_U_STEP_PIN false

#define INVERT_V_STEP_PIN false

#define INVERT_W_STEP_PIN false

#define INVERT_E_STEP_PIN false

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

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

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

7
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама