ЗАО «ЗЭО»

Техническая поддержка пользователей => Тион-Про28, Орион28 => Тема начата: Ziminets от 23 Ноября, 2013, 08:00:38

Название: RS-422 и GPIO в Linux
Отправлено: Ziminets от 23 Ноября, 2013, 08:00:38
Нужно обеспечить работу с RS-422 и GPIO под Linux, подскажите с чего начать и чего почитать?
Название: Re: RS-422 и GPIO в Linux
Отправлено: Danila от 25 Ноября, 2013, 12:20:57
Про работу с gpio можно прочитать в документации Linux Documentation/gpio.txt.

Для использования RS-422 его нужно сначала включить. Для этого нужно внести изменения в файл Linux/drivers/serial/mxs-auart.c и пересобрать ядро.
Изменения такие: в функции mxs_auart_probe() строками
if (s->port.line == 1) s->mode = UART_MODE_RS232;
if (s->port.line == 2) s->mode = UART_MODE_RS485;
задается режим работы портов. Нужно первому или второму порту присвоить значение UART_MODE_RS422.
Далее обмениваться через /dev/ttySP1 или /dev/ttySP2.
Название: Re: RS-422 и GPIO в Linux
Отправлено: Ziminets от 25 Ноября, 2013, 15:45:49
Спасибо! Буду пробовать.
Название: Re: RS-422 и GPIO в Linux
Отправлено: Day от 05 Декабря, 2013, 21:29:14
Тоесть как я понял тут то я и могу установить любой режим работы 1и 2 порта. больше ничего нигде менять не нужно??
Название: Re: RS-422 и GPIO в Linux
Отправлено: Ziminets от 07 Декабря, 2013, 16:57:23
При приеме сообщений на Port1, работающий в режиме RS-422, периодически получаю следующее сообщение:
mxs-auart mxs-auart.1: Unhandled status 520100Что это может означать?

И еще вопрос: резистор 120 Ом где-то нужно добавлять?
Название: Re: RS-422 и GPIO в Linux
Отправлено: Danila от 09 Декабря, 2013, 11:39:59
Тоесть как я понял тут то я и могу установить любой режим работы 1и 2 порта. больше ничего нигде менять не нужно??

Да. Устанавливается здесь.
Название: Re: RS-422 и GPIO в Linux
Отправлено: Danila от 09 Декабря, 2013, 12:01:53
При приеме сообщений на Port1, работающий в режиме RS-422, периодически получаю следующее сообщение:
mxs-auart mxs-auart.1: Unhandled status 520100Что это может означать?

И еще вопрос: резистор 120 Ом где-то нужно добавлять?

Ошибка означает, что драйвер обрабатывает не все события от контроллера UART. Если сообщение приходит без ошибок - можно не обращать на это внимание. В данном случае ошибка связана с битом четности.

На Тионе терминирующего резистора нет. Резистор должен быть либо на одном из устройств RS-422, либо просто на линии.