Слишком короткие импульсы Z-шага (Marlin 2.0.x)
Я заменял степпер-драйвер на плате Melzi 2.0 на модуль A4988 Pololu, и по какой-то причине он не будет сотрудничать с Marlin.
Для справки, я использую Melzi 2.0 TRONXY с 5-кнопочным ЖК-дисплеем в стиле ZONESTAR. Этот ЖК-дисплей может быть связан с моей проблемой. Я использую пользовательскую конфигурацию Marlin 2.0.x с тех пор, как я заменил основную плату, и это давало мне много проблем.
При тестировании принтера с помощью эскиза Arduino ось Z движется безупречно. Однако, когда я загрузил свою конфигурацию Marlin, принтер снова отказался двигаться. Исследуя шаговые и Направляющие контакты с помощью моего осциллографа, я обнаружил то, что, как мне кажется, является проблемой. Я давал команды шага от ЖК-дисплея и от Pronterface, когда я увидел это на штыре Z-Step:
Прошу прощения за размытую картинку. Временная шкала составляет 20 мкс/квадрат, а напряжение-1В/квадрат. То, что я должен был увидеть, - это серия дискретных импульсов 5 В, которые говорят шаговому двигателю двигаться, но вместо этого я получил горстку крошечных вспышек ~5 мкс.
Я понял это так: пин (цифра 3, для тех, кому интересно) устанавливается в импульсное состояние по шаговому запросу, но сбрасывается чем-то другим. Все указывает на прошивку, насколько я могу судить. Опять же, я подтвердил, что 1284p, A4988 и сам двигатель работают, если они правильно запрограммированы с помощью эскиза Arduino. Я также попытался поменять местами определения контактов для Шага и направления (переключил 2
и 3
), но у меня была та же проблема.
Возможной причиной этого я думаю может быть мой жидкокристаллический дисплей: Он требует, чтобы пользователь определил аналоговый вывод для считывания кнопок (причуда дизайна жидкокристаллического дисплея). В моих файлах pins_MELZI_TRONXY.h и pins_SANGUINOLOLU_11.h Marlin по умолчанию использует #define ADC_KEYPAD_PIN 1
(аналоговый вывод 1) с выбранным ZONESTAR_LCD. На 1284p pin 3 (Z-Step pin) также указан как
AIN1
. На макете печатной платы Melzi 2.0 этот вывод не соединен с 10-контактным жидкокристаллическим разъемом. Вывод, который на самом деле использует жидкокристаллический дисплей, - это вывод заголовка A1, который идет к
PA1
/ADC1
на 1284p. Но, возможно, это определение вызвало некоторую путаницу в прошивке?
Чтобы быть ясным, соответствующие части моей прошивки выглядят следующим образом:
#define ADC_KEYPAD_PIN 1
//from pins_SANGUINOLOLU_11.h, which is - as far as I know - the only place this is defined.
#define LCD_PINS_RS 28 //RS 28
#define LCD_PINS_ENABLE 29 //EN 29
#define LCD_PINS_D4 10 //D4 -> RX1 -> 10
#define LCD_PINS_D5 11 //D5 -> TX1 -> 11
#define LCD_PINS_D6 16 //D6 -> SCL -> 16
#define LCD_PINS_D7 17 //D7 -> SDA -> 17
//the rest of the LCD pin definitions from pins_MELZI_TRONXY.h
#define Z_STEP_PIN 3
#define Z_DIR_PIN 2
//my Z-stepper settings from pins_SANGUINOLOLU_11.h, which I'm pretty sure is normal for all Melzi boards
Если кто-нибудь может дать какое-либо представление об этом, я был бы чрезвычайно признателен! Я новичок в настройке и ремонте 3D-принтеров, поэтому с радостью приму любую вашу помощь!
@malachik, 👍1
Обсуждение1 ответ
Полностью избегая контакта 3, шагатели оси Z начали двигаться правильно. Мой обогреватель стола вышел некоторое время назад, поэтому я пересмотрел соединения в Marlin, чтобы использовать этот штифт (штифт 12) в качестве штифта Z-step, подключив его к A4988 соответственно. Это не вызвало никаких проблем, кроме небольших проблем с шумом до сих пор. К сожалению, я не могу говорить ни о каких потенциальных проблемах, которые могли бы вызвать это поведение, все, что у меня есть, - это одно потенциальное решение.
- Ось Z на клоне i3 вообще не будет двигаться, проблема с драйвером Melzi A4982
- Marlin 2.0 - установить шаговые драйверы?
- Драйверы TMC2208 - Микропереходы настроены неправильно
- Как рассчитать Vref и X_CURRENT для шагового драйвера TMC2130, зная номинальный ток шагового двигателя?
- Я могу установить напряжение и ток драйвера TMC2130 вручную. Но в каких случаях некоторые компоненты могут сгореть?
- Почему надо уменьшать шаги по оси Z на мм?
- Наведение 3D-принтера
- Ассистированное ручное выравнивание с помощью Marlin
Не то, чтобы я мог здесь помочь, но работает ли это с отключенным ЖК-дисплеем? (Вы можете отправлять команды G-кода через последовательный терминал, не так ли?) Зачем вам нужно было что-то переопределять в "pin.h", когда "pins_SANGUINOLOLU_11.h" уже содержит раздел, посвященный платам MELZI: "/ / LCD / Контроллер ""#если HAS_WIRED_LCD "#определить SD_DETECT_PIN -1 ""#если HAS_MARLINUI_U8GLIB ""#если ВКЛЮЧЕНО(LCD_FOR_MELZI) " (и так далее) ?, @octopus8
@octopus8 То, что я имел в виду под "моими файлами pins.h", было файлами "pins_MELZI.../pins_SANGUINOLOLU...h", извините за путаницу. Я отредактировал сообщение для ясности. С другой стороны, я пытался управлять им с отключенным параметром "ADC_KEYPAD_PIN", и он, по-видимому, не вел себя по-другому, но я попробую отключить ЖК-дисплей, если больше ничего не работает., @malachik
Возможно, вы действительно видите предполагаемое поведение. Вспышка 5uS технически не выходит за рамки спецификации. В спецификации A4988 указана минимальная длительность импульса 1 МС. Значение` MINIMUM_STEPPER_PULSE ' настроено в Conditionals_adv.h и равно 1uS для A4988. Вы могли бы попробовать увеличить это значение., @Tom van der Zanden