Вот только выход у неё однополярный и проблема получения двуполярного напряжения -10..+10V остаётся стоять в полный рост...Bender писал(а):Есть ещё четырех-канальная микросхема преобразования ШИМ в напряжение LTC2645. Чтобы было всё линейно.!
Ethernet контроллер для LinuxCNC (STM32, FPGA)
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 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)
Примерно так?UAVpilot писал(а):Нет, просто логику (2И, НЕ) и аналоговую часть из YAPSC.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Примерно так.
Только зачем там резисторы по 10к в таком хитром включении? И зачем верхний конденсатор подключил не к земле как в оригинале, а к +5В?
Только зачем там резисторы по 10к в таком хитром включении? И зачем верхний конденсатор подключил не к земле как в оригинале, а к +5В?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7477
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Это борьба с симуляторомUAVpilot писал(а):Только зачем там резисторы по 10к в таком хитром включении?
Ашипка поправлена. Теперь всё такUAVpilot писал(а):И зачем верхний конденсатор подключил не к земле как в оригинале, а к +5В?
Но симулятор эту схему из примитивов симулирует очень странно. Либо это я опять что-то не докрутил, либо симулятор хочет чего-то другого от схемы
Логическая часть (слева на схеме) отдельно ваще не симулируется. Хотя точь такая же логика в симуляторе протеуса заводится на ура.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Аналоговые и цифровые схемы стоит симулировать по отдельности в соотв. режиме симулятора...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7477
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Вопрос номер один. Случаем, не завалялся ли у кого на полке такой Ethernet Mach3 контроллер? Можем попробовать прикрутить его к LinuxCNC в качестве простой альтернативы моему варианту контроллера. Но, как я и говорил ранее, в этом китайском контроллере возможна только софт генерация шагов (200 КГц максимум). Второй вопрос. Будет ли такой китайский контроллер востребован пользователями LinuxCNC? Учитывая его параметры и цену.
- hmnijp
- Мастер
- Сообщения: 1719
- Зарегистрирован: 20 авг 2017, 15:02
- Репутация: 526
- Настоящее имя: Константин
- Откуда: Ульяновск
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Валяется такой) что то не подружился с драйверами совсем, дикие пропуски были, разбираться не стал, отложил на скучные времена (возможно по таймингам, фронтам/спадам не сошлись или ещё чего, такое чувство, что каша на выходе, но осциллографом не смотрел выход)
По мне так, если прошивку пошаманить, то он как готовая демо-плата неплох за свою цену беглым взглядом по плате - стандартно всё разведено, dc/dc, ethernet, разъемы все распаяны, и корпус с нанесенной распиновкой за недорого в общем)
По мне так, если прошивку пошаманить, то он как готовая демо-плата неплох за свою цену беглым взглядом по плате - стандартно всё разведено, dc/dc, ethernet, разъемы все распаяны, и корпус с нанесенной распиновкой за недорого в общем)
Последний раз редактировалось hmnijp 30 окт 2019, 22:39, всего редактировалось 1 раз.
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Контроллер под LinuxCNC будет востребован . 200 кгц - это не мало .
- MX_Master
- Мастер
- Сообщения: 7477
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Ну хорошо, тогда попробовать можно.vmarkiv писал(а):Контроллер под LinuxCNC будет востребован . 200 кгц - это не мало .
Отлично, значит, будем проверять на тебеhmnijp писал(а):Валяется такой) отложил на скучные времена
Но для начала надо мальца просечь поляну по выводу шагов. Китайцы довольно сильно промахнулись относительно аппаратных таймеров. Надо найти наилучший способ софт вывода согласно имеющейся разводке контроллера. Причём, сделать так, чтобы МК от возложенных задач не помер У меня есть пара макеток с STM32F407VET6 на борту. От F207 (что на контроллерах) они не шибко отличаются. Можно смело проводить тесты, занизив частоту МК до 120 МГц. На время тестов, кстати, LinuxCNC можем не трогать. Для проверки сделаю по быстрому веб морду с JOG кнопками для каждой оси и парой настроек.
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Чем помочь?
- MX_Master
- Мастер
- Сообщения: 7477
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Пока ничего не надо.vmarkiv писал(а):Чем помочь?
Схему подключения МК нам хороший человек уже нарисовал - http://www.cnc-club.ru/forum/viewtopic. ... 0&#p377943. Cофт выводом шагов я особо не занимался. Поэтому методом научного тыка попробую подобрать для процессора самый лёгкий способ ногодрыга. Дело в том, что кроме ногодрыга, проц каждую миллисекунду будет общаться с LinuxCNC. Желательно, чтобы эти два процесса как можно меньше мешали друг другу. Если дело успешно выгорит, проверим промежуточный результат с веб мордой на тех, у кого этот контроллер есть. Для проверки желательно иметь на руках китайский программатор stlink v2 (2-3$).
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
На схеме по ссылке не разобрал что за микруха стоит на вывод шагов.Я использую с диф выходом типа 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 в реалтайме.
Остальные расчеты - скорость, ускорение, направление, датчики - по второму прерыванию, тоже таймерному, но более низкого приоритета и с периодом 1024 Гц.
Полагаю, реализовать 6 каналов по 200 кГц при тактировании МК 120 МГц можно будет без особого труда.
Но для меня, например, "темным местом" была бы реализация обмена по Ethernet в реалтайме.
Последний раз редактировалось Сергей Саныч 31 окт 2019, 10:52, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
-
- Новичок
- Сообщения: 12
- Зарегистрирован: 12 дек 2008, 12:12
- Репутация: 21
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Контроллер под LinuxCNC будет востребован . 200 кгц - это не мало !!!
- MX_Master
- Мастер
- Сообщения: 7477
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
конвертер уровней 3.3-5Vsidor094 писал(а):На схеме по ссылке не разобрал что за микруха стоит на вывод шагов.
Да, именно этим способом я и хотел попробовать.Сергей Саныч писал(а):Расчет и вывод - по таймерному прерыванию.
Отправка и получение UDP сообщений вполне укладываются в миллисекундный сервопериод. Можно, канеш, ещё быстрее, но для этого нужно отказаться ото всех LwIP. И слать всё чистыми Ethernet пакетами по МАК адресу, без IP маршрутизации. Я испробовал оба способа, лично мне нравится голый Ethernet Правда, на нём веб-морду (tcp/ip) cделать намного сложнее, чем с помощью готового IP стека (LwIP). Так что в начале (для тестов) мы будем юзать LwIP + TCP + UDP, а в финальном варианте перейдём на чистый EthernetСергей Саныч писал(а):Но для меня, например, "темным местом" была бы реализация обмена по Ethernet в реалтайме.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Но ведь, насколько я понимаю, драйверы Ethernet в линуксе про реалтайм ничего не знают. А значит, могут быть неконтролируемые задержки.MX_Master писал(а):Отправка и получение UDP сообщений вполне укладываются в миллисекундный сервопериод.
Чудес не бывает. Бывают фокусы.
- MX_Master
- Мастер
- Сообщения: 7477
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Задержки будут бесконтрольными всегда, хотя бы потому, что железо везде разное. Не говоря уже о версии ядра и 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)
Опыт плат mesa показывает, что усё успевается. Я потом, кстати, сделаю замеры по времени. На настольных платах и на orangepi.