Портирование марлина в STM32.

victor_pv
Чт 29 июня 2017 г., 16:39
Обновлено 26.10.2017:
За последние 2 дня XC000005 и я завершили успешные отпечатки с Marlin для STM32F1 с ядром STM32Duino-Libmaple, он напечатал кошку, и я напечатал немного Йода-Будха.
Во время испытаний я смог получить импульсы около 50000 кГц в качестве максимальной скорости, которая кажется встроенной с другими 32 -битными платформами, и гораздо быстрее, чем когда -либо нужно большинству принтеров. Это означает, что по более медленным ценам у нас осталось довольно много циклов процессора, чтобы сделать другие вещи.
Мы не начинаем с ЖК -деталей, но пока работают АЦП, Степперс и СДКАР, поэтому печать с компьютера полностью функциональна.


Обновлено 07/07/2017:
Первая версия моего порта в Libmaple на основе ядер. Следует работать на F4, но до сих пор я только что проверил его с F1, и только то, что он работает, и есть последовательная связь, но не вождение Steppers или SDCARD.
Скомпилируется с Slaeber 4.1 и GCC 4.8.3. Должен компилировать в Arduino IDE, но не протестирован.
Я протестировал его с помощью RCT6 MCU, но должен хорошо вписаться в Maple Mini, насколько RAM и Flash
https: // github.com/Victorpv/marlin-stm32-libmaple

============================
Оригинальный пост.

Я начинаю эту новую ветку, чтобы задокументировать усилия по портированию Marlin в STM32 Arduino Cores.
-Щит с шаговыми подключениями и т. Д., Рампы могут быть изменены: -Доски: слишком много, чтобы перечислить
  • Мои усилия пойдут первым в Libmaple. Chriss Bar имеет версию на основе STM32Generic Core. Оба ядра работают на некоторых MCU F1, F3 и F4
-Программное обеспечение:
В STM32 работают не менее 2 портов.
  • Официальный STM для их доски оценки. Не использует Arduino Core. Использует HAL.
    На основе марлина 1.1.0 rc7
    https: // github.com/st3dprinter/marlin4st
  • Крисс Барр Порт. Использует HAL. Nucleo 446 Board.
    На основе Marlin с Hal Bugfix fork.
    Крисс сказал, что в разговоре GitHub у него есть более недавний код, который попытается загрузить в ближайшие несколько дней.
    https: // github.com/chrissbarr/marlin/tr ... FIX-F446VE
Мой план:
Возьмите Крисс Код и сделайте его компиляцией в Slakeber.
Однажды, возьмите его с Danieleff Core и заставьте его компилировать и решить любую проблему.
Проверьте его с помощью доски Nucleo и общих досок.
Добавить HAL для Libmaple Core

Все вышеперечисленное должно быть возможным с первого взгляда на код.
У нас уже есть:
-Arduino совместимые выводы функций.
-Arduino совместимые функции SPI.
-Ардуино совместимые с АДК (с большим разрешением, может потребоваться обрезать)
-Функции ШИМ (даже если с некоторыми различными параметрами и настройкой, чем Arduino, все еще такая же функциональность или более)

Что нужно сделать:
-Пройдите через каждый файл в HAL и измените/оптимизируйте для STM (всего несколько вещей)
КАПЕРСКИЙ УПРАВЛЕНИЕ
Температурные зонды и контроль в очагах
Использование памяти.
Pin Access.
Установка и использование таймеров.

Ахулл
Чт 29 июня 2017 г. 16:45
Привет. Это может обеспечить мотивацию, которую мне нужно начать строить 3D -принтер с нуля, который является проектом, который я хотел на некоторое время предпринять.

Вы предвидите, что это выполнимо, скажем, Bluepill или MM, рука, полная eBay Stepper Motors и шаговые доски водителей?

victor_pv
Чт 29 июня 2017 г. 18:45
[Ахулл - Чт 29 июня 2017 г. 16:45] - Привет. Это может обеспечить мотивацию, которую мне нужно начать строить 3D -принтер с нуля, который является проектом, который я хотел на некоторое время предпринять.

Вы предвидите, что это выполнимо, скажем, Bluepill или MM, рука, полная eBay Stepper Motors и шаговые доски водителей?
Я не сделал количество булавок, но я думаю, что Maple Mini, скорее всего, подойдет, по крайней мере, для принтера с 1 экструдером и 3 оси.
Быстрый счет PIN:
4 Steppers, 2 штифта каждый, 8 контактов.
Нагреватель кровати и термистор: 2 штифта. (1 ADC + 1 PWM)
Нагреватель экструдера и термистор: 2 контакта (1 АЦП + 1 млн. Шм)
SD-карта, если это необходимо 4-5 контактов (не помните о макушке моей головы).
Дисплей: есть несколько вариантов, я думаю, что обычные берут 4-6 булавок.
USB -порт: 2 контакта
Необязательно: серийный, подключенный к мосту принтера Wi -Fi, 2 контакты.

Все это бежит в AVR, я не вижу, как он не будет работать в Mini, насколько Ram и Flash.

Необязательное оборудование не критично иметь:
-Вместо того, чтобы использовать кучу булавок для ЖК -дисплея, используйте тот же SPI, что и 1 -линейка CS, но это будет включать в себя написание интерфейса ЖК -дисплеев.
-Сериал не нужен, но было бы неплохо подключить ESP8266, запрограммированный с этим (я успешно скомпилировал и загрузил его с Eclipse/Sloeber):
https: // github.com/luc-github/esp3d
-Интерфейс SD -карты: вместо этого вы можете распечатать с хоста. Я на самом деле никогда не подключал свой принтер к хосту, просто печатайте с SD -картой, чтобы мне не нужно было поддерживать хост для 4 -часовой печати.

Ахулл
Чт 29 июня 2017 г., 19:26
Звучит выполнимо, не забывайте, мы получаем сериал USB на MM или BluePill, который вы не получаете на AVR.
Я думаю, это звучит как довольно полезная идея.

victor_pv
Чт 29 июня 2017 г. 9:18 вечера
[Ахулл - Чт 29 июня 2017 г., 19:26] - Звучит выполнимо, не забывайте, мы получаем сериал USB на MM или BluePill, который вы не получаете на AVR.
Я думаю, это звучит как довольно полезная идея.
я так думаю. Не только выполнимо, но и в конечном итоге с хорошим контроллером и использованием MCU RET6, у нас должны быть оперативные базы и булавки для любого расширения, но даже CB должны соответствовать нынешнему марлину.
Вы хотите помочь распространить нагрузку?
Недавно я купил 3D -принтер для своих детей, который я наслаждаюсь гораздо больше, чем тогда, специально создавая его, чтобы я мог дать вам несколько советов по деталям, а что нет.
РЕДАКТИРОВАТЬ:
От Reprap.орг Двоичный размер прошивки между 50 кб до 100 кб, в зависимости от вариантов.

