Привет!
Давайте рассмотрим ситуацию. Имеется устройство на CY7C68001, подключенное к шине USB 2.0 и работающее в режиме High Speed. Для инициализации и управления микросхемой CY7C68001 имеется набортный микроконтроллер. Устройство подключено в стойке или внутри компьютерного корпуса, поэтому физический доступ к нему затруднен.
По включению компьютера иногда бывает, что устройство не енумерируется, т.е. в списке Менеджера Устройств Винды появляется неопознанное устройство. Обычно в такой ситуации рекомендуется переподключить устройство и надеяться, что оно опознается. Но в данном случае физическое переподключение затруднено.
Как быть в подобной ситуации?
Вроде напрашивается вариант сброса CY7C68001 и повторной ее инициализации микроконтроллером в случае непоявления бита HSGRANT после какого-то достаточно продолжительного таймаута. Но в случае работы в режиме Full Speed это не проходит (т.к. бит HSGRANT всегда будет равен 0).
Еще один вариант. Устройство собрано на микросхеме CY7C68013A. Тогда вообще хана. Если устройство неопознано, то невозможно осуществить загрузку фирмваре во встроенный микроконтроллер. Можно применить последовательную еепромку, но хотелось бы найти более "дубовое" и надежное решение повторной енумерации в случае какого-то сбоя. Может быть можно осуществить повторную енумерацию устройств штатными средствами Винды?
Какие будут соображения, коллеги?
--------------------
MPEG-4 - в массы!
|