Страница 4 из 71

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

Добавлено: 21 мар 2018, 22:23
selenur
У меня несколько устройств собрано на ENC28J60, работают достаточно хорошо, единственный нюанс, что сборка, разборка данных выполняется вручную, т.е. приходят данные, и нужно понять что это тип (arp, udp), потом в зависимости от этого собрать ответный пакет побайтно, и побитно. А в w5100 ты работаешь на более высоком уровне, и не вникаешь во многие тонкости, это примерно как сравнить программирование асм, и Си, сейчас если-бы я делал устройство, выбрал скорее всего w5100 с ним реально проще :-)

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

Добавлено: 22 мар 2018, 05:01
alex1816
Сегодня начал ковырять 7i92
+7i77 (подключил, прошил, начал настраивать .. ну да ладно я не о том).
Прочитал немного документации, и вот на счет того как там организована сеть(попалось под руку заодно и выложу):
HOST COMMUNICATION
The 7I92 standard firmware is designed for low overhead real time communication
with a host controller so implements a very simple set of IPV4 operations. These
operations include ARP reply, ICMP echo reply, and UDP packet receive/send for host
data communications. UDP is used so that the 7I92 can be used on a standard network
with standard tools for non-real time applications. No fragmentation is allowed so
maximum packet size is 1500 bytes.
UDP
All 7I92 data communication is done via UDP packets. The 7I92 socket number for
UDP data communication is 27181. Read data is routed to the requesters port number.
Under UDP, a simple register access protocol is used. This protocol is called LBP16.
LBP16
LBP16 allows read and write access to up to eight separate address spaces with
different sizes and characteristics. Current firmware uses seven of these spaces. For
efficiency, LBP16 allows access to blocks of registers at sequential increasing addresses.
(Block transfers)
Нового ничего здесь нет, но ...
Получается что поверх UDP работает LBP16(похоже, что этот протокол они себе и придумали так как упоминаний в инете о нем мне не попалось).
Не говорю, что надо так же делать, но посмотреть как делают другие лишним не будет. В документации расписано, исходники доступны.
Второй сетевой интерфейс для прошивки может и не нужен.

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

Добавлено: 22 мар 2018, 05:52
MX_Master
Кстати, мне в личку написал человек, который посоветовал обратить внимание вот на этот проект - http://pekka.eu/cnc/. Он пишет, что попросил у автора исходники и запилил такую же штуку но на обычной демо борде. Пишет, что некоторые проблемы есть, но в целом всё работает.

Сам автор пишет, что единственная проблема - это очень долгая пересылка данных, до 600 мкс. Я хоть и мастер ухищрений в оптимизации, но 600 мкс как-то настораживают..

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

Добавлено: 23 мар 2018, 11:50
MX_Master
Может кто-то посоветует как лучше (и бюджетно) организовать высокоскоростую развязку входов/выходов?
Как говорится, если делать так по большому :hehehe: Я сначала думал, что опторазвязку можно сделать отдельными платками, но спустя время понял, что лучший вариант иметь развязку уже из коробки.

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

Добавлено: 23 мар 2018, 12:09
Argon-11
Цифровые изоляторы до 150 МГц, 1корпус = 6 каналов, цена примерно 12рублей за канал:
https://ru.aliexpress.com/wholesale?cat ... ext=si8660

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

Добавлено: 23 мар 2018, 13:12
MX_Master
Argon-11 писал(а):Цифровые изоляторы до 150 МГц, 1корпус = 6 каналов, цена примерно 12рублей за канал:
https://ru.aliexpress.com/wholesale?cat ... ext=si8660
Спасибо за совет, на выходы должны подойти идеально.

А вот на входе надо явно что-то другое ставить. Чтоб и концевики 12-24V можно было подключить, и датчик длины инструмента, и центроискатель, и всякое другое с напряжением больше 5V.

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

Добавлено: 23 мар 2018, 13:26
Argon-11
А на входы - оптроны, там ведь не требуется высокое быстродействие. Да и входов обычно заметно меньше, чем выходов.

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

Добавлено: 23 мар 2018, 14:01
N1X
MX_Master писал(а):Чтоб и концевики 12-24V можно было подключить, и датчик длины инструмента, и центроискатель, и всякое другое с напряжением больше 5V.
Ну привести диапазон к фиксированному напряжению то не проблема... Даже банально Резистор от входа и на стабилитрон пятивольтовый...

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

Добавлено: 23 мар 2018, 14:05
Serg
MX_Master писал(а):Может кто-то посоветует как лучше (и бюджетно) организовать высокоскоростую развязку входов/выходов?
Сначала надо хорошенько подумать что именно и зачем "развязывать". :)
Для начала надо постоянно помнить, что вся эта твоя плата уже развязана от компа.
Дискретные входы и выходы и их питание (рекомендую 24В) - это одна часть. Однако если этим-же напряжением питать и саму плату, то окажется, что все эти входы/выходы и развязывть-то не от чего. :)
Ну и так далее... :) Правда у этого метода есть побочный эффект - в результате может оказаться, что и развязка-то совсем не нужна... :)

P.S. Я обычно развязываю только RS485 - не известно к чему придётся подключать, да и возможный километр линии может сказаться.

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

Добавлено: 23 мар 2018, 17:50
MX_Master
Скорее всего, надо составить список возможных устройств, которые гарантированно можно будет подключить к этой платке. Тогда будет боль мень понятно, что и как развязать. Начнём с главного..