victor_pv
Пт 30 июня 2017 г., 4:00 утра
Я сделал количество булавок, и с помощью Maple Mini у нас должно быть достаточно штифтов для следующего:
  • SD -карта
    Переключатель обнаружения SD -карты
    Сериал 1
    USB
    3 оси Steppers
    3 экструдеровских стапиров (или любая конбинизация 6, таких как 4 оси и 2 экструдера
    3 Тематические зонды экструдеров
    3 экструдеры обогревателей
    Кровать температурный зонд
    Кровать Степперс
    2 контакты CS для SPI, для SDCARD и дисплея
    1 штифт слева (можно использовать в качестве CS для сенсорной панели в SPI)
    PB2 и PB8 не используются (могут использоваться в качестве выходов после загрузки MCU, поэтому мы должны быть в состоянии их использовать)
Я не смотрел подробно ко всем необходимым периферийным устройствам, но я думаю, что у нас достаточно таймеров, и, безусловно, достаточно штифтов ШИМ.

AG123
Пт 30 июня 2017 г. 5:54 утра
[Ахулл - Чт 29 июня 2017 г. 16:45] - Привет. Это может обеспечить мотивацию, которую мне нужно начать строить 3D -принтер с нуля, который является проектом, который я хотел на некоторое время предпринять.

Вы предвидите, что это выполнимо, скажем, Bluepill или MM, рука, полная eBay Stepper Motors и шаговые доски водителей?
Имхо более простым подходом является покупка одного из этих дешевых 3D -набора принтеров, а затем поменять плату контроллера
Я размышлял о создании Delta-3D с нуля, но позже обнаружил, что было бы слишком много усилий, чтобы создать отдельные компоненты в точные измерения, и общие затраты на покупку деталей говорят на eBay, фактически превышают стоимость покупки набора в эти дни затрачивают 200 долларов и даже ниже.

Некоторые из этих вещей обсуждались в этой теме
http: // www.STM32duino.com/viewtopic.PHP?F = 45&T = 2082

Я думаю, что, возможно, мы должны нацелиться на плату F407Vet6 или Zet6, ZGT6 напрямую, а не придерживаться STM32F103 (хотя это также возможно). Главное то, что у M4 (F407) есть 2 FPU в ядрах, и это значительно ускоряет вычисления пути, и, конечно, у платы F407VET есть большое количество контактов GPIO, чтобы сделать все это взаимодействие и имеет большое количество SRAM и Flash играть с. Кроме того
Для STM32F103 «Общие» доски, очевидно, являются синими таблетками & Maple Mini в то время как для больших досок E.глин. Ветеринар и Zet, дифференциал ценовой дифференциал настолько узкий по сравнению (по некоторым ценам одинаково или выше), чтобы сказать F407Vet6 Black. Буквально имеет смысл просто получить доски F407 непосредственно в этом случае, учитывая гораздо более высокую производительность

С F407 я даже предполагал, что однажды можно просто отправить его в файл 3D -модели «STL», F407 делает все это нарезки & 3D напечатать его на лету! Это возможно из -за быстрого FPU

AG123
Пт 30 июня 2017 г., 6:06
Мы также могли бы создать ветку на форумах прошивки Marlin, чтобы заинтересованные люди могли присоединиться к усилиям
http: // форумы.репресп.орг/список.PHP?415
Эта ветка действительно имеет смысл принадлежать там «учитывая, что речь идет о запуске Marlin на STM32
Но форумы, вероятно, будут менее знакомы с доступными досками и функциями STM32 «там» и его «техническими возможностями» по сравнению с нами здесь
Мы также могли бы получить различные советы / от «3D -печати людей», как только электрики / электроника. 3D -печать действительно домен само по себе
Такие вещи, как дело с выравниванием кровати, скоростью экструзии, ускорением / замедлением движений головы, Delta 3D -движениями, типами материалов и проблем с 3D -печать

Другая идея - начать с пандусов
http: // reprap.org/wiki/arduino_mega_pololu_shield
В качестве интерфейсной платы в качестве этой платы и модули управления двигателем Pololu фактически продаются на eBay и легко доступны (также прилично низкие затраты) также) также)

AG123
Пт 30 июня 2017 г. 6:28 утра
[victor_pv - Пт 30 июня 2017 г., 4:00 утра] - Я сделал количество булавок, и с помощью Maple Mini у нас должно быть достаточно штифтов для следующего:
  • SD -карта
    Переключатель обнаружения SD -карты
    Сериал 1
    USB
    3 оси Steppers
    3 экструдеровских стапиров (или любая конбинизация 6, таких как 4 оси и 2 экструдера
    3 Тематические зонды экструдеров
    3 экструдеры обогревателей
    Кровать температурный зонд
    Кровать Степперс
    2 контакты CS для SPI, для SDCARD и дисплея
    1 штифт слева (можно использовать в качестве CS для сенсорной панели в SPI)
    PB2 и PB8 не используются (могут использоваться в качестве выходов после загрузки MCU, поэтому мы должны быть в состоянии их использовать)
Я не смотрел подробно ко всем необходимым периферийным устройствам, но я думаю, что у нас достаточно таймеров, и, безусловно, достаточно штифтов ШИМ.
Кроме того, может быть до 6 концов (ограниченных переключателей), если мы используем 1 штифт GPIO для каждого, это только требует 6 штучек
И, скорее всего, мы все еще хотели бы взаимодействовать с нашим ЖК -дисплеем ILI9341, я думаю, что общее количество пинтов, учитывая все, что приведет к тому, что мы заканчивают контакты на синих таблетках или Maple Mini

Racemaniac
Пт 30 июня 2017 г. 7:02 утра
Мы тогда захотим пойти на большую доску? Или перейдите к 2 чертежам/Maple Minis, и один из них будет рабом другого (я могу себе представить на главной плате, чтобы просто инициировать циркулярную связь DMA SPI с рабом через DMA, чтобы раб продолжал передавать область своей памяти ( Содержит ограничения/ временные зонды/ другие простые вещи, которыми можно поделиться) с мастером, решая проблему количества выводов :)

victor_pv
Пт 30 июня 2017 г. 13:00
Моя идея состоит не в том, чтобы нацелиться на одну доску или одну MCU, а скорее ядро.

Уже есть порт для STM32F4, но использует HAL, и может быть даже SPL. Я связал это выше. Это менее портативно и требует больше кода, написанного в Marlin Hal, но уже работает. Вот почему я хочу попробовать перенести его в Libmaple и STM32Generic, и, возможно, STM32Generic также будет работать на ядре STM.

В Pincount для Maple Mini я полностью забыл Endstops, но мы можем включить 3 конечных остановок, если мы уменьшим головы на один 1. Таким образом, у нас все еще может быть 3 экструдера с микширующей головкой. Или вместо этого 2 экструдера и 2 головы.
Ayway, я не нацелен на Maple Mini. Посмотрим, какие ресурсы нужны, и в зависимости от этого будет знать, куда он подходит. Я не думаю, что нынешний марлин выиграет от FPU. Это просто не нуждается в этом, все остальные порты ARM используют M3, кроме текущего порта для ядров, и это, вероятно, мало что использует его, так как Marlin не использует много расчетов с плавающей запятой.
Я не хочу переписывать Марлина, только напишите часть HAL, чтобы она работала на платах STM32 с действительным Arduino Core. Это наше преимущество, нацеленное на ядро, мы можем выбрать доску, которая лучше всего подходит для практически без изменений. В серии F1 мы можем использовать до f103rgt6. Это 1 МБ вспышки и 96 КБ ОЗУ. Если IVR 256 16 МГц может запустить его, диапазон F1 может определенно запустить его. Но если Марлин начнет использовать больше поплавков, и мы хотим использовать F4, мы будем покрыты в любом из наших ядер :)

Я считаю, что это сделано, поскольку у нас есть ядро ​​Arduino, будет легче поддерживать совместимые эти доски, поскольку другие библиотеки будут работать проще (ЖК -дисплей, клавиатуры, графические библиотеки...)

Идея Racememaniac интересна, но должна быть какой -то способ, который выполняется полностью в HAL, иначе нам придется переписать части Марлина, и я не хочу делать это, чтобы сохранить его на 100% совместимым.
Если вы, ребята, хотите начать проверять нынешние HALS для других MCU, это наша отправная точка, и покажет, что должно быть сделано HAL. Надеюсь, большинство настоящего ввода -л. В Хэл.

Ахулл
Пт 30 июня 2017 г. 15:56
Вы можете поставить свои конечные стопы на один аналоговый штифт с резистивной лестницей. На самом деле вы можете MUX В целую матрицу переключателя 4x3 только с одним штифтом Alalog и некоторыми тщательно выбранными резисторами.

http: // www.Инструменты.com/id/arduino ... ix-keypad/

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

AG123
Пт 30 июня 2017 г., 8:19 вечера
Из любопытства я посмотрел на исходные коды марлина

Есть рампы Pinmap
https: // github.com/marlinfirmware/marli ... ns_ramps.час
http: // reprap.org/wiki/arduino_mega_pololu_shield

Реализация полной рампы требует довольно большого количества булавок
- 6 выключателей ограниченных переключателей
Каждый контроллер шагового двигателя, кажется, занимает 4 контакта (шаг, Dir, включить, CS, я не слишком уверен, можем ли мы просто использовать включение без CS)
3 двигателя для каждого из штифтов x, y, z - 12
1 двигатель для экструдера 4 контакта
1 двигатель для 2 -го экструдера (если вы его используете) 4 контакты (необязательно)
Всего 16 штифтов для двигателя (при условии, что только 1 экструдер)
- Датчик температуры
1 аналоговый штифт - горячий конец
1 аналоговый штифт - кровать (для нагретого кровати)
1 аналоговый штифт - для Hot End2 (необязательно)
- МОСФЕТ
- 1 штифт для Mosfet Hotend (нагревательный элемент)
- 1 штифт для Mosfet Hotend (нагревательный элемент - горячий кровать)
- 1 для вентилятора MOSFET (если мы оставим вентилятор, мы могли бы сохранить это?)

