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

 
 
> Переподключение USB VCP для stm32f105
Still Enemy
сообщение Mar 13 2015, 13:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-01-15
Из: Нижний Новгород
Пользователь №: 84 817



Дано: есть ПЛИС на базе МК stm32105. К ней прикручен usb, программно поднят cdc по примерам от st и допилены операции приёма/передачи. В неопределённый момент usb кабель выдергивается(возможно даже в момент передачи/приёма, но это не суть). Через некоторое время подключается обратно.
Найти:
1)как программно отлавливать отключение usb кабеля? что при этом не плохо бы сделать?
2)как собственно программно отлавливать обратно подключенный кабель?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Still Enemy
сообщение Mar 16 2015, 13:32
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-01-15
Из: Нижний Новгород
Пользователь №: 84 817



Я полазил по коду. В обработчик Connection/Disconnection event Interrupt программа в действительности и не может пройти, ибо замаскированы SRQINT и OTGINT. Хотя собственно эти обработчики, кроме как сброс бита прерывания, ничего не делают.
Почему входит в Suspend mode тоже понятно:
Цитата
Выдержка из usb nutshell.
Вход в Suspend Mode
Устройство USB приостанавливается (переходит в режим Suspend), когда на шине нет активности более чем 3.0 мс. В течение следующих 7 мс устройство должно отключиться, и не потреблять ток больше, чем заданный ток suspend. Таким образом, через 10 мс после прекращения активности шины ток потребления от неё не должен превышать suspend current. Для поддержания состояния соединения к приостановленному хабу или хосту, устройство во время режима Suspend должно все еще предоставлять питание на pull up нагрузочный резистор, определяющий выбор скорости.

Но всё равно не понятно чего не хватает устройству для работы... Почему то при повторном подключении кабеля обрабатывается один раз Handle Reset Interrupt->Handle Enumeration done, а не два раза как при первом соединении. Хотя почему кидает USBSUSP при первом подключении кабеля, так и не стало ясно. Так же почему то перестало кидать прерывание USBSUSP при отключении кабеля, чудеса... И еще не понятно, почему не формируются прерывания при подключении/отключении кабеля после второго подключения кабеля. Вопросов много, ответов нет...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Still Enemy   Переподключение USB VCP для stm32f105   Mar 13 2015, 13:13
- - Still Enemy   Вообще ни у кого ни одной идеи нет? Никто не сталк...   Mar 14 2015, 12:39
- - smalcom   VBUS вообщето пропадает.   Mar 14 2015, 20:11
|- - toweroff   Цитата(smalcom @ Mar 14 2015, 23:11) VBUS...   Mar 14 2015, 20:53
- - A. Fig Lee   В ст шной библиотеке есть ивенты и на дисконнект и...   Mar 14 2015, 23:38
|- - toweroff   Цитата(A. Fig Lee @ Mar 15 2015, 02:38) В...   Mar 14 2015, 23:47
|- - Still Enemy   Цитата(A. Fig Lee @ Mar 15 2015, 02:38) В...   Mar 16 2015, 09:23
- - toweroff   А устройство после отключения кабеля остается с вк...   Mar 16 2015, 15:05
|- - Still Enemy   Цитата(toweroff @ Mar 16 2015, 18:05) А у...   Mar 16 2015, 16:08
|- - Still Enemy   Цитата(toweroff @ Mar 16 2015, 18:05) А у...   Mar 17 2015, 09:04
- - smalcom   во. значит по событию ПО пытается вызвать неопреде...   Mar 18 2015, 09:13
|- - Still Enemy   Цитата(smalcom @ Mar 18 2015, 12:13) во. ...   Mar 18 2015, 10:35
- - Still Enemy   Хочу поднять старую тему, ибо я решил проблему. Мо...   May 21 2015, 08:24
- - Сергей Борщ   Нет, так лучше не чинить. Если потом все же по как...   May 21 2015, 10:25


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

 


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


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