Linux vs rs485-USB

FORUM_NAME: USB-RS485
Модератор: Модераторы

Уважаемые пользователи! В связи с отсутствием возможности оплачивать хостинг сайта и отсутствием материальной помощи от пользователей, Форум вынужден будет прекратить работу с Марта месяца 2024 года!.


delovoy
Автор темы
delovoy
Автор темы
Репутация: 1
Сообщения: 70
Зарегистрирован: 28.11.2015
С нами: 8 лет 3 месяца
Профессия: IT

Непрочитанное сообщение #161 delovoy » 19.07.2018, 00:00

Получил китайский свисток за 50 рублей с али, завелся без бубноплясок. С дефольтными настройками. Все определяет и все пишет в приборы. Лучшее решение)

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 45
Репутация: 139
Сообщения: 3300
Зарегистрирован: 11.11.2012
С нами: 11 лет 4 месяца
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #162 pet-and » 19.07.2018, 08:54

delovoy писал(а):Получил китайский свисток за 50 рублей с али, завелся без бубноплясок. С дефольтными настройками. Все определяет и все пишет в приборы. Лучшее решение)
:bra_vo: :bra_vo: :bra_vo:

danil.khd
danil.khd
Репутация: 0
Сообщения: 6
Зарегистрирован: 24.11.2018
С нами: 5 лет 4 месяца
Профессия: инженер

Непрочитанное сообщение #163 danil.khd » 24.11.2018, 17:25

Добры вечер!

Появилась ли возможность работы адаптера usb to rs-485 болид в Linux? Какой драйвер нужно использовать?

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 45
Репутация: 139
Сообщения: 3300
Зарегистрирован: 11.11.2012
С нами: 11 лет 4 месяца
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #164 pet-and » 24.11.2018, 17:32

danil.khd писал(а):Добры вечер!

Появилась ли возможность работы адаптера usb to rs-485 болид в Linux? Какой драйвер нужно использовать?
Очень некорректный вопрос. Данная возможность появилась вместе с рождением Linux.
lsusb -l
dmesg

danil.khd
danil.khd
Репутация: 0
Сообщения: 6
Зарегистрирован: 24.11.2018
С нами: 5 лет 4 месяца
Профессия: инженер

Непрочитанное сообщение #165 danil.khd » 24.11.2018, 17:53

Преобразователь интерфейсов работает, но некорректно. Команда отправляется, но не принимается. С китайским адаптером за 100 рублей все работает.

Phoenix M
Аватара
Phoenix M
Возраст: 42
Репутация: 108
Сообщения: 579
Зарегистрирован: 21.09.2012
С нами: 11 лет 6 месяцев
Профессия: Проектировщик
Откуда: Пятигорск

Непрочитанное сообщение #166 Phoenix » 24.11.2018, 19:52

Ubuntu? Преобразователю мозги вправили?

danil.khd
danil.khd
Репутация: 0
Сообщения: 6
Зарегистрирован: 24.11.2018
С нами: 5 лет 4 месяца
Профессия: инженер

Непрочитанное сообщение #167 danil.khd » 24.11.2018, 20:00

Ubuntu? Преобразователю мозги вправили?
Ubuntu server. Смотрел Ваши инструкции. Но с Linux на Вы.
1. Это можно как-то сделать редактированием файла драйвера?
2. Я так понимаю, в новой версии Ubuntu драйвер уже присутствует.

