Скачиваний:
180
Добавлен:
13.06.2014
Размер:
6.55 Mб
Скачать

35.6. Пользовательский интерфейс usb порта (udp)

ПРЕДУПРЕЖДЕНИЕ: перед выполнением операций чтения/записи регистров модуля UDP, в т.ч. регистр UDP_TXCV, необходимо разрешить синхронизацию модуля UDP в контроллере управления потребляемой мощностью (PMC).

Таблица 35.4. Распределение в памяти регистров модуля UDP

Смещение

Регистр

Наименование

Доступ

Состояние после сброса

0x000

Регистр номера посылки

UDP_ FRM_NUM

Чтение

0x0000_0000

0x004

Глобальный регистр состояния

UDP_ GLB_STAT

Чтение/запись

0x0000_0010

0x008

Регистр функционального адреса

UDP_ FADDR

Чтение/запись

0x0000_0100

0x00С

Зарезервировано

-

-

-

0x010

Регистр разрешения прерывания

UDP_ IER

Запись

-

0x014

Регистр отключения прерывания

UDP_ IDR

Запись

-

0x018

Регистр маски прерывания

UDP_ IMR

Чтение

0x0000_1200

0x01С

Регистр статуса прерывания

UDP_ ISR

Чтение

0x0000_хх00

0x020

Регистр сброса прерывания

UDP_ ICR

Запись

-

0x024

Зарезервировано

-

-

-

0x028

Регистр сброса конечной точки

UDP_ RST_EP

Чтение/запись

-

0x02С

Зарезервировано

-

-

-

0x030

Регистр управления и статуса конечной точки 0

UDP_CSR0

Чтение/запись

0x0000_0000

...

...

 

 

 

См. прим. 1

Регистр управления и статуса конечной точки 3

UDP_CSR3

Чтение/запись

0x0000_0000

0x050

Регистр данных FIF

 конечной точки 0

UDP_ FDR0

Чтение/запись

0x0000_0000

...

...

 

 

 

См. прим. 2

Регистр данных FIF

 конечной точки 3

UDP_ FDR3

Чтение/запись

0x0000_0000

0x070

Зарезервировано

-

-

-

0x074

Регистр управления трансивером

UDP_ TXVC3

Чтение/запись

0x0000_0000

0x078-0xFC

Зарезервировано

-

-

-

Прим.:

  1. Адреса регистров UDP_ CSRx вычисляются следующим образом: 0x030 + 4(конечная_точка - 1).

  2. Адреса регистров UDP_ FDRx вычисляются следующим образом: 0x050 + 4(конечная_точка - 1).

  3. См. предупреждение, приведенное в начале этого раздела.

35.6.1 Регистр номера посылки UDP

Наименование регистра: UDP_ FRM_NUM

Тип доступа: только чтение

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

FRM_OK

FRM_ERR

15

14

13

12

11

10

9

8

-

-

-

-

-

FRM_NUM

7

6

5

4

3

2

1

0

FRM_NUM

  • FRM_NUM[10:0] - номер посылки в соответствии с заданием в форматах пакетного поля

Данное 11-разрядное значение инкрементируется хостом и обновляется при запуске каждой посылки в состоянии SOF_EOP (старт посылки, конец пакета).

  • FRM_ERR - ошибка посылки

Данный бит устанавливается в состоянии SOF_EOP, если принятый пакет SOF содержит ошибки.

Данный бит сбрасывается при приеме идентификатора пакета SOF.

  • FRM_OK - посылка без ошибок

Данные бит устанавливается в состоянии SOF_EOP, если принятый пакет SOF не содержит каких-либо ошибок.

Данный бит сбрасывается при приеме идентификатора пакета SOF.

В регистре статуса прерывания SOF-прерывание обновляется при приеме идентификатора пакета SOF. Данный бит устанавливается, не ожидая EOP.

Прим.: в 8-разрядном регистровом интерфейсе FRM_OK - 4 разряд FRM_NUM_H, а FRM_ERR - 3 разряд FRM_NUM_L.

35.6.2 Глобальный регистр состояния UDP

Наименование регистра: UDP_ GLB_STAT

Тип доступа: чтение/запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

-

-

7

6

5

4

3

2

