TMC2208 v2 UART

Подписаться на 3Dtoday
shadrincev
Идет загрузка
Загрузка
11.02.19
1886
29
печатает на Flyingbear P905
Техничка
14
Статья относится к принтерам:
Flyingbear P905
Всем доброго времени суток! На форуме не нашёл описания включения режима UART с картинками, надо исправить.
Стал я обладателем драйверов TMC2208 v2. Тихие…, но вредные! При больших ускорениях идут пропуски шагов, в стандартном режиме слабое удержание, как мне кажется. И решил я попробовать сделать UART, тем более в некоторых местах упоминается (допустим тут), что будет лучше удержание и не придётся снижать ускорение и прочие регулировки, по тихости остаются такими же, вроде. Что-ж, паяльник в помощь…
Нам понадобиться:
1. 1. 2 проводка с Dupont.
2. 2. 1 резистор на 1кОм.
3. 3. Паяльник.
4. Руки, выпрямленные.

Первое что делаем, это активируем режим uart, запаяв перемычку (смотрим картинку).
Было:
a835634b7c72e2a744dadd402ec2c74d.png
Это в другом исполнении:
e6897de51a9513ea8e0882abaa786d13.jpg
Стало:
a339d98a2be578e842eb220fc5e951b8.jpg
Дальше берём и выпаиваем\откусываем ногу PDN.
0b95e8387525733643675082b7ba4772.jpg
88f4187f169945611339fb7f330c1b66.jpg
Затем, один из проводов припаиваем к контакту PDN, а другой, через резистор (я использовал SMD с маркировкой 102), туда же, или к первому проводу, кому как больше нравиться. И запоминаем, что Rx без резистора, а Tx с резистором.
43f24b621fdd391a8fb15fa30a102903.png
f3aa0560fe61a77a987a2d18d1c5c8fb.jpg
Всё! Пайка окончена. Vref рекомендуется выставить 1,5 (но не больше 1,65!)
d8fc818d98a1a9c4ef7c6d7ab999225d.png
и регулировать необходимое из прошивки.
Подключение к плате и настройка прошивки на форуме обсуждалось, я не описываю - т.к. использую klipper.
Для тех, кто захочет изменить параметры по USB один раз (запись в память производится один раз! Больше переписать не удастся!) и поставить в стоковом состоянии, откусывать ножку не нужно! Паяем перемычку, подключаем провод напрямую к PDN и второй через резистор, допаиваем еще проводки согласно рисунку ниже.
b40acb66bb0518390d8093f8c240f243.png
Подключаем к USB шнурку и в компьютер. Изменение параметров и запись делаем по статье https://learn.watterott.com/silentstepstick/configurator/
На этом все. Часть картинок честно стащил за бугром.
Подписаться на 3Dtoday
14
Комментарии к статье

Комментарии

