реклама на сайте
подробности

 
 
> DTR,RTS,ComPort из-под Windows, Как задать направление MAX1480?
repairDV
сообщение Dec 29 2007, 03:52
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



В стендовой программке связь между компьютером и девайсом вначале шла по COM-порту, с передачей в обе стороны, потом переделал на стык RS-485 через MAX1480, но только в одном направлении, некогда было разбираться. Сейчас хочу сделать двунаправленный обмен, но не могу врубиться, как. Программка из-под Delphi, использую компоненты для COM-порта "ComPort Library version 3.10 by Dejan Crnila" для Delphi 7. На работе на рабочем оборудовании для задания направления для этой микросхемы используются сигналы ком-порта RTS и DTR, но там компьютеры под DOS. Я ещё сам как-то черкнул программку в Турбоассемблере для проверки плат связи, там получается, эти 2 сигнала имеют ту длительность, какую ты им задаёшь, а здесь, в Delphi, стал проверять, эти 2 сигнала какие-то нестабильные, установка идёт нормально, а снятие - никакой стабильности по времени, я вначале делал снятие по событию OnTxEmpty - нестабильно, потом давай с компонентом "таймер" пытаться длительность задавать - опять нестабильно. Скорее всего, причина в незнании протокола по COM для Винды. Как тут выйти из ситуации, чем можно управлять этой микросхемой?


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
tyro
сообщение Dec 30 2007, 05:17
Сообщение #2


Любитель Кошек
*****

Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873



Цитата(repairDV @ Dec 29 2007, 06:52) *
. Как тут выйти из ситуации, чем можно управлять этой микросхемой?

Что бы не заморачиваться с Windows мы использовали платы, которые автоматически определяют направление передачи, а max1480 использовали вне PC совместно с микроконтроллерами. Но однажды в нужный момент платы под рукой не оказалось и пришлось делать самопал. Если память не изменяет (дело было давно и единичное решение), то решение было такое: отправляли байт в линию и одновременно считывали байт с линии (max1480 независимо от направления передачи выдает сигнал с линии на 13 ноге? - если это не так, то была другая мс и я все забыл и дальнейшее можно не читать) и сравнивали с переданным. (попутно выяснялось нет ли коллизии на линии). Если совпадали - передавали дальше, и так до последнего байта. После индетификации последнего байта переводили max на прием, вроде бы сигналом RTS. (Использовали другую библиотеку, но это по моему не играет роли).


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th August 2025 - 04:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016