[570210.325042] usb 1-3: new full-speed USB device number 5 using xhci_hcd
[570210.474221] usb 1-3: New USB device found, idVendor=04e2, idProduct=1411
[570210.474225] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[570210.474228] usb 1-3: Product: XR21B1411
[570210.474231] usb 1-3: Manufacturer: Exar Corp.
[570210.474233] usb 1-3: SerialNumber: F7429018151
[570210.486994] cdc_xr_usb_serial 1-3:1.0: USB_device_id idVendor:04e2, idProduct 1411
[570210.486998] cdc_xr_usb_serial 1-3:1.0: This device cannot do calls on its own. It is not a modem.
[570210.487005] cdc_xr_usb_serial 1-3:1.0: The data interface has switched endpoints
[570210.487006] cdc_xr_usb_serial 1-3:1.0: interfaces are valid
[570210.487009] cdc_xr_usb_serial 1-3:1.0: epwrite->bEndpointAddress =1
[570210.487039] cdc_xr_usb_serial 1-3:1.0: ttyXR_USB_SERIAL0: USB XR_USB_SERIAL device
[570210.487041] cdc_xr_usb_serial 1-3:1.0: xr_usb_serial_set_reg Channel:0 0x20d = 0x01
[570210.487121] cdc_xr_usb_serial 1-3:1.0: xr_usb_serial_set_reg Channel:0 0xc0c = 0x00
[570210.487161] cdc_xr_usb_serial 1-3:1.0: xr_usb_serial_set_reg Channel:0 0xc0d = 0x28
[570210.487201] cdc_xr_usb_serial 1-3:1.0: xr_usb_serial_set_reg Channel:0 0xc0e = 0x28
[570210.487288] cdc_xr_usb_serial 1-3:1.0: xr_usb_serial_ctrl_msg - rq 0x22, val 0x0, len 0x0, result 0
[570210.487426] cdc_xr_usb_serial 1-3:1.0: xr_usb_serial_ctrl_msg - rq 0x20, val 0x0, len 0x7, result 7
[570210.488458] usbcore: registered new interface driver cdc_xr_usb_serial

Phoenix M
Аватара
Phoenix M
Возраст: 42
Репутация: 108
Сообщения: 579
Зарегистрирован: 21.09.2012
С нами: 11 лет 6 месяцев
Профессия: Проектировщик
Откуда: Пятигорск

Непрочитанное сообщение #168 Phoenix » 24.11.2018, 20:13

С этим драйвером работать не будет. Поищите в интернете как добавить модуль ядра в черный список.

danil.khd
danil.khd
Репутация: 0
Сообщения: 6
Зарегистрирован: 24.11.2018
С нами: 5 лет 4 месяца
Профессия: инженер

Непрочитанное сообщение #169 danil.khd » 24.11.2018, 22:13

А какой драйвер использовать?

Добавлено спустя 17 минут 46 секунд:
Правильно я понимаю, что что-то из этого нужно удалить?

danil@ha01:/sys/bus/usb/drivers/cdc_xr_usb_serial$ find /sys/bus/usb/drivers/cdc_xr_usb_serial/ -name ‘*.ko’
danil@ha01:/sys/bus/usb/drivers/cdc_xr_usb_serial$ find /lib/modules -name *.ko | grep exar
/lib/modules/4.15.0-39-generic/kernel/drivers/tty/serial/8250/8250_exar.ko
/lib/modules/4.15.0-39-generic/kernel/drivers/gpio/gpio-exar.ko
/lib/modules/4.15.0-36-generic/kernel/drivers/tty/serial/8250/8250_exar.ko
/lib/modules/4.15.0-36-generic/kernel/drivers/gpio/gpio-exar.ko
danil@ha01:/sys/bus/usb/drivers/cdc_xr_usb_serial$ find /lib/modules -name *.ko | grep xr
/lib/modules/4.15.0-39-generic/kernel/net/rxrpc/rxrpc.ko
/lib/modules/4.15.0-39-generic/kernel/drivers/iio/gyro/adxrs450.ko
/lib/modules/4.15.0-39-generic/kernel/drivers/mtd/maps/ichxrom.ko
/lib/modules/4.15.0-39-generic/kernel/drivers/mtd/maps/ck804xrom.ko
/lib/modules/4.15.0-39-generic/kernel/drivers/mtd/maps/amd76xrom.ko
/lib/modules/4.15.0-39-generic/kernel/drivers/gpio/gpio-xra1403.ko
/lib/modules/4.15.0-39-generic/kernel/ubuntu/xr-usb-serial/xr_usb_serial_common.ko
/lib/modules/4.15.0-36-generic/kernel/net/rxrpc/rxrpc.ko
/lib/modules/4.15.0-36-generic/kernel/drivers/iio/gyro/adxrs450.ko
/lib/modules/4.15.0-36-generic/kernel/drivers/mtd/maps/ichxrom.ko
/lib/modules/4.15.0-36-generic/kernel/drivers/mtd/maps/ck804xrom.ko
/lib/modules/4.15.0-36-generic/kernel/drivers/mtd/maps/amd76xrom.ko
/lib/modules/4.15.0-36-generic/kernel/drivers/gpio/gpio-xra1403.ko
/lib/modules/4.15.0-36-generic/kernel/ubuntu/xr-usb-serial/xr_usb_serial_common.ko