1

0

-

-

-

RMWUPE

RSMINPR

ESR

CONFG

FADDEN

Данный регистр используется для определения и установки состояния устройства в соответствии с описанием, изложенном в разделе 9 "USB Serial Bus Specification, Rev.2.0".

  • FADDEN - разрешение функционального адреса

Чтение:

0 - устройство не в адресном состоянии.

1 - устройство в адресном состоянии.

Запись:

0 - не оказывает влияния, только сброс может вернуть устройство в исходное состояние.

1 - переводит устройство в адресное состояние.

Это происходит после успешного приема запроса "Установка адреса". До этого необходимо инициализировать регистр UDP_ FADDR параметрами "Установка адреса". Установка адреса должна завершать этап "Статус" до установки FADDEN. См. более детальную информацию в разделе 9 "Universal Serial Bus Specification, Rev. 2.0".

  • CONFG - сконфигурированное состояние

Чтение:

0 - устройство не в сконфигурированном состоянии.

1 - устройство в сконфигурированном состоянии.

Запись:

0 - переводит устройство в несконфигурированное состояние.

1 - переводит устройство в сконфигурированное состояние.

Устройство переходит в сконфигурированное состояние, если оно находится в адресном состоянии и успешно приняло запрос "Установка конфигурации". См. более детальную информацию в разделе 9 "Universal Serial Bus Specification, Rev. 2.0".

  • ESR - разрешение отправки запроса возобновления

0 - отключает последовательность удаленного возобновления.

1 - удаленное возобновление может выполняться и разрешается работа вывода "send_resume".

  • RSMINPR - возобновление отправлено хосту

Чтение:

0 - не оказывает никакого влияния.

1 - возобновление было принято от хоста при выполнении функции удаленной активизации шины.

  • RMWUPE - разрешение удаленной активизации шины

0 - должен быть сброшен после приема любого пакета HOST или прерывания SOF.

1 - разрешает K-состояние в кабеле USB, если разрешено ESR.

35.6.3 Регистр функционального адреса UDP

Наименование регистра: UDP_ FADDR

Тип доступа: чтение/запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

-

FEN

7

6

5

4

3

2

1

0

-

FADD

  • FADD[6:0] - значение функционального адреса

Значение функционального адреса необходимо запрограммировать сразу после получения запроса установки адреса от хоста и достижения этапа "Статус" последовательности без данных управления. См. более подробно в "Universal Serial Bus Specification, Rev. 2.0". После сброса или после подачи питания значение функционального адреса устанавливается равным 0.

  • FEN - управление активизацией функциональной конечной точки

Чтение:

0 - функциональная конечная точка отключена.

1 - функциональная конечная точка включена.

Запись:

0 - отключение функциональной конечной точки.

1 - значение по умолчанию.

Бит управления активизацией функциональной конечной точки (FEN) позволяет микроконтроллеру включить или отключить функциональные конечные точки. Микроконтроллер устанавливает данный бит после получения команды сброса от хоста. Сразу после установки этого бита USB-устройство может обмениваться пакетами данных с хостом.

35.6.4 Регистр разрешения прерываний UDP

Наименование регистра: UDP_ IER

Тип доступа: только запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

WAKEUP

-

SOFINT

EXTRSM

RXRSM

RXSUSP

7

6

5

4

3

2

1

0

-

-

 

 

EP3INT

EP2INT

EP1INT

EP0INT

  • EP0INT - разрешение прерывания конечной точки 0

  • EP1INT - разрешение прерывания конечной точки 1

  • EP2INT - разрешение прерывания конечной точки 2

  • EP3INT - разрешение прерывания конечной точки 3

0 - не оказывает влияния.

1 - разрешает соответствующее прерывание конечной точки.

  • RXSUSP - разрешение прерывания по приостановке UDP

0 - не оказывает влияния.

1 - разрешает прерывание по приостановке UDP.

  • RXRSM - разрешение прерывания по возобновлению UDP

0 - не оказывает влияния.

1 - разрешает прерывание по возобновлению UDP.

  • EXTRSM - разрешение прерывания по внешнему возобновлению

0 - не оказывает влияния.

1 - разрешает прерывание по внешнему возобновлению.

  • SOFINT - разрешение прерывания по старту посылки

0 - не оказывает влияния.

1 - разрешает прерывание по старту посылки.

  • WAKEUP - разрешает прерывание по активизации шины UDP

0 - не оказывает влияния.

1 - разрешает прерывание по активизации шины USB.

35.6.5 Регистр отключения прерываний UDP

Наименование регистра: UDP_ IDR

Тип доступа: только запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

WAKEUP

-

SOFINT

EXTRSM

RXRSM

RXSUSP

7

6

5

4

3

2

1

0

-

-

 

 

EP3INT

EP2INT

EP1INT

EP0INT

  • EP0INT - отключение прерывания конечной точки 0

  • EP1INT - отключение прерывания конечной точки 1

  • EP2INT - отключение прерывания конечной точки 2

  • EP3INT - отключение прерывания конечной точки 3

0 - не оказывает влияния.

1 - отключает соответствующее прерывание конечной точки.

  • RXSUSP - отключение прерывание по приостановке UDP

0 - не оказывает влияния.

1 - отключает прерывание по приостановке UDP.

  • RXRSM - отключение прерывание по возобновлению UDP

0 - не оказывает влияния.

1 - отключает прерывание по приостановке UDP.

  • EXTRSM - отключение прерывание по внешнему возобновлению

0 - не оказывает влияния.

1 - отключает прерывание по внешнему возобновлению.

  • SOFINT - отключение прерывания по старту посылки

0 - не оказывает влияния.

1 - отключает прерывание по старту посылки.

  • WAKEUP - отключение прерывания по активизации шины USB

0 - не оказывает влияния.

1 - отключает прерывание по активизации шины USB.

35.6.6 Регистр маски прерываний UDP

Наименование регистра: UDP_ IMR

Тип доступа: только чтение

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

WAKEUP

ENDBUSRES

SOFINT

EXTRSM

RXRSM

RXSUSP

7

6

5

4

3

2

1

0

-

-

 

 

EP3INT

EP2INT

EP1INT

EP0INT

  • EP0INT: маска прерывания конечной точки 0

  • EP1INT: маска прерывания конечной точки 1

  • EP2INT: маска прерывания конечной точки 2

  • EP3INT: маска прерывания конечной точки 3

0 - соответствующее прерывание конечной точки отключено.

1 - соответствующее прерывание конечной точки включено.

  • RXSUSP - маска прерывания по приостановке UDP

0 - прерывание по приостановке UDP отключено.

1 - прерывание по приостановке UDP включено.

  • RXRSM - маска прерывания по возобновлению UDP

0 - прерывание по возобновлению UDP отключено.

1 - прерывание по возобновлению UDP включено.

  • EXTRSM - маска прерывания по внешнему возобновлению

0 - прерывание по внешнему возобновлению отключено.

1 - прерывание по внешнему возобновлению включено.

  • SOFINT - маска прерывания по старту посылки

0 - прерывание по старту посылки отключено.

1 - прерывание по старту посылки включено.

  • WAKEUP - маска прерывания по активизации шины USB

0 - прерывание по активизации шины USB отключено.

1 - прерывание по активизации шины USB включено.

Прим.: если блок USB находится в режиме приостановки, то приложение может отключить питание с логики USB. В этом случае, необходимо учитывать любой запрос USB-хоста на возобновление и, поэтому, при сбросе устанавливается бит RXRSM в регистре UDP_ IMR.

35.6.7 Регистр статуса прерывания UDP

Наименование регистра: UDP_ ISR

Тип доступа: только чтение

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

WAKEUP

-

SOFINT

EXTRSM

RXRSM

RXSUSP

7

6

5

4

3

2

1

0

-

-

 

 

EP3INT

EP2INT

EP1INT

EP0INT

  • EP0INT - статус прерывания конечной точки 0

0 - прерывание конечной точки 0 не возникало.

1 - возникло прерывание конечной точки 0.

Данное прерывание могут генерировать несколько сигналов. Причину, вызвавшую прерывание, можно определить путем чтения UDP_ CSR0. Прерывание генерируется битами RXSETUP, RX_DATA_BK0, RX_DATA_BK1, TXCOMP или STALLSENT, если какие-либо биты из них имеют единичное значение. Данное прерывание остается действительным до сброса EP0INT путем записи в соответствующий бит UDP_ CSR0.

  • EP1INT - статус прерывания конечной точки 1

