Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > AVR |
|
||||||||||||
22.12. Управляющая конечная точкаВ ответ на запрос SETUP всегда посылается подтверждение приема (ACK)/ При получении нового SETUP пакета возникает прерывание RXSTPI (если разрешено). Прерывание RXOUTI не возникает. Поля FIFOCON и RWAL не относятся к управляющим конечным точкам. Поэтому программа не должна использовать эти поля для таких конечных точек. При чтении значение этих полей всегда 0. Организация работы управляющих конечных точек осуществляется с помощью следующих битов:
22.12.1. Управляющая запись Нижеприведенный рисунок иллюстрирует транзакцию управляющей записи. В стадии статуса контроллер не обязательно пошлет NAK в ответ на первый IN маркер:
22.12.2. Управляющее чтение Нижеприведенный рисунок иллюстрирует транзакцию управляющего чтения. USB контроллер должен обслуживать одновременно запросы на запись от ЦПУ и USB хоста. NAK всегда посылается при первой команде стадии статуса. Когда контроллер обнаруживает стадию статуса, все данные записанные ЦПУ стираются, а сброс TXINI ни на что не влияет. Программа проверяет закончена ли передача или прием данных. В ответ на повторную посылку маркера OUT всегда отправляется подтверждение (ACK). Прием заключается в следующем:
Алгоритм для программы: установить transmit ready ожидание (окончания передачи или приема) если прием окончен, сброс флага и возврат если окончена передача, продолжить После получения стадии статуса OUT USB контроллер ожидает получения запроса SETUP. Запрос SETUP имеет наивысший приоритет относительно остальных запросов и ответом на него всегда должно быть подтверждение. Это означает, что при получении SETUP все остальные флаги должны быть сброшены, а также должны быть сброшены все FIFO. Предупреждение: счетчик байтов сбрасывается при получении нулевого OUT пакета. Это должно учитываться программным обеспечением. 22.13. Управление OUT конечными точками OUT пакеты посылаются хостом. Все данные доступны для чтения ЦПУ, которое разрешает доступ или нет к банку данных, когда он пуст. 22.13.1. Обзор Сначала конечная точка должна быть сконфигурирована. Каждый раз, когда банк данных заполнен, устанавливаются биты RXOUTI и FIFOCON. Это приводит к прерыванию, если установлен бит RXOUTE. Программа может подтвердить получение запроса на USB прерывание сбросом бита RXOUTI. Программа считывает данные и сбрасывает бит FIFOCON для освобождения текущего банка. Если OUT конечная точка состоит из нескольких банков, то сброс бита FIFOCON приводит к переключению на следующий банк. После этого содержимое битов RXOUTI и FIFOCON обновляется аппаратно в соответствии с состоянием нового банка. RXOUTI всегда должен быть сброшен перед сбросом FIFOCON. Бит RWAL всегда отражает состояние текущего банка. Если этот бит установлен, то данные из банка могут быть считаны программой, и сбрасывается аппаратно, если банк пуст. 22.13.2. Детальное описание 22.13.2.1. Данные считываются ЦПУ согласно следующей последовательности действий:
Если конечная точка использует двойной банк, то второй может заполняться хостом при считывании ЦПУ данных из первого (текущего). Затем, после сброса ЦПУ FIFOCON, следующий банк может быть уже готов, и RXOUTI устанавливается мгновенно.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|