#1 2018-12-24 15:12:51

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Коммуникация RS-232

Добрый день.
Есть проблемка. Задача - управление устройством по RS-232 протоколу с помощью Arduino Uno R3.
Используется SoftwareSerial на 2 случайных пина (в данном случае 6 и 7).
RS-232 Max3232 DB9 female
Когда включаю через эту ерунду, к разъему "мама" которой соплями воткнут разъем "папа" взятый с задней стенки какого-то Pentium 1 компьютера - пациент (пока что факс модем) успешно принимает команды и отвечает на них. При подаче сигнала или ответе модема на самом модеме загораются соответствующие LED'ы RD и SD. Тестовый скетч, меняющий TTL уровень TX ноги Arduino показывыет что на пине TX(3) относительно GND(5) разъема DB9 (M) допустимые уровни RS-232 сигнала (+5.5 и -5.5V).

Поскольку мне нужен разъем "папа" а не "мама", а отпаивать и менять - варварство, взял такую штуку
Max3232
и напаял к ней штырьки в 2 ряда для полной совместимости с разъемами на материнских платах старых компьютеров, подключил туда DB9 напрямую. В результате - на той же ноге уровни те же и меняются, но при подключении к факс-модему RD и SD сразу загораются и горят непрерывно, модем на команды не отвечает.

Идеи будут у кого-то почему так? Я конечно понимаю что модем это пациент для тестов, мне нужно просто отладить софт для отправки строковых команд в порт и получения ответа, после чего переходить в условия приближенные к реальности...

Добавление: с другим оборудованием второй вариант тоже не работает. На той стороне метрового COM-COM кабеля при питании 3.3V слишком низкое напряжение, если питание +5V то уровень выставляется на +-7V и это уже обязано работать.

Остання редакція Messiah (2018-12-24 19:39:30)

Неактивний

#2 2018-12-24 19:39:33

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Коммуникация RS-232

Удалось методом танцев с бубном заставить модем ответить на самоделку на базе max3232. Включил другое устройство - не отвечает, вернул назад - та же история с постоянно горящими индикаторами RX / TX на модеме. Если подавать 2 секунды высокий и 2 секунды низкий сигнал на TX в цикле - на выходе напряжение порядка 4V в плюс или в минус. На входе при этом 1.3 вольта непонятно откуда берущиеся (при выключенном модеме) либо напряжение того же знака уровнем около 8 вольт если модем включен. Это равносильно очень медленной передаче данных 1 бит в 2 секунды. При этом на ноге Arduino отвечающей за RX уровень 2.76 или 3.16 вольт в зависимости от состояния выхода... и то и другое логическая единица, бред какой-то но один раз оно заработало.

Кажется что неисправный max3232, так как на выходе RS232 порта может быть как +-7V так спокойно и рабочий уровень +-4V (что ниже требуемого стандартом) и даже при одном включении видел 3.8 с постоянным знаком, не зависящим от того что подается на логический вход... Цепь RX работает - если кабель не подключен на логике может быть все что угодно от 0 до 3, если же на входе замкнуть RX на +5 получим сразу логический 0.

Остання редакція Messiah (2018-12-24 20:21:46)

Неактивний

#3 2018-12-25 10:54:55

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Коммуникация RS-232

На 3232 конденсаторы снизу что ли?

Неактивний

#4 2018-12-25 13:12:11

Messiah
Учасник
Зареєстрований: 2018-08-10
Повідомлень: 25

Re: Коммуникация RS-232

Да

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму