LinuxCNC -> PCI -> STM32 ?

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7490
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

LinuxCNC -> PCI -> STM32 ?

Сообщение MX_Master »

Чисто в порядке бреда.. Небольшой сабж на тему аппаратного генератора шагов для LinuxCNC.

Третьего дня смотрел в интернетах разные PCI-LPT адаптеры.
И наткнулся на такие вот удлинители и отводы
  1. https://www.aliexpress.com/item/-/32689099107.html
  2. https://www.aliexpress.com/item/-/32797334524.html
Закралась мысль, что можно без большой пайки подключить к плате ПК какое-ньть полезное устройство, не PCI форм-фактора. Например, ту же бюджетку с STM32. Стессна, без драйвера тут не обойтись, но это не должно быть проблемой. Для начала внешнее устройство можно использовать - как бюджетный аппаратный генератор. Более широкое применение тоже возможно. В соседней теме, такое устройство уже реализовано, но там это готовая разработка на собственной плате.

Два вопроса - реальна ли идея и какие могут быть сложности?
Hot-Sale-Cheapest-32-Bit-Flexible-PCI-Riser-Card-Extender-Flex-Extension-Ribbon-Cabler.jpg (6559 просмотров) <a class='original' href='./download/file.php?id=121634&mode=view' target=_blank>Загрузить оригинал (136.34 КБ)</a>
High-Quality-PCI-Male-to-Female-Riser-Extension-Card-Adapter-1U-IPC-Chassis-90-Degree-Angled.jpg (6559 просмотров) <a class='original' href='./download/file.php?id=121635&mode=view' target=_blank>Загрузить оригинал (75.77 КБ)</a>
Аватара пользователя
Evilmax
Мастер
Сообщения: 238
Зарегистрирован: 02 окт 2015, 05:30
Репутация: 134
Настоящее имя: Максим
Откуда: Ленинград
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Evilmax »

Собственно вопрос фундаментальный - На#рена? Так же замечано, последние из тем от тебя напоминают выпуски рубрики "Очумелые ручки" из передачи "Пока все дома". )))

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

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение MX_Master »

Ты б этого форума и не увидел, если б энтузиасты прекратили эксперименты после "нахрена?". :hehehe: Если не знаешь, о чём я спрашиваю, то отвечать и не нужно.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение aftaev »

MX_Master писал(а):И наткнулся на такие вот удлинители и отводы
у мну они где то лежат :) Покупал чтобы платы МЕСА "положить" и сделать более компактней стойку.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
muxa
Мастер
Сообщения: 231
Зарегистрирован: 15 мар 2012, 12:29
Репутация: 23
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение muxa »

MX_Master писал(а):апример, ту же бюджетку с STM32. Стессна, без драйвера тут не обойтись, но это не должно быть проблемой. Для начала внешнее устройство можно использовать - как бюджетный аппаратный генератор. Более широкое применение тоже возможно. В соседней теме, такое устройство уже реализовано, но там это готовая разработка на собственной плате.
давайте по порядку - итак у нас есть РС , тобишь комп, который без особых затей может через простейшую LPT плату рулить станком.
очумелым ручкам захотелось подключить что то эдакое бюджетное, рублей за 200 на stm32.
окей, гугл (тм) берем и пишем в stm32 аналог китайской LPT платы. пинов хватает на грани, денежный эффект есть, только вот забыли про аппаратный ген, ну не беда,
можно еще долго менять камни и т.п. но пока не придет осознание что любой камень выполняющий свою микропрограмму это нифига ни разу ни аппаратный степ ген.
толку имхо не будет.
все хотелки по аппаратному степгену перекрывает меса со своим зоопарком плат на плис. с хостом коннектится просто - хочешь LPT хочешь PCI Ex.
хоть какой то экономический эффект может быть только при удачном запуске линуха на оранж рс.
вот когда стоимость "платформы" будет не 5000 а 1000, вот тогда кому то может и станет интересна связка с "дешевым" stm32 , настолько что он закроет глаза на его "аппаратный" степген.
но блин и эта разница на фоне общего ценника железа станка просто смешна.
З.Ы, я намеренно не упоминал про USB, чтобы кое кто нам тут не начал рассказывать про кфлоп :)
З.З.Ы, имхо stm32 несмотря на все его мипсы и дмипсы никоими ножками к PCI не законнектим. или ставить чипс спец. приемник или старшие плисины, у них на ногах можно хоть обычный (хотя правильнее сказать древний PCI ) хоть PCI ex принимать, даже корки под всё это скорее всего найдутся условно безоплатныя.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7490
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение MX_Master »

Вощем, дёргаться не надо, оставим идею для сверх экзотичных решений..
arkhnchul
Мастер
Сообщения: 1773
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 339
Откуда: москва
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение arkhnchul »

