Контроллер для LinuxCNC (Ethernet + STM32)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Контроллер для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 11 мар 2018, 10:08

В ходе работы над драйверами к Orange Pi (H3) появилась мысль запилить более бюджетный аналог MESA 7i92.

В качестве проца должен полностью подойди STM32F407VET6 (в данный момент юзаю STM32H750VBT6). За физику Ethernet будет отвечать недорогая кроха LAN8720. На платке дополнительно можно разместить какую-ньть кроху (конвертер) ШИМ -> 0-10V. Всё. Платка должна получиться очень мелкая, но мощная. Остальное можно будет реализовать доп. платками, которые продаются на АлиЭкспрессах.

Смысл идеи - берём абсолютно любую материнку (или ARM платку) и превращаем её в довольно мощное ЧПУ незадорого.

Внутри МК должны быть реализованы хотя бы 4 модуля - gpio, stepgen, pwmgen и encoder. Драйвер LinuxCNC для всего этого будет только один.

Статус проекта - В ПРОЦЕССЕ

Задачи проекта:

  1. В ПРОЦЕССЕ : Прошивка для STM32
  2. В ПРОЦЕССЕ : Драйвер для LinuxCNC / Machinekit
  3. ГОТОВ : Веб загрузчик для обновления прошивки STM32
  4. В ПЛАНЕ : Плагин для Mach3 / Mach4
Контроллер для LinuxCNC (Ethernet + STM32) PHOTO_20180411_183913.jpg
первая макетка, STM32F407VET6, 168 МГц
Контроллер для LinuxCNC (Ethernet + STM32) 2019-03-01_151319.jpg
веб-интерфейс загрузчика
Контроллер для LinuxCNC (Ethernet + STM32) IMG_20181226_162111.jpg
вторая макетка, STM32H743ZIT6, 400 МГц
Последний раз редактировалось MX_Master 04 окт 2019, 17:45, всего редактировалось 17 раз(а).
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4639
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2162
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение AAN » 11 мар 2018, 11:46

Если делать на STM32, то реальное время легче сделать на Micropython - у него ШИМ, управление сервами и ногами - из коробки есть.
AAN
Опытный
 
Сообщения: 151
Зарегистрирован: 14 апр 2015, 10:28
Откуда: Томск
Репутация: 31
Настоящее имя: Антон

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение selenur » 11 мар 2018, 12:04

Я с ассемблера на Си при программировании микроконтролеров, с огромным недоверием переходил, т.к. Все равно добавляются некоторые вещи которые бывают излишние в некоторых критичных моментах. А что там питон добавляет интересно? И отладка там работает?
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4068
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1448
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение AAN » 11 мар 2018, 18:53

selenur писал(а):Я с ассемблера на Си при программировании микроконтролеров, с огромным недоверием переходил, т.к. Все равно добавляются некоторые вещи которые бывают излишние в некоторых критичных моментах. А что там питон добавляет интересно? И отладка там работает?

Узкие моменты любой высокоуровневый язык добавляет, спасение - в огромных ресурсах той же STM32, благо питоновский код может лежать и на SD-карточке. На pyboard плате, которой я игрался, встроенный ST-программатор, или как это грамотно называется, в-общем, три способа отладки кода:
1. Присоединил я платку по USB-шнурку и через PyTTY в терминале ввожу команды, например, 2**100000 (мой любимый тест мощи числогрыза), микроконтроллер оперативно выдал мне целое число на несколько экранов, также я помигал всеми четырьмя светодиодами, считал состояние кнопки.
2. Запихивал код на эмулятор: https://micropython.org/unicorn/ работает, но у меня уже в тот момент на руках были платы и прикольнее было с ними играться.
3. Залил код на МК (Windows работает с памятью МК как с обычной флешкой) - воткнул, перезаписал файлы *.py , перезагрузил МК- всё работает, если нужно отладить код - добавляем индикацию светодиодами, пишем протоколы в файлы, выдаём на стандартный экран https://store.micropython.org/product/LCD160CRv1.0H (я купил парочку, но пока не тестил). Я просто не в курсе, может ещё какие-то хитрые способы отладки существуют, в Python-е обычно всё работает более-менее сразу, он под это создан.

Плюсы Python-а. Написал я постпроцессор для LinuxCNC, когда понадобилось немного изменить логику, другой человек сделал это за 20минут, причём Питона-то он и не знал - простота и наглядность - великая вещь.
Платформ дофига им поддерживается - https://github.com/micropython/micropyt ... ds-Summary
Есть и поддкржка ПЛИС http://www.pynq.io/
AAN
Опытный
 
Сообщения: 151
Зарегистрирован: 14 апр 2015, 10:28
Откуда: Томск
Репутация: 31
Настоящее имя: Антон

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение sergx99 » 11 мар 2018, 20:44

MX_Master писал(а):В ходе работы над драйверами к Orange Pi (H3) появилась мысль запилить более бюджетный аналог MESA 7i92.

