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

 
 
> Контроль потока при обмене по USB для LPC1768
koluna
сообщение Mar 17 2013, 08:39
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Здравствуйте!

Подскажите, пожалуйста, каким образом реализовать контроль потока для CDC-устройства?
Необходимо, чтобы процессор приостановил передачу данных с хоста на время обработки данных, а потом возобновил.
Т. е., нужен аналог сигнала "CTS".

Правильно ли я понимаю, что нужно использовать нотификацию "SERIAL_STATE"?


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Mar 17 2013, 16:50
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



С CDC все проще: достаточно не забирать данные, пока процессор занят. Хост будет получать NAK'и, и, соответственно ждать.
Go to the top of the page
 
+Quote Post
koluna
сообщение May 20 2013, 14:47
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Цитата(aaarrr @ Mar 17 2013, 20:50) *
С CDC все проще: достаточно не забирать данные, пока процессор занят. Хост будет получать NAK'и, и, соответственно ждать.


Пытаюсь сделать как-то так...
Согласно разделу "11.14.2 Data transfer for OUT endpoints" даташита, дело не в заборе данных.
Правильно ли я понимаю, что если хотим, чтобы девайс слал хосту NAK, то нужно просто не очищать буфер (команда Clear Buffer)?


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 20 2013, 17:19
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(koluna @ May 20 2013, 18:47) *
Правильно ли я понимаю, что если хотим, чтобы девайс слал хосту NAK, то нужно просто не очищать буфер (команда Clear Buffer)?

Можно не очищать буфер, можно не читать и не очищать - смотря что удобнее в конкретном случае.
Go to the top of the page
 
+Quote Post
koluna
сообщение May 21 2013, 08:01
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Цитата(aaarrr @ May 20 2013, 21:19) *
Можно не очищать буфер, можно не читать и не очищать - смотря что удобнее в конкретном случае.


Цитата
11.14.2 Data transfer for OUT endpoints

...
Software can now start reading the data from the USBRxData register (Table 215). When
the end of packet is reached, the RD_EN bit is cleared, and the RxENDPKT bit is set in
the USBDevSt register. Software now issues a Clear Buffer (refer to Table 250) command.
The endpoint is now ready to accept the next packet.
...


Исходя из этого не ясно, что можно не читать... может, где-то еще написано? sm.gif
Попробуем.
Пока не получилось. Где-то баг сидит sad.gif

Кстати, а какой объем буфера у стандартного драйвера виндового (на передачу который)? Он не переполнится?


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post



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

 


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


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