Непонятное поведение обмена между COM портами

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

Сообщение paskal »

Происходят странные вещи при соединении через 2 COM порта между протеусом и моей программой на одном компьютере. Но проблема не в протеусе и не в программе, потому что при использовании обычной терминалки происходит то же самое.
Итак, что происходит при проверке терминалкой.
В компьютере есть физический порт (COM1), а другой я имею через самодельный переходник USB-COM на FT232BL. Запускаю 2 раза терминалку и открываю эти порты в каждой соответственно. Далее соединяю эти порты крест накрест (RX-TX,TX-RX,GND-GND). Отправляю посылку с первого порта на второй - ничего не принимается. И в обратную сторону тоже. Как будто нет соединения. Ладно. Отключаю кабель и перемыкаю каждый порт на самого себя. Т.е. соединяю RX и TX на каждом. Отправляю из тех же терминалок посылки - эхо нормально приходит. Восстанавливаю соединение кабелем между портами в обратный зад. Теперь все работает. Между терминалками нормально происходит обмен. Выхожу из терминалок, запускаю протеус и свою программу - они тоже работают (не совсем правда, но ладно мне бы с первой проблемой разобраться)
Описанный процесс танцев с бубном повторялся стабильно и неоднократно, поэтому версия с плохим контактом отвергается. Проблема похоже софтовая.
Система WinXP, терминалка - Bray Terminal.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 423
Зарегистрирован: Сб фев 21, 2009 16:11:32
Откуда: Харьков

Сообщение khomych »

я надеюсь со стороны СОМ1 стоит микруха типа МАХ232 или подобная для преобразования уровней RS232 to TTL?
и второе. была точно такаяже проблема. я грешу на FT232BL. интересно, что другая преобразователь на FT232RL. также отлично работали "телефонные ЮСБ шнурки" на преобразователях серии PL**** и CP****. такое чевство, что FT232BL толи бракованная, толи перегрел при пайке. как будто FT232BL работает на другой скорости. когда игрался с разными скоростями в терминалках то при разнице скорости в несколько раз некая информация передавалась, но всегда была с ошибками. хотел посмотреть что там шлет FT232BL осциллографом, но забил на это ((
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

Сообщение paskal »

МАХ232 там конечно стоит. Но сегодня удалось посмотреть все это осциллографом.

Сразу нашлась причина. Емкостные насосы не работают - на выходах вместо меандра постоянка, а сама МАХ232 изрядно греется.
Нашел из за чего МАХ не заводится. Я сначала соединял COM порты, потом втыкал переходник в USB. При этом получается (до того как воткнул USB) что на вход не запитанного МАХ232 поступает минусовое напяжение с COM порта компьютера.
Если отсоединить только один этот провод, запитать переходник, потом соединить, то все работает ОК.

Но это же не совсем удобно. Поэтому вопрос: как бороться? Может последовательно резистор поставить?
И еще. У меня емкости на насосе 10 мкФ, по даташиту значительно меньше. Может в этом причина?
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Друг Кота
Аватара пользователя
Сообщения: 15753
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Возможно стандартная причина - в большинстве современных материнок стоят формирователи с Z-состоянием выхода в режиме простоя (энергосбережение аппаратно/программно увязанное).
У "простых" 232-х такого режима нет.
Соответственно может возникнуть "ступор" при паузах во время обмена...
Лечение или софтовое (копать программы) или аппаратное - соорудить повторитель на стандартной 232-й на стороне прота ПК.
:beer:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

В бытовых целях применять MAX232 смысла нет. Проще использовать обычные инверторы и ограничивать напряжение на их входе резисторами. современный СОM-порт нормально принимает TTL-уровни, ему достаточно только проинвертировать сигнал. Монстры, которым нужны -12В для лог.1 давно в прошлом, современные порты работают фактически в диапазоне входных напряжений 0..12В с порогом логических уровней около 3В, а -12В оставлено для совместимости с возможным старым оборудованием.
Для этих целей запросто можно использовать м/с 555ЛН2, или 561ЛН2 если не нужны мегабитные скорости.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15753
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Не получится попроще - потребуется программно подрабатывать.
А у 232-х особенность запоминать предыдущее входное состояние. Да и куда проще - два разъёма, хвостик на разъём USB по +5 вольтей кормежки и собственно ST232 с конденсаторами обвязки. В результате повторитель каналов RX и TX.
Речь там не об уровне сигнала, а о его полной блокировке с переходом в Z-состояние.
(Когда-то весьма пакостная проблема с работой фискальных регистраторов от "экспотрейда" на укртелекоме - проги старые, а материнки на компах пошли новые с этим "особым состоянием" ).
8)
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Чего там программно подрабатывать? MAX232 всего лишь согласует уровни. нынче достаточно их просто инвертировать и ограничить напряжение.
MAX232 нужна там где нужно соответствие спецификациям RS-232 интерфейса.
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

paskal писал(а):и при соединении через 2 COM порта между протеусом и моей программой на одном компьютере.
Для этого, вообще, не нужно физических портов, достаточно виртуального коннектора из VSPE. Все работает, проверено.
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

Сообщение paskal »

Alexeyslav писал(а):В бытовых целях применять MAX232 смысла нет. Проще использовать обычные инверторы и ограничивать напряжение на их входе резисторами.
Совсем не проще. Да, современные порты срабатывают от ТТЛ уровней. Но на передачу они по-прежнему выдают +/-9 вольт. На вход цифровой логики это нельзя подавать однозначно. Резисторы тоже не выход. Потому что есть порты где выход 0/+5. Тогда от одних ком портов принимать будет, от других нет. А у меня еще питание 3 или 5 вольт переключается перемычкой. Короче с инверторами такой огород городить придется... лучше проверенный max232.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

Сообщение paskal »

Goodefine писал(а):
paskal писал(а):и при соединении через 2 COM порта между протеусом и моей программой на одном компьютере.
Для этого, вообще, не нужно физических портов, достаточно виртуального коннектора из VSPE. Все работает, проверено.
А вот это интересная вещь! Я сам о такой думал, но не знал что это есть.
Жаль только что она платная на 64 бит.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Стабилитроном на 3.3В вход защищается. Этого хватает чтобы напряджение на входе оставалось выше уровня срабатывания и 3.3В и 5В логики. Хотя для 3.3В логики лучше стабилитрон на 2.7В.
Или вообще инвертор сделать на транзисторе, тогда пофиг на входное напряжение.
В принципе даже этого не нужно - можно обойтись ограничивающим резистором и защитными диодами микросхем, при условии что схема в целом потребляет больше 10мА иначе она полностью может запитаться от входного сигнала.
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

paskal писал(а): Жаль только что она платная на 64 бит.
Как бы платная. При запуске скромно напоминает что для 64-ки требуются подписанные дрова, и просит дать денег. Но если не идти на поводу и сказать свое железное нет в диалоговом окне, то запускается и работает как ни в чем не бывало. Т.е. плата исключительно на совести пользователя.
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

А com0com не пойдет? Бесплатное. В комплекте есть софт для проброски порта даже по сети.
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

Alexeyslav писал(а):А com0com не пойдет?
Для х64 системы, драйвер у них есть, но не подписанный, потому для работы нужно будет загружаться в тестовом режиме.
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Для 7x64 есть решение, правда для 8x64 способ уже не проходит но тоже возможно.
Контактная информация:
Ответить

Вернуться в «Интеграция с ПК»