11.02.19 в 11:13
0
И что это дает? Сейчас драйвера прекрасно работают.... если я сделаю то, что вы предлагаете, какие плюшки я получу?
11.02.19 в 12:05
0
И даже не пытался заставить переделывать нормально работающие. А получим, те же 2130, только в профиль:)
11.02.19 в 12:40
0
А получим, те же 2130, только в профиль:)
У 2130 есть виртуальный эндстоп
11.02.19 в 11:14
1
я не описываю - т.к. использую klipper
Вот тут как раз самое интересное - не плохо бы увидеть примеры конфигов
11.02.19 в 12:04
1
Вот для Х:
[stepper_x]
step_pin: P0.4
dir_pin: !P0.5
enable_pin: !P4.28
step_distance: 0.0125
endstop_pin: ^!P1.29
#endstop_pin: ^!P1.28
position_endstop: 0
position_max: 300
homing_speed: 40
[tmc2208 stepper_x]
uart_pin = P0.16
tx_pin = P0.18
microsteps = 16
interpolate = False
run_current = 0.6
hold_current = 0.6
sense_resistor = 0.110
stealthchop_threshold = 500
driver_iholddelay = 8
driver_tpowerdown = 20
driver_blank_time_select = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 5
driver_pwm_autograd = True
driver_pwm_autoscale = True
driver_pwm_lim = 12
driver_pwm_reg = 8
driver_pwm_freq = 1
driver_pwm_grad = 14
driver_pwm_ofs = 36
11.02.19 в 12:12
1
Судя по вашим настройкам, вы через uart только интерполяцию отключили. Так что в чем профит ?
11.02.19 в 12:34
1
Это тестовая конфигурация... И конфиг, не совсем относится к теме статьи, меня просили пример. Более точно и корректно, можно почитать тут, как раз по klipper и TMC2208 c картинками. Ссылка в статье есть :)
11.02.19 в 12:39
2
Я правильно Вам понял, весь профит в том, что можно будет управлять током и прочими настройками драйвера, прямо из конфигов клипера?
11.02.19 в 13:35
0
Да, правильно.
11.02.19 в 12:44
2
Подскажите, какие пины можно использовать в качестве rx tx (я тоже использую клиппер ), а лучше пример подключения к плате ) и расшифровку последних параметров в конфиге которые касаются за настройку драйвера.
11.02.19 в 13:41
1
Эээ, ну у меня плата SKR 1.1 и пины с EXP1 и EXP2, т.е. все свободные. Какая у Вас плата и какие пины свободны, я не знаю. А так, какие свободные пропишите в конфиге, те и будут. Расшифровка параметров будет, когда всё протестирую и до конца вникну.
11.02.19 в 13:53
2
Вот мой конфиг Klipper для "hacked RAMPS": https://gist.github.com/lorf/751522978a163c094a36ff24bef78489, TMC2208 подключены по one-wire UART к пинам D59, D40, D42, D44 разьема AUX-2 (см. https://reprap.org/wiki/File:Arduinomega1-4connectors.png)
11.02.19 в 17:30
0
Спасибо большое за конфиг, подскажите как у вас физически реализуется one-wire UART. Я так понимаю нужен диод и резистор на 47k Ом?
11.02.19 в 17:41
1
Подключаются напрямую без диодов и резисторов. При должной конфигурации ничего не погорит. Вот тут рассказал: http://3dtoday.ru/blogs/shadrincev/tmc2208-v2-uart/#508583
11.02.19 в 11:17
2
Благодарю!

Хотелось-бы краем глаза увидеть и скриншот терминалки конфигурирования.
11.02.19 в 12:36
1
Не за что.
Постараюсь выполнить пожелание, но позже - разгар перепайки всего и вся.
11.02.19 в 20:42
1
Вот, надеюсь правильно понял. Что с резистором, что без - одно и тоже. Почему - ответил ниже.
9c88c52d323c623d13d0c21bbdd214c9.jpg
11.02.19 в 21:04
0
Благодарю!
Мне пока этого достаточно.
11.02.19 в 14:03
2
тема не раскрыта. выглядит как первая часть хорошего и нужного цикла статей: сейчас мы подготовим железо, а про остальное - в следующих сериях.
так что - ждём продолжения.
11.02.19 в 14:10
2
СтОит заметить, что TMC2208 можно подключить по One-Wire UART, экономя по 1 пину контроллера на драйвер. Не знаю, как в Marlin (согласно вот этому: https://github.com/KevinOConnor/klipper/issues/720#issuecomment-426123012 - работает), в Klipper работает отлично. Про один способ подключения почитать тут: https://github.com/KevinOConnor/klipper/issues/720#issuecomment-426431761. Я подключал приблизительно так: https://imgur.com/a/T3Xgk, т.е. запаял перемычку на драйвере, пин PDN на каждом драйвере перевернул ногой вверх и подключил к пинам D59, D40, D42, D44 разъема AUX-2 на RAMPS (https://reprap.org/wiki/File:Arduinomega1-4connectors.png) dupont-проводами. Мой конфиг: https://gist.github.com/lorf/751522978a163c094a36ff24bef78489 .
11.02.19 в 14:37
1
Раз стОит, так замЕтьте. :)
У вас режим только отправки, но нет приёма - напоминает глухой телефон. Т.е. у вас нет возможности, хотя бы, переключения stealthChop2 и spreadCycle на лету и т.д. (это в марлин есть, в клипере не проверял).
11.02.19 в 14:49
2
В клиппер также есть. При превышении скорости указанной в настройках переключается
11.02.19 в 16:43
2
Раз стОит, так замЕтьте.
С чего такое надменное недоверие? Всё работает. Смотрите:

