Ethernet контроллер для LinuxCNC (STM32, FPGA)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Bender писал(а):Есть ещё четырех-канальная микросхема преобразования ШИМ в напряжение LTC2645. Чтобы было всё линейно.!
Вот только выход у неё однополярный и проблема получения двуполярного напряжения -10..+10V остаётся стоять в полный рост...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

MX_Master писал(а):Можно, канеш, юзать один пин ШИМ. Взяв за правило, что скважность 0-50% = -10В..0, а 50-100% = 0..+10В. Но что-то в этом способе мне не понравилось. Возможно, тот факт, что при любой скорости (даже 0) аппаратный таймер (вывод ШИМ) никогда не отдыхает.
Самый простой и логичный способ. Отдыхать таймеру ни к чему.
Наиболее существенный минус этого способа - то, что ноль будет существенно плавать вместе с питанием цифровой части МК. Но есть способы компенсировать это плавание.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7477
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

UAVpilot писал(а):Нет, просто логику (2И, НЕ) и аналоговую часть из YAPSC.
Примерно так?
2019-10-22_141526.jpg (2897 просмотров) <a class='original' href='./download/file.php?id=170843&sid=07ca3225f90ff8d2d623a2ec62122a2a&mode=view' target=_blank>Загрузить оригинал (160.44 КБ)</a>
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Примерно так.
Только зачем там резисторы по 10к в таком хитром включении? И зачем верхний конденсатор подключил не к земле как в оригинале, а к +5В?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7477
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

UAVpilot писал(а):Только зачем там резисторы по 10к в таком хитром включении?
Это борьба с симулятором :)
UAVpilot писал(а):И зачем верхний конденсатор подключил не к земле как в оригинале, а к +5В?
Ашипка поправлена. Теперь всё так
2019-10-22_200745.jpg (2850 просмотров) <a class='original' href='./download/file.php?id=170863&sid=07ca3225f90ff8d2d623a2ec62122a2a&mode=view' target=_blank>Загрузить оригинал (155.24 КБ)</a>
Но симулятор эту схему из примитивов симулирует очень странно. Либо это я опять что-то не докрутил, либо симулятор хочет чего-то другого от схемы :thinking:
2019-10-22_201602.jpg (2850 просмотров) <a class='original' href='./download/file.php?id=170864&sid=07ca3225f90ff8d2d623a2ec62122a2a&mode=view' target=_blank>Загрузить оригинал (134.53 КБ)</a>
Логическая часть (слева на схеме) отдельно ваще не симулируется. Хотя точь такая же логика в симуляторе протеуса заводится на ура.
2019-10-22_203032.jpg (2850 просмотров) <a class='original' href='./download/file.php?id=170865&sid=07ca3225f90ff8d2d623a2ec62122a2a&mode=view' target=_blank>Загрузить оригинал (127.54 КБ)</a>
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Аналоговые и цифровые схемы стоит симулировать по отдельности в соотв. режиме симулятора...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7477
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

Вопрос номер один. Случаем, не завалялся ли у кого на полке такой Ethernet Mach3 контроллер? Можем попробовать прикрутить его к LinuxCNC в качестве простой альтернативы моему варианту контроллера. Но, как я и говорил ранее, в этом китайском контроллере возможна только софт генерация шагов (200 КГц максимум). Второй вопрос. Будет ли такой китайский контроллер востребован пользователями LinuxCNC? Учитывая его параметры и цену.
IMG_0078.jpg (2674 просмотра) <a class='original' href='./download/file.php?id=171289&sid=07ca3225f90ff8d2d623a2ec62122a2a&mode=view' target=_blank>Загрузить оригинал (445.45 КБ)</a>
IMG_0076.jpg (2674 просмотра) <a class='original' href='./download/file.php?id=171288&sid=07ca3225f90ff8d2d623a2ec62122a2a&mode=view' target=_blank>Загрузить оригинал (267.56 КБ)</a>
Аватара пользователя
hmnijp
Мастер
Сообщения: 1719
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

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

Сообщение hmnijp »

Валяется такой) что то не подружился с драйверами совсем, дикие пропуски были, разбираться не стал, отложил на скучные времена :hehehe: (возможно по таймингам, фронтам/спадам не сошлись или ещё чего, такое чувство, что каша на выходе, но осциллографом не смотрел выход)

По мне так, если прошивку пошаманить, то он как готовая демо-плата неплох за свою цену :hehehe: беглым взглядом по плате - стандартно всё разведено, dc/dc, ethernet, разъемы все распаяны, и корпус с нанесенной распиновкой за недорого в общем)
Последний раз редактировалось hmnijp 30 окт 2019, 22:39, всего редактировалось 1 раз.
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

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

Сообщение vmarkiv »

Контроллер под LinuxCNC будет востребован . 200 кгц - это не мало .
Аватара пользователя
MX_Master
Мастер
Сообщения: 7477
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

vmarkiv писал(а):Контроллер под LinuxCNC будет востребован . 200 кгц - это не мало .
Ну хорошо, тогда попробовать можно.
hmnijp писал(а):Валяется такой) отложил на скучные времена :hehehe:
Отлично, значит, будем проверять на тебе :good:

