Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > AVR |
|
||||||||||||
22.7. Установка адресаАдрес USB устройства устанавливается согласно USB протоколу:
Единственный принимаемый контроллером адрес - это адрес, который хранится в UADD. Не должна проводиться одновременная запись в ADDEN and UADD. В UADD после включения или USB сброса хранится значение по умолчанию 0x00. ADDEN сбрасывается аппаратно в следующих случаях:
Когда этот бит сброшен, используется адрес устройства по умолчанию 0x00. 22.8. Приостановка, пробуждение и возобновление (resume) После 3 мс, в течение которых USB линия неактивна, контроллер переходит в режим full speed и возникает прерывание SUSPI (если разрешено). После этого программа может установить бит FRZCLK. В зависимости от архитектуры программного обеспечения ЦПУ также может перейти в режим "idle" для уменьшения потребляемой мощности. Существует два способа выхода из режима приостановки:
Нет никакой связи между прерываниями SUSPI и WAKEUPI: прерывание WAKEUPI возникает как только появляется сигнал вывода из режима "idle" на линиях данных. Таким образом, прерывание WAKEUPI может возникнуть даже если контроллер не приостановлен. При возникновении прерывания WAKEUPI, если бит SUSPI уже был установлен, то он сбрасывается аппаратно. При возникновении прерывания SUSPI, если бит WAKEUPI уже был установлен, то он сбрасывается. 22.9. Отсоединение Значение бита DETACH после сброса установлено в "1". Ренумерация (re-enumeration ) устройства возможна путем установки и сброса бита DETACH. Установка DETACH отключает подтяжку на линии D+ или D- (в зависимости от выбранного режима full или low speed ). После чего сброс бита DETACH приводит к включении подтяжки на линии D+ или D- .
22.10. Удаленное пробуждение "Удаленное пробуждение" - это единственная команда, которая может быть послана устройством по своей собственной инициативе. Но для этого изначально необходимо получить запрос DEVICE_REMOTE_WAKEUP от хоста.
22.11. Запрос останова (STALL) Для каждой конечной точки останов осуществляется с помощью 3 битов:
Для посылки подтверждения (handshake) stall при следующем запросе должен быть установлен бит STALLRQ. На все последующие запросы будет посылаться stall, пока не будет установлен бит STALLRQC. Установка бита STALLRQC приводит к автоматическому сбросу бита STALLRQ. Бит STALLRQC аппаратно сбрасывается сразу после программной установки. Таким образом, программа никогда не считает из этого бита 1. После отправки каждого stall подтверждения аппаратно устанавливается флаг STALLEDI и возникает прерывание EPINTx (если разрешено). Входящие пакеты будут игнорироваться (RXOUT и RWAL не будут устанавливаться). Когда хост пошлет команду на сброс STALL, от программы требуется лишь установить бит STALLRQC и сбросить конечную точку. 22.11.1. Некоторые особенности управляющих конечных точек Запрос SETUP всегда принимается (в ответ посылается ACK). Если для управляющей конечной точки установлено отвечать stall на все запросы, а приходит запрос SETUP, то этот запрос должен быть принят (в ответ посылается ACK),флаги STALLRQ и STALLEDI автоматически сбрасываются (RXSETUPI устанавливается, TXIN сбрасывается, STALLED сбрасывается, TXINI сбрасывается...). Такая обработка упрощает процесс энумерации (enumeration). Если команда не поддерживается или содержит ошибку, программа выставляет флаг запроса STALL и может вернуться к основной задаче, ожидая следующего запроса SETUP. Эта функция соответствует тексту главы 8 спецификации USB 2.0, т.е. возможной посылке дополнительного статуса в ответ на запрос GET_DESCRIPTOR. Программа устанавливает флаг запроса STALL после получения статуса. Все дополнительные статусы будут автоматически игнорироваться до следующего запроса SETUP. 22.11.2. Подтверждение (handshake) STALL и механизм повторной передачи Механизм повторной перtдачи имеет более высокий приоритет относительно отправки подтверждения STALL. Подтверждение STALL посылается, если бит STALLRQ установлен и если нет запроса повтора передачи.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|