0 - прерывание конечной точки 1 не возникало.

1 - возникло прерывание конечной точки 1.

Данное прерывание могут генерировать несколько сигналов. Причину, вызвавшую прерывание, можно определить путем чтения UDP_ CSR1. Прерывание генерируется битами RXSETUP, RX_DATA_BK0, RX_DATA_BK1, TXCOMP или STALLSENT, если какие-либо биты из них имеют единичное значение. Данное прерывание остается действительным до сброса EP1INT путем записи в соответствующий бит UDP_ CSR1.

  • EP2INT - статус прерывания конечной точки 2

0 - прерывание конечной точки 2 не возникало.

1 - возникло прерывание конечной точки 2.

Данное прерывание могут генерировать несколько сигналов. Причину, вызвавшую прерывание, можно определить путем чтения UDP_ CSR2. Прерывание генерируется битами RXSETUP, RX_DATA_BK0, RX_DATA_BK1, TXCOMP или STALLSENT, если какие-либо биты из них имеют единичное значение. Данное прерывание остается действительным до сброса EP1INT путем записи в соответствующий бит UDP_ CSR2.

  • EP3INT - статус прерывания конечной точки 3

0 - прерывание конечной точки 3 не возникало.

1 - возникло прерывание конечной точки 3.

Данное прерывание могут генерировать несколько сигналов. Причину, вызвавшую прерывание, можно определить путем чтения UDP_ CSR3. Прерывание генерируется битами RXSETUP, RX_DATA_BK0, RX_DATA_BK1, TXCOMP или STALLSENT, если какие-либо биты из них имеют единичное значение. Данное прерывание остается действительным до сброса EP1INT путем записи в соответствующий бит UDP_ CSR3.

  • RXSUSP - статуса прерывания по приостановке UDP

0 - прерывание по приостановке не возникало.

1 - возникло прерывание по приостановке UDP.

USB-устройство устанавливает этот, если в течение 3 мс не будет обнаружена активность. После этого USB-устройство вводит режим приостановки.

  • RXRSM - статус прерывания по возобновлению UDP

0 - прерывание по возобновлению UDP не возникало.

1 - возникло прерывание по возобновлению UDP.

USB-устройство устанавливает данный бит, если обнаруживается сигнал возобновления работы UDP. После сброса состояние данного бита является неопределенным и в программе необходимо сбросить данный бит путем установки флага RXRSM в регистре UDP_ ICR.

  • EXTRSM - статус прерывания по внешнему возобновлению

0 - прерывание по внешнему возобновлению не отправлялось.

1 - возникло прерывание по внешнему возобновлению.

Данное прерывание возникает, когда, находясь в режиме приостановки, определяется асинхронный нарастающий фронт на линии "send_resume". Если RMWUPE = 1, то состояние возобновления отправляется по шине USB.

  • SOFINT - статус прерывания по старту посылки

0 - прерывание по старту посылки не возникало.

1 - возникло прерывание по старту посылки.

Данное прерывание возникает при каждом определении SOF (старт посылки). Оно может использоваться в качестве сигнала синхронизации за счет использования изохронных конечных точек.

  • ENDBUSRES - статус прерывания по окончанию сброса шины

0 - прерывание по окончанию сброса шины не возникало.

1 - возникло прерывание по окончанию сброса шины.

Данное прерывание возникает в конце последовательности сброса UDP. USB-устройство должно подготовиться к приему запросов для конечной точки 0. Хост инициирует перечисление, а затем выполняет конфигурацию.

  • WAKEUP - статус прерывания по активизации UDP

0 - прерывание по активизации шины не возникало.

1 - возникло прерывание по активизации шины (USB-хост отправил RESUME или RESET) с момента последнего сброса.

После сброса состояние данного бита является неопределенным, поэтому, в программе необходимо предусмотреть сброс данного бита путем установки флага WAKEUP в регистре UDP_ ICR.

35.6.8 Регистр сброса прерывания UDP

Наименование регистра: UDP_ ICR

Тип доступа: только запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

