Свист A4988 я впервые услышал как диагноз: подставка для фотосъёмки ехала ровно, но с таким стрёкотом, что микрофон камеры писал помеху вместо тишины. Причина не в моторе и не в механике: чоппер драйвера рубит ток обмотки жёсткими срезами, каждый срез — микроудар по ротору, и сотни таких ударов в секунду складываются в вой. Откуда берётся этот звук с точки зрения фаз, мы разбирали в уроке про фазы и принцип — там же карта резонансных зон.
Тихий ответ на рынке один по цене, и это TMC2208: тот же корпус-модуль, та же колодка, STEP и DIR на тех же ногах. Старшего брата TMC2209 с UART-настройкой и stall-детекцией мы сравнивали в уроке про DRV8825 и TMC2209; здесь — базовый 2208 в standalone: без проводов конфигурации, с винтом Vref, как на A4988, — самая дешёвая дорога к тишине.
Разберём два режима чоппера — StealthChop и SpreadCycle, микрошаг с его неожиданной таблицей MS-пинов, ток через Vref и потолок 1,2 А RMS без радиатора. Сценарий проверки простой: один скетч, два драйвера, один и тот же ход — и уши выносят вердикт раньше мультиметра.
Цена вопроса: A4988 на маркетплейсах стоит копейки, TMC2208 — втрое-вчетверо дороже, и это самая честная надбавка в хобби: вы платите за тишину и плавность, а не за логотип. Ставить ли 2208 на все оси? В станке в гараже — незачем; в спальне, детской и в любом механизме рядом со спящей семьёй — переплата окупается первой же ночью. Мой слайдер переехал на 2208 три года назад и с тех пор не разбудил никого.
StealthChop против SpreadCycle
Внутри 2208 живут два способа держать ток в обмотке. SpreadCycle — преемник логики A4988: ток растёт до уставки и срезается, фронты резкие, момент на высокой скорости крепкий, звук тот самый знакомый. StealthChop — регулятор напряжения с ШИМ, размазывающим фронты: пульсации тока падают в разы, и вместе с ними уходит единственный источник звука у здорового шаговика. Разница слышна с первого шага: со стрёкота, различимого через стену, до тихого шёпота, который вы ищете ухом возле корпуса.
У тишины есть условия. StealthChop хорош на низких и средних скоростях — примерно до половины паспортного потолка; на высокой скорости волна тока не успевает выравниваться, режим начинает сбоить, и автоматика StealthChop2 сама перескакивает в SpreadCycle: едва заметный скачок звука при разгоне — признак здорового переключения, а не брака. На моём слайдере с NEMA 17 это случалось на верхней трети диапазона, и после него мотор звучал как обычный A4988 — громче, но стабильно.
В децибелах переход A4988 — TMC2208 в StealthChop на средних оборотах и токе до ампера — это десятки: разные замеры дают от 30 до 45 дБ, то есть разницу между «слышно из другой комнаты» и «слышно, приложив ухо». Шумомер при этом честно показывает и обратное: в SpreadCycle оба драйвера звучат одинаково. Режим делает тишину, а не бренд — и выбирать драйвер надо с этим знанием.
У тишины есть и цена в моменте: на верхней трети диапазона StealthChop держит момент хуже SpreadCycle — волна тока не успевает догнать уставку, и ротор получает меньше тяги, по моим замерам с подвешенным грузом — примерно на треть. Поэтому в принтерах быстрые перегоны едут в SpreadCycle, а тихий режим берёт своё на первых слоях и настольных механизмах. Если ваша ось тянет груз на пределе — стартуйте в SpreadCycle и оставляйте StealthChop там, где скорость спадает.
| Параметр | A4988 | TMC2208 |
|---|---|---|
| Микрошаг (standalone) | MS1-MS3: от 1/1 до 1/16 | MS1-MS2: от 1/8 до 1/64, интерполяция до 1/256 |
| Ток без радиатора | около 1 А RMS | 1,2 А RMS; даташитные 2 А — только с охлаждением |
| Шум на средних оборотах | вой и стрёкот слышны через стол | StealthChop: почти тишина, на слух минус 30-45 дБ |
| Vref | I = Vref × 1,25 при R100 | Irms = Vref × 0,71 при R110: вольт — почти 0,7 А |
Ток выставляется винтом, как на A4988: мультиметр на металлический винт подстроечника, чёрный щуп на землю. Формула у 2208 своя: на типовых модулях с датчиками R110 ток RMS равен Vref, умноженному на 0,71; винт на один вольт — около семисот миллиампер, на полтора — за ампер. Цель та же, что и в уроке про Vref на A4988: 70-80% паспортного тока мотора, не больше — перетянутый винт добавляет нагрев и свист, а не момент.
UART — второй путь настройки: одна линия на пин PDN_UART, и ток задаётся числом из скетча, микрошаг поднимается до 1/256, StealthChop переключается на лету. Плюсы честные: не крутить винты и хранить конфигурацию в коде. Но для первого знакомства standalone хватает с избытком: перемычки MS1-MS2, винт Vref, и всё. Я перевожу узел на UART, когда моторов становится больше двух и хочется менять ток из меню, а не отвёрткой.
Микрошаг в standalone задают MS1 и MS2, и здесь прячется главный сюрприз замены: таблица у 2208 своя. О цене деления в позициях и плавности хода мы говорили в уроке про 16 микрошагов; 2208 умножает это интерполяцией до 1/256 даже в standalone — но числа делений, которые выпишут те же перемычки, другие, и позицию на оборот придётся пересчитывать.
Отдельно про интерполяцию, которой 2208 выигрывает у предшественников: драйвер сам добивает ход до 1/256 внутри чипа, даже когда на MS-пинах выставлена восьмая. Arduino щёлкает двумястами импульсами на оборот, а ротор между ними занимает 51200 микропозиций — плавность растёт, нагрузка на скетч не меняется, STEP-линия остаётся совместимой со старыми платами. Качество растёт бесплатно: интерполяция не ест ни пин, ни такт Arduino.
// TMC2208 в колодке A4988: STEP=D4, DIR=D3, EN=D7.// Деление задают MS1/MS2 - таблица у 2208 другая, см. урок!const int STEP_PIN = 4;const int DIR_PIN = 3;const int EN_PIN = 7; void setup() { pinMode(STEP_PIN, OUTPUT); pinMode(DIR_PIN, OUTPUT); pinMode(EN_PIN, OUTPUT); digitalWrite(EN_PIN, LOW); // драйвер активен: HIGH отпускает обмотки digitalWrite(DIR_PIN, HIGH); delay(10); // DIR устаканить до первой серии} void loop() { for (int i = 0; i < 1600; i++) { // при делении 1/8 это оборот NEMA 17 digitalWrite(STEP_PIN, HIGH); delayMicroseconds(20); // ширина импульса с запасом digitalWrite(STEP_PIN, LOW); delay(3); // темп задаёт скорость, как и на A4988 } delay(1000);}Скетч — точная копия того, что заводил A4988: STEP и DIR, EN на землю, темп импульсов задаёт скорость. Меняется только арифметика позиции: 1600 импульсов при делении 1/8 дают оборот NEMA 17 с двумястами шагами, а при шестнадцатой было бы 3200. Полная карта колодки — VMOT, VDD, электролит — в уроке про подключение A4988, и она верна здесь вплоть до конденсатора вплотную к клеммам.
Проверка тишины строится на одном и том же скетче: A4988, потом 2208, один и тот же ход. Разницу слышно сразу, а если под рукой шумомер — запишите цифры обоих прогонов: они пригодятся, когда домашние попросят «сделать как было, только тихо». И не пугайтесь, что в SpreadCycle 2208 звучит как A4988: для тяжёлых высокоскоростных фаз это не брак, а штатный режим, в который драйвер уходит сам.
Общий расклад драйверов с ценами и токами сводит урок про таблицу драйверов; моя рекомендация для жилого дома: 2208 на всё, что едет медленно и слышно людям, и DRV8825 на быстрые оси, где тишина вторична, а момент первичен.
Не забывайте и про EN: высокий уровень на этой ноге отпускает обмотки, ток удержания с ампера падает почти до нуля — для настольной подставки ночью это минус один нагреватель в комнате. Цена — вал теряет фиксацию: горизонтальной каретке ничего не сделается, вертикальная сползёт. Гасите драйвер по расписанию из скетча — пин копеечный, а комфорта добавляет; стратегию удержания для 28BYJ-48 мы обсуждали в уроке про отключение катушек.
Стенд: модель StealthChop
TMC2208 в браузере не эмулируется — модель показывает логику режимов на поддерживаемом API. Тумблер D3 выбирает режим: LOW — StealthChop, HIGH — SpreadCycle; ручка A0 изображает винт Vref; светодиод D12 вспыхивает на каждом шаге, и длина вспышки изображает пульсации тока: в StealthChop они вчетверо короче. Serial печатает Irms по формуле Vref × 0,71 — те же числа, что под винтом настоящей платы.
Прогон: щёлкните тумблер и смотрите светодиод — вспышки укоротятся, это и есть та тишина, которую вы покупаете. Поднимите Vref к полутора вольтам — Irms перевалит за ампер, вспышки удлинятся даже в StealthChop: ток сглажен, но пульсации растут вместе с уставкой. И помните про честность модели: на настоящей плате разница слышна ушами, а светодиод лишь показывает, что именно ушло из обмотки.
Осциллограф на обмотке покажет то, что LED лишь намекает: в SpreadCycle — пилу срезов, в StealthChop — почти синус. При сравнении драйверов на настоящей плате держите один скетч, один ток по Vref и одну механику — иначе разница уйдёт в условия, а не в режимы. И прислушайтесь к интерполяции: прибавку плавности она даёт заметнее всего на низких-средних скоростях, где обычный драйвер горчит ступеньками.
- 1. Какой режим чоппера делает шаговик тихим?
- 2. Vref выставлен на 1,0 В, датчики R110. Ток RMS?
- 3. Перенесли перемычки с A4988 (деление 1/16) на TMC2208. Что получим?
- 4. Сколько TMC2208 держит без радиатора?
- 5. На какой скорости StealthChop сдаёт позиции?
- TMC2208 садится в колодку A4988: STEP/DIR/EN те же, скетч не меняется; меняется таблица MS-пинов
- StealthChop тише на десятки дБ (на слух 30-45) на низких-средних скоростях; на высокой — автопереход в SpreadCycle
- Vref: Irms = 0,71 × Vref при R110; цель — 70-80% паспортного тока мотора
- 1,2 А RMS без радиатора; 2 А — только с охлаждением
- Standalone: MS1-MS2 дают 1/8-1/64 с интерполяцией до 1/256; UART поднимает деление до 1/256 программно
Частые вопросы по теме урока
- Какой режим чоппера делает шаговик тихим?
- StealthChop сглаживает фронты тока ШИМ-регулятором — пульсации падают, и с ними уходит звук. SpreadCycle звучит как A4988. StealthChop
- Vref выставлен на 1,0 В, датчики R110. Ток RMS?
- Irms = Vref × 0,71: вольт на винте — примерно семьсот миллиампер. Формула A4988 (×1,25) здесь не годится. Около 0,71 А
- Перенесли перемычки с A4988 (деление 1/16) на TMC2208. Что получим?
- В standalone 2208 начинается с 1/8: те же уровни дают 1/8-1/64. Позицию на оборот надо пересчитывать. Другое деление: у 2208 таблица MS1-MS2 своя
- Сколько TMC2208 держит без радиатора?
- Без охлаждения — 1,2 А RMS. Даташитные 2 А — с радиатором и обдувом, и то как пик. 1,2 А RMS
- На какой скорости StealthChop сдаёт позиции?
- Примерно с половины паспортного потолка волна тока не успевает выравниваться — StealthChop2 перескакивает в SpreadCycle, звук возвращается. На высокой: автоматика переходит в SpreadCycle