Phoenix M
Аватара
Phoenix M
Возраст: 42
Репутация: 108
Сообщения: 579
Зарегистрирован: 21.09.2012
С нами: 11 лет 6 месяцев
Профессия: Проектировщик
Откуда: Пятигорск

Непрочитанное сообщение #170 Phoenix » 24.11.2018, 23:04

Наверно нужно удалить xr_usb_serial_common.ko Этот драйвер от производителя микросхемы, но не пропатченый, поэтому он неправильно устанавливает некоторые регистры микросхемы. Преобразователь с вправленными мозгами работает со штатным встроенным драйвером cdc_acm.

danil.khd
danil.khd
Репутация: 0
Сообщения: 6
Зарегистрирован: 24.11.2018
С нами: 5 лет 4 месяца
Профессия: инженер

Непрочитанное сообщение #171 danil.khd » 24.11.2018, 23:08

Попробую добавить в блэклист.

blacklist xr_usb_serial

А как преобразователю вправить мозги? Можно языком для не продвинутого пользователя?)

Phoenix M
Аватара
Phoenix M
Возраст: 42
Репутация: 108
Сообщения: 579
Зарегистрирован: 21.09.2012
С нами: 11 лет 6 месяцев
Профессия: Проектировщик
Откуда: Пятигорск

Непрочитанное сообщение #172 Phoenix » 24.11.2018, 23:11

Почитайте третий способ.

danil.khd
danil.khd
Репутация: 0
Сообщения: 6
Зарегистрирован: 24.11.2018
С нами: 5 лет 4 месяца
Профессия: инженер

Непрочитанное сообщение #173 danil.khd » 24.11.2018, 23:20

Я пока не знаю что конкретно править.
Для второго способа нужно установить Вашу программу?

Добавлено спустя 15 часов 21 минуту:
Где находится этот файл xr_usb_serial_hal.c?

Phoenix M
Аватара
Phoenix M
Возраст: 42
Репутация: 108
Сообщения: 579
Зарегистрирован: 21.09.2012
С нами: 11 лет 6 месяцев
Профессия: Проектировщик
Откуда: Пятигорск

Непрочитанное сообщение #174 Phoenix » 25.11.2018, 16:50

Попробуйте скачать пакет с исходниками ядра, может там будет. Кто его знает, как в ubuntu собрали это драйвер. А вообще, на сайте производителя микросхемы будет архив с драйвером. После обновления ядра опять пересобирать модули. Неудобно. Все же второй и третий способы поудобнее, правда в ubuntu еще выпиливать драйвер от exar.

Vasia_Pupkin
Vasia_Pupkin
Репутация: 0
Сообщения: 1
Зарегистрирован: 14.02.2019
С нами: 5 лет 1 месяц
Профессия: Инженер-проектировщик

Непрочитанное сообщение #175 Vasia_Pupkin » 14.02.2019, 18:32

Здравствуйте, товарищи!

Зарегистрировался на данном форуме только с одной целью - сказать огромнейшее, человеческое СПАСИБО комраду Phoenix, за рабочее решение, как заставить работать USB-RS485 под линуксом.
Мне помог способ №2, по идее способ №3 надо бы попробовать, но честно говоря страшновато))) хехе)

