ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Проблемы с RS232  (Прочитано 5830 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Genues

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 49
Проблемы с RS232
« : 12 Июля, 2017, 16:13:16 »

Доброе время суток.

На нескольких платах имеется проблема с работой RS232.
Если во время работы отсоединить кабель от порта, то в порт постоянно попадает байт со значением "0".
При подсоединении кабеля всё становится нормально.

Насколько я могу судить, плата где такой проблемы нет и платы где такая проблема есть отличаются выходным буфером.
На проблемных платах применены микросхемы ADM485, на без проблемных Sipex 485E.
Система Linux.

Помогите пожалуйста разобраться.
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Проблемы с RS232
« Ответ #1 : 12 Июля, 2017, 17:57:59 »

Добрый день.
Попробуйте добавить согласующий резистор на линию RS485.
Записан

Genues

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 49
Re: Проблемы с RS232
« Ответ #2 : 13 Июля, 2017, 10:59:07 »

Добрый день.
Попробуйте добавить согласующий резистор на линию RS485.

Напишите пожалуйста подробнее, куда именно и какой резистор нужно добавить.

У меня оба порта включены в режиме RS232 и на обоих одинаково есть проблема.
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Проблемы с RS232
« Ответ #3 : 18 Июля, 2017, 14:52:20 »

Если речь о RS232, то резистор не нужен. Я думал вопрос про RS485, т.к. ADM485 и SP485 относятся к нему.

Не совсем понял проблему. При отсоединении кабеля RS232 из порта постоянно считывается \0 или только один раз при отсоединении кабеля?
Записан

Genues

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 49
Re: Проблемы с RS232
« Ответ #4 : 18 Июля, 2017, 18:35:22 »

Не совсем понял проблему. При отсоединении кабеля RS232 из порта постоянно считывается \0 или только один раз при отсоединении кабеля?

Постоянно.
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Проблемы с RS232
« Ответ #5 : 18 Июля, 2017, 18:40:59 »

Попробуйте задать эти настройки, а затем читать из порта командой cat:
stty -F /dev/ttySP0 115200 time 5 -parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke

Или открыть порт с помощью minicom и посмотреть, как ведет себя порт.
Записан

Genues

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 49
Re: Проблемы с RS232
« Ответ #6 : 19 Июля, 2017, 12:31:42 »

Есть проблема в том, что эти варианты не показывают вывод 0.
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Проблемы с RS232
« Ответ #7 : 19 Июля, 2017, 13:07:47 »

То есть если читать из порта командой cat или с помощью minicom, то нулей нет? Тогда, вероятно, проблема в том как Вы открываете или конфигурируете порт.
Записан

Genues

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 49
Re: Проблемы с RS232
« Ответ #8 : 19 Июля, 2017, 13:36:04 »

Т.к. никакой символ не связан с байтом ноль, то понятно, что никакой терминал не будет ничего печатать.
Я ставил такой эксперимент - писал в цикле в порт железки с компьютера примерно такую посылку char("-") char(0) char("+")
Minicom печатает "-+-+-+-+-+-+-+-+-+-..."
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Проблемы с RS232
« Ответ #9 : 21 Июля, 2017, 15:59:36 »

Проверил командой "od -x < /dev/ttySP1". Если отправлять \0 по RS232, то нули видны. Если отключить кабель - нулей нет.
Записан

Genues

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 49
Re: Проблемы с RS232
« Ответ #10 : 24 Июля, 2017, 10:13:52 »

Вроде бы решилось закрытием порта и открытием его заново.
Записан