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

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

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

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

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

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

Сообщение MX_Master »

У меня, к примеру, перерасчёт и правка частоты идёт в прерывании каждые 50мкс :) В миллисекундном прерывании ведутся хоз. работы. А в основном цикле крутится работа со всеми цифровыми (Ethernet, SPI, UART, ...). В других проектах нагрузка на проц может быть ещё больше. Поэтому ни о каком майно-запасе, оттягивающем блох в кармане свитера, речи нет :hehehe:

Нашёл самый эффективный способ вывода шагов на китайском контроллере (клон NVEM). Для каждого канала STEP/DIR используется 1 аппаратный таймер, 1 канал DMA и небольшой 32-битный массив. Таймер тактирует DMA канал, который с заданной частотой копирует данные из массива в регистр GPIOx->BSRR. Массив с данными заполняем один раз при старте STM32. Шаги считает контроллер DMA. Одна передача из ячейки массива в GPIOx->BSRR равна полушагу.

Таким способом можно без проблем выводить целые мегагерцы шагов. При этом, каждый мегагерцовый канал отвлекает процессор максимум на 2%.
Последний раз редактировалось MX_Master 07 ноя 2019, 12:35, всего редактировалось 1 раз.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

MX_Master писал(а):ппаратный таймер тактирует канал DMA. Подсчёт импульсов ведёт контроллер DMA.
А в чем смысл dma? Только в подсчете импульсов?Нельзя разве прямо подать сигнал с таймера на выход,а другим таимером подсчитывать число импульсов?У меня все происходит в прерывании 300 кгц.Пять каналов,плюс расчет ускорений и обработка перемещений от кнопок.Работал и на 400 ,но замедляется вывод на экран.Процессор stm32f767 .У него 216 мгц тактовая.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

sidor094 писал(а):А в чем смысл dma? Только в подсчете импульсов?Нельзя разве прямо подать сигнал с таймера на выход,а другим таимером подсчитывать число импульсов?
В китайском Ethernet контроллере NVEM каналы STEP/DIR разведены от балды. На правильные аппаратные выводы таймеров практически ничего не попадает. DMA нужен для экономии числа таймеров, времени процессора и для подсчёта шагов.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

MX_Master писал(а):На правильные аппаратные выводы таймеров практически ничего не попадает
Тогда понятно.Непонятно почему именно этот контроллер?Какая в нем фишка?Полно ведь других плат.У меня такая.
https://ru.aliexpress.com/item/33006134 ... 33edTSQA7v
Аватара пользователя
hmnijp
Мастер
Сообщения: 1754
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 542
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

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

Сообщение hmnijp »

очевидно он уже разведён с о всей переферией, разъемами, корпусом и тд, за цену не сильно бОльшую)
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

Судя по тому,что здесь много обсуждалась периферия,законченной платы с периферией все равно нет.А значит надо разводить и подключать.Так ,что и корпус тоже нужен.
Аватара пользователя
hmnijp
Мастер
Сообщения: 1754
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 542
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

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

Сообщение hmnijp »

Так я и говорю, есть готовая плата в виде этого контроллера китайского... Где есть возможность прикрутить свой софт, и не заниматься железом
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

А что там на плате такого особенного,что особо сложно развести,ведь,судя по обсуждению большую часть периферии все равно надо разводить , и размещать на отдельной плате.
Аватара пользователя
hmnijp
Мастер
Сообщения: 1754
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 542
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

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

Сообщение hmnijp »

Очевидно - сложность в самом этом занятии, надо тратить время, организовывать и тд. А тут всё готовое. И какая это периферия нужна кроме него? там вроде уже всё all-in
Ну я конечно не настаиваю что это идеал) Просто по железу - законченный контроллер, подключай и работай так сказать :hehehe:
Последний раз редактировалось hmnijp 07 ноя 2019, 13:37, всего редактировалось 1 раз.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

