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

 
 
> управление ADM485
vitko
сообщение Oct 3 2007, 09:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 8-03-06
Из: Kyiv, UA
Пользователь №: 15 066



Как можно заставить AVR апаратно генерить сигнал разрешение передачи DE для ADM485 при обнаружении старт бита?
Завожу сигнал передачи от MAX232 на вход Т0 и конфигурирую таймер0 на внешний сигнал по спадающему фронту, таймер должен дергать выводом ОС0А по совпадению А, задаю TCNT=(OCRА-1) чтоб нога ОС0А дергалась по первому же спаду. Но она дергается только по второму.
Можно это как то по другому организовать без внешних элементов - платка маленькая, некуда их впаивать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vitko
сообщение Oct 3 2007, 11:52
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 8-03-06
Из: Kyiv, UA
Пользователь №: 15 066



Устройство - проеобразователь RS232/485 c настраиваемой скоростью на тини2313, MAX232, ADM485. У ADM485 RE всегда разрешен, DE - включается от тини2313 только на время передачи 1 байта при обнаружении стартбита от RS232. Стартбит ловится по внешнему прерыванию, по которому включается DE. Только получается слишком большая задержка включения на 115200 - бывают сбои. Вот и думаю как выкрутиться с минимумом переделок - желательно используя возможности контроллера

А судя по даташиту таймер/счетчик должен ловить каждый фронт/спад внешнего сигнала:

An external clock source applied to the T1/T0 pin can be used as Timer/Counter clock
(clkT1/clkT0). The T1/T0 pin is sampled once every system clock cycle by the pin synchronization
logic. The synchronized (sampled) signal is then passed through the edge
detector. Figure 38 shows a functional equivalent block diagram of the T1/T0 synchronization
and edge detector logic. The registers are clocked at the positive edge of the
internal system clock (clkI/O). The latch is transparent in the high period of the internal
system clock.
The edge detector generates one clkT1/clkT0 pulse for each positive (CSn2:0 = 7) or negative
(CSn2:0 = 6) edge it detects.

Но у меня почемо-то начинает счет со второго перепада - проверял и при счете по фронту, и по спаду...
Go to the top of the page
 
+Quote Post
alexander55
сообщение Oct 4 2007, 04:48
Сообщение #3


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



[quote name='vitko' date='Oct 3 2007, 15:52' post='302283']
Устройство - проеобразователь RS232/485 c настраиваемой скоростью на тини2313, MAX232, ADM485. У ADM485 RE всегда разрешен, DE - включается от тини2313 только на время передачи 1 байта при обнаружении стартбита от RS232.
[quote]
Все оказывается проще, чем Вы вначале нарисовали.

Я решал задачу так.
1.На ADM485 RE и DE соединены вместе.
2.При инициализации запрещение передачи (разрешение приема).
3.Перед передачей пакета разрешаю передачу (запрещается прием).
4.По окончанию передачи (прерывание TxC) ее запрещаю (разрешается прием).

PS. Не так страшен черт, как его малютки. (Афоризм).
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:27
Рейтинг@Mail.ru


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