При "microsteps: 32":

Send: dump_tmc stepper=stepper_a
[...]
Recv: // CHOPCONF: 13030053 toff=3 hstrt=5 TBL=2 vsense=1 MRES=3(32usteps) intpol=1
При "microsteps: 16":

Send: dump_tmc stepper=stepper_a
[...]
Recv: // CHOPCONF: 14030053 toff=3 hstrt=5 TBL=2 vsense=1 MRES=4(16usteps) intpol=1
В Klipper stealthchop_threshold есть.
11.02.19 в 15:47
2
Кому нужно больше информации - https://www.instructables.com/id/UART-This-Serial-Control-of-Stepper-Motors-With-th/
12.02.19 в 17:00
0
Доброго дня.
Хотел бы обратить внимание на очень полезный комментарий из статьи по ссылке выше - а именно, как красиво реализовать "двух-проводность" на драйверах от Fysetc
11.02.19 в 18:44
2
Хотите фишку скажу в Клипере не надо резистора и уарт работает по 1 пину и запись и считывание полследовательно реализовано программно
начало конфига


[tmc2208 stepper_x]
uart_pin: ar63
microsteps: 16
interpolate: True
run_current: 0.94
hold_current: 0.39
sense_resistor: 0.110
stealthchop_threshold: 250
driver_IHOLDDELAY: 8
driver_TPOWERDOWN: 20
driver_BLANK_TIME_SELECT: 1
driver_TOFF: 3
driver_HEND: 0
driver_HSTRT: 2
driver_PWM_AUTOGRAD: True
driver_PWM_AUTOSCALE: True
driver_PWM_LIM: 12
driver_PWM_REG: 8
driver_PWM_FREQ: 1
driver_PWM_GRAD: 14
driver_PWM_OFS: 36

наткнулся на это когда просматривал код считывания с драйверов
# pin setup
ppins = self.printer.lookup_object("pins")
rx_pin_params = ppins.lookup_pin(
config.get('uart_pin'), can_pullup=True)
tx_pin_desc = config.get('tx_pin', None)
if tx_pin_desc is None:
tx_pin_params = rx_pin_params
else:
self.handle_connect)
11.02.19 в 19:25
2
Именно, а если надо только устанавливать параметры - все драйверы вообще вешаются на 1 проводок параллельно.
11.02.19 в 19:01
2
остальные параметры подбирал с помощью калькулятора с офф сайта

Калькулятор
11.02.19 в 20:17
2
Посыпаю голову пеплом... Спасибо diman77, EvilGremlin, frol и другим. В клиппер (! у другой прошивки может быть не так!!!) правда реализован обмен по одному проводу Проверил на своём - по одному тоже работает. И конфигурация klipper не совсем относится к теме данного поста хоть и хотел совместить, но было мало данных. Но! Не забываем про другие прошивки!
И, все же, жирный камень выше перечисленным товарищам (не в обиду, а то опять буду надменным) - а в вашем плотном графике не найдётся времени, чтобы накропать пару статеек про klipper?
За-си́м теряю интерес к обсуждению того, что не касается написанного в посте по ПЕРЕПАЙКЕ TMC2208.

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

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

Компания Thor3D анонсировала ручной 3D-сканер Calibry

3D принтер Anisoprint Composer A4. Альтернатива 3D печати металлом? Обзор от 3Dtool

Карбон + 3D печать = суперлегкая и компактная штанга для металлоискателя

Космическая компания Relativity Space получила патент на фирменную технологию 3D-печати

Склад Top 3D Shop переехал

Обзор 3D-сканеров Metronor