для ILI9341 LCD 7 PINS
SPI (/CS, CLK, MOSI, MISO) 4 PIN
C/D (Command/Data) 1 PIN -код
tft_reset 1 PIN
Подсветка 1 PIN (необязательно)

Beeper 1 PIN -код
#define beeper_pin 23

Кнопки переключателей & переключатели убийства 3 переключателя кнопок + 1 переключатель убийства - 4 контакта
#define btn_en1 35 // обратно, если энкодер обостряется неверно.
#define btn_en2 37
#define btn_enc 31
#define kill_pin 41

SD -карта, предполагая Spi 4 Pins ( /CS, CLK, MOSI, MISO)

Следовательно, настройка «Полные рампы» для принтера X-Y-Z (возможно, схожим для Delta), потребует довольно большого количества контактов и превысит установку одного кленового мини-или синей таблетки.

Мы могли бы цепь Daisy несколько Maple Mini или Blue Pill вместе, скажем, используйте i2c, но это потребуют некоторых улучшений для кодов марлина, и нам также необходимо создать/написать коды для «совместной обработки» Maple Minis, синие таблетки , е.глин. Мы можем разделить их на «модули», чтобы, возможно, 1 мм/п.н & ограниченные переключатели & Аналоговые контакты, «Главная плата» делает ILI9341 LCD + SD -карта и запускает коды Marlin Core Marlin

На самом деле есть интересный поворот с Maple Mini/ Blue Pill, мы можем иметь 2 (или 3) доски мм/ п.н.глин. Intel Compute Stick) над USB-сериалом, так что, возможно, мы разделяем функции, один сделает двигатели, другой-Mosfets, ограниченные переключатели & АЦП (датчики температуры) и т. Д. Затем мы запускаем «программный марлин» на хост-компьютере, интерпретируем G-коды и отправляем команды в «совместную обработку» MM, BP над USB-сериалом.

Тогда есть подростка Pinmap (рука NXP)
https: // github.com/marlinfirmware/marli ... _Teensy2.час
Это, кажется, использует значительно меньше контактов E.глин. Я предполагаю, что только 1 штифт для каждого двигателя, это «разделенная» конфигурация против полных рампов, таких как плата
Это не похоже на «полное решение», и я предполагаю, что для «полного раствора раствор» нужно несколько подростков

Учитывая это, возможно, проще, если мы нацеливаемся или предположим, что мы работаем над платой STM32F407VET или ZET, на которой есть «все булавки, которые нам нужны»
Таким образом, Marlin Plus все коды управления IO (все двигатели, MOSFET, датчики температуры, ЖК -дисплей, SD -карта, ограниченные переключатели, 4 кнопки панели, Beeper) запускаются с одной платы и MCU

AG123
Сб, 1 июля 2017 г., 19:18
Нашел видео и ветку для обсуждения на форумах Reprap Marlin
https: // Перевод.Google.com/перевести? ... 7%2C702090

Это основано на Ramps-FD (на причитание 3.3 В)
https: // youtu.be/ywifsmp6kdw

victor_pv
Солнце 2 июля 2017 г. 7:17 утра
Большинство досок просто покидают всеобеденные шаги, так что это экономит 1 штифт на шаг и то же самое для CS, поэтому они просто используют 2 контакта, шаги и направление.
Для конечных стопов нормальный картинский принтер использует всего 1 конец остановки на ось, поэтому требуется только 3 контакта.
В конце концов, я думаю, что Maple Mini сделает хорошую базовую доску, быстрее и точнее, чем на AVR, но все же основной принтер.
Теперь у RET, даже в RCT, есть много булавок для чего -либо, и гораздо больше памяти и RAM.

Я только что получил первую компиляцию моего HAL (еще не тестировано, просто компилирование), не включив LCD:
Размер раздела Addr
.Текст 87836 134225920
.текст.Выровнять 4 134313756
.РУКА.Exidx 8 134313760
.Данные 3312 536870912
.Родата 7640 134317080
.BSS 5032 536874224

Это использует USB -сериал и SDFAT с DMA. Наш USB -сериал, я думаю, в настоящее время является одним из самых быстрых из любого ядра, и то же самое с SDFAT Reading.
Так что это занимает 87 КБ вспышки и 8 КБ ОЗУ. Я протестировал компиляцию с AVR Mega, но забыл сохранить размеры секций, но если я помню, правильно было около 90 КБ вспышки.
Я думаю, что это довольно хорошо, учитывая, что это 32 -битный MCU.
Это основано на ядре Libmaple, поэтому должно работать во многих F1 и, по крайней мере, в нескольких F4.
Он использует библиотеку SPI, библиотеку таймеров и некоторые основные вещи (Pinmode, HW Watchdog).

Я постараюсь скомпилировать с некоторыми ЖК -дисплее. Ох, и на самом деле проклят это мини -и посмотрите, жив ли он...

РЕДАКТИРОВАТЬ:
Аналогичные варианты, составленные для MEGA: (Здесь нет отдельной родаты, это учитывается в .текст)
Размер раздела Addr
.Данные 228 8389120
.Текст 68330 0
.BSS 3545 8389348

Таким образом, он использует около 20 КБ меньше, и 3.5 КБ ОЗУ. Я думаю, что версия Libmaple на 32 -битном MCU и использование DMA и других ресурсов HW, где это возможно, является хорошим выбором.
С еще несколькими килограммами Flash и RAM мы могли бы запустить приятный цветной сенсорный экран и при этом иметь время для процессора, чтобы запасать.
И это все еще с кодом Марлина, который довольно грязный и написан для AVR. В качестве примера штифты приводятся на высокую и низкую и низкую в ISR, вызываемое из прерывания таймера... Даже ШИМ для водных нагревателей приводит к тому, что он будет писать высокий и низкий до порта, а не использование ШИМ...

AG123
Солнце 2 июля 2017 г. 9:20 утра
Я не слишком уверен, что использование прошивки REPRAP может быть проще для порта, так как оно целевое на руке и что она организована вокруг классов C ++
http: // reprap.org/wiki/reprap_firmware
Соответственно, это производная марлина
Тем не менее, я подумал, что Spreap_firmware коды сами по себе, возможно, несколько более сложные, учитывая описания функций
http: // reprap.org/wiki/reprap_firmware# ... e_features

victor_pv
Sun 02 июля 2017 г. 14:54
Может быть, если это было запрограммировано.
Я чувствую, что прошивка запрограммирована с самого начала для MCU с большим количеством ресурсов, возможно, было сделано так, чтобы это было легче понять и порта.
Преимущества Марлина для того, чтобы быть перенесенным прямо сейчас, заключаются в том, что есть официальный порт STM для их HAL, и сравнение этого с тем же выпуском Marlin показывает, что они должны были сделать, и что они хотят перейти на 32 -битный MCU и уже уже начал разделять вещи на HAL.
Таким образом, наличие STM32 HAL на данный момент, надеюсь, по мере того, как он будет расширен на большие функции или воспользоваться лучшими ресурсами MCU будет эволюцией, а не начнется с нуля.

Моя версия HAL показывает все хорошо. Мне нужно сжечь его на доске и посмотреть, что он делает, надеюсь, работаю без особых проблем.
Я прочитал эту ссылку на итальянский форум, который вы опубликовали. Кто -то хотел получить порт Marlinkimbra 4 из -за STM. Это оффшот Марлина, который итальянские парни сделали для мультипеткировщика, и, похоже, они продолжали развивать его, и в тех постах они прокомментировали, как код был чище. Так что, возможно, тоже можно перенести.
Я просто не знаю, какие из них более богаты, но, похоже, у Марлина есть очень активная группа людей, смотрящих на это.
И один из них - не что иное, как Боб Казинс, он знает, что это ядро ​​довольно хорошо, так как некоторое время был очень вовлечен в модернизацию первоначального Libmaple, прежде чем передать его Роджеру и отправиться на другие пастбища. Надеюсь, он сможет дать некоторое руководство с STMS.

В любом случае я выложу свой код сегодня, чтобы GitHub, и если у меня появится шанс отладить его на доске.

