Ethernet контроллер для LinuxCNC (STM32, FPGA)
- MX_Master
- Мастер
- Сообщения: 7482
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3103
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Ethernet контроллер для LinuxCNC (STM32, FPGA)
На горизонте замаячила идея о контроллере для LinuxCNC полностью с нуля. Схема, плата, все дела.
В качестве мозга я выбрал многолапый STM32F429IGT6 (180 МГц). На борту есть вся необходимая периферия для высокочастотного вывода шагов и подсчёта импульсов. Аналоговое управление организовать тоже можно.
На АЛИ есть парочка Ethernet контроллеров для Mach3. Самый бюджетный из них - NVEM. Официальный сайт контроллера - https://www.nvcnc.net/nvem.html. Но китайцы такие китайцы. Умельцы из другой провинции сделали копию этого контроллера и поставили ценник ещё ниже. На фотках показан оригинальный контроллер и его клон. По схемотехнике практически то же самое.
Ну так вот. В обоих контроллерах в качестве мозга работает STM32F207 (120 МГц). И это не может не радовать. Короче говоря, на базе этого контроллера можно попробовать забабахать контроллер для LinuxCNC.
Прошивка контроллера уже в процессе. Драйвер для LinuxCNC должен быть простейший. Вощем, будем пробовать. После нового года закажу клон с АЛИ на тесты. О дальнейших событиях буду сообщать дополнительно.
В качестве мозга я выбрал многолапый STM32F429IGT6 (180 МГц). На борту есть вся необходимая периферия для высокочастотного вывода шагов и подсчёта импульсов. Аналоговое управление организовать тоже можно.
На АЛИ есть парочка Ethernet контроллеров для Mach3. Самый бюджетный из них - NVEM. Официальный сайт контроллера - https://www.nvcnc.net/nvem.html. Но китайцы такие китайцы. Умельцы из другой провинции сделали копию этого контроллера и поставили ценник ещё ниже. На фотках показан оригинальный контроллер и его клон. По схемотехнике практически то же самое.
Ну так вот. В обоих контроллерах в качестве мозга работает STM32F207 (120 МГц). И это не может не радовать. Короче говоря, на базе этого контроллера можно попробовать забабахать контроллер для LinuxCNC.
Прошивка контроллера уже в процессе. Драйвер для LinuxCNC должен быть простейший. Вощем, будем пробовать. После нового года закажу клон с АЛИ на тесты. О дальнейших событиях буду сообщать дополнительно.
Последний раз редактировалось MX_Master 09 мар 2021, 10:03, всего редактировалось 22 раза.
-
- Мастер
- Сообщения: 305
- Зарегистрирован: 14 апр 2015, 10:28
- Репутация: 38
- Настоящее имя: Антон
- Откуда: Томск
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Если делать на STM32, то реальное время легче сделать на Micropython - у него ШИМ, управление сервами и ногами - из коробки есть.
- selenur
- Почётный участник
- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Я с ассемблера на Си при программировании микроконтролеров, с огромным недоверием переходил, т.к. Все равно добавляются некоторые вещи которые бывают излишние в некоторых критичных моментах. А что там питон добавляет интересно? И отладка там работает?
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
- Мастер
- Сообщения: 305
- Зарегистрирован: 14 апр 2015, 10:28
- Репутация: 38
- Настоящее имя: Антон
- Откуда: Томск
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Узкие моменты любой высокоуровневый язык добавляет, спасение - в огромных ресурсах той же STM32, благо питоновский код может лежать и на SD-карточке. На pyboard плате, которой я игрался, встроенный ST-программатор, или как это грамотно называется, в-общем, три способа отладки кода:selenur писал(а):Я с ассемблера на Си при программировании микроконтролеров, с огромным недоверием переходил, т.к. Все равно добавляются некоторые вещи которые бывают излишние в некоторых критичных моментах. А что там питон добавляет интересно? И отладка там работает?
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/
-
- Новичок
- Сообщения: 35
- Зарегистрирован: 27 фев 2016, 17:03
- Репутация: 7
- Настоящее имя: Сергей
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Идея вроде хорошая, может вместо или вместе с ШИМ -> 0-10V, DAC -> 0-10V задействовать и RS485 организовать?MX_Master писал(а):В ходе работы над драйверами к Orange Pi (H3) появилась мысль запилить более бюджетный аналог MESA 7i92.
В качестве проца должен полностью подойди STM32F407VET6. За физику Ethernet будет отвечать недорогая кроха LAN8720. На платке дополнительно можно разместить какую-ньть кроху (конвертер) ШИМ -> 0-10V. Всё. Платка должна получиться очень мелкая, но мощная. Остальное можно будет реализовать доп. платками, которые продаются на АлиЭкспрессах.
Смысл идеи - берём абсолютно любую материнку (или ARM платку) и превращаем её в довольно мощное ЧПУ незадорого.
Внутри МК должны быть реализованы хотя бы 3 молуля - stepgen, gpio, encoder. Драйвер LinuxCNC для всего этого будет только один.
Вот хочу узнать мнение пользователей LinuxCNC. Если есть вопросы, советы и рекомендации, буду рад.
Смотрю на такую плату 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.
- MX_Master
- Мастер
- Сообщения: 7482
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3103
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Конвертер USB-RS485 стоит недорого. Ну и для популярных частотников уже есть драйвера в LinuxCNC. Так что микруха RS485 будет на плате развязки лишней.sergx99 писал(а):Идея вроде хорошая, может вместо или вместе с ШИМ -> 0-10V, DAC -> 0-10V задействовать и RS485 организовать?
STM32F407VET6 выбран с целью удешевления. Повторять Месу.. зачем?
Кстати, подскажите кто в танке хороший способ линейного умножения напряжения с МК выхода ЦАП (0-3.3V -> 0-10V)
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Любой Rail-to-rail c питанием +12/-12. При однополярном питании можно получить 0.2-10В. Для 0-10В нужно будет отрицательное питание, хотя-бы 2-3 вольта.MX_Master писал(а):Кстати, подскажите кто в танке хороший способ линейного умножения напряжения с МК выхода ЦАП (0-3.3V -> 0-10V)
+12 и -3 можно получить с помощью транзистора, дросселя и выпрямителя (DC-DC), раскачать всё это можно ногой МК с ШИМ.
P.S. Я не в танке!
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Новичок
- Сообщения: 35
- Зарегистрирован: 27 фев 2016, 17:03
- Репутация: 7
- Настоящее имя: Сергей
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Цены в элитане:MX_Master писал(а):Конвертер USB-RS485 стоит недорого. Ну и для популярных частотников уже есть драйвера в LinuxCNC. Так что микруха RS485 будет на плате развязки лишней.sergx99 писал(а):Идея вроде хорошая, может вместо или вместе с ШИМ -> 0-10V, DAC -> 0-10V задействовать и 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 требуется
-
- Новичок
- Сообщения: 35
- Зарегистрирован: 27 фев 2016, 17:03
- Репутация: 7
- Настоящее имя: Сергей
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
На дешевой LM358 (Vol 20mv) вроде 0.02 - 10В при однополярном питании можно получить.UAVpilot писал(а):Любой Rail-to-rail c питанием +12/-12. При однополярном питании можно получить 0.2-10В. Для 0-10В нужно будет отрицательноеMX_Master писал(а):Кстати, подскажите кто в танке хороший способ линейного умножения напряжения с МК выхода ЦАП (0-3.3V -> 0-10V)
- MX_Master
- Мастер
- Сообщения: 7482
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3103
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Я, кстати, не против плисин. Но чтобы выйти на тот же уровень знаний мне понадобится ещё с пол года свободных вечеров. Это довольно много.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Если использовать аналоговое управление только для частотника, то с задачей справится практически любой ОУ, даже не обязательно rail-to-rail, потому что в инверторах диапазон входных напряжений обычно можно задавать (к примеру, не 0..10, а 2..9 вольт). Выход питания 12В, как правило, у частотников тоже имеется. Если ориентироваться на управление сервоприводами (-10..0..10В), тогда да, надо организовывать двухполярное питание.
Чудес не бывает. Бывают фокусы.
- Dmaster
- Мастер
- Сообщения: 1271
- Зарегистрирован: 15 июл 2011, 13:36
- Репутация: 476
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
А как меса это делает без двухполярного?Сергей Саныч писал(а):Если ориентироваться на управление сервоприводами (-10..0..10В), тогда да, надо организовывать двухполярное питание.
" Linux CNC - наше всё"
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Так-же как и все: у неё на борту два маленьких DC-DC - на +16V и на -12V.Dmaster писал(а):А как меса это делает без двухполярного?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7482
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3103
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Поприкидывал цены. Себестоимость всей комплектухи (включая плату) получается на уровне 15$ в кол-ве от 10 шт. Много это или мало, пока неясно.
-
- Мастер
- Сообщения: 224
- Зарегистрирован: 03 фев 2017, 01:06
- Репутация: 35
- Настоящее имя: Александр
- Откуда: Украина
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Как эта ерунда работает?AAN писал(а):На pyboard плате, которой я игрался, встроенный ST-программатор, или как это грамотно называется, в-общем, три способа отладки кода:
1. Присоединил я платку по USB-шнурку и через PyTTY в терминале ввожу команды,
Получается, что эта плата загружает в стм32 какой-то свой загрузчик и типа ОС с поддержкой например Pyton и тп?
Или pyboard компилирует код в бинарный? В общем ничего не понял пока
- MX_Master
- Мастер
- Сообщения: 7482
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3103
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Кстати, под Мач3 никто плагины не писал? Можно эту же платку юзать с Мач3, написав ещё одну прошивку.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Пиши уже под Mach4.
P.S. Один чувак начал писать плагин под Mach3 для плат Mesa. У него даже как-то работала 7i43. Но итоговый результат оказался плачевным - ему понравился LinuxCNC и она забил на Mach3.
P.S. Один чувак начал писать плагин под Mach3 для плат Mesa. У него даже как-то работала 7i43. Но итоговый результат оказался плачевным - ему понравился LinuxCNC и она забил на Mach3.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7482
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3103
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Я точно не знаю, но, вроде, разработчики Мач4 далеко не всем дают доступ к инструментам разработки плагинов к Мач4. Там, вроде, драйвер должен быть как-то подписан, иначе он с Мач4 не будет работать. Или ситуация поменялась?
- verser
- Мастер
- Сообщения: 1897
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1282
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Цена комплектухи ничто, по сравнению с объемами программирования для доведения прошивки до конкурирующего с mesa уровня.MX_Master писал(а):Поприкидывал цены. Себестоимость всей комплектухи (включая плату) получается на уровне 15$ в кол-ве от 10 шт. Много это или мало, пока неясно.
На одном энтузиазме тема вряд ли подъемная.
-
- Мастер
- Сообщения: 305
- Зарегистрирован: 14 апр 2015, 10:28
- Репутация: 38
- Настоящее имя: Антон
- Откуда: Томск
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Компиляция не происходит. На плату уже прошит интерпретатор, которому всё равно, откуда исполнять команды программы- из внутренней памяти, с флешки, с ПК. Гибкость.alex1816 писал(а):Получается, что эта плата загружает в стм32 какой-то свой загрузчик и типа ОС с поддержкой например Pyton и тп?
Или pyboard компилирует код в бинарный? В общем ничего не понял пока