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

 
 
> Управление потоком RTS/CTS, управление RTS/CTS на AT91sam7x256
SergeySpbRu
сообщение Oct 20 2010, 08:35
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 22-10-09
Пользователь №: 53 129



Добрый день!

Использую м/с AT91sam7x256. Требуется принимать/передавать байты от PC по RS-232 с использованием протокола RTS/CTS.

Сначала сделал программное управление потоком, т.е. устанавливал сигнал RTS в ‘1’ (TTL на AT91sam7x256) когда входной буфер занят на 80%, но PC при неактивном сигнале CTS продолжала слать еще несколько байт с данными.

Вторым вариантом использовал пример ‘basic-usart-hw-handshaking-project’ IAR 5.4, там используется PDC с буфером 1 длинной байт, но при приеме каждого байта ‘скачет’ сигнал RTS на короткое время пока не вызовется функция ‘USART_ReadBuffer’.

Если кто то делал что то подобное (я надеюсь не первый делаю такой вариант), помогите пожалуйста.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Oct 20 2010, 09:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Сигналы квитирования RTS/CTS являются "уведомительными", а не "запретительными". То бишь они не привязаны аппаратно к запрету/разрешению передачи потока в UART COM-порта ПК (там обычно клон или аналог 16С550 применяется). Поэтому (с учитом наличия FIFO) следует понимать: после выдачи "уведомления" с помощью RTS нужно быть готовым, что успеют "прилететь" еще несколько байт размером с FIFO передатчика.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Oct 20 2010, 10:29
Сообщение #3


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(rezident @ Oct 20 2010, 12:30) *
Сигналы квитирования RTS/CTS являются "уведомительными", а не "запретительными". То бишь они не привязаны аппаратно к запрету/разрешению передачи потока в UART COM-порта ПК (там обычно клон или аналог 16С550 применяется). Поэтому (с учитом наличия FIFO) следует понимать: после выдачи "уведомления" с помощью RTS нужно быть готовым, что успеют "прилететь" еще несколько байт размером с FIFO передатчика.


По моему UART при получении CTS должен закончить передачу байта и остановиться в ожидании разрешения на передачу.


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:32
Рейтинг@Mail.ru


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