AG123
Солнце 2 июля 2017 г., 17:22
Не беспокойтесь, Виктор, я ценю ваши усилия, и придерживаться Марлина, вероятно, является лучшим решением в конце концов. Это «самая выдающаяся» прошивка из 3D -печати с открытым источником «там». Если мы сделаем улучшения, E.глин. Чтобы организовать коды, чтобы их можно было легче переносить / запустить на разных платформах, это тоже принесет пользу самому Марлю. В идеале то, что мы делаем, можно надеяться стать частью «официального» марлина, это было бы действительно хорошо : D
Я все еще жду, когда прибудет свою карту «медленная лодка». Но в то же время, мне нужно попробовать STM32GENERIER, чтобы позже я мог бы тоже присоединиться к усилиям

victor_pv
Солнце 2 июля 2017 г., 19:47
Прошивка работает в F1. Это RCT6 MCU, просто чтобы подключить к нему J-Link.
Я не смог правильно рассчитать свободную память, поэтому она показывает это странное значение, но не должен влиять на. Нет ничего подключенного, поэтому он читает странные температуры и тому подобное, и еще не проверял вывод.
Подключитесь к Serial PortCom3 AT115200
начинать
Echo: Marlin Bugfix-1.1.х

Echo: Последнее обновление: 2017-05-04 12:00 | Автор: (нет, конфигурация по умолчанию)
Составлено: 2 июля 2017 г
Echo: бесплатная память: 134375576 ​​PlannerBufferBytes: 1280
Echo: загруженные настройки по умолчанию по умолчанию
Эхо: G21; Единицы в мм

Echo: Настройки нити: отключено
Echo: M200 D3.00
Эхо: M200 D0
Эхо: шаги за единицу:
Echo: M92 x400.00 Y400.00 Z400.00 E108.00
Эхо: максимальные кормления (единицы/с):
Echo: M203 x150.00 Y150.00 Z150.00 E25.00
Echo: максимальное ускорение (единицы/S2):
Echo: M201 x1000 Y1000 Z1000 E10000
Echo: ускорение (единицы/S2): P<print_accel> Ведущий<urtact_accel> Т<travel_accel>
Echo: M204 P1000.00 R1000.00 T1000.00
Echo: Advanced: S<min_feedrate> Т<min_travel_feedrate> Беременный<min_segment_time_ms> Х<max_xy_jerk> Z<max_z_jerk> Эн<max_e_jerk>
Echo: M205 S0.00 T0.00 B20000 x10.00 y10.00 Z10.00 E5.00
Эхо: Домашнее смещение:
Echo: M206 x0.00 y0.00 Z0.00
Echo: Параметры PID:
Эхо: M301 P17.17 i0.88 D83.88

Криссб
Пн, 3 июля 2017 г. 3:13
Круто видеть людей, работающих над этим здесь! Я уже давно играю с «Запуск Марлина» на доске на базе F4, одна из моих предыдущих попыток упоминается в первом посте.

