|
|
  |
DTR,RTS,ComPort из-под Windows, Как задать направление MAX1480? |
|
|
|
Dec 29 2007, 03:52
|

Знающий
   
Группа: Свой
Сообщений: 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 для Винды. Как тут выйти из ситуации, чем можно управлять этой микросхемой?
--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
|
|
|
|
|
Dec 30 2007, 05:17
|

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

|
Цитата(repairDV @ Dec 29 2007, 06:52)  . Как тут выйти из ситуации, чем можно управлять этой микросхемой? Что бы не заморачиваться с Windows мы использовали платы, которые автоматически определяют направление передачи, а max1480 использовали вне PC совместно с микроконтроллерами. Но однажды в нужный момент платы под рукой не оказалось и пришлось делать самопал. Если память не изменяет (дело было давно и единичное решение), то решение было такое: отправляли байт в линию и одновременно считывали байт с линии (max1480 независимо от направления передачи выдает сигнал с линии на 13 ноге? - если это не так, то была другая мс и я все забыл и дальнейшее можно не читать) и сравнивали с переданным. (попутно выяснялось нет ли коллизии на линии). Если совпадали - передавали дальше, и так до последнего байта. После индетификации последнего байта переводили max на прием, вроде бы сигналом RTS. (Использовали другую библиотеку, но это по моему не играет роли).
--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
|
|
|
|
|
Dec 30 2007, 12:09
|

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

|
Цитата(repairDV @ Dec 30 2007, 08:44)  Похоже, просто придётся пока усложнять саму плату связи, на которой стоит MAX1480. Добавлять таймер, который бы запускался RTS или DTR, и включал и сбрасывал микросхему на передачу. До изучения Windows API пока руки не доходят. Если я прав насчет 13ноги - (могу посмотреть,если проект остался на службе после праздников),- то ничего добавлять (в смысле таймера) не надо - тикало как часы - PC -ведущее устройство и не менее 12 ведомых. Преобразователь уровня (типа max232) полагаю уже стоит.(таймер штука ненадежная - если ведомое устройство отвечает быстро. Под NT - минимальное время, кажется 10мс).
--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
|
|
|
|
|
Dec 30 2007, 14:14
|

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

|
Цитата(tyro @ Dec 30 2007, 22:09)  Если я прав насчет 13ноги 13 ногу никак не обойдёшь, она единственная входная. На ней действительно всё отражается, и что входит, и что выходит. Для идентификации, может быть, удобно, но, по-моему, это лишнее. Спасибо, не нужно ничего смотреть. Я уже вроде бы как этот вопрос решил. Дальше будем с приёмной стороной разбираться. Спасибо за советы.
--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|