# M5_TMC2130

Тест драйвера и описание его настройки

Общее:

Без радиатора будет греться до 75 градусов<br/>
С радиатором 65<br/>
Обдув решает все вопросы. Обдув обязателен<br/>
Как и в предыдущих версиях драйверов не рекомендуется отключать двигатель при включенном питании драйвера (необходимо предотвратить самостоятельное отключение)<br/>


<br/>Файл M5_TMC2130.ino  - содержит пример кода с комментариями
<br/>Папка pdf - документация к драйверу (Полный и понятный документ pdf/TMC2130_datasheet.pdf)
<br/> Папка img - рисунку распиновка фото

<br>Лучше всего использовать совместно с BIGTREETECH protector ( https://www.gearbest.com/printer-parts/pp_3005227053225004.html )       
Это шилд между драйвером и любой платой управления для защиты драйвера от перегорания при обрыве части контаков двигателя, или ручной прокрутки двигателей. В общем это защита драйвера от токов которые может генерировать мотор, или от обрывов проводов. 
<br>
<b>Еще лучше использовать готовую плату SKR v1.3 которая приходит по умолчанию настроенная на использование данных драйверов</b>

<b>---------------------------------------</b> 

<strong> - понятная распиновка/соединение для работы по SPI без промежуточных плат между ардуиной и TMC2130
</strong>

<br/>
Первый запуск (Для SPI режима)<br/>
Перед запуском необходимо убедится что драйвер не имеет перемычки на контактах SPI<br/>
Убедиться что правильно припаяны резисторы на контактах CFG4 (GND), CFG5 (VCC).<br/>
Пример установки перемычек: https://arduino.ua/images/HTB18dtMKv9TBuNjy1zbq6xpepXac.jpg

<strong> После данных операций подстроечный резистор перестает влиять на работу драйвера, ток выставляется в прошивке. </strong>
<br/>
В прошивке опытным путем было определено: Лучше использовать программный SPI, так как он учитывает все входы которые в аппаратном SPI необходимо подключить вручную к питанию Vio, GND или выставить необходимый уровень (DIR, STEP, EN) которыми возможно управлять в коде. Индивидуально необходимо рассматривать данные пины при использовании шилда. 

Пример соединения драйвера с Arduino Mega (Фото добавленно в папку IMG) <br/>
Стоит позаботится о качественном контакте пинов. Так как мотор может крутиться медленно из за плохого контакта STEP/DIR

#define EN_PIN           46  // Enable<br/>
#define DIR_PIN          24  // Direction<br/>
#define STEP_PIN         26  // Step<br/>
#define CS_PIN           30 // Chip Select<br/>
#define SW_MOSI          34 // Software Master Out Slave In (MOSI)<br/>
#define SW_MISO          28 // Software Master In Slave Out (MISO)<br/>
#define SW_SCK           32 // Software Slave Clock (SCK)<br/> 

<br/>
Для использования нескольких TMC2130 на одной шине и обратных связей необходим контроль на Chip Select (выбор микросхемы). С помощью данного сигнала происходит активация ведомого устройства. 
<br/>
<b>---------------------------------------</b> 

<strong> - понимание по подстройке ограничителя тока на TMC2130   </strong>
<br/>
<strong> После перевода в режим SPI подстроечный резистор перестает влиять на работу драйвера, ток выставляется в прошивке. </strong>

<br/>
Установка тока происходит путем вызофа функции rms_current(); для обьекта класса TMC2130Stepper
Пример: driver.rms_current(1000);
1000 - ток устанавливаемый в милиамперах

<br/>
Для установки тока изначально необходимо знать характеристики мотора (используемого)
<br/>                               
модель: JK42HS34-1334AC<br/>
Распиновка: зеленый А+, черный А-, синий В+, красный В-.<br/>
<b>НОМИНАЛЬНЫЙ ток на обмотку: 1.33 А</b><br/>
<br/>
Верная настройка токов позволяет: <br/>
Избавится от пропуска шагов<br/>
Снизить нагрев двигателей<br/>
Снизить шум двигателей<br/>


<br/>
<b>---------------------------------------</b> 
<strong> - выбор библиотеки и экземплы по обработке детектов (stallGuard2)</strong> 
<br/>

Пример использования библиотеки с определением текущего состояния параметра StallGuard  находится в файле M5_TMC2130.ino

Cуществует старая версия библиотки: https://github.com/teemuatlut/TMC2130Stepper ,но она 3х летней давности
Необходимо скачать и установить библиотеку: https://github.com/teemuatlut/TMCStepper (обновляемая и поддерживаем большее количество драйверов)

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

<br/>
Видео с примером и принципом работы: https://youtu.be/UrRlFIkvNxc 
<br/>

<b>---------------------------------------</b> 
Цитата с форума: <br/>
Eсли кто-то собирается использовать библиотеку TMCStepper вместе с ESP32, вам необходимо использовать HardwareSerial из-за проблем с совместимостью. - Но по факту необходимо использовать Software Serial. 
<br/>

Ссылки: 
<br/>
Интересынй пример: https://revspace.nl/TMC2130<br/>
Библиотека: https://github.com/teemuatlut/TMC2130Stepper<br/>
https://github.com/teemuatlut/TMC2130Stepper/tree/master/examples <br/>
Про StallGuard2:   https://3dtoday.ru/blogs/svs0724/tms2130-applied-technology-and-connection-to-ruramps4d-in-the-configur/<br/>
Решение от автора: https://gist.github.com/teemuatlut/2bc6d85732311087e3e5285e04c36cb5 
