Ethernet контроллер для LinuxCNC (STM32, FPGA)
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Ну откуда 50мкс ? 1/(100000000/( 5000*8))=0.0004.
Добавьте туда еще разбиение минимум на четыре пакета.
И если на демке есть LVIP добавьте минимум 1мс на обработку.
Как работает меса я не знаю, но там стоит спартан 6 а это не СТМка. Можно и раз в 10мс пакеты получать. Скорее всего так и есть.
Добавьте туда еще разбиение минимум на четыре пакета.
И если на демке есть LVIP добавьте минимум 1мс на обработку.
Как работает меса я не знаю, но там стоит спартан 6 а это не СТМка. Можно и раз в 10мс пакеты получать. Скорее всего так и есть.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
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)
Impartial писал(а):А что есть варианты? Расскажите.
Ну надо потестить, но платка IO которая на #72. В сервопериод укладывается всегда, я просто не смотрел с каким запасом.
Причём сначала идёт запрос, потом на него ответ.
Я не волшебник я пока учусь......
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Искал на днях недорогие оптопары на входы/выходы общего назначения. Всякие pc817 и tlp281 - слишком уж медленные, до 20 КГц. А хотелось бы чуть чуть быстрей, но не по цене высокоскоростных.
Наткнулся на али на 4-х канальные PS2801-4. Максимальное время отклика 5 мкс (200 КГц). Цена - 0.36$ за шт. По 0.09$ за канал. Что для запланированных 48 входов/выходов обойдётся в 4.32$.
Если кто-то знает варианты лучше, подскажите.
Наткнулся на али на 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 КГц. А хотелось бы чуть чуть быстрей
5 мкс - это от силы 100 кГц. Котельников с Найквистом не дадут соврать.MX_Master писал(а):Максимальное время отклика 5 мкс (200 КГц)
И, кстати, чем кормить предполагается опторазвязанное оборудование?
По мне, опторазвязка для уже отвязанной от компьютера платы не особо нужна. А для редких случаев, когда она требуется, лучше сделать отдельную дочернюю платку.
Чудес не бывает. Бывают фокусы.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Да, развязку планирую отдельной платкой. Основная платка будет максимально голой. Развязка, она не от ПК, а от подключаемых устройств.
100 КГц (5мкс+5мкс) это всяко лучше чем 20 КГц. Мало ли что подключить придётся, уж лучше быстрее, чем медленней.
100 КГц (5мкс+5мкс) это всяко лучше чем 20 КГц. Мало ли что подключить придётся, уж лучше быстрее, чем медленней.
-
alex1816
- Мастер
- Сообщения: 224
- Зарегистрирован: 03 фев 2017, 01:06
- Репутация: 35
- Настоящее имя: Александр
- Откуда: Украина
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Вот здесь упоминания микросхем для переобразования сигнала енкодера: дифпара в ттл и обратно (если понадобится).
http://www.cnc-club.ru/forum/viewtopic. ... 80#p413151
http://www.cnc-club.ru/forum/viewtopic. ... 80#p413151
- wldev
- Мастер
- Сообщения: 1650
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 510
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Я такие использую где частота нужна. H11L1
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Попытался найти в Китаях готовую макетку с какими-нибудь STM32F4 и Ethernet. Два отдельных модуля - без проблем и недорого (даже на Али недорого):
- Макетка с STM32F407VET6 - 9.5$
- Макетка с LAN8720 - 3$
- https://item.taobao.com/item.htm?id=22354659187 - 33$
- https://item.taobao.com/item.htm?id=36846769744 - 28$
- https://item.taobao.com/item.htm?id=564079907253 - 24$
- https://item.taobao.com/item.htm?id=531512457585 - 26$
- https://item.taobao.com/item.htm?id=42250619392 - 31$
- https://item.taobao.com/item.htm?id=557293307396 - 26$
- https://item.taobao.com/item.htm?id=559014653567 - 28$
- https://item.taobao.com/item.htm?id=565373538016 - 32$
- https://item.taobao.com/item.htm?id=14703888326 - 34$
-
alex1816
- Мастер
- Сообщения: 224
- Зарегистрирован: 03 фев 2017, 01:06
- Репутация: 35
- Настоящее имя: Александр
- Откуда: Украина
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Я когда то искал похожее. Минимум около 30 уев попадалось (то есть такое же как ты нашел).MX_Master писал(а):Если кто-то где-то видел недорогие готовые макетки с F4 и Ethernet, подскажите, буду благодарен.
Может все таки на двух платах, только на сеть 5х00 взять дабы процессор разгрузить от обработки сетевого стека.
А пока разработаешь - одноплатные китайцы такие же сделают
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Дефицит, блин. Придётся пару-тройку первых плат на станке запилить, для проверки.
- selenur
- Почётный участник

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

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
автозамена текста сработала, и не заметил...N1X писал(а):Бррр.... аж поежился... Принципиальные схемы, видимоselenur писал(а):радио схемы контроллера
Реньше Т9, мешало, теперь эта штука..
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Собрал небольшую макетку из двух модулей. Удивительно, что с первого раза удалось всё правильно подключить и настроить сеть. Надо отдать должное команде разработчиков CubeMX. Сделаю пару тестов на скорость передачи/обработки. И можно приступать к работе над прошивкой.
- merkwurdigliebe
- Мастер
- Сообщения: 609
- Зарегистрирован: 17 дек 2013, 22:14
- Репутация: 580
- Откуда: București
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
PS2805-4 по $0.24. бонусом - там два светодиода, полярность входного сигнала любаяMX_Master писал(а):Наткнулся на али на 4-х канальные PS2801-4. Максимальное время отклика 5 мкс (200 КГц). Цена - 0.36$ за шт. По 0.09$ за канал. Что для запланированных 48 входов/выходов обойдётся в 4.32$.
Если кто-то знает варианты лучше, подскажите.
но, имхо, с али - не похоже, что это renesas. много раз покупал, все какие-то подозрительные... но работают. но характеристики не проверял
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
С LwIP стэком голая прошивка занимает примерно 45 Кб, без LwIP - 11 Кб.
Продолжаю копать в сторону голых и коротких (RAW) Ethernet пакетов. Хочу в основной прошивке отказаться от IP адреса, порта и от UDP тоже. В идеале хочется, чтоб в пакете были только два MAC адреса (6+6 байт), тип (2 байта), мои данные (Х байт) + контрольная сумма (4 байта). Порылся в тырнетах.. Что-то нет в сети готовых примеров по работе Ethernet в STM32F4 без LwIP стэка. Продвигаюсь на ощупь, но успехи есть.
Надеюсь, кто-нибудь понял о чём я
Вощем, продолжаем...
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Может кто подскажет..
Тестирую отправку ethernet пакетов из linux. Сам вручную собираю пакеты. Но какой бы короткий пакетик не получился по размеру, в STM'ку приходит всегда минимум 60 байт. Это где-то в linux так жёстко зашиты 60 байт или это значение как-то можно изменить?
К примеру, мне из linux нужно спросить у STM'ки текущее состояния пинов. Я собираю пакет с запросом из
Тестирую отправку ethernet пакетов из linux. Сам вручную собираю пакеты. Но какой бы короткий пакетик не получился по размеру, в STM'ку приходит всегда минимум 60 байт. Это где-то в linux так жёстко зашиты 60 байт или это значение как-то можно изменить?
К примеру, мне из linux нужно спросить у STM'ки текущее состояния пинов. Я собираю пакет с запросом из
- 6 байт - МАС адрес получателя
- 6 байт - МАС адрес отправителя
- 2 байта - тип пакета
- 4 байта - грубо говоря, мои данные
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
Это требование стандартов Ethernet. Иначе могут быть проблемы с обнаружением столкновений в стандартных конфигурациях.
Чудес не бывает. Бывают фокусы.
-
Duhas
- Мастер
- Сообщения: 1961
- Зарегистрирован: 10 окт 2015, 23:25
- Репутация: 285
- Настоящее имя: Андрей
- Откуда: Красноярск
- Контактная информация:
Re: Плата развязки для LinuxCNC (Ethernet + STM32)
если на скорость обработки пакетов это шибко не влияет - забей. Запас канала ethernet такой, что это не станет узким местомMX_Master писал(а): всего 18 байт. Но linux к ним приписывает пучёк нулей до 60 байт и отправляет уже 60 байт. Как можно понять, 60 байт отправляются примерно в 3 раза дольше чем мои 18. Канеш, на фоне обработки данных в STM'ке (и прочих расходов), скорость передачи может выглядеть не самым узким местом. Но хотелось бы минимизировать.