Драйвер мотора (STEP/DIR/ENBL)
Обычно, на входе рядового драйвера уже стоят оптопары, рассчитанные на широкий спектр напряжений (3V..36V). На такие драйвера можно подавать сигнал прям с ноги МК и всё будет развязано. Однако, есть ряд других драйверов. Например, на бюджетных модулях с DRV8825 развязки нет и сигналы можно подавать только с напряжением 2.5V..5.5V. В этом случае развязка нужна и напряжение на выходе должно быть не более 5V.

Энкодеры и линейки (A/B/Z)
Чаще всего они запитываются от 5V..24V и выходные сигналы с них соответствующие. И чтобы подключить их к МК нужна высокоскоростная опторазвязка.

Частотный преобразователь (CW/CCW/0..10V)
На входах, обычно, стоят оптопары. Но, я считаю, что развязка обязательна.

Концевики, датчики и кнопки
Обычные концевики и кнопки (замыкают 2 контакта) нельзя подключать напрямую к МК. На провод может попасть высоковольтная наводка и ножке МК поплохеет. Развязка обязательна. Индуктивные и прочие датчики, обычно, запитываются от 3V..36V. И чтобы подключить их к МК нужна обычная (до 20 КГц) опторазвязка.

Модули с обычными или твёрдотельными реле
Чаще всего на входе такого модуля уже стоят оптопары, рассчитанные на широкий спектр напряжений. На такие модули можно подавать сигнал прям с ноги МК. Всё будет развязано.
Уверен, что забыл ещё что-то написать, подскажите.

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

Добавлено: 23 мар 2018, 18:23
Serg
MX_Master писал(а):Например, на бюджетных модулях с DRV8825 развязки нет и сигналы можно подавать только с напряжением 2.5V..5.5V. В этом случае развязка нужна и напряжение на выходе должно быть не более 5V.
Хочешь ради такого редкого случая увеличить стоимость проекта для всех?..
MX_Master писал(а):Обычные концевики и кнопки (замыкают 2 контакта) нельзя подключать напрямую к МК. На провод может попасть высоковольтная наводка и ножке МК поплохеет. Развязка обязательна. Индуктивные и прочие датчики, обычно, запитываются от 3V..36V. И чтобы подключить их к МК нужна обычная (до 20 КГц) опторазвязка.
Напрямую к ногам МК лучше вообще ничего не подключать, а использовать буферные элементы хотя-бы в виде 74 серии. :)
Ну а против высоковольных наводок понапридумывано всяких супрессоров/стабилитронов. В самом МК тоже есть защита от таких наводок, особенно если используется делитель для высоковольных входов. Да и какой смысл опторазвязки для концевиков, если их питать от того-же источника и они сами по себе гальванически изолированы от всего остального?..
MX_Master писал(а):Модули с обычными или твёрдотельными реле
Чаще всего на входе такого модуля уже стоят оптопары, рассчитанные на широкий спектр напряжений. На такие модули можно подавать сигнал прям с ноги МК. Всё будет развязано.
Только вот ток срабатывания твёрдотельного реле запросто может оказаться больше нагрузочной способности ноги МК...

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

Добавлено: 23 мар 2018, 23:13
T00T
MX_Master писал(а):А не поделитесь ли своим опытом в области ENC28J60?
Периодически использую этот чип. Для простеньких приложений годится.
Даже в плате IO к linuxCNC прикручивал.
104_3439.JPG (3136 просмотров) <a class='original' href='./download/file.php?id=135399&mode=view' target=_blank>Загрузить оригинал (910.14 КБ)</a>

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

Добавлено: 24 мар 2018, 00:40
Serg

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

Добавлено: 24 мар 2018, 07:13
MX_Master
Вощем, по развязке всё боль мень понятно. На входы/выходы step/dir/encA/encB можно ставить SI8660.
На обычные входы/выходы можно прикинуть какие-ньть недорогие TLP281-4.

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

Добавлено: 24 мар 2018, 07:50
N1X
На входы энкодера еще и дифприемники ставить нужно )

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

Добавлено: 24 мар 2018, 07:55
MX_Master
Надо подсмотреть как другие люди делают.. С энкодерами и линейками никогда не работал. У меня и линеек-то нет проверить, надо будет прикупить хотяб 1 энкодер..

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

Добавлено: 24 мар 2018, 09:22
N1X
полистай, там примеры интерфейсов есть...
http://www.skbis.ru/catalog2014/catalog ... c_2014.pdf

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

Добавлено: 24 мар 2018, 14:45
MX_Master
Я так понял, что у современных линеек чаще всего выход - TTL (5V). А у обычных (угловых) энкодеров?

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

Добавлено: 24 мар 2018, 14:48
PKM
Тоже. Чаще дифференциальный A+A-B+B-Z+Z-

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

Добавлено: 24 мар 2018, 19:03
MX_Master
Спасибо всем за советы. Изучив поглубже сей вопрос стало понятно, что развязку и доп. функции нужно делать только отдельными платками. Учесть все варианты подключения устройств и разместить на одной плате всё необходимое - выйдет довольно дорого. К тому же это может привести к ошибкам в работе устройства ввиду непростой схемы и разводки. Ну и, наконец, поставив себя на место пользователя, я бы не хотел платить за то, что мне действительно не нужно.