как минимум один китаец об этом как минимум думал - http://en.cnki.com.cn/Article_en/CJFDTO ... 301055.htm , https://wenku.baidu.com/view/3c6d2b92b9 ... 77938.html . Судя по abstract-у, вполне додумался.
AAN
Мастер
Сообщения: 313
Зарегистрирован: 14 апр 2015, 10:28
Репутация: 39
Настоящее имя: Антон
Откуда: Томск
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение AAN »

Для упрощённой разработки быстрых устройств есть специализированное решение с Python-ом и ПЛИС "на борту" http://www.pynq.io/
Хотя и дороже...
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение ScrewDriver »

MX_Master писал(а):Вощем, дёргаться не надо, оставим идею для сверх экзотичных решений..
Мне кажется у тебя большая часть аппаратных возможностей уйдет на реализацию pci. Насколько я знаю там все оооочень жестко с таймингами.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Leonidd
Новичок
Сообщения: 19
Зарегистрирован: 16 апр 2018, 19:44
Репутация: 0
Настоящее имя: Леонид
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Leonidd »

Всем привет!
В линукс-CNC открытый исходный код. Нужно посмотреть формат общения программы с той же платой меса, например. Ну может кто другой способ знает. Это для передачи данных во внешний контроллер (и из контроллера в программу).
Кто знает, подскажите пожалуйста как там это делается. Не шагами же он в плату меса требуемое положение передает!
После этого, когда разберемся с форматом передачи данных, можно будет пробовать подключить контроллер. Не обязательно по шине PCI (хотя и желательно). Можно через Ethernet. В STM32 (не во всех) есть аппаратный Ethernet.
По поводу отсутствия аппаратного генератора шагов - контроллер за 1500 р. работает на частоте 400 МГц, у него 208 ног, есть шим, АЦП, и его не проблема подключить к датчику обратной связи и через H - мост к дрели, например (хотя мне больше нравятся генераторы 28в) и вообще выкинуть эти шаговые двигатели. Если все же так нравятся ШД, то с точки зрения контроллера частота 32 КГц не проблема: при частоте (контроллера) 72 МГц это будет 72 000 000/32 000 = 2 250 тактов (216 МГц - в 3 раза больше, 400 МГц - в 5,6 раз больше) контроллера за один шаг, этого вполне хватит для всех нужных вычислений, хоть с датчиком обратной связи, хоть без него. Привязать частоту шагов к аппаратному таймеру контроллера тоже недолго. В любом случае получится лучше, чем выдает LPT порт.
Если я чего - то не догоняю, не судите строго. Пока еще не во всех аспектах разобрался.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Serg »

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

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение MX_Master »

Иногда это очень настораживает, когда человек только что зарегистрировался и сразу рвётся в бой.
Leonidd писал(а): После этого, когда разберемся с форматом передачи данных, можно будет пробовать подключить контроллер. Не обязательно по шине PCI (хотя и желательно). Можно через Ethernet. В STM32 (не во всех) есть аппаратный Ethernet.
http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=18671

Ethernet меня полностью устраивает. Уже пилю первую версию драйвера.
Leonidd
Новичок
Сообщения: 19
Зарегистрирован: 16 апр 2018, 19:44
Репутация: 0
Настоящее имя: Леонид
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Leonidd »

Ну, здесь форум, люди вопросы задают. По разным причинам. Кто знает, подсказывает.
Мне вообще для общего развития (формат передачи данных из линукс CNC в плату). Подобная информация снижает степень неопределенности. Скажем, не зная ее можно размышлять над бесконечным количеством форматов передачи данных, а зная - только над тем, как обработать в контроллере уже имеющийся формат.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Serg »

Тут не надо размышлять, тут надо просто взять и изучить документацию и исходники. :)
Ну или ждать пока кто-то потратит своё время, чтобы всё это изучить и рассказать вам...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
astrahard
Опытный
Сообщения: 167
Зарегистрирован: 26 апр 2018, 07:58
Репутация: 1
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение astrahard »