Но для начала надо мальца просечь поляну по выводу шагов. Китайцы довольно сильно промахнулись относительно аппаратных таймеров. Надо найти наилучший способ софт вывода согласно имеющейся разводке контроллера. Причём, сделать так, чтобы МК от возложенных задач не помер :hehehe: У меня есть пара макеток с STM32F407VET6 на борту. От F207 (что на контроллерах) они не шибко отличаются. Можно смело проводить тесты, занизив частоту МК до 120 МГц. На время тестов, кстати, LinuxCNC можем не трогать. Для проверки сделаю по быстрому веб морду с JOG кнопками для каждой оси и парой настроек.
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

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

Сообщение vmarkiv »

Чем помочь?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7477
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

vmarkiv писал(а):Чем помочь?
Пока ничего не надо.

Схему подключения МК нам хороший человек уже нарисовал - http://www.cnc-club.ru/forum/viewtopic. ... 0&#p377943. Cофт выводом шагов я особо не занимался. Поэтому методом научного тыка попробую подобрать для процессора самый лёгкий способ ногодрыга. Дело в том, что кроме ногодрыга, проц каждую миллисекунду будет общаться с LinuxCNC. Желательно, чтобы эти два процесса как можно меньше мешали друг другу. Если дело успешно выгорит, проверим промежуточный результат с веб мордой на тех, у кого этот контроллер есть. Для проверки желательно иметь на руках китайский программатор stlink v2 (2-3$).
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

На схеме по ссылке не разобрал что за микруха стоит на вывод шагов.Я использую с диф выходом типа max485.У меня расчет шагов внутри прерывания.Ethernet не использую ,у меня работа автономная.Но у него тоже прерывания или прямой доступ.Так что задержки конечно небольшие будут ,но не критичные.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

У меня в автономном контроллере 3 канала с максимальной частотой шагов 131072 Гц (больше не требовалось). Тактовая частота МК (STM32F072) - 48 МГц. Расчет и вывод - по таймерному прерыванию. На входе - значение частоты в формате с фиксированной запятой, на выходе - последовательность STEP. На расчет и вывод 1 канала тратится 35-50 тактов (без использования ассемблера).
Остальные расчеты - скорость, ускорение, направление, датчики - по второму прерыванию, тоже таймерному, но более низкого приоритета и с периодом 1024 Гц.
Полагаю, реализовать 6 каналов по 200 кГц при тактировании МК 120 МГц можно будет без особого труда.
Но для меня, например, "темным местом" была бы реализация обмена по Ethernet в реалтайме.
Последний раз редактировалось Сергей Саныч 31 окт 2019, 10:52, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
emilvv
Новичок
Сообщения: 12
Зарегистрирован: 12 дек 2008, 12:12
Репутация: 21
Контактная информация:

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

Сообщение emilvv »

Контроллер под LinuxCNC будет востребован . 200 кгц - это не мало !!! :)
Аватара пользователя
MX_Master
Мастер
Сообщения: 7477
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

sidor094 писал(а):На схеме по ссылке не разобрал что за микруха стоит на вывод шагов.
конвертер уровней 3.3-5V :)
Сергей Саныч писал(а):Расчет и вывод - по таймерному прерыванию.
Да, именно этим способом я и хотел попробовать.
Сергей Саныч писал(а):Но для меня, например, "темным местом" была бы реализация обмена по Ethernet в реалтайме.
Отправка и получение UDP сообщений вполне укладываются в миллисекундный сервопериод. Можно, канеш, ещё быстрее, но для этого нужно отказаться ото всех LwIP. И слать всё чистыми Ethernet пакетами по МАК адресу, без IP маршрутизации. Я испробовал оба способа, лично мне нравится голый Ethernet :freak: Правда, на нём веб-морду (tcp/ip) cделать намного сложнее, чем с помощью готового IP стека (LwIP). Так что в начале (для тестов) мы будем юзать LwIP + TCP + UDP, а в финальном варианте перейдём на чистый Ethernet ;)
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

MX_Master писал(а):Отправка и получение UDP сообщений вполне укладываются в миллисекундный сервопериод.
Но ведь, насколько я понимаю, драйверы Ethernet в линуксе про реалтайм ничего не знают. А значит, могут быть неконтролируемые задержки.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7477
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

Задержки будут бесконтрольными всегда, хотя бы потому, что железо везде разное. Не говоря уже о версии ядра и RT патча. В любом случае, сервоцикл у нас - это RT процесс ядра. Все процессы юзера и даже само ядро будет ждать пока мы работаем с конкретным драйвером.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

MX_Master писал(а):Все процессы юзера и даже само ядро будет ждать пока мы работаем с конкретным драйвером.
Вопрос в том, а не придется ли нам иногда "подождать", пока ядро чего-то там делает, например, картинку там выводит или обменивается с диском. И не превысит ли это время сервопериод?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7477
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

Опыт плат mesa показывает, что усё успевается. Я потом, кстати, сделаю замеры по времени. На настольных платах и на orangepi.
Ответить

Вернуться в «LinuxCNC»