|
|
  |
Нужна свежая идея... |
|
|
|
Jul 28 2006, 09:47
|

Участник

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530

|
Цитата(Сергей Борщ @ Jul 28 2006, 11:35)  Цитата(_VoRoN_ @ Jul 28 2006, 10:23)  В качестве драйвера RS485 использую MAX487. На выходе A сигнал нормальный, а вот на B, вместо инверсии A присутствует сигнал повторяющий A, но с гораздо меньшей амплитудой. В чем может быть дело?
Если схема вроде _Sam_ или моей, т.е с побитным отключением передатчика, то симптомы очень похожи на отсутствие растяжек. Если обычная - скорее всего перепутаны входы данных и включения передатчика. Схема собрана по образу и подобию вашей. Дело значит обстоит так (в пред. посте я перепутал): на выходе A сигнал очень слабый и представляет собой инверсию входного, сигнал на выходе B повторяет сигнал на A, но с нормальной амплитудой. Растяжки стоят в соответствии с вашей схемой.
|
|
|
|
|
Jul 28 2006, 10:16
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(_VoRoN_ @ Jul 28 2006, 15:47)  Дело значит обстоит так (в пред. посте я перепутал): на выходе A сигнал очень слабый и представляет собой инверсию входного, сигнал на выходе B повторяет сигнал на A, но с нормальной амплитудой. Растяжки стоят в соответствии с вашей схемой. Если вы запамятовали, то напоминаю, что сигнал на выходе драйвера дифференциальный и наблюдать его нужно не относительно GND, а непосредственно между сигналами A и B. Например, на сигнал A щуп осциллографа, а на сигнал B землю щупа осциллографа. При лог.1 на входе драйвера на выходе должно быть A > B, при лог. 0 на входе B > A.
|
|
|
|
|
Jul 28 2006, 10:26
|

Участник

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530

|
Цитата(rezident @ Jul 28 2006, 14:16)  Цитата(_VoRoN_ @ Jul 28 2006, 15:47)  Дело значит обстоит так (в пред. посте я перепутал): на выходе A сигнал очень слабый и представляет собой инверсию входного, сигнал на выходе B повторяет сигнал на A, но с нормальной амплитудой. Растяжки стоят в соответствии с вашей схемой.
Если вы запамятовали, то напоминаю, что сигнал на выходе драйвера дифференциальный и наблюдать его нужно не относительно GND, а непосредственно между сигналами A и B. Например, на сигнал A щуп осциллографа, а на сигнал B землю щупа осциллографа. При лог.1 на входе драйвера на выходе должно быть A > B, при лог. 0 на входе B > A. Да нет, я не забыл, просто запутался  Схема нормально работает на 9600 и 38400, однако на на 115200 проявляется потеря данных ~10%.
|
|
|
|
|
Jul 28 2006, 20:53
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(_VoRoN_ @ Jul 28 2006, 23:43)  Для переключения использовать МК - распоряжение начальства. Теперь все с начала... Зачем сначала :-) диод-резистор-кондер заменяются на MK :-) До тех пор пока не разберется с длительностью фрейма - изображает одновибратор. После разборок - чеко управляет передатчиком.
Сообщение отредактировал zltigo - Jul 29 2006, 05:16
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 28 2006, 22:00
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103

|
Цитата(SasaVitebsk @ Jul 28 2006, 01:11)  Как приятно получить чёткие ответы (и множество) на вопрос который стоит передо мной, но я его не задавал. А я с RTS воюю. На Delfi проблемы с формированием задержки. У меня правда плюс. Я делаю и то и это. Ну а под своё изделие я уж как-нибудь подстроюсь. Кстати может у кого грамотный компонент есть для Delfi под COM порт. Конечно есть, еще с 3-ей Дельфи  поиском нашел свежую ссылку: TurboPower Async Professional http://sourceforge.net/projects/tpapro/
|
|
|
|
|
Aug 3 2006, 12:02
|

Участник

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530

|
Цитата(defunct @ Jul 29 2006, 02:35)  Цитата Применение AVR не является возможным. Использование UART, видимо, было бы лучшим вариантом, но увы... Класс, а чего ж тогда Вы вопрос задаете именно в этом форуме? Есть ведь и другие.. По сабжу, надежней чем "кондер-резистор-диод" Ваш конвертер с C4051 не станет. Если уж МК так почему именно такой плохой выбор? Ведь и AtTiny11/12/13, PIC12F625 запросто справятся с тривиальной задачей формирования задержки в N ms. А для того чтобы разрешить ваш вопрос достаточно удерживать линию в состоянии передачи не долее чем реакция вашего "отвечающего" девайса (вот это и как раз и будут те самые N ms). Да, с выбором контроллера вы определенно правы  На 9600 работает четко, на 38400 - через раз, а вот на 115200 вообще отказывается. Судя по осцилограмме, просто не успевает переключаться в начале, до начала информационного бита, и съедает его добрую часть. Дальше по пакету все нормально.
|
|
|
|
|
Aug 7 2006, 08:26
|

Местный
  
Группа: Участник
Сообщений: 318
Регистрация: 21-07-06
Из: Минск
Пользователь №: 18 986

|
Цитата(SasaVitebsk @ Jul 28 2006, 00:11)  А я с RTS воюю. На Delfi проблемы с формированием задержки. У меня правда плюс. Я делаю и то и это. Ну а под своё изделие я уж как-нибудь подстроюсь. Кстати может у кого грамотный компонент есть для Delfi под COM порт. Правильнее сказать, не на Delphi проблемы с формированием задержки, а под Windows. Можно формировать так: var HighT:Double; //Hi-res. timer period, uS procedure CalibT; var F:Int64; begin QueryPerformanceFrequency(F); if F=0 then F:=1; HighT:=1000000.0/F; end; procedure Delay(Tm:Integer); //uS var F1,F2:Int64; begin QueryPerformanceCounter(F1); F1:=Round(F1+Tm/HighT); repeat QueryPerformanceCounter(F2) until F2>F1; end; Но все эти программные задержки под Win на уровне юзера - фикция. Вставьте царапнутый CD в привод и наслаждайтесь полным зависоном десяток секунд  Что касается RTS, то в Async Professional под не-NT Win он переключается по концу посылки, который определяется прямым чтением регистра UART. Под NT Win используется режим RTS_TOGGLE, реализованный в стандартом драйвере COM-порта. Только работает он тормознуто.
--------------------
|
|
|
|
|
Aug 8 2006, 04:41
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(_VoRoN_ @ Aug 8 2006, 00:38)  Если кто знает, посоветуйте пожалуйста толковый компонент под С++ Builder 6 или Delphi 7 для работы с COM портом  Использовал "TMS Async32". Впечатления положительные. http://www.tmssoftware.com/
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|