Аппаратный генератор шагов говорите, все поделки на ARM с аппаратной генерацией основаны на DMA на шине AHB, причем отсутствие Latency ОС обеспечивает в основном именно шина AHB. Также и для PC, непротиворечивый (независящий от Latency операционной системы) вывод, изохронный (без Latency) может быть выполнен основываясь на современной хабовой архитектуре чипсета, когда BUS мастеринг может быть выполнен чисто аппаратно и будет независим от Latency ОС. Примеров достаточно 1. Видео выделяющие видеопамять из основного ОЗУ 2, Аудио подсистема 3. USB изохронный трафик и.т.п. и.т.д.. Итого, нет необходимости добавлять сложную аппаратуру или процессор типа ARM. Но нужно уметь обращаться с драйверами, знающими особенности чипсета в плане работы с хабами периферийных шин (PCI, PCI-E[press, USB и.т.п.)

P.S. Вот, к примеру, DMA в процессоре ARM, к примеру STM32, как раз работает как аппаратный драйвер хаба периферийной шины (шина AHB) и не зависит от ОС Latency.
Leonidd
Новичок
Сообщения: 19
Зарегистрирован: 16 апр 2018, 19:44
Репутация: 0
Настоящее имя: Леонид
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Leonidd »

UAVpilot писал(а):Тут не надо размышлять, тут надо просто взять и изучить документацию и исходники. :)
Ну или ждать пока кто-то потратит своё время, чтобы всё это изучить и рассказать вам...
1. Исходники в студию!
2. Я с уважением отношусь к Вашему времени, тем более потраченному на такое нужное дело. Могу 100 рублей на телефон положить.
Leonidd
Новичок
Сообщения: 19
Зарегистрирован: 16 апр 2018, 19:44
Репутация: 0
Настоящее имя: Леонид
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Leonidd »

astrahard писал(а):Аппаратный генератор шагов говорите, все поделки на ARM с аппаратной генерацией основаны на DMA на шине AHB, причем отсутствие Latency ОС обеспечивает в основном именно шина AHB. Также и для PC, непротиворечивый (независящий от Latency операционной системы) вывод, изохронный (без Latency) может быть выполнен основываясь на современной хабовой архитектуре чипсета, когда BUS мастеринг может быть выполнен чисто аппаратно и будет независим от Latency ОС. Примеров достаточно 1. Видео выделяющие видеопамять из основного ОЗУ 2, Аудио подсистема 3. USB изохронный трафик и.т.п. и.т.д.. Итого, нет необходимости добавлять сложную аппаратуру или процессор типа ARM. Но нужно уметь обращаться с драйверами, знающими особенности чипсета в плане работы с хабами периферийных шин (PCI, PCI-E[press, USB и.т.п.)

P.S. Вот, к примеру, DMA в процессоре ARM, к примеру STM32, как раз работает как аппаратный драйвер хаба периферийной шины (шина AHB) и не зависит от ОС Latency.
Вы предлагаете заново переписать LinuxCNC?
Давайте перепишем, сразу под raspberry pi 3
Нужно создать отдельную тему для этого.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Serg »

Leonidd писал(а):1. Исходники в студию!
Как это ни странно выглядит, но исходники LinuxCNC лежат на сайте LinuxCNC, исходники прошивок Mesa - на сайте Mesa. :)
Leonidd писал(а):2. Я с уважением отношусь к Вашему времени, тем более потраченному на такое нужное дело. Могу 100 рублей на телефон положить.
Зачем мне 100 рублей на телефоне, за который контора платит?.. :)
Кстати, а "нужное дело" - оно кому нужное?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Leonidd
Новичок
Сообщения: 19
Зарегистрирован: 16 апр 2018, 19:44
Репутация: 0
Настоящее имя: Леонид
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Leonidd »

Как минимум конторе, раз платит.
Leonidd
Новичок
Сообщения: 19
Зарегистрирован: 16 апр 2018, 19:44
Репутация: 0
Настоящее имя: Леонид
Контактная информация:

Re: LinuxCNC -> PCI -> STM32 ?

Сообщение Leonidd »

astrahard писал(а):Аппаратный генератор шагов говорите, все поделки на ARM с аппаратной генерацией основаны на DMA на шине AHB, причем отсутствие Latency ОС обеспечивает в основном именно шина AHB. Также и для PC, непротиворечивый (независящий от Latency операционной системы) вывод, изохронный (без Latency) может быть выполнен основываясь на современной хабовой архитектуре чипсета, когда BUS мастеринг может быть выполнен чисто аппаратно и будет независим от Latency ОС. Примеров достаточно 1. Видео выделяющие видеопамять из основного ОЗУ 2, Аудио подсистема 3. USB изохронный трафик и.т.п. и.т.д.. Итого, нет необходимости добавлять сложную аппаратуру или процессор типа ARM. Но нужно уметь обращаться с драйверами, знающими особенности чипсета в плане работы с хабами периферийных шин (PCI, PCI-E[press, USB и.т.п.)

P.S. Вот, к примеру, DMA в процессоре ARM, к примеру STM32, как раз работает как аппаратный драйвер хаба периферийной шины (шина AHB) и не зависит от ОС Latency.
Не могу написать в личку.
Статья с этой проблемой: http://hexvolt.blogspot.ru/2013/03/rasp ... pio-2.html
Датировано 2013г. На Raspberry GPIO получили частоту 5 МГц, но были просадки сигнала из - за многозадачности ОС (или неправильной работы с драйверами, как Вы говорите).
Есть планы подключить к Raspberry PI3 несколько серводвигателей через оптическое волокно, по 2 линии на двигатель - вход и выход. Частота работы будет 1 МГЦ.
Ответить

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