Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR

реклама

 




Мероприятия:




23. Режимы работы USB хоста

Этот режим возможен только для микроконтроллеров AT90USB647/1287.

23.1. Описание каналов

Для USB хост контроллера вместо термина "конечная точка", который применяется для контроллера USB устройства, используется термин "канал". Канал хоста соответствует конечной точки устройства, как это описано в спецификации USB.

Каналы и конечные точки в системе USB
Рисунок 23.1. Каналы и конечные точки в системе USB

В USB хост контроллере канал ассоциируется с конечной точкой устройства в соответствии с дескриптором конфигурации устройства.

23.2. Отсоединение

Значение бита DETACH после сброса равно 1. Поэтому программное обеспечение должно сбросить этот бит перед переключением в режим хоста (установкой бита HOST).

23.3. Включение и сброс

Нижеприведенная схема объясняет основные состояния контроллера USB хоста при включении.

Состояния USB хост контроллера после сброса
Рисунок 23.2. Состояния USB хост контроллера после сброса

Состояние USB хост контроллера после сброса "сброс". Когда USB контроллер разрешен и выбран режим хоста, USB контроллер находится в состоянии "idle". В этом состоянии USB хост контроллер ожидает подключения устройства пир этом потребляя минимум мощности. Выводы USB должны быть в состоянии "idle". Для перехода в режим "host ready" нет необходимости активировать ФАПЧ. Хост контроллер переходит в приостановленное (suspend) состояние когда USB шина находится в приостановленном состоянии, т.е. когда хост контроллер не генерирует начала фрейма (Start of Frame). В этом состоянии потребление USB контроллера минимально. Хост контроллер выходит из приостановленного состояния, когда начинает генерировать SOF на линии USB.

23.4. Обнаружение устройства

Устройство обнаруживается USB контроллером, когда состояние USB шины отличается от низких уровней на обоих линиях D+ и D-. Другими словами, когда USB хост контроллер обнаруживает подтяжку (соответствующую устройству) на линии D+ . Для разрешения этого обнаружения хост контроллер должен обеспечить питание устройства по линии Vbus. Отсоединение устройства обнаруживается хост контроллером по состоянию "idle", соответствующему низким уровням на USB линиях D+ и D-.

23.5. Выбор канала

Перед любой операцией, проводимой ЦПУ, должен быть выбран канал. Это осуществляется установкой битов PNUM2:0 (регистр UPNUM) в соответствии с номером канала, с которым будет работать ЦПУ. После чего у ЦПУ есть доступ к регистрам канала и данным.

23.6. Конфигурация канала

Следующая последовательность действий должна быть выполнена для активации канала.

Последовательность действий для активации канала
Рисунок 23.3. Последовательность действий для активации канала

После того, как канал активизирован (установлен бит EPEN), контроллер готов к посылке запросов устройству. После конфигурации (CFGOK = 1), может изменяться только маркер канала (PTOKEN) и интервал опроса для изохронного канала. Управляющий канал поддерживает только 1 банк. Любое другое значение приведет к ошибке конфигурации (CFGOK = 0).

Сброс PEN приводит к сбросу конфигурации канала. Все связанные с каналом регистры принимают значения по умолчанию. Более подробно см. главу Memory Management.

Заметьте: программное обеспечение должно сконфигурировать управляющий канал со следующими параметрами:

  • тип: управляющий,
  • маркер: SETUP,
  • банк данных: 1,
  • размер 64 байта.

Программное обеспечение запрашивает 8 байт дескриптора устройства (Device Descriptor) с помощью посылки запроса GET_DESCRIPTOR. Эти байты содержат максимальный размер пакета (MaxPacketSize) контрольной точки устройства, а ропграммное обеспечение реконфигурирует размер управляющего канала в соответствии с полученными данными.

23.7. USB сброс

USB контроллер посылает USB сброс, когда программно устанавливается бит RESET. Бит RSTI устанавливается аппаратно, когда запрос на USB сброс послан. Это приводит к прерыванию, если бит RSTE установлен. Когда USB сброс отправлен, конфигурация всех каналов и распределение памяти сбрасывается. Регистр разрешения общих USB прерываний остается без изменений. Если перед этим линия была в приостановленном состоянии (SOFEN = 0), USB контроллер автоматически переключается в режим возобновления (resume) (устанавливается бит HWUPI) и аппаратно устанавливается бит SOFEN для генерации сразу после USB сброса SOF.

23.8. Установление адреса

После того, как USB устройство ответило на первый запрос хоста с адресом по умолчанию (0), хост присваивает устройству новый адрес. Хост контроллер должен послать устройству USB сброс и послать управляющий запрос SET ADDRESS с новым адресом, который должно использовать устройство. После окончания этого управляющего запроса программное обеспечение должно записать новый адрес в регистр UHADDR. Все последующие запросы по всем каналам будут осуществляться с использованием этого адреса. Когда хост контроллер посылает USB сброс, регистр UHADDR сбрасывается аппаратно и следующий запрос хоста будет использовать адрес по умолчанию (0).

23.9. Обнаружение удаленного пробуждения

При сбросе бита SOFEN хост контроллер переходит в приостановленный режим. Ни один старт фрейма (Start Of Frame) больше не посылается в линию USB и USB устройство переходит в приостановленный режим на 3 мс позже. Устройство возобновляет работу хоста посылкой запроса на удаленное пробуждение (Upstream Resume). Хост контроллер обнаруживает не idle состояние на шине USB и устанавливает бит HWUPI. Если не idle состояние соответствует удаленному пробуждению (состояние K), то аппаратно устанавливается бит RXRSMI. Программное обеспечение путем установки бита RESUME должно отправить запрос на возобновление работы устройства в течение 1 мс и длительностью 20 мс как минимум. После отправки запроса на возобновление автоматически аппаратно устанавливается бит SOFEN для генерации SOF сразу после возобновления работы.



<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники