
TMC2209 Stepper Driver
BIGTREETECH, микросхема Trinamic / Analog Devices · BIGTREETECH TMC2209 V1.2, Rsense 0,110 Ом, standalone STEP/DIR
Драйвер тихого управления биполярным шаговым двигателем с STEP/DIR и возможностью UART.
Автор: SLDV LAB
Опубликовано · Обновлено
О МОДУЛЕ
Что делает BIGTREETECH TMC2209 V1.2, Rsense 0,110 Ом, standalone STEP/DIR
TMC2209 позволяет управлять движением через STEP/DIR и отдельно настраивать режимы по однопроводному UART. StealthChop уменьшает акустический шум при подходящей нагрузке и настройке. Функции обнаружения нагрузки не заменяют универсальный датчик абсолютного положения.
Референс — BTT TMC2209 V1.2 с двумя Rsense 0,110 Ом. Здесь используется standalone без UART и без изменения OTP. Указанная настройка тока является RMS; пиковое значение синусоидального тока больше в √2 раза. Это различие важно при выборе двигателя.
При Rsense 0,110 Ом документация BTT даёт Irms = Vref / √2. Это сокращение применимо к указанной плате и аналоговому заданию тока, а не к любому TMC2209. Для небольшой пробы с двигателем Adafruit #324 выбрано Irms 0,20 А: пик около 0,283 А, ниже его паспортных 0,35 А. Заводское положение потенциометра нельзя считать безопасным для этого двигателя.
Сначала используйте простой STEP/DIR. UART требует проверки разводки PDN, адресов и совместимой библиотеки; его нельзя подключать по аналогии с обычной парой TX/RX. Sensorless homing требует отдельной настройки на реальном механизме и не проверяется намеренным ударом в жёсткий упор в этой пробе.
Плата управляет током обмоток; ток на входе питания не равен фазному току. Максимальный ток микросхемы нельзя считать гарантированным длительным током маленькой платы без оценки охлаждения. Внешний источник, короткие силовые провода и конденсатор у VMOT обязательны; встроенная защита не устраняет риск перегрева и выбросов напряжения.
Для любой перекоммутации выключайте логическое и силовое питание и дожидайтесь разряда конденсатора. Извлечение двигателя из работающего драйвера может вывести плату из строя. На двухполярные выходы H-моста не ставят один обычный диод поперёк обмотки. Пример не обеспечивает аварийную остановку опасного механизма и не предназначен для нагруженной вертикальной оси.
TMC2209 V1.2, BIGTREETECH · standalone STEP/DIR. Источник фото: Zyltech; https://www.zyltech.com/genuine-bigtreetech-tmc2209-v1-2-stepper-motor-driver/. Лицензия на повторное использование не установлена. Удалён фон; объект равномерно масштабирован, детали и маркировка сохранены.
Схема соединений SLDV LAB показывает функциональные названия контактов; порядок строк не задаёт их физическое расположение. Подключение и первое включение выполняются по процедуре карточки.
Характеристики
- Референс платы
- BIGTREETECH TMC2209 V1.2, Rsense 0,110 Ом, standalone STEP/DIR
- Режим примера
- Standalone STEP/DIR, StealthChop
- Rsense референса
- 0.11 Ом
- Деление полного шага в примере
- 1/16 на входе STEP
- Настройка и диагностика по UART
- Да
- Нагрузка
- Двухфазный биполярный шаговый двигатель
- Интерфейс
- UART
- Питание модуля
- В стенде BTT TMC2209 V1.2: VM = 12 В внешнего источника, VIO = 5 В Uno R3. Руководство V1.2 указывает VM 4,75–28 В, но эта карточка не разрешает переносить диапазон микросхемы на любую плату.
ПРАКТИКА
Подключение
| Контакт модуля | Контакт платы | Назначение |
|---|---|---|
| STEP | D2 Arduino Uno R3 | Сигнал STEP при VIO=5 В; расположение контактов сверить с ревизией BTT V1.2. |
| DIR | D3 Arduino Uno R3 | Задаётся до импульсов. |
| EN / ENN | D4 Uno и 10 кОм к VIO | Активный LOW; HIGH отключает мосты. Не путать с питанием. |
| VIO / VCC_IO | 5V Uno R3 | Питание логических уровней. При другом контроллере VIO и уровни меняются согласованно. |
| MS1, MS2 | VIO (5 В) | Оба HIGH выбирают 1/16 при заводских настройках standalone TMC2209; таблица TMC2208 не подходит. |
| PDN_UART | GND в режиме standalone | UART в этом примере не используется; контакт и перемычки PDN сверить по BTT V1.2. Не заземлять вывод, если его одновременно ведёт UART контроллера. |
| SPREAD | LOW / штатная конфигурация StealthChop | Убедиться по схеме платы, что не выбран SpreadCycle и не остались иные настройки UART/OTP. |
| VM | +12 В внешнего источника | В стенде у платы электролит 100 мкФ 25 В с правильной полярностью; короткие силовые провода и исправная штатная керамическая развязка. |
| GND | Минус источника и GND Uno | Оба контакта земли соединены с общей землёй. |
| 1A/1B и 2A/2B либо A1/A2 и B1/B2 | Две проверенные пары обмоток | Названия сверить с шелкографией конкретной BTT V1.2. Не ориентироваться на цвет платы или положение регулятора. |
| DIAG, INDEX и неиспользуемые контакты | Не подключать | Диагностика UART и sensorless homing в этот минимальный пример не входят. |
Подходит для Arduino. Выберите контакты по документации своей платы.
ВАШ ПРОЕКТ · ВАШ ДАТЧИК
Интегрируйте модуль с ChatGPT
Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.
Помоги интегрировать TMC2209 Stepper Driver. Сначала уточни изготовителя и ревизию платы, значения обоих Rsense, паспортный ток двигателя, напряжение источника, контроллер и нагрузку. Сверь обозначения контактов и рассчитай ток по схеме конкретной платы. Не используй универсальное Vref и не подменяй фазный ток показанием источника. Подготовь развязку питания, схему, зависимости, короткий пример с отключением мостов, диагностику и процедуру безопасной проверки. Отдельно обсуди охлаждение и невозможность контролировать реальное положение только счётом STEP.
Библиотеки
Установите библиотеку для своей среды и откройте пример из её документации.
Что именно прописать
- Контроллер и API
Arduino Uno R3; Arduino AVR Boards 1.8.6Пример для Uno R3 ATmega328P, не универсальная распиновка ESP32.
- Двигатель для примера
Adafruit #324, 12 В, 0,35 А/фазуСвободный вал без нагрузки; другой двигатель требует нового расчёта.
- Rsense
0,110 ОмПроверьте два измерительных резистора именно BTT V1.2 и не используйте этот расчёт для другой платы.
- Ток короткой пробы
Irms = 0,20 А; Ipeak ≈ 0,283 А; Vref ≈ 0,283 ВДля этой платы и analog current scaling по BTT: Irms = Vref / √2. Это не 0,20 А пикового тока.
- Микрошаг
MS1=HIGH; MS2=HIGH; 1/16По таблице TMC2209 при заводском standalone. Для двигателя 200 шагов/оборот 200 входных импульсов задают 1/16 оборота, если нет пропусков.
- UART
Не используется; standaloneДо проверки удалить конфликты внешнего UART с PDN; не менять OTP. При PDN_UART=LOW первый STEP возвращает ток IRUN; после него предусмотрена пауза 1 с для настройки StealthChop AT#1, затем оставшиеся 199 импульсов.
- Управление
STEP=D2; DIR=D3; ENABLE=D4, активный LOWПодтяжка ENABLE к 5V сохраняет отключение при сбросе Uno.
- Проба
200 импульсов; HIGH 10 мкс; LOW не менее 10 мсПоследовательность запускается один раз после t; после неё силовые мосты отключаются.
Подготовка ограничителя тока и питания
text1. Отключите все источники. Проверьте ревизию платы, Rsense и пары обмоток омметром; мотор пока не подключайте.
2. Соберите питание, общий GND и конденсатор по pins. Выходы отключены через ENABLE/ENN = HIGH. Загрузите скетч в Uno.
3. Подсоедините щупы вольтметра к GND и указанной изготовителем точке Vref при выключенном питании, исключив замыкание соседних контактов.
4. Подайте питание и настройте вычисленное Vref по инструкции именно этой платы. Используйте изолированный инструмент; не касайтесь радиатора и выводов.
5. Отключите всё питание, дождитесь разряда конденсатора и только затем подключите обмотки двигателя. Не меняйте разъёмы при поданном питании.
6. Включите логику, затем силовое питание. Убедитесь, что вал свободен, а источник можно немедленно отключить.
7. Отправьте t в Serial Monitor 115200. При дрожании, дыме, запахе или сильном нагреве выключите питание; не увеличивайте ток вслепую.
Полная подготовительная процедура для указанного стенда; численные настройки находятся выше. Проверка механики и токов на аппаратуре не выполнялась.
Arduino Uno R3: короткая серия STEP после t
cppconst uint8_t STEP_PIN = 2, DIR_PIN = 3, ENABLE_PIN = 4;
void setup() {
digitalWrite(ENABLE_PIN, HIGH);
pinMode(ENABLE_PIN, OUTPUT);
digitalWrite(STEP_PIN, LOW);
pinMode(STEP_PIN, OUTPUT);
digitalWrite(DIR_PIN, LOW);
pinMode(DIR_PIN, OUTPUT);
Serial.begin(115200);
Serial.println("Check current limit and remove load, then send t.");
}
void loop() {
if (!Serial.available() || Serial.read() != 't') return;
digitalWrite(DIR_PIN, LOW);
digitalWrite(ENABLE_PIN, LOW);
// PDN_UART is LOW: the first STEP restores IRUN for AT#1.
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(STEP_PIN, LOW);
delay(1000);
for (uint16_t n = 1; n < 200; ++n) {
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(STEP_PIN, LOW);
delay(10);
}
digitalWrite(ENABLE_PIN, HIGH);
Serial.println("200 commanded pulses; bridge disabled.");
}
Полный скетч; базовый API Arduino AVR Boards 1.8.6 сверено, компиляция и аппаратное испытание не выполнялись. Число импульсов является командой и не доказывает фактический угол. Отключение мостов после пробы снимает удерживающий момент; используйте только ненагруженный вал.
Проекты с этим компонентом
Все проектыСвязанные проекты пока не опубликованы.