В качестве проца должен полностью подойди STM32F407VET6. За физику Ethernet будет отвечать недорогая кроха LAN8720. На платке дополнительно можно разместить какую-ньть кроху (конвертер) ШИМ -> 0-10V. Всё. Платка должна получиться очень мелкая, но мощная. Остальное можно будет реализовать доп. платками, которые продаются на АлиЭкспрессах.

Смысл идеи - берём абсолютно любую материнку (или ARM платку) и превращаем её в довольно мощное ЧПУ незадорого.

Внутри МК должны быть реализованы хотя бы 3 молуля - stepgen, gpio, encoder. Драйвер LinuxCNC для всего этого будет только один.

Вот хочу узнать мнение пользователей LinuxCNC. Если есть вопросы, советы и рекомендации, буду рад.

Идея вроде хорошая, может вместо или вместе с ШИМ -> 0-10V, DAC -> 0-10V задействовать и RS485 организовать?
Смотрю на такую плату TE-STM32F407
Есть Ethernet, UART(COM) 2шт, CAN 2шт, USB OTG, SPI, ADC, DAC, GPIO...
Минусы, - нет RS485, питание +7,5 … 9,0В.
Совсем дешево, не выходит.
И такую NUCLEO-F767ZI плата дешевле, ног больше, еще и FPU double-precision and single-precision.

И с другой стороны, на алиэкспрессе
плата c XC6SLX9-TQ144 от 18$
плата c Lan8720 от 2$, посмотрел, негодится.
плат с KSZ8851 готовых у китайцев не увидел.
есть с ENC28J60, w5500 надо смотреть подробнее.
ведь можно получить почти настоящую MESA, а не возиться с таймерами STM32.
sergx99
Новичок
 
Сообщения: 18
Зарегистрирован: 27 фев 2016, 17:03
Репутация: 7
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 11 мар 2018, 22:21

sergx99 писал(а):Идея вроде хорошая, может вместо или вместе с ШИМ -> 0-10V, DAC -> 0-10V задействовать и RS485 организовать?

Конвертер USB-RS485 стоит недорого. Ну и для популярных частотников уже есть драйвера в LinuxCNC. Так что микруха RS485 будет на плате развязки лишней.

STM32F407VET6 выбран с целью удешевления. Повторять Месу.. зачем?

Кстати, подскажите кто в танке хороший способ линейного умножения напряжения с МК выхода ЦАП (0-3.3V -> 0-10V)
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4639
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2162
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение UAVpilot » 12 мар 2018, 03:25

MX_Master писал(а):Кстати, подскажите кто в танке хороший способ линейного умножения напряжения с МК выхода ЦАП (0-3.3V -> 0-10V)

Любой Rail-to-rail c питанием +12/-12. При однополярном питании можно получить 0.2-10В. Для 0-10В нужно будет отрицательное питание, хотя-бы 2-3 вольта.
+12 и -3 можно получить с помощью транзистора, дросселя и выпрямителя (DC-DC), раскачать всё это можно ногой МК с ШИМ.

P.S. Я не в танке! :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18649
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4562
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение sergx99 » 12 мар 2018, 03:28

MX_Master писал(а):
sergx99 писал(а):Идея вроде хорошая, может вместо или вместе с ШИМ -> 0-10V, DAC -> 0-10V задействовать и RS485 организовать?

Конвертер USB-RS485 стоит недорого. Ну и для популярных частотников уже есть драйвера в LinuxCNC. Так что микруха RS485 будет на плате развязки лишней.

STM32F407VET6 выбран с целью удешевления. Повторять Месу.. зачем?

Кстати, подскажите кто в танке хороший способ линейного умножения напряжения с МК выхода ЦАП (0-3.3V -> 0-10V)

