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

 
 
> Непонятки с UDP у SAM7S64
sgrig
сообщение May 24 2007, 07:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 4-11-05
Из: Tomsk
Пользователь №: 10 464



Зашел в тупик, бьюсь не первый день. Может, что подскажете?

Делаю HID-устройство на SAM7S64.
Обслуживаю прерывание от EP0 стандартно: получаю запрос, разгребаю его и отправляю в ответ дескриптор или репорт. Для справки: размер EP0 равен 8 байтам, а дескрипторы и репорты могут быть больше.

Суть проблемы:
Если перед загрузкой в FIFO очередной порции данных флаг TXCOMP опрашиваю поллингом в цикле (так сделано в примере HID mouse от Atmel) - все работает как надо, вопросов нет. Но крутиться в прерывании как-то некрасиво.
Если же я начинаю делать "подкачку" данных в прерывании по TXCOMP, то, почему-то, не отправляется уже вторая порция данных.

Например, обрабатывается запрос хоста GET_DESCRIPTOR_DEVICE:
1) по прерыванию от EP0 выгребаю запрос из FIFO
2) формирую дескриптор устройства
3) первые 8 байт дескриптора загружаю в FIFO и поднимаю TXPKTRDY
4) жду прерывания от TXCOMP - и оно приходит
5) сбрасываю TXCOMP
6) очередную порцию дескриптора загружаю в FIFO и поднимаю TXPKTRDY
и ничего не передается, хост ждет некоторое время и обрывает транзакцию IN.

Про необходимость правильной реакции на обрыв транзакции знаю.
Где могут быть грабли? Любые соображения приму с багодарностью.

PS. Обратите внимание, что в случае поллинга флага TXCOMP все работает как часы, поэтому обсуждать правильность реализации протокола, видимо, не имеет смысла.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sgrig   Непонятки с UDP у SAM7S64   May 24 2007, 07:35
- - KAlex   Цитата(sgrig @ May 24 2007, 11:35) 5) сбр...   May 24 2007, 08:24
|- - sgrig   Цитата(KAlex @ May 24 2007, 15:24) Попроб...   May 24 2007, 08:35
|- - KAlex   Вот кусок рабочего кода. Никаких прерываний. AT91F...   May 24 2007, 09:32
|- - sgrig   Цитата(KAlex @ May 24 2007, 16:32) Вот ку...   May 24 2007, 12:45
- - KAlex   Цитата(sgrig @ May 24 2007, 11:35) Наприм...   May 24 2007, 13:17
|- - sgrig   Цитата(KAlex @ May 24 2007, 20:17) О...   May 24 2007, 14:40
|- - KAlex   Цитата(sgrig @ May 24 2007, 18:40) Ведь T...   May 25 2007, 07:41
|- - sgrig   Попробовал и это. Не помогло. Пойду напьюсь, может...   May 25 2007, 09:52
|- - KAlex   Цитата(sgrig @ May 25 2007, 13:52) Попроб...   May 25 2007, 10:15
|- - sgrig   Цитата(KAlex @ May 25 2007, 17:15) Тоже...   May 25 2007, 10:28
|- - Calculator   Цитата(sgrig @ May 25 2007, 16:28) Наприм...   May 28 2007, 05:26
|- - sgrig   Цитата(Calculator @ May 28 2007, 12:26) Н...   May 28 2007, 09:10
- - YKonstantin   Цитата(sgrig @ May 24 2007, 10:35) 3) пер...   May 28 2007, 17:38
|- - sgrig   Цитата(YKonstantin @ May 29 2007, 00:38) ...   May 29 2007, 03:36
|- - YKonstantin   А вот еще вариант : может слишком долго в прерыван...   May 29 2007, 05:26
|- - sgrig   Цитата(YKonstantin @ May 29 2007, 12:26) ...   May 29 2007, 07:47
|- - YKonstantin   Цитата(sgrig @ May 29 2007, 10:47) Как я ...   May 29 2007, 07:57
|- - sgrig   Цитата(YKonstantin @ May 29 2007, 14:57) ...   May 29 2007, 08:35
|- - YKonstantin   Цитата(sgrig @ May 29 2007, 11:35) При от...   May 29 2007, 09:02
|- - sgrig   Цитата(YKonstantin @ May 29 2007, 16:02) ...   May 29 2007, 11:37
|- - YKonstantin   Цитата(sgrig @ May 29 2007, 14:37) То ест...   May 29 2007, 11:51
|- - sgrig   Цитата(YKonstantin @ May 29 2007, 18:51) ...   May 29 2007, 12:08
- - Serg_Sm   Подскажите по очень похожему вопросу - в теме реше...   Mar 28 2016, 13:58
|- - misyachniy   Цитата(Serg_Sm @ Mar 28 2016, 15:58) 1) п...   Mar 30 2016, 18:03
|- - Serg_Sm   Цитата(misyachniy @ Mar 30 2016, 21:03) Э...   Apr 1 2016, 06:31
- - aaarrr   Нет, так нельзя. В приведенной цитате сказано, что...   Apr 1 2016, 12:20
|- - Serg_Sm   Цитата(aaarrr @ Apr 1 2016, 15:20) Нет, т...   Apr 1 2016, 12:33
|- - aaarrr   Цитата(Serg_Sm @ Apr 1 2016, 15:33) Указа...   Apr 1 2016, 12:55
|- - Serg_Sm   Цитата(aaarrr @ Apr 1 2016, 15:55) Это зн...   Apr 1 2016, 12:55
- - Serg_Sm   Так все-таки, подскажите - запрос GetDeviceDescrip...   Apr 15 2016, 10:29
|- - misyachniy   Цитата(Serg_Sm @ Apr 15 2016, 13:29) Так ...   Apr 15 2016, 15:38
|- - Serg_Sm   Цитата(misyachniy @ Apr 15 2016, 19:38) П...   Apr 15 2016, 19:43
|- - misyachniy   Цитата(Serg_Sm @ Apr 15 2016, 22:43) RESE...   Apr 16 2016, 12:29
- - Serg_Sm   Цитата(misyachniy @ Apr 16 2016, 16:29) В...   Apr 18 2016, 06:22
|- - misyachniy   Цитата(Serg_Sm @ Apr 18 2016, 09:22) RESE...   Apr 18 2016, 17:20
|- - Serg_Sm   Цитата(misyachniy @ Apr 18 2016, 20:20) Н...   Apr 19 2016, 06:54
- - Serg_Sm   Всё, вроде разобрался)) Теперь работает везде где ...   Apr 21 2016, 14:20


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

 


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


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