23.16.2. Регистры канала Host-контроллера
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
- |
- |
- |
- |
PNUM2 |
PNUM1 |
PNUM0 |
|
UPNUM |
Чтение/запись |
|
|
|
|
|
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данных бит всегда возвращаются 0. Не пытайтесь установить данные биты.
- 2-0 - PNUM2:0 - номер канала
Выберите канал с помощью этого регистра. Записанное здесь значение будет определять, к регистрам какого именно канала в дальнейшем будет адресоваться ЦПУ. Действие этих бит распространяется на доступ только к регистрам, наименование которых заканчивается на X.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
P6RST |
P5RST |
P4RST |
P3RST |
P2RST |
P1RST |
P0RST |
|
UPRST |
Чтение/запись |
Чт. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данного бита всегда возвращается 0. Не пытайтесь установить этот бит.
- 6 - P6RST - сброс канала 6
Для сброса канала 6 установите этот бит равным 1, а затем запишите в него 0.
- 5 - P5RST - сброс канала 5
Для сброса канала 5 установите этот бит равным 1, а затем запишите в него 0.
- 4 - P4RST - сброс канала 4
Для сброса канала 4 установите этот бит равным 1, а затем запишите в него 0.
- 3 - P3RST - сброс канала 3
Для сброса канала 3 установите этот бит равным 1, а затем запишите в него 0.
- 2 - P2RST - сброс канала 2
Для сброса канала 2 установите этот бит равным 1, а затем запишите в него 0.
- 1 - P1RST - сброс канала 1
Для сброса канала 1 установите этот бит равным 1, а затем запишите в него 0.
- 0 - P0RST - сброс канала 0
Для сброса канала 0 установите этот бит равным 1, а затем запишите в него 0.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
PFREEZE |
INMODE |
- |
RSTDT |
- |
- |
PEN |
|
UPCONX |
Чтение/запись |
|
Чт./Зп. |
Чт./Зп. |
|
Чт./Зп. |
|
|
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данного бита всегда возвращается 0. Не пытайтесь установить этот бит.
- 6 - PFREEZE - остановка канала
Установите (сбросьте) этот бит при необходимости остановить (разрешить) генерацию запросов канала. Данный бит устанавливается аппаратно, когда:
- канал не настроен;
- этим каналом было принято подтверждение STALL;
- возникла ошибка в канале (UPINTX.PERRI = 1);
- были обработаны запросы в количестве (INRQ+1).
Данный бит аппаратно устанавливается равным 1 после сброса канала или разрешения канала.
- 5 - INMODE - режим запросов IN
Установите данный бит, чтобы разрешить USB-контроллеру непрерывно выполнять запросы IN, когда канал не остановлен. Сбросьте бит, если требуется выполнить заранее заданное число запросов IN. Число запросов хранится в регистре UINRQX.
При чтении данного бита всегда возвращается 0. Не устанавливайте данный бит.
- 3 - RSTDT - сброс переключателя данных
Установите данный бит при необходимости возврата переключателя данных текущего канала к его значению по умолчанию. Сбрасывается аппаратно по завершении операции. Программный сброс не дает никакого результата.
При чтении данного бита всегда возвращается 0. Не пытайтесь установить этот бит.
При чтении данного бита всегда возвращается 0. Не пытайтесь установить этот бит.
- 0 - PEN - разрешение работы канала
Установите (сбросьте) данный бит для разрешения работы (запрета работы и сброса) канала.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
PTYPE1 |
PTYPE0 |
PTOKEN1 |
PTOKEN0 |
PEPNUM3 |
PEPNUM2 |
PEPNUM1 |
PEPNUM0 |
|
UPCFG0X |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7-6 - PTYPE1:0 - тип канала
Используйте данные биты для выбора типа канала:
- 00: CONTROL
- 01: ISOCHRONOUS
- 10: BULK
- 11: INTERRUPT
- 5-4 - PTOKEN1:0 - тип пакета TOKEN канала
Используйте данные биты для настройки типа пакета TOKEN канала
- 00: SETUP
- 01: IN
- 10: OUT
- 11: резерв
- 3-0 - PEPNUM3:0 - номер конечной точки канала
Настройте данное поле в соответствии с конфигурацией канала. Здесь задается номер конечной точки, с которой связывается канал. Допускается запись значений от 0 до 15.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
PSIZE2:0 |
PBK1:0 |
ALLOC |
- |
|
UPCFG1X |
Чтение/запись |
Чт. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данного бита всегда возвращается 0. Не пытайтесь установить этот бит.
- 6-4 - PSIZE2:0 - размер канала
Используйте данные биты для настройка размера канала:
- 000: 8 - 100: 128 (только для конечной точки 1)
- 001: 16 - 101: 256 (только для конечной точки 1)
- 010: 32 - 110: резерв. Не используйте данную конфигурацию.
- 011: 64 - 111: резерв. Не используйте данную конфигурацию.
- 3-2 - PBK1:0 - банк канала
Используйте данные биты для выбора количества банков для объявления текущего канала.
- 00: 1 банк
- 01: 2 банка
- 10: недопустимое значение
- 11: недопустимое значение
- 1 - ALLOC - настройка памяти канала
Установите данный бит для конфигурации памяти канала с заданными параметрами. Сбросьте бит для обновления назначения памяти.
При чтении данного бита всегда возвращается 0. Не пытайтесь установить этот бит.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
INTFRQ7 |
INTFRQ6 |
INTFRQ5 |
INTFRQ4 |
INTFRQ3 |
INTFRQ2 |
INTFRQ1 |
INTFRQ0 |
|
UPCFG2X |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7 - INTFRQ7:0 - частота опроса канала INTERRUPT
Данные биты задают максимальное значение периода опроса канала типа INTERRUPT в миллисекундах. Значение не оказывает никакого влияния на каналы иного типа.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
CFGOK |
OVERFI |
UNDERFI |
- |
DTSEQ1:0 |
NBUSYBK |
|
UPSTAX |
Чтение/запись |
Чт. |
Чт./Зп. |
Чт./Зп. |
|
Чт. |
Чт. |
Чт. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7 - CFGOK - флаг сигнализации о корректности настройки памяти канала
Устанавливается аппаратно, если настройка памяти была выполнена правильно. Сбрасывается аппаратно после отключения канала. USB-сброс и сброс канала не оказывает никакого влияния на настройку канала.
- 6 - OVERFI - переполнение
Устанавливается аппаратно, когда текущий канал принял больше данных, чем допускает размер текущего канала. Если установлен флаг FLERRE, это приводит к генерации прерывания. Должен быть сброшен программно. Программная установка не дает никакого результата.
- 5 - UNDERFI - незаполнение
Устанавливается аппаратно, когда в ходе транзакции канала типа ISOCHRONOUS или INTERRUPT возникла ошибка незаполнения. Канал не может отправить поток данных, запрашиваемый Device-стороной. Вместо него будет отправлен пакет нулевой длины (ZLP). Если установлен бит FLERRE, возникновение ошибки незаполнения вызовет генерацию прерывания. Должен быть сброшен программно. Программная установка не оказывает никакого влияния.
Прим.: Host-контроллер должен отправить пакет OUT, но банк пуст. В этом случае будет отправлен пакет ZLP и станет равным единице бит UNDERFI.
При чтении данного бита всегда возвращается 0. Не пытайтесь установить этот бит.
- 3-2 - DTSEQ1:0 - флаги состояния переключателя данных
Устанавливаются аппаратно для сигнализации номера текущего банка PID-данных:
- 00b DATA 0
- 01b DATA 1
- 1xb резерв.
Для канала OUT данное значение указывает на номер следующего банка данных, который будет использоваться для передачи. Оно не относится к текущему банку.
Для канала IN данное значение указывает на номер текущего банка, в который были приняты данные.
- 1-0 - NBUSYBK1:0 - флаги занятости банка
Устанавливаются аппаратно для индикации числа занятых банков. Для канала OUT данные флаги индицируют количество банков, которые заполнены пользователем и готовы к передаче OUT. Для канала IN данные флаги индицируют количество банков, которые заполнены Device-стороной в ходе транзакции IN.
- 00b Все банка свободны
- 01b 1 банк занят
- 10b 2 банка заняты
- 11b резерв
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
INRQ7 |
INRQ6 |
INRQ5 |
INRQ4 |
INRQ3 |
INRQ2 |
INRQ1 |
INRQ0 |
|
UPINRQX |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7-0 - INRQ7:0 - количество запросов IN до остановки
Введите здесь количество транзакций IN до остановки USB-контроллера канала. Перед тем как остановить канал USB-контроллер выполнит запросы IN в количестве (INRQ+1). Данный счетчик автоматически уменьшается на 1 после каждого успешно выполненного запроса IN.
Данный регистр не имеет никакой силы, если установлен бит INMODE (пока не остановлен канал запросы IN будут генерироваться непрерывно).
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
COUNTER1:0 |
CRC16 |
TIMEOUT |
PID |
DATAPID |
DATATGL |
|
UPERRX |
Чтение/запись |
|
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данного бита всегда возвращается 0. Не пытайтесь установить этот бит.
- 5 - COUNTER1:0 - счетчик ошибок
Данный счетчик увеличивается USB-контроллером при каждом обнаружении ошибки в канале. Когда значение счетчика становится равным 3, канал автоматически останавливается. Данные биты сбрасываются программно.
Устанавливается аппаратно при обнаружении ошибки CRC16. Должен быть сброшен программно. Программная установка не дает никакого результата.
- 3 - TIMEOUT - ошибка истечения времени
Устанавливается аппаратно при обнаружении ошибки истечения времени. Должен быть сброшен программно. Программная установка не оказывает никакого влияния.
Устанавливается аппаратно при обнаружении ошибки PID. Должен быть сброшен программно. Программная установка не оказывает никакого влияния.
- 1 - DATAPID - ошибка данных PID
Устанавливается аппаратно при обнаружении ошибки PID-данных. Должен быть сброшен программно. Программная установка не оказывает никакого влияния.
- 0 - DATATGL - ошибка переключателя данных
Устанавливается аппаратно при обнаружении ошибки переключателя данных. Должен быть сброшен программно. Программная установка не оказывает никакого влияния.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
FIFOCON |
NAKEDI |
RWAL |
PERRI |
TXSTPI |
TXOUTI |
RXSTALLI |
RXINI |
|
UPINTX |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7 - FIFOCON - управление буфером FIFO
Каналы OUT и SETUP: устанавливается аппаратно, когда освобождается текущий банк (вместе с TXOUT или TXSTP). Сбросьте этот бит для инициации передачи данных из FIF и переключения банка. Программная установка не дает никакого результата.
Канал IN: устанавливается аппаратно (одновременно с RXIN), когда в текущем банке сохранено новое сообщение IN. Сбросьте этот бит для освобождения текущего банка и переключения к следующему банку. Программная установка не дает никакого результата.
- 6 - NAKEDI - флаг приема подтверждения NAK
Устанавливается аппаратно после приема в текущий банк канала подтверждения NAK. Если установлен бит NAKEDE (регистр UPIENX), это приводит к запуску прерывания. Данный бит необходимо сбросить для подтверждения прерывания. Программная установка не оказывает никакого влияния.
- 5 - RWAL - флаг разрешения чтения/записи
Канал OUT: устанавливается аппаратно для сигнализации о возможности программной записи новых данных в буфер FIFO канала. Сбрасывается аппаратно после заполнения текущего буфера FIFO канала.
Канал IN: устанавливается аппаратно для сигнализации о возможности считывания новых данных из буфера FIFO канала. Сбрасывается аппаратно после опустошения текущего буфера FIFO канала. Данный бит сбрасывается аппаратно после установки бита RXSTALL или PERR.
- 4 - PERRI - флаг ошибки канала
Устанавливается аппаратно, когда в текущем банке канала возникла ошибка. Если установлен бит PERRE (регистр UPIENX), это приводит к запуску прерывания. Для определения причины возникновения ошибки необходимо обратится к регистру UPERRX. Флаг автоматически сбрасывается аппаратными средствами после сброса бита источника ошибки.
- 3 - TXSTPI - флаг готовности банка SETUP
Устанавливается аппаратно, когда текущий банк SETUP свободен и готов к заполнению. Если установлен бит TXSTPE (регистр UPIENX), это приводит к запуску прерывания. Должен быть сброшен программно для подтверждения прерывания. Программная установка не оказывает никакого влияния.
- 2 - TXOUTI - флаг готовности банка OUT
Устанавливается аппаратно, когда текущий банк OUT свободен и готов к заполнению. Если установлен бит TXOUTE (регистр UPIENX), это приводит к запуску прерывания. Должен быть сброшен программно для подтверждения прерывания. Программная установка не оказывает никакого влияния.
- 1 - RXSTALLI/CRCERR - флаг приема подтверждения STALL/флаг ошибки CRC в канале ISOCHRONOUS
Устанавливается аппаратно после приема в текущий банк канала подтверждения STALL. Канал автоматически останавливается. Если бит RXSTALLE (регистр UPIENX) равен 1, это приводит к запуску прерывания. Должен быть сброшен для подтверждения прерывания. Программная установка не оказывает никакого влияния.
Применительно к каналу ISOCHRONOUS данный бит действует в роли флага ошибки CRC. Он становится равным 1, когда обнаруживается ошибка CRC в текущем банке канала. Если установлен бит TXSTPE (регистр UPIENX), это приводит к запуску прерывания. Должен быть сброшен программно для подтверждения прерывания. Программная установка не дает никакого результата.
- 0 - RXINI - флаг приема данных IN
Устанавливается аппаратно, когда в текущем банке канала сохранено новое USB-сообщение. Если установлен бит RXINE (регистр UPIENX), это приводит к запуску прерывания. Данный флаг необходимо сбросить для подтверждения прерывания. Программная установка не оказывает никакого влияния.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
FLERRE |
NAKEDE |
- |
PERRE |
TXSTPE |
TXOUTE |
RXSTALLE |
RXINE |
|
UPIENX |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
|
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7 - FLERRE - бит разрешения прерывания по ошибке потока
Установите (сбросьте) этот бит при необходимости разрешения прерываний OVERFI и UNDERFI.
- 6 - NAKEDE - бит разрешения прерывания по приему подтверждения NAK
Установите (сбросьте) этот бит при необходимости разрешения прерывания NAKEDI.
При чтении данного бита всегда возвращается 0. Не пытайтесь устанавливать данный бит.
- 4 - PERRE - бит разрешения прерывания по ошибке в канале
Установите (сбросьте) этот бит при необходимости разрешения прерывания PERRI.
- 3 - TXSTPE - бит разрешения прерывания по готовности банка SETUP
Установите (сбросьте) этот бит при необходимости разрешения прерывания TXSTPI.
- 2 - TXOUTE - бит разрешения прерывания по готовности банка в канале OUT
Установите (сбросьте) этот бит при необходимости разрешения прерывания TXOUTI.
- 1 - RXSTALLE - бит разрешения прерывания по приему STALL
Установите (сбросьте) этот бит при необходимости разрешения прерывания RXSTALLI.
- 0 - RXINE - бит разрешения прерывания по приему данных в канале IN
Установите (сбросьте) этот бит при необходимости разрешения прерывания RXINI.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
PDAT7 |
PDAT6 |
PDAT5 |
PDAT4 |
PDAT3 |
PDAT2 |
PDAT1 |
PDAT0 |
|
UPDATX |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7-0 - PDAT7:0 - биты канала данных
Данный регистр предназначен для чтения (записи) данных из буфера (в буфер) FIFO выбранного с помощью бит PNUM канала.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
- |
- |
- |
- |
PBYCT10 |
PBYCT9 |
PBYCT8 |
|
UPBCHX |
Чтение/запись |
|
|
|
|
|
Чт. |
Чт. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данного бита всегда возвращается 0. Не пытайтесь установить данный бит.
- 2-0 - PBYCT10:8 - старшие биты счетчика байт
Устанавливаются аппаратно. Данное поле является старшими битами счетчика байт канального буфера FIFO. Младшие биты этого счетчика хранятся в регистре UPBCLX.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
PBYCT7 |
PBYCT6 |
PBYCT5 |
PBYCT4 |
PBYCT3 |
PBYCT2 |
PBYCT1 |
PBYCT0 |
|
UPBCLX |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- 7-0 - PBYCT7:0 - младшие биты счетчика байт
Устанавливаются аппаратно. Значение счетчика байт PBYCT10:0:
- (для канала OUT) инкрементируется после каждой записи в канал и декрементируется после отправки каждого байта;
- (для канала IN) инкрементируется после приема Host-контроллером каждого байта и декрементируется после программного считывания каждого байта.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
PINT6 |
PINT5 |
PINT4 |
PINT3 |
PINT2 |
PINT1 |
PINT0 |
|
UPIN |
Чтение/запись |
|
|
|
|
|
|
|
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
При чтении данного бита всегда возвращается 0. Не пытайтесь установить данный бит.
- 6-0 - PINT6:0 - биты прерываний канала
Устанавливаются аппаратно при запуске прерывания, инициированного регистром UPINTX, при условии, что бит разрешения прерывания соответствующего канала равен 1. Сбрасываются аппаратно по окончании обслуживания источника прерывания.
|