WAKEUP

ENDBUSRES

SOFINT

EXTRSM

RXRSM

RXSUSP

7

6

5

4

3

2

1

0

-

-

-

-

-

-

-

-

  • RXSUSP - сброс прерывания по приостановке UDP

0 - не оказывает влияния.

1 - сбрасывает прерывание по приостановке UDP.

  • RXRSM - сброс прерывания по возобновлению UDP

0 - не оказывает влияния.

1 - сбрасывает прерывание по возобновлению UDP.

  • EXTRSM - сброс прерывания по внешнему возобновлению

0 - не оказывает влияния.

1 - сбрасывает прерывание по внешнему возобновлению.

  • SOFINT - сброс прерывания по старту посылки (SOF)

0 - не оказывает влияния.

1 - сбрасывает прерывание по старту посылки.

  • ENDBURSES - сброс прерывания по окончанию сброса шины

0 - не оказывает влияния.

1 - сбрасывает прерывание по окончанию сброса шины.

  • WAKEUP - сброс прерывания по активизации шины

0 - не оказывает влияния.

1 - сбрасывает прерывание по активизации шины.

35.6.9 Регистр сброса конечной точки UDP

Наименование регистра: UDP_ RST_EP

Тип доступа: чтение/запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

-

-

7

6

5

4

3

2

1

0

-

-

 

 

EP3

EP2

EP1

EP0

  • EP0: сброс конечной точки 0

  • EP1: сброс конечной точки 1

  • EP2: сброс конечной точки 2

  • EP3: сброс конечной точки 3

0 - не оказывает влияния.

1 - устанавливает нулевые значения указателей буфера FIF0 соответствующих конечных точек, поэтому, поле RXBYTECNT в регистре UDP_ CSRx будет считываться с нулевыми значениями.

Данный флаг используется для сброса буфера FIF

 конечной точки и бита RXBYTECOUNT в регистре UDP_CSRx. Он также сбрасывает переключатель данных к DATA0. Флаг полезно использовать после удаления условия HALT поточной конечной точки. См. раздел 5.8.5 "USB Serial Bus Specification, Rev.2.0".

Предупреждение: данный флаг необходимо обнулить по окончании сброса. Он не обнуляет флаги UDP_ CSRx.

35.6.10 Регистр управления и статуса конечной точки UDP

Наименование регистра: UDP_ CSRx [x = 0..3]

Тип доступа: чтение/запись

31

30

29

28

27

26

25

24

-

-

-

-

-

RXBYTECNT

23

22

21

20

19

18

17

16

RXBYTECNT

15

14

13

12

11

10

9

8

EPEDS

-

-

-

DTGLE

EPTYPE

7

6

5

4

3

2

1

0

DIR

RX_DATA_BK1

FORCE STALL

TXPKTRDY

STALLSENT ISOERROR

RXSETUP

RX_DATA_BK0

TXCOMP

  • TXCOMP - генерация пакета "Ввод данных" с данными ранее записанными в DPR

После установки данного флага в единичное состояние генерируется прерывание.

Запись (сбрасывается программно):

0 - сброс флага, отмена прерывания.

1 - не оказывает влияния.

Чтение (устанавливается модулем USB):

0 - транзакция "Ввод данных" не подтверждена хостом.

1 - транзакция "Ввод данных" достигла хоста, на что получено подтверждение.

После инициации транзакции "Ввод данных" путем установки TXPKTRDY программа ожидает подтверждение транзакции хостом, опрашивая состояние TXCOMP.

  • RX_DATA_BK0 - прием банка данных 0

Данный флаг генерирует прерывание до тех пор, пока он имеет единичное значение.

Запись (сбрасывается программно):

0 - уведомляет модуль USB, что данные считаны из банка 0 буфера FIFO.

1 - не оказывает влияния.

Чтение (устанавливается модулем USB):

0 - нет принятого пакета данных в банк 0 буфера FIFO.

1 - пакет данных принят и сохранен в банке 0 буфера FIFO.

После программного опроса данного бита или генерации прерывания с его стороны необходимо выполнить передачу данных из буфера FIF

  • в память микроконтроллера. Количество принятых байт отображается в поле RXBYTCENT. Значения банка 0 FIF

  • считываются через регистр UDP_ FDRx. Сразу по завершении передачи необходимо освободить банк 0 для использования модулем USB-устройства путем сброса бита RX_DATA_BK0.

  • RXSETUP: прием установочного пакета

Данный флаг генерирует прерывание до тех пор, пока он имеет единичное значение.

Чтение:

0 - установочный пакет не доступен.

1 - установочный пакет данных отправлен хостом и доступен в буфере FIFO.

Запись:

0 - уведомляет модуль USB, что установочные данные считаны из буфера FIFO.

1 - не оказывает влияния.

Данный флаг используется для уведомления программы USB-устройства о том, что пакет "Установка" был отправлен хостом и успешно принят устройством. Программа USB-устройства может считать установочные данные из FIFo путем копирования регистра UDP_ FDRx в память микроконтроллера. По завершении копирования RXSETUP необходимо сбросить программно. Очередная транзакция "Вывод данных" не воспринимается до тех пор, пока установлен RXSETUP.

  • STALLSENT: прием подтверждения останова (конечные точки "Управление", "Поток, "Прерывание")/ ISOERROR (изохронные конечные точки)

Данный флаг генерирует прерывание до тех пор, пока он имеет единичное значение.

Установкой STALLSENT завершается квитирование останова.

Чтение:

0 - хост не подтвердил останов.

1 - хост подтвердил останов.

Запись:

0 - сбрасывает флаг STALLSENT, сбрасывает прерывание.

1 - не оказывает влияния.

Программный сброс данного флага является обязательным. В противном случае, будет постоянно генерироваться прерывание. См. параграфы 8.4.5 и 9.4.5 "Universal Serial Bus Specification, Rev. 2.0", где приведена более детальная информация по квитированию подтверждения.

В случае изохронной передачи данный бит имеет функцию ISOERROR и устанавливается, если обнаружена ошибка CRC.

Чтение:

0 - в предыдущей изохронной передаче не было ошибок.

1 - обнаружена CRC-ошибка; данные в FIFo овреждены.

Запись:

0 - сбрасывает флаг ISOERROR, сбрасывает прерывание.

1 - не оказывает никакого влияния.

  • TXPKTRDY - готовность пакета для передачи

Данный флаг сбрасывается USB-устройством, а устанавливается программно на стороне USB-устройства.

Чтение:

0 - данные могут быть помещены в FIFO.

1 - данные не могут быть помещены в FIFO.

Запись:

0 - не оказывает влияния.

1 - данные записаны в FIFO и готовы к отправке.

Данный флаг используется для генерации транзакции "Ввод данных" (в направлении устройство-хост). Программа устройства проверяет возможность записи данных в FIFO путем оценки состояния TXPKTRDY, который должен быть равен нулю. Передача в FIFO выполняется путем записи в регистр UDP_ FDRx. Сразу после передачи данных в FIFO программа должна уведомить об этом USB-устройство путем установки бита TXPKTRDY. После этого можно начинать транзакцию USB. TXCOMP устанавливается сразу после приема данных хостом.

  • FORCESTALL: принудительный останов (used by Control, Bulk and Isochronous Endpoints)

Только запись:

0 - не оказывает никакого влияния.

1 - отправляет останов хосту.

Более детально о подтверждении останова см. в параграфах 8.4.5 и 9.4.5 "Universal Serial Bus Specification, Rev. 2.0".

Конечные точки управления: на этапах "Данные" и "Статус" он индицирует о невозможности завершить запрос микроконтроллером.

Конечные точки "Поток" и "Прерывание": уведомляет хост о том, что конечная точка остановлена.

После подтверждения хостом останова микроконтроллер уведомляется об этом через флаг STALLSENT.

  • RX_DATA_BK1 - прием банка данных 1 (используется только с конечными точками, поддерживающие переключение банков памяти)

Данный флаг генерирует прерывание до тех пор, пока он имеет единичное значение.

Запись (сбрасывается программно):

0 - уведомляет модуль USB, что данные считаны из банка 1 буфера FIFO.

1 - не оказывает влияния.

Чтение (устанавливается модулем USB):

0 - нет принятого пакета данных в банк 1 буфера FIFO.

1 - пакет данных принят и сохранен в банке 1 буфера FIFO.

После программного опроса данного бита или генерации прерывания с его стороны необходимо выполнить передачу данных из буфера FIFO в память микроконтроллера. Количество принятых байт отображается в поле RXBYTCENT. Значения банка 1 FIFO считываются через регистр UDP_ FDRx. Сразу по завершении передачи необходимо освободить банк 1 для использования модулем USB-устройства путем сброса бита RX_DATA_BK1.

  • DIR - направление передачи (поддерживается только для конечных точек управления)

Чтение/запись

0 - разрешает транзакции вывода данных в каскаде данных управления.

1 - разрешает транзакции ввода данных в каскаде данных управления.

Более детальная информация о каскаде данных управления приведена в параграфе 8.5.3 "Universal Serial Bus Specification, Rev. 2.0". Данный бит должен быть установлен до сброса UDP_ CSRx/RXSETUP по окончании этапа "Установка". В соответствии с отправленных запросом в пакете установочных данных выполняется передача данных в направлении устройство-хост (DIR = 1) или хост-устройство (DIR = 0). Нет необходимости проверять данный бит для реверсирования направления этапа "Статус".

  • EPTYPE[2:0] - тип конечной точки

Чтение/запись

000

Управление

001

Изохронный вывод

101

Изохронный ввод

010

Поточный вывод

1100

Поточный ввод

011

Вывод прерывания

111

Ввод прерывания

  • DTGLE - переключатель данных

Только чтение

0 - идентифицирует пакет данных 0 (DATA0).

1 - идентифицирует пакет данных 1 (DATA1).

См. раздел 8 "Universal Serial Bus Specification, Rev. 2.0", где приведена более детальная информация по определениям пакетов данных DATA0 и DATA1.

  • EPEDS - включение/отключение конечной точки

Чтение:

0 - конечная точка отключена.

1 - конечная точка включена.

Запись:

0 - отключение конечной точки.

1 - включение конечной точки.

  • RXBYTECNT[10:0] - количество байт, доступных в буфере FIFO

Только чтение.

После отправки хостом пакета данных USB-устройство сохраняет данные в буфере FIFO и уведомляет об этом микроконтроллер.

Микроконтроллер может считать данные из буфера FIFO путем чтения байт RXBYTECENT в регистре UDP_ FDRx.

35.6.11 Регистр данных FIFO модуля UDP

Наименование регистра: UDP_ FDRx [x = 0..3]

Тип доступа: чтение/запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

-

-

7

6

5

4

3

2

1

0

FIFO_DATA

  • FIFO_DATA[7:0] - значение данных FIFO

Через данный регистр микроконтроллер может помешать или извлекать данные из буфера FIFO. RXBYTECNT в соответствующем регистре UDP_CSRx - количество байт для чтения из FIFO (отправляется хостом). Максимальное количество байт для записи зафиксировано максимальным размером пакета в дескрипторе стандартной конечной точки. Оно не может быть больше размера физической памяти, выделенной для конечной точки. Более детальная информация приведена в технических требованиях к шине USB версии 2.0.

35.6.12 Регистр управления трансивером UDP

Наименование регистра: UDP_ TXVC

Тип доступа: чтение/запись

31

30

29

28

27

26

25

24

-

-

-

-

-

-

-

-

23

22

21

20

19

18

17

16

-

-

-

-

-

-

-

-

15

14

13

12

11

10

9

8

-

-

-

-

-

-

-

TXVDIS

7

6

5

4

3

2

1

0

-

-

-

-

-

-

-

-

ПРЕДУПРЕЖДЕНИЕ: перед выполнением операций чтения/записи регистров UDP, в т.ч. регистр UDP_TXCV, необходимо разрешить синхронизацию модуля UDP в контроллере управления потребляемой мощностью (PMC).

  • TXVDIS - отключение трансивера:

Если модуль UDP отключен, то потребляемую мощность можно уменьшить за счет отключения встроенного трансивера. Для этого необходимо установить бит TXVDIS. Для разрешения работы трансивера бит TXVDIS необходимо установить равным нулю.

Соседние файлы в папке ПЦиПУ. материалы для Курсового проекта Тютякин А.В.