USB-концентратор останавливается при запросе дескрипторов

Я начал с проекта Atmel Start:

Моя цель - подключить USB-концентратор к этой демонстрационной плате: SAM V71 Xplained Ultra Evaluation Kit

Проблема в том, что atmel не поставляет драйвер концентратора, и они не ответили на наши вопросы по этому поводу. Поэтому я пытался написать один на основе MS и других драйверов, которые они предоставляют.

В настоящее время у меня возникает проблема при подключении USB-концентратора. Он возвращает STALL, когда я отправляю запрос GET_DESCRIPTOR с типом DEVICE. Это кажется мне странным, потому что другие устройства USB, такие как флэш-накопитель или преобразователь USB в последовательный порт, не отвечают STALL на тот же запрос. Фактически, флэш-накопитель проходит весь процесс перечисления и установки msc, так что я могу успешно читать и записывать на него.

Я обнаруживаю остановку через единственную точку останова, установленную в секции обработки STALL манипулятора трубы.

Я читал спецификацию универсальной последовательной шины Rev 2.0, но я не могу найти никаких различий между способом чтения дескрипторов из концентраторов и других устройств. И я не понимаю, почему STALL когда-либо отправлялся в ответ на запрос GET_DESCRIPTOR.

Спасибо

1 ответ

На всякий случай это полезно для всех остальных. Проблема, с которой я столкнулся, была вызвана настройками оптимизации компилятора. В частности, я изменил этот параметр на: "Нет (-O0)", после изменения этого значения по умолчанию у меня не возникло проблем при перечислении USB-устройств. Изображение конфигурации оптимизации

Мой коллега обнаружил это из-за, казалось бы, не связанной проблемы, которая вызывала аппаратные неисправности и неисправности шины на чипе, они также были исправлены путем переключения обратно на -O1. Кажется, на этом чипе нужно использовать зерно с солью или нет -O0.

Другие вопросы по тегам