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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение Impartial »

Ну откуда 50мкс ? 1/(100000000/( 5000*8))=0.0004.
Добавьте туда еще разбиение минимум на четыре пакета.
И если на демке есть LVIP добавьте минимум 1мс на обработку.

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

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение Serg »

tcpdump, фрагмент обмена с 7i92+7i77, время в микросекундах, можно заметить джиттер в пару микросекунд:

Код: Выделить всё

04:38:43.977143 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
04:38:43.978033 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 56
04:38:43.978114 IP 10.10.10.10.27181 > 10.10.10.1.53211: UDP, length 142
04:38:43.978143 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
04:38:43.979033 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 56
04:38:43.979117 IP 10.10.10.10.27181 > 10.10.10.1.53211: UDP, length 142
04:38:43.979145 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
04:38:43.980033 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 56
04:38:43.980113 IP 10.10.10.10.27181 > 10.10.10.1.53211: UDP, length 142
04:38:43.980143 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
04:38:43.981033 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 56
04:38:43.981114 IP 10.10.10.10.27181 > 10.10.10.1.53211: UDP, length 142
04:38:43.981143 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
04:38:43.982033 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 56
04:38:43.982114 IP 10.10.10.10.27181 > 10.10.10.1.53211: UDP, length 142
04:38:43.982143 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
04:38:43.983033 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 56
04:38:43.983113 IP 10.10.10.10.27181 > 10.10.10.1.53211: UDP, length 142
04:38:43.983134 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
04:38:43.984033 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 56
04:38:43.984116 IP 10.10.10.10.27181 > 10.10.10.1.53211: UDP, length 142
04:38:43.984144 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
04:38:43.985033 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 56
04:38:43.985113 IP 10.10.10.10.27181 > 10.10.10.1.53211: UDP, length 142
04:38:43.985143 IP 10.10.10.1.53211 > 10.10.10.10.27181: UDP, length 68
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
T00T
Мастер
Сообщения: 742
Зарегистрирован: 16 дек 2011, 12:07
Репутация: 100
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение T00T »

Impartial писал(а):А что есть варианты? Расскажите.

Ну надо потестить, но платка IO которая на #72. В сервопериод укладывается всегда, я просто не смотрел с каким запасом.

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

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Искал на днях недорогие оптопары на входы/выходы общего назначения. Всякие pc817 и tlp281 - слишком уж медленные, до 20 КГц. А хотелось бы чуть чуть быстрей, но не по цене высокоскоростных.

Наткнулся на али на 4-х канальные PS2801-4. Максимальное время отклика 5 мкс (200 КГц). Цена - 0.36$ за шт. По 0.09$ за канал. Что для запланированных 48 входов/выходов обойдётся в 4.32$.

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

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

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

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

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Да, развязку планирую отдельной платкой. Основная платка будет максимально голой. Развязка, она не от ПК, а от подключаемых устройств.

100 КГц (5мкс+5мкс) это всяко лучше чем 20 КГц. Мало ли что подключить придётся, уж лучше быстрее, чем медленней.
alex1816
Мастер
Сообщения: 224
Зарегистрирован: 03 фев 2017, 01:06
Репутация: 35
Настоящее имя: Александр
Откуда: Украина
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение alex1816 »

Вот здесь упоминания микросхем для переобразования сигнала енкодера: дифпара в ттл и обратно (если понадобится).
http://www.cnc-club.ru/forum/viewtopic. ... 80#p413151
Аватара пользователя
wldev
Мастер
Сообщения: 1650
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение wldev »

Я такие использую где частота нужна. H11L1
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Попытался найти в Китаях готовую макетку с какими-нибудь STM32F4 и Ethernet. Два отдельных модуля - без проблем и недорого (даже на Али недорого):
А вместе на одной платке - редкость. Обыскался на Али, перешёл на Тао.. Неважно, есть там на плате что-то дополнительное или нет - цена раза в 2-3 выше комплекта из 2-х модулей:
Если кто-то где-то видел недорогие готовые макетки с F4 и Ethernet, подскажите, буду благодарен.
alex1816
Мастер
Сообщения: 224
Зарегистрирован: 03 фев 2017, 01:06
Репутация: 35
Настоящее имя: Александр
Откуда: Украина
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение alex1816 »

MX_Master писал(а):Если кто-то где-то видел недорогие готовые макетки с F4 и Ethernet, подскажите, буду благодарен.
Я когда то искал похожее. Минимум около 30 уев попадалось (то есть такое же как ты нашел).
Может все таки на двух платах, только на сеть 5х00 взять дабы процессор разгрузить от обработки сетевого стека.
А пока разработаешь - одноплатные китайцы такие же сделают :)
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Дефицит, блин. Придётся пару-тройку первых плат на станке запилить, для проверки.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение selenur »

MX_Master писал(а):Дефицит, блин. Придётся пару-тройку первых плат на станке запилить, для проверки.
если нужно могу кинуть радио схемы контроллера, что недавно получил, в pdf формате.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение N1X »