Цены в элитане:
STM32F407VET6 -> 318,00 p от 10 шт
XC6SLX9-2TQG144C -> 311,00 p от 10 шт
Цены aliexpress:
STM32F407VET6 -> $4.78
XC6SLX9-2TQG144C -> $4.20
Одна FPGA чуть дешевле, с памятью выйдет немного дороже.
Кроме как ОУ для ЦАП (0-3.3V -> 0-10V) не подскажу :( питание от 12V требуется
sergx99
Новичок
 
Сообщения: 18
Зарегистрирован: 27 фев 2016, 17:03
Репутация: 7
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение sergx99 » 12 мар 2018, 03:39

UAVpilot писал(а):
MX_Master писал(а):Кстати, подскажите кто в танке хороший способ линейного умножения напряжения с МК выхода ЦАП (0-3.3V -> 0-10V)

Любой Rail-to-rail c питанием +12/-12. При однополярном питании можно получить 0.2-10В. Для 0-10В нужно будет отрицательное

На дешевой LM358 (Vol 20mv) вроде 0.02 - 10В при однополярном питании можно получить.
sergx99
Новичок
 
Сообщения: 18
Зарегистрирован: 27 фев 2016, 17:03
Репутация: 7
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 12 мар 2018, 07:14

Я, кстати, не против плисин. Но чтобы выйти на тот же уровень знаний мне понадобится ещё с пол года свободных вечеров. Это довольно много.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4639
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2162
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение Сергей Саныч » 12 мар 2018, 08:33

Если использовать аналоговое управление только для частотника, то с задачей справится практически любой ОУ, даже не обязательно rail-to-rail, потому что в инверторах диапазон входных напряжений обычно можно задавать (к примеру, не 0..10, а 2..9 вольт). Выход питания 12В, как правило, у частотников тоже имеется. Если ориентироваться на управление сервоприводами (-10..0..10В), тогда да, надо организовывать двухполярное питание.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 8492
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2659
Медальки:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение Dmaster » 12 мар 2018, 18:25

Сергей Саныч писал(а):Если ориентироваться на управление сервоприводами (-10..0..10В), тогда да, надо организовывать двухполярное питание.

А как меса это делает без двухполярного?
" Linux CNC - наше всё"
Аватара пользователя
Dmaster
Мастер
 
Сообщения: 1152
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 435
Медальки:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение UAVpilot » 12 мар 2018, 18:54

Dmaster писал(а):А как меса это делает без двухполярного?

Так-же как и все: у неё на борту два маленьких DC-DC - на +16V и на -12V.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18649
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4562
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 13 мар 2018, 10:59

Поприкидывал цены. Себестоимость всей комплектухи (включая плату) получается на уровне 15$ в кол-ве от 10 шт. Много это или мало, пока неясно.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4639
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2162
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение alex1816 » 14 мар 2018, 14:03

AAN писал(а):На pyboard плате, которой я игрался, встроенный ST-программатор, или как это грамотно называется, в-общем, три способа отладки кода:
1. Присоединил я платку по USB-шнурку и через PyTTY в терминале ввожу команды,

Как эта ерунда работает?
Получается, что эта плата загружает в стм32 какой-то свой загрузчик и типа ОС с поддержкой например Pyton и тп?
Или pyboard компилирует код в бинарный? В общем ничего не понял пока :)
alex1816
Мастер
 
Сообщения: 201
Зарегистрирован: 03 фев 2017, 01:06
Откуда: Украина
Репутация: 27
Настоящее имя: Александр

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 14 мар 2018, 18:21

Кстати, под Мач3 никто плагины не писал? Можно эту же платку юзать с Мач3, написав ещё одну прошивку.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4639
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2162
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение UAVpilot » 14 мар 2018, 18:26

Пиши уже под Mach4. :)

P.S. Один чувак начал писать плагин под Mach3 для плат Mesa. У него даже как-то работала 7i43. Но итоговый результат оказался плачевным - ему понравился LinuxCNC и она забил на Mach3. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18649
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4562
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master » 14 мар 2018, 18:37

Я точно не знаю, но, вроде, разработчики Мач4 далеко не всем дают доступ к инструментам разработки плагинов к Мач4. Там, вроде, драйвер должен быть как-то подписан, иначе он с Мач4 не будет работать. Или ситуация поменялась?
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4639
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2162
Медальки:
Настоящее имя: Михаил

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение verser » 14 мар 2018, 18:50

MX_Master писал(а):Поприкидывал цены. Себестоимость всей комплектухи (включая плату) получается на уровне 15$ в кол-ве от 10 шт. Много это или мало, пока неясно.

Цена комплектухи ничто, по сравнению с объемами программирования для доведения прошивки до конкурирующего с mesa уровня.
На одном энтузиазме тема вряд ли подъемная.
Изображение- центроискатели
Аватара пользователя
verser
Мастер
 
Сообщения: 1712
Зарегистрирован: 21 июл 2013, 22:28
Откуда: Минск
Репутация: 1137
Медальки:
Настоящее имя: Сергей

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение AAN » 14 мар 2018, 19:21

alex1816 писал(а):Получается, что эта плата загружает в стм32 какой-то свой загрузчик и типа ОС с поддержкой например Pyton и тп?
Или pyboard компилирует код в бинарный? В общем ничего не понял пока :)

Компиляция не происходит. На плату уже прошит интерпретатор, которому всё равно, откуда исполнять команды программы- из внутренней памяти, с флешки, с ПК. Гибкость.
AAN
Опытный
 
Сообщения: 151
Зарегистрирован: 14 апр 2015, 10:28
Откуда: Томск
Репутация: 31
Настоящее имя: Антон

След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: alexwalex, Andy52280, Bender, Bing [Bot], Brynet83, CNCCLUB, Cvazist, daemon78, er931, frezeryga, fugi1, gess05, Google [Bot], kostysk, loi_28, michalych, mikehv, MSN [Bot], NikolayUa24, pm_dev, rossichpvv, ruh2100, sima8520, Sonar, Yandex [bot], ДНК

Reputation System ©'