Задача стояла настроить работу частотного преобразователя под linuxcnc, и с этой задачей отлично справились дешевые китайские свистки по 150р, но они не имеют опторазвязки, а мой частотник шлет карающие импульсы при включении и выключении в RS485 с целью испепелить души ненавистных ему свистков, что успешно он и делал. Заземление, дренажный провод между сигнальными землями свистка и частотника, молитвы и окрапление святой водой результатов не дали, поэтому принято было решение купить переходник с опторазвязкой, и каково было мое удивление когда он отказался работать, а звонок в техподдержку Болида, ввел меня в ступор, ответ был в стиле "какой такой линкс, нам ваше линуксы нафиг не нужны". Но благословенный гугл вывел меня в эту тему и после ее прочтения я обрел смысл жизни, а частотник в свою очередь стал смирным, так как не в силах испепелить душу болидовского переходника защищенного мощью светодиодов.

З.Ы: в линуксах я не силен, и поэтому потратил немного времени на компиляцию Вашей программы. Как пожелание - добавьте в способе №2 пояснение для не искушенных пользователей что нужно выполнить следующие манипуляции, так как у меня возникли проблемы при компиляции:
Установить:
sudo apt-get install libusb-1.0-0
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install libusb-dev


Потом посмотреть куда оно все установилось:
dpkg-query -L libusb-1.0-0

И потом прописать этот путь в Makefile
/lib/i386-linux-gnu/libusb-1.0.so.0 - будет отличаться в зависимости от системы

И еще раз, спасибо огромное товарищ Phoenix, добра тебе, и барышню с пышным бюстом!

Phoenix M
Аватара
Phoenix M
Возраст: 42
Репутация: 108
Сообщения: 579
Зарегистрирован: 21.09.2012
С нами: 11 лет 6 месяцев
Профессия: Проектировщик
Откуда: Пятигорск

Непрочитанное сообщение #176 Phoenix » 15.02.2019, 09:18

:-) пожалуйста.
Не думал, что путь к libusb и её наличие в системе зависит от дистрибутива. Хотя не мудрено с таким разнообразием. Сделаю пометку во втором методе.

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 45
Репутация: 139
Сообщения: 3300
Зарегистрирован: 11.11.2012
С нами: 11 лет 4 месяца
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #177 pet-and » 30.04.2021, 12:20

Рубрика "Друзья прислали". Пишет камрад Alexey Dyachenko
Alexey Dyachenko писал(а):Добрый вечер. Как и обещал, делюсь найденой и проверенной инфой.
Я разрабатываю проектик с подключением источников данных по RS-232 и RS-485. Одни из самых дешёвых конверторов USB-RSХХХ с гальванической развязкой оказались фирмы Bolid. Весь мой проект базируется на сервере Raspberry PI3 с Ubuntu на борту. По этому ваша тема оказалась актуальной. Выбрал второй способ как наиболее удобный и безопасный, как в плане работы с конвертором, так и в плане обновления системы.
Большое спасибо участнику форума Phoenix, за такую возможность в приципе!
Воспользовался подсказкой от Vasia_Pupkin про предварительную установку нужных библиотек для компиляции программы. Очень актуально для непросвещённых. Преобразователи действительно заработали после применения второго способа, но только на стационарном компьютере, где установлена Ubuntu Desktop 20.04. На облегченной Ubuntu server 20.04 установленной на Raspberry конверторы не стартанули. Методом научного втыка и докапывания, понял что не хватает модуля драйвера в данном варианте сборки ядра системы. Нашёл подходящий на гите: https://github.com/niosHD/xr_usb_serial_common-1c
Компилируется и ставится по инструкции подобно вашей программы из второго способа. Но после перезагрузки драйвер слетает. Нужно последнюю команду из инструкции повторять для повторения установки модуля драйвера. Это я настроил в NodeRed. Т.к. его уже использую в проекте. Тогда с этим драйвером и вашей программой конверторы без проблем работают на Raspberry под Линукс.

Лично для Phoenix: Посмотрите в Makefiles драйверов по моей ссылке на гите. Там автор использует переменные окружения для указания пути к нужным файлам для компиляции. Получается что не нужно править путь перед компиляцией вне зависимости от версии ОС.
Орфография и пунктуация авторская.

Phoenix M
Аватара
Phoenix M
Возраст: 42
Репутация: 108
Сообщения: 579
Зарегистрирован: 21.09.2012
С нами: 11 лет 6 месяцев
Профессия: Проектировщик
Откуда: Пятигорск

Непрочитанное сообщение #178 Phoenix » 30.04.2021, 13:42

Makefile я посмотрел, но там поиск пути к исходникам ядра, а во втором способе нужно править путь к библиотеке libusb. Можно конечно тоже попробовать автоматизировать, но второй способ больше для демонстрации самой возможности исправить ситуацию. Сам я предпочитаю третий способ, да и у меня всего 2 таких преобразователя.

Кстати, второй способ работает со штатным драйвером cdc_acm ядра, а в Ubuntu встроен нерабочий драйвер от exar. Видимо в гите исправленный драйвер и с ним заработало и без второго способа.

На raspberry уже есть последовательный порт, я его использую с вот таким преобразователем уровней сигнала (ttr to rs232) 10 рублей за штуку :) Правда его нужно запитывать от 3,3 В, а не от 5 иначе глючит. Но на raspberry есть такое напряжение. Вотеще аналогичный преобразователь с гальванической развязкой. Кажется на raspberry последовательный порт по умолчанию задействован под Bluetooth, но это не проблема. Для Bluetooth можно переназначить программный последовательный порт, а аппаратный задействовать под свои нужды. Вот что нужно добавить в конфиг на fat разделе: dtoverlay=pi3-miniuart-bt
Либо вообще отключить Bluetooth: dtoverlay=pi3-disable-bt
Правда еще последовательный порт может использоваться для вывода процесса загрузки linux, это тоже придется отключить если включено. То и дело на платах Orange, там целых 3 аппаратных последовательных порта.

Phoenix M
Аватара
Phoenix M
Возраст: 42
Репутация: 108
Сообщения: 579
Зарегистрирован: 21.09.2012
С нами: 11 лет 6 месяцев
Профессия: Проектировщик
Откуда: Пятигорск

Непрочитанное сообщение #179 Phoenix » 08.12.2021, 23:43

В ядро linux 5.15 добавили драйвер xr_serial, похоже USB-RS232 (XR21B1411) заработает "из коробки". Проверить не могу, т.к. у меня все преобразователи уже переделанные, но работают с новым драйвером. А вот USB-RS485 перестал работать даже переделанный, т.к. драйвер xr_serial переопределяет записанные в ПЗУ преобразователя регистры на значения, при которых микросхема XR21B1411 автоматически не управляет приемопередатчиком RS485.

Когда преобразователь работал с драйвером cdc_acm, имя последовательного порта было вида ttyACMх. С новым драйвером xr_serial имя последовательного порта ttyUSBх.

Tsayper
Tsayper
Репутация: 0
Сообщения: 1
Зарегистрирован: 31.03.2022
С нами: 1 год 11 месяцев
Профессия: эникейщик

Непрочитанное сообщение #180 Tsayper » 31.03.2022, 16:32

Здравствуйте!
Скажите пожалуйста, если мой болид определяется как ttyXRUSB0, значит ли это что в системе установлен драйвер Exar? И нужно сначала заблокировать его, чтобы воспользоваться вторым или третьим способом? Не могли бы вы подробно описать, как это делается, или дать ссылку? Я в Линуксе полный нуб :-(
Если что, Astra Linux 5.10


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «USB-RS485»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя

forum-bolid.ru : Отказ от ответственности