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

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве

текст еще



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 необходимо установить равным нулю.



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





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