Нужна помощь с нестандартным RS232

Я собрал преобразователь UART-RS232 на основе max232, и он работает хорошо... но не для того, что мне нужно :)

Согласно техническому описанию Максима, напряжение бокового сигнала RS232 теоретически должно быть +/-10 В (5 В * 2), но на практике оно составляет +/- 8 В.

Это не проблема, когда вы используете интерфейс на стандартных портах RS232, но в моем случае он просто не работает, и, исследуя печатную плату интересующего меня устройства, которая открывает разъем DB9, я обнаружил, что это не так. настоящий стандартный порт RS232, но контакты RX и TX подключены через 2 транзистора к интерфейсу микропроцессора UART.

Этот тип порта хорошо работает с ПК RS232, который использует уровни напряжения +/-12 В, поэтому я подозреваю, что выход max232 просто слишком низок для него.

Есть ли способ увеличить выход max232 +/-8v до +/-12v?? Если будет полезно могу взять 12в с аппарата.

Редактировать: как насчет «объединить» два идентичных сигнала RS232 (у max232 есть два преобразователя, но я фактически использую только один из них), формируя новый сигнал, равный удвоенному уровню напряжения? Является ли это возможным?

Edit2 - 2013/05/22: уровни напряжения сигнала не кажутся проблемой только потому, что это устройство работает с адаптером USB-RS232, и в этом случае уровни сигнала составляют около +/- 6,5 В (по крайней мере, на моем преобразователь).

Я нарисовал схему интерфейса с платы устройства, чтобы лучше понять, что происходит :)схема устройства

Примечание: я не знаю, является ли этот диод стабилитроном или нет.

Затем я провел несколько новых тестов, используя данные сниффинга моего макета прямо из кабеля.

Я обнаружил, что часть RS232-RX работает так, как ожидалось : если я «стимулирую» устройство, отправляющее данные по RS232-TX не с max232, а с последовательного порта ПК, устройство отвечает, как и ожидалось, на линии RS232-RX и max232. переводит полученные сигналы, как ожидалось.

Итак, на данный момент мне нужно знать, в чем линия вывода max232 и линия вывода последовательного порта моего ПК отличаются. Что мне попробовать на ваш взгляд??

Edit3 23/05/2013: Просто чтобы лучше объяснить, о чем я говорю...

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Я думаю, что стоит выяснить, почему он не соответствует спецификации таблицы данных - это может быть простое решение.
На самом деле с нагрузкой 3K +/- 7,3 В соответствует спецификации, которую я вижу для MAX232. Я не могу придумать простого решения, вы можете использовать DS1488, как на ПК, но тогда вам понадобится собственный источник питания +/- 12 В.
@ pjc50 8v на самом деле соответствует спецификации и соответствует техническому описанию: «Типичный размах выходного напряжения драйвера составляет ± 8 В при нагрузке номинальным 5 кОм приемником RS-232 и VCC = + 5 В». 10 В являются теоретическими только потому, что они исходят от удвоителя напряжения.
@PeterJ Думаю, я изучу ваше решение ... если бы я мог переработать ds1488 из старого мобильного телефона, это было бы отличным решением. 12В в моем случае не проблема.
Здесь проблема с двумя переменными. Если связь с/с ПК работает (предположительно через терминальную программу), связь с/с UART через MAX232 не работает, а уровни напряжения вне MAX232 соответствуют спецификации, проблема, по-видимому, связана с UART. а не железо - т.е. протокол/скорость/данные, а не уровни сигнала. Вы всегда можете преобразовать данные последовательного порта ПК в UART с помощью другого MAX232, а затем обратно в RS232, чтобы действительно понять, играет ли роль напряжение.
Если вы уверены, что проблема заключается в недостаточном напряжении (по сравнению с ожидаемым, независимо от спецификации), временная параллельная работа другого резистора с резистором в приемнике для уменьшения эффективного сопротивления может стать способом проверки. Обычно использование резистора в качестве преобразователя уровня RS232 приведет к короткому замыканию инвертора, но если устройство работает с компьютерным портом RS232, смысл инверсии должен быть правильным.
Если устройство просто выставляет контакты UART микропроцессора, то вам либо не нужен преобразователь UART->RS232 для связи с ним (перейдите от микропроцессора к микропроцессору, с любым переключателем уровня между ними, если таковой имеется), либо используйте два UART-> Преобразователи RS232 (в основном дают плате правильный интерфейс RS232, который соединяется с соответствующим интерфейсом RS232, который вы создали на своей стороне).
Распространенными ошибками при подключении RS232 являются настройки UART. (Терминалу Windows не нравились изменения настроек при «Подключении») и плохие физические соединения (очень тонкие/плохого качества или поврежденные провода или разъемы). Когда вас вызвали на фабрику из-за еще одной «проблемы», которая требовала удаления серийных лидов, вы начинаете обращать внимание и платить деньги за хорошие лиды. Я ненавижу RS232 по кабелю Ethernet!
Пожалуйста, перефразируйте свой вопрос. «в которой выходная линия max232 и выходная линия последовательного порта моего ПК отличаются» не имеет для меня смысла.
@Madmanguruman, пожалуйста, взгляните на последнее изображение. Я предполагаю, что есть какая-то разница между тем, что выводится через последовательный порт моего ПК, и тем, что поступает от MAX232, только потому, что первый работает, а второй нет :) Если я обнюхиваю отправленные данные, они одинаковы как для порта ПК, так и для max232.
@Madmanguruman Логические уровни UART «инвертированы» по сравнению с уровнями RS232, на самом деле это не может работать. Передаваемые данные кажутся такими же, если я нюхаю их через последовательный порт ПК, реализующий специальный RS-232. Под «другим» я подразумеваю, например, что-то вроде «нагрузки» на этой линии.
Наконец-то я нашел проблему :) Интересующее устройство делает вид, что использует бит четности ... но в моем случае я думаю
... беспроводной модуль, подключенный к ПК, вероятно, использует бит четности. Есть ли способ, по вашему мнению, «повторно сгенерировать» бит четности на max232 непосредственно перед передачей данных на конечное интересующее устройство?
@mrfree, генерация четности происходит в микро или чем-то еще, что управляет MAX232. Кстати, если вы решили исходную проблему, вы можете ответить на нее самостоятельно, чтобы она не оставалась без ответа, и это может помочь кому-то в будущем, особенно если вы не против добавить то, с чем вы взаимодействуете.

Ответы (1)

Проблема заключалась в недокументированном четном бите четности, необходимом для устройства, которым мне нужно управлять (охранная панель Bentel Kyo300), но даже если я обнаружил, что проблема заключалась в ограничении последовательных беспроводных модулей, не позволяющем повторно генерировать бит четности на конечный пункт назначения.

Эти последовательные беспроводные адаптеры на самом деле имеют фиксированную последовательную конфигурацию 8N1 ... Я решил купить более качественные и настраиваемые последовательные беспроводные модули (APC220) :)

Я многое узнал о последовательной связи на аппаратном уровне во время этого обсуждения, поэтому я счастлив, даже если потратил еще несколько евро ;)

Теперь, когда вы разместили свой собственный ответ, не забудьте принять его! В противном случае вопрос останется открытым в программе и будет периодически подниматься и влиять на статистику.