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

 
 
> Контроллер повисает после перезапуска приложения, если при этом происходила передача данных по USB от контроллера приложению, at91sam7s
Bulat
сообщение Jun 24 2010, 11:30
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 12-10-06
Из: ufa
Пользователь №: 21 241



Девайс принимает данные по некому протоколу, преобразует их в нужный формат и передает по USB на ПК. Если прекратить передавать по этому протоколу данные девайсу, а затем закрыть приложение на ПК, то при следующем запуске приложения девайс нормально определяется и работает. Но, если во время приема девайсом данных и, соответственно, передачей их по USB на ПК выйти из приложения, то девайс повисает и при следующем запуске приложения уже не определяется. Приходится передергивать USB-кабель девайса и еще раз перезапускать приложение. Только после этого девайс начинает работать. Получается в FIFO UDP девайса остаются непрочитанные приложением данные. При закрытии приложения девайсу посылается команда Turn off. Чтобы очистить FIFO использовал сброс конечной точки по команде Turn off:
Код
AT91C_BASE_UDP->UDP_RSTEP |= AT91C_UDP_EPINT1;
AT91C_BASE_UDP->UDP_RSTEP &= ~(AT91C_UDP_EPINT1);

... не помогает.
По этой же команде Turn off пробовал производить программный сброс процессора и периферии 2-мя способами:
1.
Код
((void (*)())0x0000)();

2.
Код
#define AT91C_RSTC_KEY_MY        ((unsigned int) 0xA5 << 24) // (RSTC) Password
            AT91C_BASE_RSTC->RSTC_RCR = AT91C_RSTC_KEY_MY | AT91C_RSTC_PROCRST | AT91C_RSTC_PERRST;

... тоже не помогло.
Какие еще возможны решения этой проблемы?
Заранее благодарен!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jun 24 2010, 14:01
Сообщение #2


Гуру
******

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



Три раза перечитал и ничего ровным счетом не понял. Откуда получается столь парадоксальный вывод про резистор? И как именно может помешать заполненное FIFO?

Вы пытаетесь сразу "решить" проблему, тогда как на самом деле она даже еще не локализована.
Go to the top of the page
 
+Quote Post
Bulat
сообщение Jun 24 2010, 14:24
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 12-10-06
Из: ufa
Пользователь №: 21 241



Цитата(aaarrr @ Jun 24 2010, 20:01) *
Три раза перечитал и ничего ровным счетом не понял. Откуда получается столь парадоксальный вывод про резистор? И как именно может помешать заполненное FIFO?

Вы пытаетесь сразу "решить" проблему, тогда как на самом деле она даже еще не локализована.


Нарисовал структурную схему, чтобы было наглядно (см. прикрепленный файл). Изначально S1 замкнут и данные от источника данных передаются на мое устройство, а оттуда на ПК. Если сначало разомкнуть S1, а затем закрыть приложение (не отключаю USB-кабеля), а затем опять запустить приложение, то с устройством можно продолжать работать. То есть я резистор не отключал и приложение нормально повторно открыло драйвер и возобновило прием и передачу данных по USB. Если же S1 не размыкать и перезапустить приложение, то устройство перестает реагировать на запросы приложения.

Сообщение отредактировал Bulat - Jun 24 2010, 14:26
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Bulat   Контроллер повисает после перезапуска приложения, если при этом происходила передача данных по USB от контроллера приложению   Jun 24 2010, 11:30
- - aaarrr   Цитата(Bulat @ Jun 24 2010, 15:30) При за...   Jun 24 2010, 11:43
|- - Bulat   Цитата(aaarrr @ Jun 24 2010, 17:43) А кон...   Jun 24 2010, 11:55
|- - aaarrr   Цитата(Bulat @ Jun 24 2010, 15:55) Точно ...   Jun 24 2010, 12:06
|- - Bulat   Цитата(aaarrr @ Jun 24 2010, 18:06) А из ...   Jun 24 2010, 12:46
|- - aaarrr   Цитата(Bulat @ Jun 24 2010, 16:46) По иде...   Jun 24 2010, 13:11
|- - Bulat   Цитата(aaarrr @ Jun 24 2010, 19:11) Еще р...   Jun 24 2010, 13:23
|- - aaarrr   Цитата(Bulat @ Jun 24 2010, 17:23) Вы име...   Jun 24 2010, 13:40
|- - Bulat   Цитата(aaarrr @ Jun 24 2010, 19:40) Тогда...   Jun 24 2010, 13:53
- - aaarrr   Сбрасывать процессор (и, соответственно, модуль UD...   Jun 24 2010, 14:27
|- - Bulat   Цитата(aaarrr @ Jun 24 2010, 20:27) Сбрас...   Jun 24 2010, 14:46
- - aaarrr   Для начала локализовать проблему, т.е. найти где, ...   Jun 24 2010, 15:02
|- - toweroff   Цитата(aaarrr @ Jun 24 2010, 19:02) если ...   Jun 24 2010, 19:32
- - Bulat   Проблему локализовал. Если во время приема девайс...   Jun 25 2010, 08:55
- - aaarrr   Состояние STALL Bulk-точки нельзя снимать просто т...   Jun 25 2010, 09:14
- - Bulat   Цитата(aaarrr @ Jun 25 2010, 15:14) Состо...   Jun 25 2010, 09:24
- - aaarrr   Цитата(Bulat @ Jun 25 2010, 13:24) Тогда ...   Jun 25 2010, 09:33


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

 


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


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