sidor094 писал(а):Непонятно почему именно этот контроллер?Какая в нем фишка?Полно ведь других плат.У меня такая.
на твоей плате некуда воткнуть Ethernet кабель :hehehe:
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

MX_Master писал(а):на твоей плате некуда воткнуть Ethernet кабель
Ну да,но процессор его поддерживает и ,если все равно разводить периферию,то можно заодно и Ethernet.Кроме того я не говорю ,что надо ставить именно эту плату и контроллер,я её взял изза того,что процессор имеет видеоконтроллер и озу 8 мб .Мне нужен был выход на VGA.
Аватара пользователя
hmnijp
Мастер
Сообщения: 1754
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 542
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

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

Сообщение hmnijp »

sidor094 писал(а):я её взял изза того,что процессор имеет видеоконтроллер и озу 8 мб .Мне нужен был выход на VGA
вообще не расматриваю вариант её как автономный контроллер. Естественно она к ПК должна подключаться
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

hmnijp писал(а):вообще не расматриваю вариант её как автономный контроллер. Естественно она к ПК должна подключатьс
Это дело хозяйское.Никто не заставляет использовать видеоконтроллер.Просто она в 2 раза минимум быстрее F207 .А это позволяет с меньшими извращениями получить большее быстродействие.Если дешевле,то можно взять F407 .У него все равно тактовая 168мгц,а не 120 как у f207.
Там где не требуется VGA и озу я ставлю такие платы.
https://ru.aliexpress.com/item/33004829 ... 33edTSQA7v
Можно наверно найти их сразу с Ethernet.Все ноги процессора доступны.Куда хочешь туда и выводи шаги и остальную периферию.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

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

Сообщение MX_Master »

Мне по душе H743 (:
Аватара пользователя
hmnijp
Мастер
Сообщения: 1754
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 542
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

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

Сообщение hmnijp »

Ну интерфейсную плату всё равно надо к ним делать... а если делать её, то уже и целиком можно развести. по цене платы и компонентов одинаково, по сложности, если скопировать дев-плату, тоже...
Т.е. так и тк придется делать её)
Последний раз редактировалось hmnijp 07 ноя 2019, 14:45, всего редактировалось 1 раз.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

Согласен h743 400мгц это впечатляет,но плат мало.А сам я уже напаялся.Теперь стараюсь только мелочевку паять,а не 100-200 ногие c 0.5 шагом.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение MX_Master »

UAVpilot писал(а):А MP1 не?
Эта штука совсем для других дел.

Вощем, с шагогенераторами под F207 разобрались. Мегагерцы на месте, всё получилось удачно. Смотрю дальше..

Удивительно, но к китайскому контроллеру можно без проблем подключить энкодеры и линейки с TTL выходом. На противоположной стороне от Ethernet порта есть гребёнка пинов, куда, обычно, подключается пульт (MPG). Эти пины, если я правильно понял, идут сразу в F207. Кол-во таких пинов - 10 штук. Частота входных сигналов на них ничем не ограничена. На всех остальных входах стоят EL3H7 (до 20 КГц).

Аппаратно, энкодеры считать не выйдет, но организовать быстрый подсчёт в прерывании на частоте порядка 200-300 КГц - вполне возможно. Этого, кстати, хватит чтобы переваривать сигналы с микронных линеек на подачах порядка 10000 мм/мин :headphones:

Если у кого-то на руках есть этот контроллер, прозвоните, пожалуйста, мультиметром вот эти пины на указанные ножки F207 :beer_blow: Если какие-то 10 пинов будут звонится напрямую, значит, всё вышеуказанное возможно :)
IMG_1051.jpg (1723 просмотра) <a class='original' href='./download/file.php?id=171613&mode=view' target=_blank>Загрузить оригинал (766.8 КБ)</a>
Quark
Кандидат
Сообщения: 50
Зарегистрирован: 25 май 2016, 13:55
Репутация: 11
Контактная информация:

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

Сообщение Quark »

Только проверил, 10 пинов прозваниваются.
Ответить

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