Что репо (https: // github.com/chrissbarr/marlin/tr ... FIX-F446VE) была моей первой «успешной» попыткой заставить Марлина работать на микроконтроллере STM32 - я использовал его для нескольких десятков печатных заданий, но я был недоволен этим по нескольким причинам. Во -первых, у меня не было способа составления кода в Arduino IDE - пользователям нужно будет загрузить SW4STM32, чтобы скомпилировать код, редактировать свою конфигурацию и т. Д. Во -вторых, было несколько мест, где я сделал довольно уродливого взлома в коде Марлина, чтобы все собирало и хорошо работало, так что, вероятно, было бы нелегко обновлять его с Marlin, невозможно получить его в мастер. В -третьих, как вы можете видеть в этом репо, у меня есть все, что STM32 F4 HAL сброшено в подпапке в Marlin, который представляет собой много файлов - я не знаю, как бы люди Marlin были ли Марлин, и я даже не уверен, совместимы, лицензии.

Мой текущий подход, с которым я еще не напечатал, но на 90% от пути, надеюсь, более гибкий. Я думаю, что другие в этой теме предложили использовать ядро ​​Danieleff's STM322GENERY, и это мой текущий подход. У меня есть вилка этого ядра здесь, И все, что я сделал, это добавить поддержку для F446Vet6 и поддержка пользовательского метода загрузки на основе DFU. У меня есть компиляция + загрузка через USB-DFU, работающий с Arduino IDE, хотя для работы на F4 требуется пользовательский загрузчик для работы.

У меня обновленная вилка марлина здесь. Благодаря развивающемуся Хэлу Марлина и ядру STM322ERIERER, эта вилка потребовала гораздо меньше изменений в кодовой базе Marlin. Есть несколько областей, где мне приходилось настраивать вещи, но я думаю, что многие из изменений, которые я обнаружил, я должен был внести другие в последней работе Marlin Hal - мне нужно переиграть свою работу с последнего марлина Хэл, и я думаю, что когда я это сделаю, будет очень мало изменений, которые я внесу в фактический код марлина.

Этот текущий подход имеет следующую работу:
[*] Термисторы
[*] Endstops
[*] Шат для обогревателей / вентиляторов / зуммер
[*] Крайверы шагов через SPI (TMC2660)
[*] 20x4 символ LCD (Smart Controller RRD)
[*] Сериал над USB
[*] EEPROM, подражанный во вспышке

Текущая «структура» состоит из этих элементов:
[*]Вилка ядра STM322ERENERY
[*]Вилка Марлина с Хэл и незначительные модификации
[*]Пользовательский загрузчик для обработки DFU-UploAds + оставьте место для EEPROM во Flash

Я в основном нахожусь в точке, где он готов тестировать на принтере, мне просто нужно немного поднять код и попробовать. Просто нужно найти время, чтобы провести некоторое тестирование!

Вот несколько изображений разных частей в действии, для всех, кто заинтересован:

Изображение
Загрузите из Arduino IDE

Изображение
Серийные коммунирования через USB

Изображение
Правление Работа с ЖК -дисплей и термистором

У меня еще многое предстоит сделать, прежде чем все работает хорошо и аккуратно, но если кто -то еще пытается следовать аналогичному пути, я буду рад предоставить любую информацию, которую я могу.

victor_pv
Пн, 3 июля 2017 г. 6:11
Привет, Крис, я тот же, который разместил в GitHub о портировании в STM32, и вы поделились своим репо. Я открыл эту ветку здесь, чтобы отслеживать мой прогресс.

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

Я начал с порта до ядра Libmaple, и у меня уже есть несколько вещей. Это когда -то имеет преимущество в скорости и размере кода по сравнению с HAL, но, в свою очередь, сложнее адаптировать ядро ​​от одного MCU к другому, хотя есть версии F3 и F4, которые очень функциональны. Такие вещи, как SPI, таймеры, GPIO, USB, USARTS, работа во всех них.

Я тоже буду рад помочь с этим Хэтом.
Я использовал вилку LPC для начала, так как кто -то сказал, что Fork довольно актуальна, а LPC HAL - это функциональная.

О загрузчике DFU, это было бы хорошей связью для плат F4. Большинство людей здесь используют stlinks и jlinks, так как загрузчик, который мы используем для F1S, не был перенесен в другую серию.
Я не знаю, все ли это ваш код или заимствован, но если это ваш, это было бы здорово, если бы вы дали ему бесплатную лицензию и можете использоваться всем С помощью загрузчика F1, чтобы один набор инструментов работал для загрузки, но это совсем другой предмет.

Какую доску вы используете на этих фотографиях, это пользовательский?

О ЖК -дисплее я планировал даже не тестировать текстовые экраны и идти непосредственно для хорошего цвета TFT, так как у нас есть много драйверов дисплея, работающих с F1, и воспользоваться ресурсами процессора, но это не так, как в списке после категоров, термисторов Thermistors , температура... работают.

РЕДАКТИРОВАТЬ:
Только что посмотрел на HAL в этом репо:
https: // github.com/aus3d/marlin/tree/32 ... /Hal_stm32

Вы используете Software SPI? Я не вижу функций HAL SPI, ни Arduino Standar.

Криссб
Пн, 3 июля 2017 г. 8:53 утра
[victor_pv - Пн, 3 июля 2017 г. 6:11] - Привет, Крис, я тот же, который разместил в GitHub о портировании в STM32, и вы поделились своим репо. Я открыл эту ветку здесь, чтобы отслеживать мой прогресс.
Ах, я так думал, но не был уверен! Я рад видеть прогресс, который вы добились, я думаю, что это хорошо, что люди работают над этим - я с нетерпением жду, когда принтеры будут работать на STM32.
[victor_pv - Пн, 3 июля 2017 г. 6:11] - Я не знаю, все ли это ваш код или заимствован, но если это ваш, это было бы здорово, если бы вы дали ему бесплатную лицензию и можете использоваться всем С помощью загрузчика F1, чтобы один набор инструментов работал для загрузки, но это совсем другой предмет.
Блинок, который я собрал вместе, составляет 90% от одного из примеров ST о том, как реализовать интерфейс DFU, а остальные 10% - это просто базовый код домашнего хозяйства, который я написал. Я не уверен, на что похожа лицензия St, но, насколько я обеспокоен, кто -то может делать с ней все, что захочет. Я бы хотел, чтобы это стало более общим загрузчиком для чипов STM32, которые в настоящее время не покрываются старым Maple Bootloader. Главное, что ему не хватает в данный момент, это то, что доска должна быть вручную сбросить для проведения dfu-upload, у меня было некоторое намерение добавить автоматический разрешение в материал USB-CDC в ядре STM322Eric, но не Сыграл с этим еще.
[victor_pv - Пн, 3 июля 2017 г. 6:11] - Какую доску вы используете на этих фотографиях, это пользовательский?
Да, это пользовательская доска. Я разрабатываю управление принтерами STM32 с конца прошлого года (в остановках и запусках), и я использую текущие прототипы, чтобы проверить свою работу Marlin. Я планирую предложить их на продажу в какой -то момент, как только у нас будут вещи STM32, хорошо интегрированные с Mainline Marlin.

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

Изображение
[victor_pv - Пн, 3 июля 2017 г. 6:11] - О ЖК -дисплее я планировал даже не тестировать текстовые экраны и идти непосредственно для хорошего цвета TFT, так как у нас есть много драйверов дисплея, работающих с F1, и воспользоваться ресурсами процессора...
Я согласен, было бы неплохо увидеть правильные TFT -дисплеи, которые используются сейчас, когда у нас есть обработка Power. Как правило, одна из моих целей состоит в том, чтобы иметь наилучшую «связанную с собой» с существующим аппаратным обеспечением, к которым привыкли люди, поэтому я действительно хочу получить общие характер и графические дисплеи, которые у людей уже работают. Одна распространенная жалоба, которую люди испытывают с 8 -битными досками, заключается в том, что они не могут одновременно запустить дельту и графический (как в монохромном ЖК -дисплее Настройка теперь легко обрабатывается.

Что касается графических интерфейсов TFT, я в двух умах в отношении лучшего пути вперед. У нас есть сила на борту, чтобы справиться с этой стороной вещей с этими 32-битными чипсами, но мне нравится подход, взятый с Панель Где дисплей и интерфейс обрабатывается отдельным микроконтроллером, который затем связывается с платой управления через UART и стандартный G-код.

Преимущество заключается в том, что подключение к питанию UART + может быть на любом расстоянии, которое люди могут хотеть на принтере, тогда как SPI или параллельный интерфейс с TFT от платы управления должен был быть довольно коротким, поэтому люди должны будут установить свой дисплей, где бы управляющая доска.

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

Наконец, вы, вероятно, можете выжать лучшую производительность из микроконтроллера, посвященного действиям отображения/интерфейса - я бы предпочел, чтобы MPU 80 МГц посвящен дисплею, чем попробовать жонглирование отзывчивого дисплея и генерации шагов в реальном времени на 180 МГц. Конечно, это определенно возможно, я просто говорю о том, что, я думаю, было бы проще - и с микроконтроллерами такими же дешевыми, как и они, часто легче поделиться работой.

Тем не менее, как вы указали с существующими библиотеками и примерами, было бы относительно легко получить графическое отображение и запуск, и есть и много преимуществ в этом подходе.
[victor_pv - Пн, 3 июля 2017 г. 6:11] - Вы используете Software SPI? Я не вижу функций HAL SPI, ни Arduino Standar.
Некоторые из кода в папке HAL_STM32 не имеют возможности от Due HAL (откуда он был скопирован), и я думаю, что это включает в себя материал SPI. AFAIK эти файлы включают методы для битового SPI и аппаратный SPI Due. Это в настоящее время не используется, ядро ​​STM32GENERIERER обрабатывает сторону SPI на F4 - пока я только использую Adwardware SPI, чтобы поговорить с драйверами по ступенькам, но, похоже, это работает хорошо. Я, вероятно, мог бы удалить эти файлы SPI из папки HAL, но я еще не сделал этого.

Это часть того, почему мне нравится использовать подход Arduino Core, он устраняет необходимость настройки SPI, I2C, UART и т. Д. В пределах Marlin HAL. Хотя до сих пор я тестировал только с одной «доской» STM32ERIERIEREN, то, что для F446VE, вполне вероятно, что Marlin HAL будет работать с другими «досками» с минимальными изменениями, так что в конечном итоге возможно получить любой STM32 При поддержке STM32GENEREREREREN CORE RONG MARLIN MARLIN.

victor_pv
Пн, 3 июля 2017 г. 14:59
[Криссб - Пн, 3 июля 2017 г. 8:53 утра] - Блинок, который я собрал вместе, составляет 90% от одного из примеров ST о том, как реализовать интерфейс DFU, а остальные 10% - это просто базовый код домашнего хозяйства, который я написал. Я не уверен, на что похожа лицензия St, но, насколько я обеспокоен, кто -то может делать с ней все, что захочет. Я бы хотел, чтобы это стало более общим загрузчиком для чипов STM32, которые в настоящее время не покрываются старым Maple Bootloader. Главное, что ему не хватает в данный момент, это то, что доска должна быть вручную сбросить для проведения dfu-upload, у меня было некоторое намерение добавить автоматический разрешение в материал USB-CDC в ядре STM322Eric, но не Сыграл с этим еще.
Я думаю, что мы должны скопировать метод, который Libmaple использует для сброса платы. Это обеспечит некоторую совместимость, по крайней мере, для выполнения сброса, даже если необходимо использовать другой загрузчик DFU.
Мы также предусматриваем повторную работу USB без использования дополнительного штифта и схемы, поэтому он работает на общих платах, у которых нет схемы.
[Криссб - Пн, 3 июля 2017 г. 8:53 утра] - Да, это пользовательская доска. Я разрабатываю управление принтерами STM32 с конца прошлого года (в остановках и запусках), и я использую текущие прототипы, чтобы проверить свою работу Marlin. Я планирую предложить их на продажу в какой -то момент, как только у нас будут вещи STM32, хорошо интегрированные с Mainline Marlin.

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

Изображение
Красиво, выглядит как очень чистый дизайн. Я бы упомянул только, что с тех пор, как шаги на борту, вы, возможно, захотите добавить шестой на борту, хотя я вижу, что вы уже планировали расширение на E1.
Вы также можете переместить кнопку сброса где -нибудь еще на край доски, хотя, надеюсь, это не нужно часто.
[Криссб - Пн, 3 июля 2017 г. 8:53 утра] - Я согласен, было бы неплохо увидеть правильные TFT -дисплеи, которые используются сейчас, когда у нас есть обработка Power. Как правило, одна из моих целей состоит в том, чтобы иметь наилучшую «связанную с собой» с существующим аппаратным обеспечением, к которым привыкли люди, поэтому я действительно хочу получить общие характер и графические дисплеи, которые у людей уже работают. Одна распространенная жалоба, которую люди испытывают с 8 -битными досками, заключается в том, что они не могут одновременно запустить дельту и графический (как в монохромном ЖК -дисплее Настройка теперь легко обрабатывается.

Что касается графических интерфейсов TFT, я в двух умах в отношении лучшего пути вперед. У нас есть сила на борту, чтобы справиться с этой стороной вещей с этими 32-битными чипсами, но мне нравится подход, взятый с Панель Где дисплей и интерфейс обрабатывается отдельным микроконтроллером, который затем связывается с платой управления через UART и стандартный G-код.

Преимущество заключается в том, что подключение к питанию UART + может быть на любом расстоянии, которое люди могут хотеть на принтере, тогда как SPI или параллельный интерфейс с TFT от платы управления должен был быть довольно коротким, поэтому люди должны будут установить свой дисплей, где бы управляющая доска.

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

Наконец, вы, вероятно, можете выжать лучшую производительность из микроконтроллера, посвященного действиям отображения/интерфейса - я бы предпочел, чтобы MPU 80 МГц посвящен дисплею, чем попробовать жонглирование отзывчивого дисплея и генерации шагов в реальном времени на 180 МГц. Конечно, это определенно возможно, я просто говорю о том, что, я думаю, было бы проще - и с микроконтроллерами такими же дешевыми, как и они, часто легче поделиться работой.

Тем не менее, как вы указали с существующими библиотеками и примерами, было бы относительно легко получить графическое отображение и запуск, и есть и много преимуществ в этом подходе.
Я думаю, что вы правы в этом, но, насколько USART отображается с использованием GCODE, я думаю, что поддержка уже должна работать из коробки. Мне нужно посмотреть, как это настроено, я надеюсь, что Марлин позволит использовать один сериал для связи с хостом, а другой для дисплея.
Вы должны были изменить U8GLIB или LCD LIB, чтобы поддержать этот дисплей? А как насчет уровня переключений?
[Криссб - Пн, 3 июля 2017 г. 8:53 утра] - Некоторые из кода в папке HAL_STM32 не имеют возможности от Due HAL (откуда он был скопирован), и я думаю, что это включает в себя материал SPI. AFAIK эти файлы включают методы для битового SPI и аппаратный SPI Due. Это в настоящее время не используется, ядро ​​STM32GENERIERER обрабатывает сторону SPI на F4 - пока я только использую Adwardware SPI, чтобы поговорить с драйверами по ступенькам, но, похоже, это работает хорошо. Я, вероятно, мог бы удалить эти файлы SPI из папки HAL, но я еще не сделал этого.
У меня эта часть переписывается, чтобы использовать наше ядро, и должна быть совместима с STM32GENERIER. Этот файл используется для передачи SDCard.

Какой порт SPI вы используете для Steppers?
Я написал этот файл для использования SPI (SO SPI1), так как это то, что делает Arduino, но может быть изменен, чтобы использовать другой порт, если это тот, который вы используете для шагов.

Я действительно удивлен, что не видел никакой платы с открытым исходным кодом, используя STM32s. Они дешевы для количества функций, которые они имеют. Даже с усилием STM на Marlin4St, единственные платы, использующие их, коммерческие, которые я обнаружил, - это закрытый исходный код.

Даниэфф
Пн, 3 июля 2017 г., 15:11
[victor_pv - Пн, 3 июля 2017 г. 14:59] -
[Криссб - Пн, 3 июля 2017 г. 8:53 утра] - Блинок, который я собрал вместе, составляет 90% от одного из примеров ST о том, как реализовать интерфейс DFU, а остальные 10% - это просто базовый код домашнего хозяйства, который я написал. Я не уверен, на что похожа лицензия St, но, насколько я обеспокоен, кто -то может делать с ней все, что захочет. Я бы хотел, чтобы это стало более общим загрузчиком для чипов STM32, которые в настоящее время не покрываются старым Maple Bootloader. Главное, что ему не хватает в данный момент, это то, что доска должна быть вручную сбросить для проведения dfu-upload, у меня было некоторое намерение добавить автоматический разрешение в материал USB-CDC в ядре STM322Eric, но не Сыграл с этим еще.
Я думаю, что мы должны скопировать метод, который Libmaple использует для сброса платы. Это обеспечит некоторую совместимость, по крайней мере, для выполнения сброса, даже если необходимо использовать другой загрузчик DFU.
Есть сброс CDC, так же, как Libmaple.

victor_pv
Пн, 3 июля 2017 г. 15:55
[Даниэфф - Пн, 3 июля 2017 г. 15:11] -
[victor_pv - Пн, 3 июля 2017 г. 14:59] -
[Криссб - Пн, 3 июля 2017 г. 8:53 утра] - Блинок, который я собрал вместе, составляет 90% от одного из примеров ST о том, как реализовать интерфейс DFU, а остальные 10% - это просто базовый код домашнего хозяйства, который я написал. Я не уверен, на что похожа лицензия St, но, насколько я обеспокоен, кто -то может делать с ней все, что захочет. Я бы хотел, чтобы это стало более общим загрузчиком для чипов STM32, которые в настоящее время не покрываются старым Maple Bootloader. Главное, что ему не хватает в данный момент, это то, что доска должна быть вручную сбросить для проведения dfu-upload, у меня было некоторое намерение добавить автоматический разрешение в материал USB-CDC в ядре STM322Eric, но не Сыграл с этим еще.
Я думаю, что мы должны скопировать метод, который Libmaple использует для сброса платы. Это обеспечит некоторую совместимость, по крайней мере, для выполнения сброса, даже если необходимо использовать другой загрузчик DFU.
Есть сброс CDC, так же, как Libmaple.
Есть ли сброс сброса доски, если получен 1EAF, как в Libmaple? Я считаю, что это часть, часть Крисса говорит о необходимости сброса вручную.
Если нет, то можем ли мы добавить это в ядро?

victor_pv
Пн, 3 июля 2017 г., 16:11
@Chriss

Я посмотрел на Steppers и файл конфигурации платы. Я вижу, что Steppers поддерживают интерфейс SPI, и они могут даже быть прикованными в цепь друг от друга, поэтому они перемещают данные на следующий шаг, пока CS сохраняется низким, но также могут управляться независимо со своей собственной линией CS каждый.
Я понимаю, что вы используете SPI только для конфигурации, но не для установки шагов, а DIR - это правильно?
Мне нужно дважды проверить, но я считаю, что Marlin4st использует порт SPI для всего, что экономит тонну булавок и позволяет быстро трансмиссии SPI.

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

Даниэфф
Пн, 3 июля 2017 г. 16:22
[victor_pv - Пн, 3 июля 2017 г. 15:55] -
[Даниэфф - Пн, 3 июля 2017 г. 15:11] -
[victor_pv - Пн, 3 июля 2017 г. 14:59] -

Я думаю, что мы должны скопировать метод, который Libmaple использует для сброса платы. Это обеспечит некоторую совместимость, по крайней мере, для выполнения сброса, даже если необходимо использовать другой загрузчик DFU.
Есть сброс CDC, так же, как Libmaple.
Есть ли сброс сброса доски, если получен 1EAF, как в Libmaple? Я считаю, что это часть, часть Крисса говорит о необходимости сброса вручную.
Если нет, то можем ли мы добавить это в ядро?
Да, сброс на 1FEAF

AG123
Пн, 3 июля 2017 г., 17:10
[victor_pv - Пн, 3 июля 2017 г., 16:11] - @Chriss

Я посмотрел на Steppers и файл конфигурации платы. Я вижу, что Steppers поддерживают интерфейс SPI, и они могут даже быть прикованными в цепь друг от друга, поэтому они перемещают данные на следующий шаг, пока CS сохраняется низким, но также могут управляться независимо со своей собственной линией CS каждый.
Я понимаю, что вы используете SPI только для конфигурации, но не для установки шагов, а DIR - это правильно?
Мне нужно дважды проверить, но я считаю, что Marlin4st использует порт SPI для всего, что экономит тонну булавок и позволяет быстро трансмиссии SPI.

В любом случае, на что посмотреть на дорогу, но я хотел прокомментировать это, если вы уже используете его в своем доске, и я не видел.
Я немного прочитал на модулях A4988 от Polou, которые являются модулями рампов
https: // www.Пололу.com/продукт/1182
http: // www.Allegromicro.com/~/media/fil ... лист.аш
Изображение

У него, по -видимому, нет штифта в стиле SPI /CS, единственным управляющим штифтом /включением является выключение /на MOSFET (Active Low)
Казалось бы, что подключение к стилю SPI на самом деле не может быть осуществимым. В любом случае основные булавки в основном шаг и режиссер
Было бы хорошо иметь /включить там, но я предполагаю, что мы можем сгруппировать все /включить в один управляющий штифт STM32 GPIO.
я.эн. Все или никто, все полезные значения или все во всех моторах, которые могут помочь спасти пару булавок, но не очень многое из них

п.с. Читайте немного больше в Интернете, казалось, что это не хорошая практика, чтобы оставить в результате включенных вод, он просто нагревает мотор & Чип драйвера ESP, когда токи велики, когда двигатель не движется. В этом случае сохранение разделения линий включения, возможно, хорошей вещью, так как двигатели не всегда движутся вместе

victor_pv
Пн, 3 июля 2017 г. 8:31 вечера
Есть несколько новых драйверов, которые поддерживают коммуникации SPI. Некоторые только для конфигурации, а некоторые для всего.

Я не уверен, сколько контроля в TMC, но STM L6470, один STM, используемый в плате Eval, позволяет полный контроль со SPI. Вы даже можете отправить команду, чтобы сообщить водителю, какую позицию вы хотите переместить двигатель, и шаг позаботится о ускорении, перемещении и замедлении.
Похоже, довольно хорошая функция по сравнению с необходимостью отправлять несколько импульсов и необходимости сохранять счет в MCU.
Посмотрите на таблицу данных http: // www.ул.com/content/ccc/resource/ ... 255075.PDF
В любом случае, я проверял код STM в Marlin4st, и даже они не использовали порт SPI для этого в этом драйвере :( Они используют его только для настройки драйвера, но затем отправляют импульсы и направление в 2 булавках, как другие драйверы.
Одна вещь, которую они делают иначе, чем обычный код Marlin, заключается в том, что они используют аппаратные таймеры в режиме SWM для отправки импульсов. Я не уверен, сколько времени процессора, которое экономит, учитывая, что они обслуживают прерывание для каждого импульса.
Марлин вместо этого использует один петлей таймера для управления всем. Таймер не переключает какую -либо булавку, но просто используется для периодического вызова этой функции.

О PIN -код, я думаю, многие доски просто держите их все время все время. Любая плата, использующая 64pin mcu.

AG123
Втюж 04 июля 2017 г. 6:52 утра
L6470 - гораздо лучший шаговый драйвер, чем драйверы стиля Pololu Ramps
1/128 микроэппинг и интерфейс SPI
Это действительно сделало бы 3D -печать очень плавным

A4988 и DRV8825 имеют только 16 и 32 микростепа соответственно
http: // reprap.org/wiki/a4988_vs_drv8825 ... ver_boards

Но я предполагаю, что это также одна из причин, по которой эталонная доска 3D -принтеров, по крайней мере, составляет премию по цене

на самом деле это не имело большого значения, как разные доски E.глин. Рампы имеют свою собственную доску включает. Это позволило бы тем, у кого есть лучшие шаговые водители использовать доску.H Файл и коды драйверов Stepper, которые используют меньше контактов. И тем, кто использует рампы, должны будут использовать доску с большим количеством булавок GPIO, но они идут с другой платой.H файлы и коды шаговых драйверов

victor_pv
Пт, 07 июля 2017 г. 11:29
Я только что загрузил свой порт Libmaple с GitHub и связал его в первом посте.

Даниэфф
Сб 8 июля 2017 г. 4:38 утра
Почему это не вилка, а новая репо?

victor_pv
Сб 8 июля 2017 г. 13:43
[Даниэфф - Сб 8 июля 2017 г. 4:38] - Почему это не вилка, а новая репо?
Хм, нет особой причины. Как только Marlin Main Devs объединит свой слой HALE с основным, это будет представлено как новая папка в их подпапке HAL. В этот момент он не будет существовать как ни один ветвь вилки, только часть мастера Марлина.
Тем временем я только что загрузил его на случай, если кто -нибудь захочет проверить это, так что не так много планирования, как я загружаю его.

victor_pv
Пт 27 октября 2017 г., 4:37
Сегодня я успешно напечатал пару тестовых кубиков, а затем Йода-бхуда с Марлином и STM32F1 HAL Я начал писать. XC0000005 присоединился к разработке и переписал часть АЦП для работы с DMA.
Он успешно напечатал пару дней назад с доской Malyan M200, и я напечатал на пользовательской доске, которую я сделал для этих тестов.
Я обновил первый пост, чтобы отразить прогресс.
Сейчас в официальном марлине 2.0 Bugfix Branch, но я должен загрузить и отправить самые последние изменения, которые я вносил в свою локальную копию, и XC0000005, возможно, тоже поставили некоторые, но теперь Marlin функционирует в STM32F1 : D
Я использовал STM32F103VET. Я забыл, что на доске M200, но как бы у него ни был MCU Verson, он тоже может соответствовать Marlin.

AG123
Пт 27 октября 2017 г. 15:03
+10 :)

MJ666
Чт, 02 ноября 2017 г. 18:16
Привет, у меня есть Fabrikator Mini v2. Он содержит очень похожую доску, такую ​​как Malyan M200. Вот ссылка:

https: // хоббикинг.com/de_de/главная доска- ... -M100.HTML

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

Я работаю с глобальной командой над разработкой контроллеров полетов на основе STM32 и глубоко вовлечен в разработку прошивки для этого контроллеров полета:

https: // www.Alienflightng.ком/

Я активно разрабатываю Betaflight и Inav, но в прошлом работал над харакири, BaseFlight и Cleanflight. Я использую Eclipse с цепочкой инструментов GNU Arm для этой разработки. Я использовал Arduino в 8 -битной версии в прошлом для Multiwii с чипсами Atmega, где я также работал несколько лет назад.

victor_pv
Чт, 02 ноября 2017 г., 22:36
Приглашается любая помощь.

Я мало что сделал в размере кода, потому что я тестировал с другой платой с закрытым исходным кодом, CHITU3D, и только что закончил с этим несколько дней назад, и смог распечатать с Marlin.

XC00005 работает над малиана, и он тоже успешно напечатал. Если эта плата похожа на малиана, все, что вам нужно сделать в текущее время, это карта, что используются для каждой функции (шаг, DIR и включить, для каждого ступень это.

Я полагаю, что XC00005 в последний раз работал над кодом проверки здравомыслия, который проверяет вашу конфигурацию в Marlin (например, 2 функции не используют один и тот же вывод и т. Д.).
Нам все еще нужно работать над ЖК -деталей.

В настоящее время мы работаем в моем отделении кода, это почти до официального 2.0 ветвь.
В официальном отделении для LPC происходит много изменений, и может потребоваться некоторое время, чтобы объединить пиар, поэтому я подумал, что будет проще работать на STM32 в моем HAL, так как я могу сливаться чаще, и и Затем время от времени отправляйте PR на чиновника.
Кроме того.
Это здесь:
https: // github.com/Victorpv/marlin/tree/bugfix-2.0.х

MJ666
Пт, 03 ноября 2017 г., 17:35
Я заказал запасную доску. Похоже, что он использует STM32F103C8T6. Основной дизайн выглядит очень похоже на доску Malyan200. Вероятно, это происходит из того же источника. На самом деле попытка поднять и заработать среду сборки Arduino, чтобы иметь возможность создать код.

паразоль
Пт 15 декабря 2017 г. 3:22 утра
Я опубликовал это на другом протекторе, извините, если много дублирования...
Доступны совместимые проекты, совместимые с открытым кисюсом "Duino", которые позволяют управлять замкнутым циклом так много проблем с движением. Тогда одна идея состоит в том, чтобы иметь контрольную часть для 3-4 Steppers в одном чертеже, который будет общаться с другим управляющим марлином, в то время как на стороне с шагом есть двигатель и датчик положения в случае закрытого цикла...

Мехадуино:
http: // tropical-labs.com/index.PHP/Mechaduino
https: // github.com/jcchurch13/mechaduino-hardware
https: // github.com/jcchurch13/mechaduino-firmware

Похоже на вышеупомянутую nano_stepper:
http: // misfittech.сеть
https: // github.com/misfittech/nano_stepper

Проще и дешевле Ustepperr, интересная сторона этого проекта, которую вы можете использовать дешевый драйвер полюлу A4988 как есть:
http: // www.Ustepper.com/index/what-ustepper/
https: // github.com/ustepper/ustepper

Archimedesmp
Пн 15 января 2018 г., 19:35
Приятно видеть, как кто -то работает над этим. В настоящее время у меня запланирован еще один проект STM32, но как только это будет сделано, я хотел бы построить 3D -принтер - и синяя таблетка/STM32F103C8T6, кажется, является лучшим ударом для контрольного решения Buck 32Bit (будь то с SmoothieWare или Marlin это многое так много [для меня]).

Что касается текущего статуса проекта: Мне нравится, куда вы идете с использованием модулей шагового драйвера в стиле Pololu.

Мне просто интересно, при использовании интерфейса драйвера Dir/Step, почему бы не поставить их за SN74HCT595 (или 74AHCT595) Shift Shift (ы)? С одним из них, доска должна быть в состоянии управлять 4 Steppers всего из 3 булавок:
1. Поправка 8 бит данных с помощью данных/часовых булавок
2. Импульсная защелка, чтобы «зажечь» порты Dir/Step, которые мы установили на шаге 1
Поскольку регистр смены может работать на 100 МГц, который не должен быть шеей в бутылке?
Я думаю, что между часами и последующей защелкой должна быть задержка времени (19N ~ 52 МГц) (19N ~ 52 МГц).

Добавьте второй регистр смены Три контакта могут управлять 8 Steppers (или лучше: 5 Steppers, 3 горячих {концов, кроватей}) [на половине скорости по сравнению с одним регистром].

В таблице ST только упоминается частота переключения 18 МГц для APB2 (но они не [кажется] DMA). Чтобы решить это, возможно, их можно «поговорить» через одну из двух SPI (у которых есть DMA; просто используйте CLK+MOSI, чтобы отправить 3 байта для трех регистров, положите защелку на другую булавку и пульс после того, как DMA закончится).


Если требуются более «медленные» штифты (управление вентилятором, микростеппинг, горячий кровать), они также могут быть добавлены, просто добавив регистры смены в цепочке; эн.глин. 2 Для микростаппинга контроля 5 Steppers (15 бит, 3 на плату полюлу) и треть,... Поскольку это все, что, вероятно, не обновляется каждые несколько мс, они могут пойти на любые три булавки.


Может быть, там, но только мой 2C - и может быть лучше/проще, чем в синхронизации двух MCU :)


[Поздняя ночная редактирование]: Я совершенно забыл о конечных стопах, но вы также можете проверить их с помощью регистра смены. Нужен три контакта и ISR на одном из них: один переключатель между каждым выводом регистрации и входным выводом STM32; Потяните все булавки на реестр высокого уровня; Если, по крайней мере, один переключатель закрывается, ISR необходимо проверить все переключатели для того, что было запускается; Пока это происходит, шаг не должно произойти. Если переключатель сохраняется активным, состояние Endstop должно быть опробовано после каждого этапа цикла.

Подводить итоги:
- Быстрый: SPI/3 булавки (18 МГц, DMA)
- Медленно: 3 булавки
- Конечные стопы: 3 булавки
- 8 -битные регистры сдвига: 2 + 3 + 1 = 6 (Mouser: 0.215 $ @ 100pcs как SO16 74AHCT595D)
Остальные выводы можно использовать для ЖК -дисплеев/SD/..., Предполагая, что они подходят для этой цели.

Конечно, нет необходимости идти «все в» на переключение вещей, возможно, этого достаточно, чтобы использовать один или два из них.

Подобная альтернатива: MCP23S17T (10 МГц SPI; SSOP-28 и меньший) или MCP23017 (1.7 МГц I2C, SPDIP-28 и меньший) 16-битные расширения ввода/вывода (<= 1 $ @ 100pcs).
Контакты на них - ввод/вывод, и они могут быть настроены, чтобы запустить одно из двух прерываний (аккуратный для конечных стопов).
Видеть https: // www.мышца.com/ds/2/268/20001952c-1129816.PDF за их общую таблицу данных.
[Конец поздней ночи Редактировать]

youprint
Ср 24 января 2018 г. 20:46
Привет всем
Я пытаюсь собрать код на Open103Z (STM32F103ZET) очень близко от 103RET, но у меня проблема во время компиляции:
sketch\src\HAL\HAL_STM32F1\persistent_store_impl.cpp: In function 'bool HAL::PersistentStore::access_start()': sketch\src\HAL\HAL_STM32F1\persistent_store_impl.cpp:56:20: error: 'class CardReader' has no member named 'read' bytes_read = card.read (HAL_STM32F1_eeprom_content, HAL_STM32F1_EEPROM_SIZE); ^ sketch\src\HAL\HAL_STM32F1\persistent_store_impl.cpp: In function 'bool HAL::PersistentStore::access_finish()': sketch\src\HAL\HAL_STM32F1\persistent_store_impl.cpp:70:23: error: 'class CardReader' has no member named 'write' bytes_written = card.write (HAL_STM32F1_eeprom_content, HAL_STM32F1_EEPROM_SIZE); ^ exit status 1 Erreur de compilation pour la carte Generic STM32F103Z series

youprint
Вт 06 февраля 2018 г. 11:27
Я наконец успешно собрал Marlin на F103RE и на F103ZE. Кажется, работает. Мне пришлось отключить функцию эмуляции eEPROM, и я немного изменил оборудование HAL SPI.
Теперь я могу подключиться к своему STM32 через PRENTERFACE 8-)
я’M Подготовка тестовой доски сейчас:
Изображение
я’m собираюсь попытаться проверить с L6470
Большое спасибо, Виктор за ваш HAL, это’собирается добиться большего успеха, потому что это’S самая перспективная платформа для Marlin 2.0. Чип STM32 дешевле и мощный, чем AVR. Мы могли бы ожидать использования синей таблетки для минимальной конфигурации. Это удивительно!

victor_pv
Вт 06 февраля 2018 г. 16:27
Youpprint SPI был изменен кем -то еще в Марлине, и у меня еще не было возможности проверить эти изменения. С тех пор, как вы получили это, пожалуйста, не забудьте отправить изменение в Marlin, чтобы оно исправлялось.

Я рад, что ты работаешь, работаешь. Я успешно протестировал это с помощью MCU Vet и Zet.

youprint
Вторник 06 февраля 2018 г., 19:38
Есть небольшой PB с SPI, но я думаю, что вы найдете решение быстро, когда у вас будет время на это. Я смешал ваш репо и официальный репо, чтобы заставить его работать, потому что в вашем репо есть PB с таймерами HAL. Я провожу 3 дня, но это’Скомпилируется сейчас. Завтра я’m собираюсь протестировать двигатели и лимитные переключатели. Если все в порядке, я попробую на своем тестовом принтере. Я надеюсь получить работу SPI, потому что мне очень нравятся драйверы SPI, такие как L6470.

victor_pv
Вт 06 февраля 2018 г. 22:21
[youprint - Вторник 06 февраля 2018 г., 19:38] - Есть небольшой PB с SPI, но я думаю, что вы найдете решение быстро, когда у вас будет время на это. Я смешал ваш репо и официальный репо, чтобы заставить его работать, потому что в вашем репо есть PB с таймерами HAL. Я провожу 3 дня, но это’Скомпилируется сейчас. Завтра я’m собираюсь протестировать двигатели и лимитные переключатели. Если все в порядке, я попробую на своем тестовом принтере. Я надеюсь получить работу SPI, потому что мне очень нравятся драйверы SPI, такие как L6470.
Я использовал порт SPI с SDCard без проблем. Все порты SPI должны работать, если только какая -то другая часть Marlin не сломана этими обновлениями.

youprint
Ср. 07 февраля 2018 г. 5:08
Спасибо за информацию Victor, я собираюсь попробовать с SD Reader, чтобы проверить SPI. Я был удивлен, увидев, что кто -то добавил код без тестирования его (3 января), но я думаю, что это’S только синтаксис PB с STM32DUINO SPI LIBS.
https: // github.com/marlinfirmware/marlin/pull/9019

У меня есть скидка на скидку в репрессии и 12864, так что я думаю, что я.Я собираюсь попробовать, но это’S приходит из Arduino, поэтому мне нужно проверить, нужно ли мне выровнять некоторые сигналы.
Работа над MKS Robin с STM32F103ZET6 для установки загрузчика Arduino Bootloader. Видимо чип заблокирован, я могу’T разблокируйте его с JLink V8 в SWD, поэтому я должен попробовать с Jlink V9 или с BMP.
Изображение


Теперь я видел Hal F7, который он’S Working, только F4 HAL отсутствует, и у нас будет все семейство продуктов STM32.

Я собираюсь начать проект с LinuxCNC, так как он может поддерживать 3dprinter. Моя цель состоит в том, чтобы использовать Raspberry Pi в Master с STM32FXX в подчиненном режиме, чтобы обеспечить доступ RPI к быстрому IO чипа STM через SPI. Это уже было сделано с помощью FPGA (Spartan 6 через SPI), но это может быть дешевле с синей таблеткой, а водитель FPGA может быть действительно хорошим началом. Все, что мне нужно, это хороший HAL для STM, поэтому мне нужно узнать больше... ;)

AG123
Солнце 22 апреля 2018 г. 5:17 утра
Что -то интересное развивается для Marlin
https: // github.com/marlinfirmware/marli ... GFIX-2.0.х
^^^ Это ветвь, марлин 1.X здесь
https: // github.com/marlinfirmware/marlin

Группа Facebook здесь
https: // www.Facebook.com/groups/marlin32bit/

STM32, очевидно, привлекает больше внимания

Амплитуда генератора

Квадрокоптер на основе Maple Mini