selenur писал(а):радио схемы контроллера
Бррр.... аж поежился... Принципиальные схемы, видимо :)
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение selenur »

N1X писал(а):
selenur писал(а):радио схемы контроллера
Бррр.... аж поежился... Принципиальные схемы, видимо :)
автозамена текста сработала, и не заметил...
Реньше Т9, мешало, теперь эта штука..
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Собрал небольшую макетку из двух модулей. Удивительно, что с первого раза удалось всё правильно подключить и настроить сеть. Надо отдать должное команде разработчиков CubeMX. Сделаю пару тестов на скорость передачи/обработки. И можно приступать к работе над прошивкой.
PHOTO_20180411_183913.jpg (2639 просмотров) <a class='original' href='./download/file.php?id=136904&mode=view' target=_blank>Загрузить оригинал (1.76 МБ)</a>
2018-04-11_201603.png (2611 просмотров) <a class='original' href='./download/file.php?id=136907&mode=view' target=_blank>Загрузить оригинал (27.1 КБ)</a>
PHOTO_20180411_184041.jpg (2639 просмотров) <a class='original' href='./download/file.php?id=136903&mode=view' target=_blank>Загрузить оригинал (1.62 МБ)</a>
2018-04-11_192038.png (2636 просмотров) <a class='original' href='./download/file.php?id=136905&mode=view' target=_blank>Загрузить оригинал (13.99 КБ)</a>
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 609
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение merkwurdigliebe »

MX_Master писал(а):Наткнулся на али на 4-х канальные PS2801-4. Максимальное время отклика 5 мкс (200 КГц). Цена - 0.36$ за шт. По 0.09$ за канал. Что для запланированных 48 входов/выходов обойдётся в 4.32$.
Если кто-то знает варианты лучше, подскажите.
PS2805-4 по $0.24. бонусом - там два светодиода, полярность входного сигнала любая
но, имхо, с али - не похоже, что это renesas. много раз покупал, все какие-то подозрительные... но работают. но характеристики не проверял
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

С LwIP стэком голая прошивка занимает примерно 45 Кб, без LwIP - 11 Кб.
Продолжаю копать в сторону голых и коротких (RAW) Ethernet пакетов. Хочу в основной прошивке отказаться от IP адреса, порта и от UDP тоже. В идеале хочется, чтоб в пакете были только два MAC адреса (6+6 байт), тип (2 байта), мои данные (Х байт) + контрольная сумма (4 байта).

Порылся в тырнетах.. Что-то нет в сети готовых примеров по работе Ethernet в STM32F4 без LwIP стэка. Продвигаюсь на ощупь, но успехи есть. :headphones: Подсмотрел в LwIP как он работает с HAL дровами. Удалось сделать получение и обработку RAW пакетов в обработчике ethernet прерывания. Сие прерывание возникает только, когда в пакете указан MAC адрес назначения от STM'ки или общак FF:FF:FF:FF:FF:FF. Опять-таки, спасибо разработчикам CubeMX за сей фильтр, который доступен уже из коробки.
Надеюсь, кто-нибудь понял о чём я :hehehe: Вощем, продолжаем...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение MX_Master »

Может кто подскажет..

Тестирую отправку ethernet пакетов из linux. Сам вручную собираю пакеты. Но какой бы короткий пакетик не получился по размеру, в STM'ку приходит всегда минимум 60 байт. Это где-то в linux так жёстко зашиты 60 байт или это значение как-то можно изменить?

К примеру, мне из linux нужно спросить у STM'ки текущее состояния пинов. Я собираю пакет с запросом из
  • 6 байт - МАС адрес получателя
  • 6 байт - МАС адрес отправителя
  • 2 байта - тип пакета
  • 4 байта - грубо говоря, мои данные
всего 18 байт. Но linux к ним приписывает пучёк нулей до 60 байт и отправляет уже 60 байт. Как можно понять, 60 байт отправляются примерно в 3 раза дольше чем мои 18. Канеш, на фоне обработки данных в STM'ке (и прочих расходов), скорость передачи может выглядеть не самым узким местом. Но хотелось бы минимизировать.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

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

Это требование стандартов Ethernet. Иначе могут быть проблемы с обнаружением столкновений в стандартных конфигурациях.
Чудес не бывает. Бывают фокусы.
Duhas
Мастер
Сообщения: 1961
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 285
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: Плата развязки для LinuxCNC (Ethernet + STM32)

Сообщение Duhas »

MX_Master писал(а): всего 18 байт. Но linux к ним приписывает пучёк нулей до 60 байт и отправляет уже 60 байт. Как можно понять, 60 байт отправляются примерно в 3 раза дольше чем мои 18. Канеш, на фоне обработки данных в STM'ке (и прочих расходов), скорость передачи может выглядеть не самым узким местом. Но хотелось бы минимизировать.
если на скорость обработки пакетов это шибко не влияет - забей. Запас канала ethernet такой, что это не станет узким местом
Ответить

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