Ось Z на клоне i3 вообще не будет двигаться, проблема с драйвером Melzi A4982

Я настраиваю сменную плату Melzi 2.0 от TRONXY для своего клона i3 (Monoprice Maker Select v2 для тех, кто интересуется), которая, согласно RepRap wiki, имеет драйверы A4982 для всех степперов. Я пытаюсь настроить Marlin 2.0.x для этого принтера, и это последняя большая проблема, с которой я сталкиваюсь.

Проблема: ось Z (или любые двигатели, подключенные к драйверу оси Z) не сдвинется с места, как бы я ни старался. Все остальные мои степперы работают нормально.

Что я пробовал: Я сделал все, что мог, чтобы побудить ось Z двигаться, от команд Gcode до самонаведения через ЖК-дисплей и Pronterface. Я подключил свой двигатель оси X к драйверу оси Z, и он тоже не двигается. Иногда, когда я посылаю им команду двигаться, они издают небольшой шум, как будто получают энергию, но не двигаются. Я прощупал разъемы двигателя на плате и не получил ничего, кроме нескольких случайных милливольт здесь и там, очень отличающихся от нескольких вольт на моем двигателе оси Y, когда я делал то же самое. Имейте в виду, что это был всего лишь один тест, перемещающий их с ЖК-дисплея, и на этот раз они не издавали никакого шума и не пытались двигаться. Я переключил определения контактов в прошивке для X/Z ENABLE/STEP/DIR, и драйвер Z снова оказался виновником, сохраняя ось Z установленной, даже если она управлялась так, как если бы это была ось X.

Я думаю, что проблема может быть в следующем: Для меня это похоже на проблему программного обеспечения. Я настраиваю Marlin в первый раз и думаю, что где-то что-то испортил. Может быть, это проблема с отделочными горшками, токами двигателя, включением двигателя или чем-то еще? Кроме того, может быть, водитель просто мертв?

Мой Marlin 2.0.x config.h для справки:

// These are all excerpts from various parts of Configuration.h

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 500 }

#define DEFAULT_MAX_FEEDRATE          { 300, 300, 4, 25 }

#define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }

#define DEFAULT_ACCELERATION          2800    // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION  2800    // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION   2800    // X, Y, Z acceleration for travel (non printing) moves

//#define CLASSIC_JERK  //left at default

// :{ 0:'Low', 1:'High' }
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders

#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false

#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false

#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 150

#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
  #define MIN_SOFTWARE_ENDSTOP_X
  #define MIN_SOFTWARE_ENDSTOP_Y
  //#define MIN_SOFTWARE_ENDSTOP_Z    //disabled until the driver works correctly
#endif

#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
  #define MAX_SOFTWARE_ENDSTOP_X
  #define MAX_SOFTWARE_ENDSTOP_Y
  //#define MAX_SOFTWARE_ENDSTOP_Z
#endif

//#define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING)
  #define Z_SAFE_HOMING_X_POINT X_CENTER  // X point for Z homing
  #define Z_SAFE_HOMING_Y_POINT Y_CENTER  // Y point for Z homing
#endif

// Homing speeds (mm/min)
#define HOMING_FEEDRATE_XY (50*50) //changed from 3000 to 2500
#define HOMING_FEEDRATE_Z  (4*60)

// Validate that endstops are triggered on homing moves
#define VALIDATE_HOMING_ENDSTOPS

// Sorry if that was a bit much, I tried to include all the settings that could 
// potentially have an effect on the Z motion.

Я действительно понятия не имею, где даже искать решение этой проблемы, поэтому любое руководство или совет были бы чрезвычайно оценены!! Спасибо!

Мой вывод заключается в том, что сам чип драйвера мертв, и его замена должна устранить проблему. Если это сработает, я опубликую ответ на этот вопрос.

, 👍1

Обсуждение

Привет! Если X,Y работают нормально, то, возможно, попробуйте поменять местами шаговые контакты ("ВКЛЮЧИТЬ", "DIR", "ШАГ") Z и, например, Y в конфигурации прошивки на некоторое время и попробуйте вручную переместить (ЖК-дисплей или G-код) оси Y и Z немного ? (Лучше поменять местами также конечные точки, если вы собираетесь домой и т. Д.). Тогда вы будете намного лучше знать, действительно ли это проблема с программным обеспечением., @octopus8

Привет, теперь я попытался изменить все эти параметры для оси Z, и, похоже, ничто на это не повлияло. Я продолжал исследовать степперы и все еще не видел никакого сигнала вообще. Я думаю, что проблема либо где-то глубоко в программном обеспечении, либо в том, что сам драйвер каким-то образом плох., @malachik

Мои извинения, но я не совсем понимаю, что вы сделали... То, что я предложил, - это визуальный тест, в нем нет ничего для зондирования. Цель состоит в том, чтобы обменять назначение двух физических драйверов: Z и Y (или любого драйвера, который работает нормально). Итак (1) поменяли ли вы соответствующие значения pin Z и Y в настройках вашей платы (какой-то файл Marlin) и переустановили? (2) После этой замены, если она все еще приводила к перемещению одного шагового устройства, а другое остановилось? (3) Решение: если заглохший двигатель был подключен к драйверу с пометкой "Z" на плате, то это аппаратная проблема. Если он был подключен к драйверу с пометкой "Y", то это проблема с программным обеспечением., @octopus8

( Если вы получили настройки прошивки из надежного источника, то это менее вероятно, но есть и другая возможность для варианта "Z": значения контакта, первоначально установленные для драйвера Z в файлах вашей прошивки, были неверными с самого начала. Тогда сигналы от микропроцессора проходили бы через несвязанные ветви и никуда не поступали. Или прибудьте в другое место - вы можете дважды проверить в настройках, если эти выводы не используются для каких-либо других целей. ), @octopus8

Вы, вероятно, знаете это, но конфигурация Marlin по умолчанию не должна перемещаться, если температура экструдера не будет минимальной., @DoxyLover

@octopus8 Мои извинения, я неправильно истолковал ваш комментарий в первый раз. Теперь я поменял определения выводов для осей X и Z местами. Ось X счастливо двигалась, как если бы она была Z, а фактическая ось Z снова отказывалась двигаться. Мой вывод заключается в том, что мне нужно будет купить новый драйвер и подключить его вместо текущего драйвера. Спасибо вам за вашу помощь!, @malachik

@malachik Пожалуйста, не забудьте опубликовать ответ, когда вы обнаружили, что замена драйвера сработала. Вы даже можете принять свой собственный ответ через 48 часов после публикации., @0scar


1 ответ


Лучший ответ:

1

Я заменил шаговый драйвер оси Z на внешний драйвер Pololu в стиле A4988, припаяв провода к контактам 2 и 3 на плате Melzi, а затем подключив их к драйверу на отдельной плате. Ось Z теперь движется правильно. Когда я столкнулся с проблемами со ступенчатым штифтом (штифт 3), я подключил его к штифту 12 (нагреватель стола), оставив стол нагреваться вручную. До сих пор это работало, и единственными проблемами, с которыми я столкнулся, были незначительные проблемы с электрическим шумом, которые я смог исправить с помощью экранированного кабеля.


,