Металл2024 Реклама
Метобр2024 Реклама

Порт прошивки Marlin под stm32 или еще один 32-ух битный контроллер.

Rejdok
Идет загрузка
Загрузка
19.03.2017
19777
65
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

34
Привет всем!

Это мой первый пост. И т.к. я подумал, что история сборки очередного REPSTRAPа будет не особо интересной. Решил рассказать о своем опыте использования 32-ух битной электроники.

Начну сначала о том, зачем мне нужен 32-ух битный контроллер. В прошивке Marlin есть участок кода, который при достижении частоты STEP импульсов в 10кгц начинает выдавать по 2 или 4 импульса на прерывание. Это приводит к тому, что STEP импульсы следуют не через равный промежуток времени. При какой скорости достигается данная частота? Тут все просто скорость = частота / шаг/мм. Я использовал DRV8825 с микрошагом 1/32, ремень GT2, шкив на 20 зубов и шаговый двигатель с углом поворота 1.8 градуса на шаг. Получается, что в моем случае неравномерность STEP импульсов начинается на скорости -> 10000 = 160*скорость -> скорость = 62.5 мм/с. Это довольно низкая скорость, и т.к. неравномерность STEP импульсов могла сказаться на качестве печати, было принято решение о переходе на 32 битный мк.

Дальше я начал искать какие у меня есть варианты. А вариантов было несколько. Первый и самый простой покупка Arduino DUE. Следующий вариант Smoothie. Ну и последний адаптировать Marlin под другой мк. Smoothie довольно быстро отпал, т.к. информации по данной прошивке мало. Arduino DUE хороша, но за те же деньги можно было взять более производительный мк и поиграться с ним. В итоге выбор пал на мк stm32f4zet6. И за пару недель неспешной работы был написан порт Marlin.

Теперь что касается самого порта.

Что работает:

Двигатели, нагреватели, вентиляторы, USB, термодатчик (пока только один, т.к. мне сейчас больше не нужно, но это легко исправить).

Что точно не работает:

EEPROM( а точнее сохранение конфигурации после выключения питания, т.к. сам мк не имеет EEPROM), LCD дисплей, WI-FI, SD карат.

Что я не проверял:

Эндстопы, датчик нити, автокалибровку стола.

Что планируется в ближайшее время:

Добавить возможность сохранения настроек, починить чтение с SD карты,подключить к принтеру LCD дисплей, прикрутить автоуровень на тензодатчике.

В принципе с этим портом можно использовать любой мк от stm32 начиная с линейки M3, нужно будет только переопределить пины в файлах port.cpp и main.c.

Что касается работы самого принтера. Можно точно сказать, что он стал тише. Субъективно качество печати возросло, на поверхности стало меньше волн. Сравнение качества печати atmega2560 и своего порта я проведу, когда получу трапецеидальные винты.

Прошивка лежит тут https://yadi.sk/d/-Qxd3It33EK42H и в скором времени будет лежать тут https://github.com/Rejdok/STM32-Marlin-Port .

Если будет интересно, могу описать процесс компиляции и настройки данной прошивки, а также подключение мк к RAMPS 1.4.

Спасибо за внимание!

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

34
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама