22.18.2. Регистры конечных точек (режим Device)
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
UENUM |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При опросе данных бит всегда возвращаются 0. Не устанавливайте данные биты.
- 2-0 - EPNUM2:0 биты номера конечной точки
Загружается программно для выбора номера конечной точки, доступ к которой желает осуществить ЦПУ. Подробности см. в 22.5. EPNUM = 111b является запрещенным значением.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
EPRST6 |
EPRST5 |
EPRST4 |
EPRST3 |
EPRST2 |
EPRST1 |
EPRST0 |
|
UERST |
Чтение/запись |
Чт. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При опросе данного бита всегда возвращается 0. Не устанавливайте данный бит.
- 6-0 - EPRST6:0 - биты сброса буфера FIFO конечной точки
Устанавливаются для сброса буфера FIFO выбранных конечных точек. Это необходимо сделать до выполнения каких-либо других операций после аппаратного сброса или приема по шине USB-сброса. Подробности см. в 22.3. Для завершения операции сброса и перехода к использованию конечных точек необходимо сбросить установленные биты.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
- |
STALLRQ |
STALLRQC |
RSTDT |
- |
- |
EPEN |
|
UECONX |
Чтение/запись |
Чт. |
Чт. |
Зп. |
Зп. |
Зп. |
Чт. |
Чт. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При опросе данных бит всегда возвращаются 0. Не устанавливайте данные биты.
- 5 - STALLRQ - бит запроса отправки подтверждения STALL
Установите этот бит при необходимости отправки Host-стороне STALL в качестве следующего подтверждения. Сбрасывается аппаратно после приема нового запроса SETUP. Программный сброс не оказывает никакого влияния. Подробности см.в 22.11.
- 4 - STALLRQC - бит отмены подтверждения запросом STALL
Установите данный бит для отключения механизма подтверждения STALL. Сбрасывается аппаратно сразу после установки. Подробности см. в 22.11.
- 3 - RSTDT - бит сброса переключателя данных (Data Toggle)
Установите бит для автоматической отмены последовательности переключения данных. Для конечной точки OUT это означает, что следующий принятый пакет будет иметь переключатель данных равным 0. В свою очередь для конечной точки IN это означает, что у следующего подлежащего отправке пакета переключатель данных будет равен 0. Сбрасывается мгновенно аппаратными средствами. Программа не должна ожидать сброса этого бита. Программный сброс бита не оказывает никакого влияния.
При опросе данных бит всегда возвращаются 0. Не устанавливайте данные биты.
- 0 - EPEN - бит разрешения работы конечной точки
Установите этот бит при необходимости разрешения работы конечной в соответствии с выполненной настройкой Device-контроллера. После аппаратного сброса или USB-сброса перед конфигурацией Device-контроллера должна быть разрешена работа конечной точки 0. Сброс этого бита отключит конечную точку. Подробности см. в 22.6.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
EPTYPE1:0 |
- |
- |
- |
- |
- |
EPDIR |
|
UECFG0X |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7-6 - EPTYPE1:0 - биты типа конечной точки
Установите значения этих в соответствии с требуемой настройкой конечной точки.
Значение |
Тип конечной точки |
00b |
CONTROL |
01b |
BULK |
10b |
ISOCHRONOUS |
11b |
INTERRUPT |
- 3-2 - Зарезервировано для целей тестирования.
Данными битами всегда возвращается нулевое значение. Не устанавливайте данные биты.
При чтении бита всегда возвращается 0. Не устанавливайте данный бит.
- 0 - EPDIR - бит направления конечной точки
Установите бит для задания направления IN конечной точке типа BULK, INTERRUPT или ISOCHRONOUS. Сбросьте для задания конфигурации OUT конечной точке типа BULK, INTERRUPT, ISOCHRONOUS или CONTROL.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
EPSIZE2:0 |
EPBK1:0 |
ALLOC |
- |
|
UECFG1X |
Чтение/запись |
Чт. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данного бита всегда возвращается 0. Не устанавливайте этот бит.
- 6-4 - EPSIZE2:0 - биты размера конечной точки
Установите эти биты в соответствии с требуемым размером конечной точки.
Значение |
Размер |
Значение |
Размер |
000b |
8 байт |
100b |
128 байт1) |
001b |
16 байт |
101b |
256 байт1) |
010b |
32 байта |
110b |
Резерв2) |
011b |
64 байта |
111b |
Резерв2) |
Прим.:
- Действительно только для конечной точки 1.
- Не используйте резервные значения.
- 3-2 - EPBK1:0 - биты банка конечной точки
Настройте данное поле с учетом размера конечной точки.
Значение |
Размер |
00b |
Один банк |
01b |
Два банка |
1xb |
Резерв1) |
Прим.:
- Не используйте резервные значения.
- 1 - ALLOC - бит назначения памяти конечной точки
Установите этот бит для назначения памяти конечной точки. Сброс бита приводит к освобождению памяти конечной точки. Подробности см. в 22.6.
При чтении данного бита всегда возвращается 0. Не устанавливайте данный бит.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
CFGOK |
OVERFI |
UNDERFI |
- |
DTSEQ1:0 |
NBUSYBK1:0 |
|
UESTA0X |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт. |
Чт. |
Чт. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7 - CFGOK - флага статуса конфигурации
Устанавливается аппаратно, когда параметры размера X (EPSIZE) и банка (EPBK) конечной точки согласованы с максимальным размером буфера FIFO и предельным числом банков. Обновление бита происходит после установки бита ALLOC. Если CFGOK=0, это означает, что пользователю необходимо заново записать регистр UECFG1X с корректными значениями EPSIZE и EPBK.
- 6 - OVERFI - флаг прерывания по ошибке переполнения
Устанавливается аппаратно при обнаружении ошибки переполнения в конечной точке типа ISOCHRONOUS. Приводит к запуску прерывания (EPINTx), если таковое было разрешено. Подробности см. в 22.15. Должен быть сброшен программно. Попытка программной установки не дает никакого результата.
- 5 - UNDERFI - флаг прерывания по ошибке незаполнения
Устанавливается аппаратно при обнаружении ошибки незаполнения в конечной точке типа ISOCHRONOUS. Приводит к запуску прерывания (EPINTx), если таковое было разрешено. Подробности см. в 22.15. Должен быть сброшен программно. Попытка программной установки не дает никакого результата.
При чтении данного бита всегда возвращается 0. Не пытайтесь установить данный бит.
- 3-2 - DTSEQ1:0 - флаг состояния переключателя данных
Устанавливается аппаратно для индикации данных идентификатора пакета (PID) для текущего банка.
Значение |
Данные |
00b |
DATA 0 |
01b |
DATA 1 |
1xb |
Резерв |
Для передачи типа OUT данное значение индицирует последнее значение переключателя данных, принятое текущим банком. В свою очередь для передачи типа IN оно индицирует значение переключателя данных, которое будет использоваться при отправке следующего пакета. К текущему банку оно отношения не имеет.
- 1-0 - NBUSYBK1:0 - флаги занятости банка
Устанавливаются аппаратно для индикации количества занятых банков. Для конечной точки IN они индицируют количество занятых банков, которые заполнены пользователем и готовы для передачи типа IN. Для конечной точки OUT флаги индицируют количество занятых банков, которые заполнены Host-стороной в ходе транзакции типа OUT.
Значение |
Описание |
00b |
Все банки свободны |
01b |
Занят один банк |
10b |
Занято два банка |
11b |
Резерв |
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
- |
- |
- |
- |
CTRLDIR |
CURRBK1:0 |
|
UESTA1X |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данных бит всегда возвращается значение 0. Не пытайтесь установить данные биты.
- 2 - CTRLDIR - управление направлением (флаг, а также бит для отладочных целей)
Устанавливается аппаратно после пакета SETUP и задает направление следующего пакета:
- 1 для конечной точки IN
- 0 для конечной точки OUT.
Не пытайтесь программно устанавливать или сбрасывать данный бит.
- 1-0 - CURRBK1:0 - флаги текущего банка (все конечные точки, кроме конечной точки CONTROL)
Устанавливается аппаратно для индикации номера текущего банка:
Значение |
Текущий банк |
00b |
Банк 0 |
01b |
Банк 1 |
1xb |
Резерв |
Не пытайтесь программно устанавливать или сбрасывать данные биты.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
FIFOCON |
NAKINI |
RWAL |
NAKOUTI |
RXSTPI |
RXOUTI |
STALLEDI |
TXINI |
|
UEINTX |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7 - FIFOCON - бит управления буфером FIFO
У конечной точки OUT и SETUP данный бит устанавливается аппаратно после записи нового сообщения OUT в текущий банк (одновременно с RXOUT или RXSTP). Сбросьте этот бит для освобождения текущего банка и переключения к следующему банку. Попытка программной установки не оказывает никакого эффекта.
Применительно к конечной точке IN данный бит устанавливается аппаратно, когда освобождается текущий банк (одновременно с TXIN). Сбросьте FIFOCON для отправки данных FIFO и переключения данных. Программная установка не дает никакого результата.
- 6 - NAKINI - флаг прерывания по отправке NAK в передаче типа IN
Устанавливается аппаратно, когда в ответ на запрос IN Host-стороны было отправлено подтверждение NAK. Если установлен бит NAKINE, это приводит к генерации USB-прерывания. Должен быть сброшен программно. Программная установка не оказывает никакого влияния.
- 5 - RWAL - флаг возможности чтения/записи
Устанавливается аппаратно для сигнализации:
- о незаполненности текущего банка (т.е. о возможности помещения новых данных в буфер FIFO) конечной точки IN;
- о наличии данных в текущем банке (т.е. о потребности считывания данных из буфера FIFO) конечной точки OUT.
Бит никогда не устанавливается, если установлен бит STALLRQ или обнаружена ошибка. В остальных случаях бит равен нулю. Его нельзя использовать для конечной точки CONTROL.
- 4 - NAKOUTI - флаг прерывания по приему NAK в передаче типа OUT
Устанавливается аппаратно, когда в ответ на запрос OUT/PING из Host-стороны было отправлено подтверждение NAK. Если бит NAKOUTE установлен, это приводит к запуску USB-прерывания. Должен быть сброшен программно. Программная установка не оказывает никакого влияния.
- 3 - RXSTPI - флаг прерывания по приему SETUP
Устанавливается аппаратно для сигнализации о доступности нового действительного пакета SETUP в текущем банке. Приводит к запуску прерывания (EPINTx), если таковое было разрешено. Должен быть сброшен программно для подтверждения прерывания. Программная установка не оказывает никакого влияния.
Данный бит неактивен (равен 0), если конечная точка имеет направление IN.
- 2 - RXOUTI / KILLBK - флаг прерывания по приему данных (передача типа OUT)
Устанавливается аппаратно для сигнализации о том, что в текущем банке содержится новый пакет. Запускает прерывание (EPINTx), если таковое было разрешено. Должен быть сброшен программно для подтверждения прерывания. Попытка программной установки не оказывает никакого влияния.
Бит ликвидации банка IN
Установите данный бит, чтобы ликвидировать последний записанный банк. Сбрасывается аппаратно после ликвидации банка. Программный сброс не оказывает никакого влияния. Подробности см. в 22.14.2.1.
- 1 - STALLEDI - флаг прерывания STALLEDI
Устанавливается аппаратно для сигнализации об отправке подтверждения STALL или обнаружении ошибки CRC в конечной точке типа ISOCHRONOUS с направлением OUT. Должен быть сброшен программно. Программная установка не оказывает никакого влияния.
- 0 - TXINI - флаг прерывания по готовности передатчика
Устанавливается аппаратно для сигнализации о готовности к заполнению текущего банка. Запускает прерывание (EPINTx), если таковое было разрешено. Должен быть сброшен программно для подтверждения прерывания. Программная установка не оказывает никакого влияния. Данный бит является неактивным (равен 0) для конечной точки с направлением OUT.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
FLERRE |
NAKINE |
- |
NAKOUTE |
RXSTPE |
RXOUTE |
STALLEDE |
TXINE |
|
UEIENX |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7 - FLERRE - флаг разрешения прерывания по ошибке потока
Установите (сбросьте) для разрешения (запрета) прерывания конечной точки (EPINTx) по установке флага VERFI или UNDERFI.
- 6 - NAKINE - флаг разрешения прерывания по отправке NAK в передаче типа IN
Установите (сбросьте) для разрешения (запрета) прерывания конечной точки (EPINTx) при установке флага NAKINI.
При чтении данного бита всегда возвращается 0. Не пытайтесь установить данный бит.
- 4 - NAKOUTE - бит разрешения прерывания по приему NAK в передаче типа OUT
Установите (сбросьте) для разрешения (запрета) прерывания конечной точки (EPINTx) по установке флага NAKOUTI.
- 3 - RXSTPE - флаг разрешения прерывания по приему SETUP
Установите (сбросьте) для разрешения (запрета) прерывания конечной точки (EPINTx) по установке флага RXSTPI.
- 2 - RXOUTE - флаг разрешения прерывания по приему данных в передаче типа OUT
Установите (сбросьте) для разрешения (запрета) прерывания конечной точки (EPINTx) по установке флага RXOUTI.
- 1 - STALLEDE - флаг разрешения прерывания STALLEDI
Установите (сбросьте) для разрешения (запрета) прерывания конечной точки (EPINTx) по установке флага STALLEDI.
- 0 - TXINE - флаг разрешения прерывания по готовности передатчика
Установите (сбросьте) для разрешения (запрета) прерывания конечной точки (EPINTx) по установке флага TXINI.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
DAT D7 |
DAT D6 |
DAT D5 |
DAT D4 |
DAT D3 |
DAT D2 |
DAT D1 |
DAT D0 |
|
UEDATX |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7-0 - DAT7:0 - биты данных
Используйте данные биты в программе для чтения (записи) байта из буфера (в буфер) FIFO конечной точки, выбранной битами EPNUM.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
- |
- |
- |
- |
BYCT D10 |
BYCT D9 |
BYCT D8 |
|
UEBCHX |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данных бит всегда возвращаются нули. Не пытайтесь устанавливать данные биты.
- 2-0 - BYCT10:8 - старшие биты счетчика байт
Устанавливаются аппаратно. В них хранятся старшие биты счетчика байт буфера FIF конечной точки. Младший байт хранится в регистре UEBCLX.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
BYCT D7 |
BYCT D6 |
BYCT D5 |
BYCT D4 |
BYCT D3 |
BYCT D2 |
BYCT D1 |
BYCT D0 |
|
UEBCLX |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7-0 - BYCT7:0 - младшие биты счетчика байт
Устанавливаются аппаратно. Значение бит BYCT10:0:
- (для конечной точки IN) инкрементируется после записи в конечную точку и декрементируется после отправки каждого байта;
- (для конечной точки OUT) инкрементируется после отправки Host-стороной каждого байта и декрементируется после программного чтения каждого байта.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
EPINT D6 |
EPINT D5 |
EPINT D4 |
EPINT D3 |
EPINT D2 |
EPINT D1 |
EPINT D0 |
|
UEINT |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данного бита всегда возвращается 0. Не пытайтесь установить данный бит.
- 6-0 - EPINT6:0 - биты прерываний конечной точки
Устанавливаются аппаратно, когда запускается прерывание регистром UEINTX и, при этом, установлен бит разрешения прерывания соответствующей конечной точки. Сбрасывается аппаратно по завершении обслуживания источника прерывания.
|