USBHS — Universal Serial Bus High Speed
The USBHS (USB high speed) peripheral is a USB 2.0 device that supports USB 2.0 and is backward compatible with the USB 1.1 Specification.
The following are main features of USBHS:
- Multiple DMA/non-DMA mode access support for the application
- Supports up to 16 bidirectional endpoints, including control endpoint 0
- Supports the following modes:
- High-speed (HS) 480 Mbps
- Full-speed (FS) 12 Mbps
- Low-speed (LS) 1.5 Mbps
- Configurable device mode
- Includes automatic ping capabilities
- Supports keep-alive in low-speed mode and SOFs in high- and full-speed modes
- Provides on-chip PLL to reduce clock noise and eliminate the need for an external clock generator
- Supports battery charging, enabling a device to draw current in excess of the USB 2.0 specification for charging or powering up from dedicated charging ports or charging downstream ports
- Does not support On-The-Go (OTG)
USB pins
The USBHS peripheral features a number of dedicated pins which can be grouped into two categories: signal and power.
Signal pins connect to the USB device and consist of the D+ and D- pins. These are dedicated pins and not available as standard GPIO pins. The data line does not need serial resistors. TXRTUNE connects to a tuning resistor on the PCB. The USBHS does not have an ID pin. The USBHS peripheral is implemented according to the USB Specification v2.0, 5V Short Circuit Withstand ECN Requirement Change, meaning these pins are not 5 V tolerant.
See Reference circuitry for the reference circuit diagram.
- The device is powered
- VBUS is in the valid voltage range
- USBHS is enabled by the software driver
TXRTUNE resistor
An external resistor with 200 Ω resistance and 1% tolerance must be connected from the TXRTUNE pin to the VSS pin to calibrate a 45 Ω source impedance for the D+ and D- pins. Using a constant current output from the TXRTUNE pin and measuring the voltage over the external resistor, the nominal voltage over the resistor will be 400 mV.
VBUS detection
The VBUS pin has a voltage detector for both rising and falling voltage. This means it will detect the USB cable being connected and disconnected. The voltage detector generates events that are picked up by the USBHS software driver, which can be used as wakeup-sources for the device.
For pin assignments, see Pin assignments.
Interrupt sharing
USBHS and USBHSCORE share the same interrupt, and interrupts are generated through USBHS.
The interrupts are enabled and disabled using the mechanisms available in USBHSCORE, using registers such as USBHSCORE.GINTSTS and USBHSCORE.GINTMSK.
USBHS not in use
If USBHS is not used in an application, the following applies.
All USBHS pins can be left floating (not connected). See USB pins for the list of USBHS pins.
Do not enable USBHS or the USB regulator.
Registers
Instances
| Instance | Domain | Base address | TrustZone | Split access | Description | ||
|---|---|---|---|---|---|---|---|
| Map | Att | DMA | |||||
USBHS : S | GLOBAL | 0x5005A000 | US | S | SA | No | USBHS |
Configuration
| Instance | Domain | Configuration |
|---|---|---|
USBHS : S | GLOBAL | Has Start of Frame (SOF) event. RTUNE method for calibrating DP and DM 45Ohm source impedance without external TXRTUNE resistor available. Includes STATUS register |
Register overview
| Register | Offset | TZ | Description |
|---|---|---|---|
| TASKS_START | 0x000 | Start the USB peripheral. | |
| TASKS_STOP | 0x004 | Stop the USB peripheral | |
| PUBLISH_SOF | 0x180 | Publish configuration for SOF event. | |
| ENABLE | 0x400 | Enable USB peripheral. | |
| STATUS | 0x408 | This register contains status bits for the USBHS | |
| PHY.CONFIG | 0x440 | USB PHY parameter overrides | |
| PHY.CLOCK | 0x444 | USB PHY clock configurations | |
| PHY.BATTCHRG | 0x448 | Battery Charging Configuration | |
| PHY.BATTCHRGSTATUS | 0x44C | Battery charger input signals | |
| PHY.INPUTOVERRIDE | 0x458 | Enables overriding of individual signals to the PHY, the override values are set in PHY.OVERRIDEVALUES | |
| PHY.OVERRIDEVALUES | 0x45C | Values that are used to override the input signals to the PHY. | |
| PHY.RTUNE | 0x464 | The RTUNE mode is an alternative method for calibrating the DP and DM 45-Ohm source impedance. |
TASKS_START
Address offset: 0x000
Start the USB peripheral.
To start USB peripheral, it needs to be enabled using the ENABLE register first.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | ||||||||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | W | TASKS_START | Start the USB peripheral. To start USB peripheral, it needs to be enabled using the ENABLE register first. | ||||||||||||||||||||||||||||||||
Trigger | 1 | Trigger task | |||||||||||||||||||||||||||||||||
TASKS_STOP
Address offset: 0x004
Stop the USB peripheral
This bit can be cleared to disable the clock to the USB core. By default the clock is enabled when ENABLE.CORE is set. To enable the clock again run the START task.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | ||||||||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | W | TASKS_STOP | Stop the USB peripheral This bit can be cleared to disable the clock to the USB core. By default the clock is enabled when ENABLE.CORE is set. To enable the clock again run the START task. | ||||||||||||||||||||||||||||||||
Trigger | 1 | Trigger task | |||||||||||||||||||||||||||||||||
PUBLISH_SOF
Address offset: 0x180
Publish configuration for SOF event.
In Host mode, this event triggers every time a Start Of Frame (SOF) is generated in the USB controller. In Device mode, this signal triggers every time a SOF token is received from the USB host or when a SOF token is missed at the start of frame.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | A | A | A | A | A | A | A | A | ||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | CHIDX | [0..255] | DPPI channel to publish to | |||||||||||||||||||||||||||||||
| B | RW | EN | Enable publishing of SOF event | ||||||||||||||||||||||||||||||||
Disabled | 0 | Disable publishing | |||||||||||||||||||||||||||||||||
Enabled | 1 | Enable publishing | |||||||||||||||||||||||||||||||||
ENABLE
Address offset: 0x400
Enable USB peripheral.
To enable USB peripheral, both USB Controller and USB PHY need to be enabled
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | A | |||||||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | CORE | Enable USB Controller | ||||||||||||||||||||||||||||||||
Disabled | 0 | USB Controller disabled. | |||||||||||||||||||||||||||||||||
Enabled | 1 | USB Controller enabled. | |||||||||||||||||||||||||||||||||
| B | RW | PHY | Enable USB PHY | ||||||||||||||||||||||||||||||||
Disabled | 0 | USB PHY disabled. | |||||||||||||||||||||||||||||||||
Enabled | 1 | USB PHY enabled. | |||||||||||||||||||||||||||||||||
STATUS
Address offset: 0x408
This register contains status bits for the USBHS
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | ||||||||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | CORE | Indicates wether the USBHS core is ready after a START task | ||||||||||||||||||||||||||||||||
NotReady | 0 | The USBHS core is not ready, and register access to the USBHSCORE registers is not possible. Access to USBHSCORE.PCGCCTL is possible even when NotReady. | |||||||||||||||||||||||||||||||||
Ready | 1 | The USBHS core is ready, and register access to the USBHS.CORE registers is possible | |||||||||||||||||||||||||||||||||
PHY.CONFIG
Address offset: 0x440
USB PHY parameter overrides
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | K | J | J | I | I | H | H | H | H | G | G | G | G | F | F | E | E | D | D | D | C | C | C | B | B | B | B | A | A | ||||
| Reset 0x5533D6F0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | PLLITUNE | [0x0..0x3] | PLL Integral Path Tune | |||||||||||||||||||||||||||||||
| B | RW | PLLPTUNE | [0x0..0xf] | PLL Proportional Path Tune | |||||||||||||||||||||||||||||||
| C | RW | COMPDISTUNE0 | [0x0..0x7] | Disconnect Threshold Adjustment | |||||||||||||||||||||||||||||||
| D | RW | SQRXTUNE0 | [0x0..0x3] | Squelch Threshold Adjustment | |||||||||||||||||||||||||||||||
| E | RW | VDATREFTUNE0 | [0x0..0x3] | Data Detect Voltage Adjustment | |||||||||||||||||||||||||||||||
| F | RW | TXHSXVTUNE0 | [0x0..0x2] | Transmitter High-Speed Crossover Adjustment | |||||||||||||||||||||||||||||||
| G | RW | TXFSLSTUNE0 | [0x0..0x7] | FS/LS Source Impedance Adjustment | |||||||||||||||||||||||||||||||
| H | RW | TXVREFTUNE0 | [0x0..0x7] | HS DC Voltage Level Adjustment | |||||||||||||||||||||||||||||||
| I | RW | TXRISETUNE0 | [0x0..0x2] | HS Transmitter Rise/Fall Time Adjustment | |||||||||||||||||||||||||||||||
| J | RW | TXRESTUNE0 | [0x0..0x2] | USB Source Impedance Adjustment | |||||||||||||||||||||||||||||||
| K | RW | TXPREEMPAMPTUNE0 | [0x0..0x2] | HS Transmitter Pre-Emphasis Current Control | |||||||||||||||||||||||||||||||
| L | RW | TXPREEMPPULSETUNE0 | [0x0..0x1] | HS Transmitter Pre-Emphasis Duration Control | |||||||||||||||||||||||||||||||
PHY.CLOCK
Address offset: 0x444
USB PHY clock configurations
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | B | A | A | A | ||||||||||||||||||||||||||||||
| Reset 0x0000001A | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | FSEL | Select reference clock frequency | ||||||||||||||||||||||||||||||||
Clock19200KHz | 0 | Reference clock is 19.2MHz. The PLLBTUNE must be set to 1. | |||||||||||||||||||||||||||||||||
Clock20000KHz | 1 | Reference clock is 20MHz. The PLLBTUNE must be set to 1. | |||||||||||||||||||||||||||||||||
Clock24000KHz | 2 | Reference clock is 24MHz. The PLLBTUNE must be set to 1. | |||||||||||||||||||||||||||||||||
Clock50000KHz | 7 | Reference clock is 50MHz. The PLLBTUNE must be set to 0. | |||||||||||||||||||||||||||||||||
| B | RW | PLLBTUNE | PLL bandwidth adjustment | ||||||||||||||||||||||||||||||||
Disabled | 0 | PLL bandwidth adjustment disabled. | |||||||||||||||||||||||||||||||||
Enabled | 1 | PLL bandwidth adjustment enabled. | |||||||||||||||||||||||||||||||||
| C | RW | COMMONONN | Common block power down control | ||||||||||||||||||||||||||||||||
POWERED | 0 | The REFCLOCK_LOGIC,bias and PLL blocks are powered in sleep or suspend mode. | |||||||||||||||||||||||||||||||||
SUSPEND | 1 | The REFCLOCK_LOGIC, bias and PLL blocks are powered down in suspend mode and bias and PLL blocks are powered down in sleep mode. | |||||||||||||||||||||||||||||||||
PHY.BATTCHRG
Address offset: 0x448
Battery Charging Configuration
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | B | A | ||||||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | CHRGSEL0 | Battery charging source select | ||||||||||||||||||||||||||||||||
SourceDP0SinkDM0 | 0 | Data source voltage (VDAT_SRC) is sourced onto DP0 and sunk from DM0 | |||||||||||||||||||||||||||||||||
SourceDM0SinkDP0 | 1 | Data source voltage (VDAT_SRC) is sourced onto DM0 and sunk from DP0 | |||||||||||||||||||||||||||||||||
| B | RW | VDATENB0 | Attach/Connect Detection Enable | ||||||||||||||||||||||||||||||||
Disabled | 0 | Data detect voltage (CHG_DET) is disabled | |||||||||||||||||||||||||||||||||
Enabled | 1 | Data detect voltage (CHG_DET) is enabled | |||||||||||||||||||||||||||||||||
| C | RW | VDATSRCENB0 | Battery Charging Source Select | ||||||||||||||||||||||||||||||||
Disabled | 0 | Data source voltage (VDAT_SRC) is disabled | |||||||||||||||||||||||||||||||||
Enabled | 1 | Data source voltage (VDAT_SRC) is enabled | |||||||||||||||||||||||||||||||||
PHY.BATTCHRGSTATUS
Address offset: 0x44C
Battery charger input signals
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | B | A | ||||||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | CHGDET | |||||||||||||||||||||||||||||||||
| B | R | FSVPLUS | |||||||||||||||||||||||||||||||||
| C | R | FSVMINUS | |||||||||||||||||||||||||||||||||
PHY.INPUTOVERRIDE
Address offset: 0x458
Enables overriding of individual signals to the PHY, the override values are set in PHY.OVERRIDEVALUES
The override values are set in the OVERRIDEVALUES register. When INPUTOVERRIDE is enabled for a signal the input signals to the PHY is driven by the OVERRIDEVALUES register, when INPUTOVERRIDE is disabled the input signals to the PHY is driven by the USB controller for normal operation.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | G | F | E | D | C | B | B | A | A | ||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | OPMODE0 | |||||||||||||||||||||||||||||||||
Disabled | 0 | Overrides are disabled | |||||||||||||||||||||||||||||||||
Enabled | 3 | Overrides are enabled | |||||||||||||||||||||||||||||||||
| B | RW | XCVRSEL0 | |||||||||||||||||||||||||||||||||
Disabled | 0 | Overrides are disabled | |||||||||||||||||||||||||||||||||
Enabled | 3 | Overrides are enabled | |||||||||||||||||||||||||||||||||
| C | RW | DPPULLDOWN | |||||||||||||||||||||||||||||||||
| D | RW | DMPULLDOWN | |||||||||||||||||||||||||||||||||
| E | RW | SUSPENDM0 | |||||||||||||||||||||||||||||||||
| F | RW | VBUSVALID | |||||||||||||||||||||||||||||||||
| G | RW | ID | Overrides OTG ID pin signal | ||||||||||||||||||||||||||||||||
PHY.OVERRIDEVALUES
Address offset: 0x45C
Values that are used to override the input signals to the PHY.
These values defines the values of the input signals to the PHY when the INPUTOVERRIDE is enabled.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | G | F | E | D | C | B | B | A | A | ||||||||||||||||||||||||||
| Reset 0x02000000 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | OPMODE0 | |||||||||||||||||||||||||||||||||
| B | RW | XCVRSEL0 | |||||||||||||||||||||||||||||||||
| C | RW | DPPULLDOWN | This field controls the pull-down resistor on D+ | ||||||||||||||||||||||||||||||||
Enable | 1 | The pull-down resistor on D+ is enabled | |||||||||||||||||||||||||||||||||
Disable | 0 | The pull-down resistor on D+ is disabled | |||||||||||||||||||||||||||||||||
| D | RW | DMPULLDOWN | This field controls the pull-down resistor on D- | ||||||||||||||||||||||||||||||||
Enable | 1 | The pull-down resistor on D- is enabled | |||||||||||||||||||||||||||||||||
Disable | 0 | The pull-down resistor on D- is disabled | |||||||||||||||||||||||||||||||||
| E | RW | SUSPENDM0 | |||||||||||||||||||||||||||||||||
| F | RW | VBUSVALID | Signals to the PHY that VBUS is valid, and enables the pull-up resistor on D+ This field is not functional in Host mode. | ||||||||||||||||||||||||||||||||
Valid | 1 | VBUS is valid, and the pull-up resistor on D+ is enabled | |||||||||||||||||||||||||||||||||
NotValid | 0 | VBUS is not valid, and the pull-up resistor on D+ is disabled. | |||||||||||||||||||||||||||||||||
| G | RW | ID | Overrides OTG ID pin signal | ||||||||||||||||||||||||||||||||
Device | 1 | Role is Device | |||||||||||||||||||||||||||||||||
Host | 0 | Role is Host. | |||||||||||||||||||||||||||||||||
PHY.RTUNE
Address offset: 0x464
The RTUNE mode is an alternative method for calibrating the DP and DM 45-Ohm source impedance.
When this method is used, the USBHS REXT resistor does not need to be connected and can be left floating. This RTUNE mode is selected by setting RTUNESEL to 0, and the tune calibration value is set by the RCALCODE input bus.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | B | B | B | A | ||||||||||||||||||||||||||||||
| Reset 0x0000000F | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | RTUNESEL | This signal selects the tuning method for the high-speed DP and DM source impedance of the USBHS. | ||||||||||||||||||||||||||||||||
TXRTUNE | 1 | The TXRTUNE pin, external resistor REXT, and resulting internal digital calibration code are used for tuning the high-speed source impedance. | |||||||||||||||||||||||||||||||||
RTUNE | 0 | The RCALCODE value is used for tuning the high-speed source impedance. | |||||||||||||||||||||||||||||||||
| B | RW | RCALCODE | This signal is used to tune the internal 200 ohm resistor or the USBHS DP and DM high-speed source impedance. All values from 4'b1111 to 4'b0000 are valid. A value of 4'b1111 provides the lowest impedance on DP/DM, and a value of 4'b0000 provides the highest impedance on DP/DM | ||||||||||||||||||||||||||||||||
Registers
Instances
| Instance | Domain | Base address | TrustZone | Split access | Description | ||
|---|---|---|---|---|---|---|---|
| Map | Att | DMA | |||||
USBHSCORE : S | GLOBAL | 0x50020000 | US | S | SA | No | USBHSCORE |
Register overview
| Register | Offset | TZ | Description |
|---|---|---|---|
| GOTGCTL | 0x000 | Control and Status Register | |
| GOTGINT | 0x004 | Interrupt Register | |
| GAHBCFG | 0x008 | AHB Configuration Register | |
| GUSBCFG | 0x00C | USB Configuration Register | |
| GRSTCTL | 0x010 | Reset Register | |
| GINTSTS | 0x014 | Interrupt STATUS Register | |
| GINTMSK | 0x018 | Interrupt Mask Register | |
| GRXSTSR | 0x01C | Receive Status Debug Read Register | |
| GRXSTSP | 0x020 | Receive Status Read/Pop Register | |
| GRXFSIZ | 0x024 | Receive FIFO Size Register | |
| GNPTXFSIZ | 0x028 | Non-periodic Transmit FIFO Size Register | |
| GNPTXSTS | 0x02C | Non-periodic Transmit FIFO/Queue Status Register | |
| GGPIO | 0x038 | General Purpose Input/Output Register | |
| GUID | 0x03C | User ID Register | |
| GSNPSID | 0x040 | Synopsys ID Register | |
| GHWCFG1 | 0x044 | User Hardware Configuration 1 Register | |
| GHWCFG2 | 0x048 | User Hardware Configuration 2 Register | |
| GHWCFG3 | 0x04C | User Hardware Configuration 3 Register | |
| GHWCFG4 | 0x050 | User Hardware Configuration 4 Register | |
| GLPMCFG | 0x054 | LPM Config Register | |
| GPWRDN | 0x058 | Global Power Down Register | |
| GDFIFOCFG | 0x05C | Global DFIFO Configuration Register | |
| GINTMSK2 | 0x068 | Interrupt Mask Register 2 | |
| GINTSTS2 | 0x06C | Interrupt Register 2 | |
| HPTXFSIZ | 0x100 | Host Periodic Transmit FIFO Size Register | |
| DIEPTXF[n] | 0x104 | Device IN Endpoint Transmit FIFO 1 Size Register | |
| HCFG | 0x400 | Host Configuration Register | |
| HFIR | 0x404 | Host Frame Interval Register | |
| HFNUM | 0x408 | Host Frame Number/Frame Time Remaining Register | |
| HPTXSTS | 0x410 | Host Periodic Transmit FIFO/Queue Status Register | |
| HAINT | 0x414 | Host All Channels Interrupt Register | |
| HAINTMSK | 0x418 | Host All Channels Interrupt Mask Register | |
| HPRT | 0x440 | Host Port Control and Status Register | |
| HC[n].CHAR | 0x500 | Host Channel Characteristics Register 0 | |
| HC[n].SPLT | 0x504 | Host Channel Split Control Register 0 | |
| HC[n].INT | 0x508 | Host Channel Interrupt Register 0 | |
| HC[n].INTMSK | 0x50C | Host Channel Interrupt Mask Register 0 | |
| HC[n].TSIZ | 0x510 | Host Channel Transfer Size Register 0 | |
| HC[n].DMA | 0x514 | Host Channel DMA Address Register 0 | |
| DCFG | 0x800 | Device Configuration Register | |
| DCTL | 0x804 | Device Control Register | |
| DSTS | 0x808 | Device Status Register | |
| DIEPMSK | 0x810 | Device IN Endpoint Common Interrupt Mask Register | |
| DOEPMSK | 0x814 | Device OUT Endpoint Common Interrupt Mask Register | |
| DAINT | 0x818 | Device All Endpoints Interrupt Register | |
| DAINTMSK | 0x81C | Device All Endpoints Interrupt Mask Register | |
| DVBUSDIS | 0x828 | Device VBUS Discharge Time Register | |
| DVBUSPULSE | 0x82C | Device VBUS Pulsing Time Register | |
| DTHRCTL | 0x830 | Device Threshold Control Register | |
| DIEPEMPMSK | 0x834 | Device IN Endpoint FIFO Empty Interrupt Mask Register | |
| DIEPCTL0 | 0x900 | Device Control IN Endpoint 0 Control Register | |
| DIEPINT0 | 0x908 | Device IN Endpoint 0 Interrupt Register | |
| DIEPTSIZ0 | 0x910 | Device IN Endpoint 0 Transfer Size Register | |
| DIEPDMA0 | 0x914 | Device IN Endpoint 0 DMA Address Register | |
| DTXFSTS0 | 0x918 | Device IN Endpoint Transmit FIFO Status Register 0 | |
| DIEPCTL1 | 0x920 | Device Control IN Endpoint Control Register 1 | |
| DIEPINT1 | 0x928 | Device IN Endpoint Interrupt Register 1 | |
| DIEPTSIZ1 | 0x930 | Device IN Endpoint Transfer Size Register 1 | |
| DIEPDMA1 | 0x934 | Device IN Endpoint DMA Address Register 1 | |
| DTXFSTS1 | 0x938 | Device IN Endpoint Transmit FIFO Status Register 1 | |
| DIEPCTL2 | 0x940 | Device Control IN Endpoint Control Register 2 | |
| DIEPINT2 | 0x948 | Device IN Endpoint Interrupt Register 2 | |
| DIEPTSIZ2 | 0x950 | Device IN Endpoint Transfer Size Register 2 | |
| DIEPDMA2 | 0x954 | Device IN Endpoint DMA Address Register 2 | |
| DTXFSTS2 | 0x958 | Device IN Endpoint Transmit FIFO Status Register 2 | |
| DIEPCTL3 | 0x960 | Device Control IN Endpoint Control Register 3 | |
| DIEPINT3 | 0x968 | Device IN Endpoint Interrupt Register 3 | |
| DIEPTSIZ3 | 0x970 | Device IN Endpoint Transfer Size Register 3 | |
| DIEPDMA3 | 0x974 | Device IN Endpoint DMA Address Register 3 | |
| DTXFSTS3 | 0x978 | Device IN Endpoint Transmit FIFO Status Register 3 | |
| DIEPCTL4 | 0x980 | Device Control IN Endpoint Control Register 4 | |
| DIEPINT4 | 0x988 | Device IN Endpoint Interrupt Register 4 | |
| DIEPTSIZ4 | 0x990 | Device IN Endpoint Transfer Size Register 4 | |
| DIEPDMA4 | 0x994 | Device IN Endpoint DMA Address Register 4 | |
| DTXFSTS4 | 0x998 | Device IN Endpoint Transmit FIFO Status Register 4 | |
| DIEPCTL5 | 0x9A0 | Device Control IN Endpoint Control Register 5 | |
| DIEPINT5 | 0x9A8 | Device IN Endpoint Interrupt Register 5 | |
| DIEPTSIZ5 | 0x9B0 | Device IN Endpoint Transfer Size Register 5 | |
| DIEPDMA5 | 0x9B4 | Device IN Endpoint DMA Address Register 5 | |
| DTXFSTS5 | 0x9B8 | Device IN Endpoint Transmit FIFO Status Register 5 | |
| DIEPCTL6 | 0x9C0 | Device Control IN Endpoint Control Register 6 | |
| DIEPINT6 | 0x9C8 | Device IN Endpoint Interrupt Register 6 | |
| DIEPTSIZ6 | 0x9D0 | Device IN Endpoint Transfer Size Register 6 | |
| DIEPDMA6 | 0x9D4 | Device IN Endpoint DMA Address Register 6 | |
| DTXFSTS6 | 0x9D8 | Device IN Endpoint Transmit FIFO Status Register 6 | |
| DIEPCTL7 | 0x9E0 | Device Control IN Endpoint Control Register 7 | |
| DIEPINT7 | 0x9E8 | Device IN Endpoint Interrupt Register 7 | |
| DIEPTSIZ7 | 0x9F0 | Device IN Endpoint Transfer Size Register 7 | |
| DIEPDMA7 | 0x9F4 | Device IN Endpoint DMA Address Register 7 | |
| DTXFSTS7 | 0x9F8 | Device IN Endpoint Transmit FIFO Status Register 7 | |
| DIEPCTL8 | 0xA00 | Device Control IN Endpoint Control Register 8 | |
| DIEPINT8 | 0xA08 | Device IN Endpoint Interrupt Register 8 | |
| DIEPTSIZ8 | 0xA10 | Device IN Endpoint Transfer Size Register 8 | |
| DIEPDMA8 | 0xA14 | Device IN Endpoint DMA Address Register 8 | |
| DTXFSTS8 | 0xA18 | Device IN Endpoint Transmit FIFO Status Register 8 | |
| DIEPCTL9 | 0xA20 | Device Control IN Endpoint Control Register 9 | |
| DIEPINT9 | 0xA28 | Device IN Endpoint Interrupt Register 9 | |
| DIEPTSIZ9 | 0xA30 | Device IN Endpoint Transfer Size Register 9 | |
| DIEPDMA9 | 0xA34 | Device IN Endpoint DMA Address Register 9 | |
| DTXFSTS9 | 0xA38 | Device IN Endpoint Transmit FIFO Status Register 9 | |
| DIEPCTL10 | 0xA40 | Device Control IN Endpoint Control Register 10 | |
| DIEPINT10 | 0xA48 | Device IN Endpoint Interrupt Register 10 | |
| DIEPTSIZ10 | 0xA50 | Device IN Endpoint Transfer Size Register 10 | |
| DIEPDMA10 | 0xA54 | Device IN Endpoint DMA Address Register 10 | |
| DTXFSTS10 | 0xA58 | Device IN Endpoint Transmit FIFO Status Register 10 | |
| DIEPCTL11 | 0xA60 | Device Control IN Endpoint Control Register 11 | |
| DIEPINT11 | 0xA68 | Device IN Endpoint Interrupt Register 11 | |
| DIEPTSIZ11 | 0xA70 | Device IN Endpoint Transfer Size Register 11 | |
| DIEPDMA11 | 0xA74 | Device IN Endpoint DMA Address Register 11 | |
| DTXFSTS11 | 0xA78 | Device IN Endpoint Transmit FIFO Status Register 11 | |
| DIEPCTL12 | 0xA80 | Device Control IN Endpoint Control Register 12 | |
| DIEPINT12 | 0xA88 | Device IN Endpoint Interrupt Register 12 | |
| DIEPTSIZ12 | 0xA90 | Device IN Endpoint Transfer Size Register 12 | |
| DIEPDMA12 | 0xA94 | Device IN Endpoint DMA Address Register 12 | |
| DTXFSTS12 | 0xA98 | Device IN Endpoint Transmit FIFO Status Register 12 | |
| DIEPCTL13 | 0xAA0 | Device Control IN Endpoint Control Register 13 | |
| DIEPINT13 | 0xAA8 | Device IN Endpoint Interrupt Register 13 | |
| DIEPTSIZ13 | 0xAB0 | Device IN Endpoint Transfer Size Register 13 | |
| DIEPDMA13 | 0xAB4 | Device IN Endpoint DMA Address Register 13 | |
| DTXFSTS13 | 0xAB8 | Device IN Endpoint Transmit FIFO Status Register 13 | |
| DIEPCTL14 | 0xAC0 | Device Control IN Endpoint Control Register 14 | |
| DIEPINT14 | 0xAC8 | Device IN Endpoint Interrupt Register 14 | |
| DIEPTSIZ14 | 0xAD0 | Device IN Endpoint Transfer Size Register 14 | |
| DIEPDMA14 | 0xAD4 | Device IN Endpoint DMA Address Register 14 | |
| DTXFSTS14 | 0xAD8 | Device IN Endpoint Transmit FIFO Status Register 14 | |
| DIEPCTL15 | 0xAE0 | Device Control IN Endpoint Control Register 15 | |
| DIEPINT15 | 0xAE8 | Device IN Endpoint Interrupt Register 15 | |
| DIEPTSIZ15 | 0xAF0 | Device IN Endpoint Transfer Size Register 15 | |
| DIEPDMA15 | 0xAF4 | Device IN Endpoint DMA Address Register 15 | |
| DTXFSTS15 | 0xAF8 | Device IN Endpoint Transmit FIFO Status Register 15 | |
| DOEPCTL0 | 0xB00 | Device Control OUT Endpoint 0 Control Register | |
| DOEPINT0 | 0xB08 | Device OUT Endpoint 0 Interrupt Register | |
| DOEPTSIZ0 | 0xB10 | Device OUT Endpoint 0 Transfer Size Register | |
| DOEPDMA0 | 0xB14 | Device OUT Endpoint 0 DMA Address Register | |
| DOEPCTL1 | 0xB20 | Device Control OUT Endpoint Control Register 1 | |
| DOEPINT1 | 0xB28 | Device OUT Endpoint Interrupt Register 1 | |
| DOEPTSIZ1 | 0xB30 | Device OUT Endpoint Transfer Size Register 1 | |
| DOEPDMA1 | 0xB34 | Device OUT Endpoint DMA Address Register 1 | |
| DOEPCTL2 | 0xB40 | Device Control OUT Endpoint Control Register 2 | |
| DOEPINT2 | 0xB48 | Device OUT Endpoint Interrupt Register 2 | |
| DOEPTSIZ2 | 0xB50 | Device OUT Endpoint Transfer Size Register 2 | |
| DOEPDMA2 | 0xB54 | Device OUT Endpoint DMA Address Register 2 | |
| DOEPCTL3 | 0xB60 | Device Control OUT Endpoint Control Register 3 | |
| DOEPINT3 | 0xB68 | Device OUT Endpoint Interrupt Register 3 | |
| DOEPTSIZ3 | 0xB70 | Device OUT Endpoint Transfer Size Register 3 | |
| DOEPDMA3 | 0xB74 | Device OUT Endpoint DMA Address Register 3 | |
| DOEPCTL4 | 0xB80 | Device Control OUT Endpoint Control Register 4 | |
| DOEPINT4 | 0xB88 | Device OUT Endpoint Interrupt Register 4 | |
| DOEPTSIZ4 | 0xB90 | Device OUT Endpoint Transfer Size Register 4 | |
| DOEPDMA4 | 0xB94 | Device OUT Endpoint DMA Address Register 4 | |
| DOEPCTL5 | 0xBA0 | Device Control OUT Endpoint Control Register 5 | |
| DOEPINT5 | 0xBA8 | Device OUT Endpoint Interrupt Register 5 | |
| DOEPTSIZ5 | 0xBB0 | Device OUT Endpoint Transfer Size Register 5 | |
| DOEPDMA5 | 0xBB4 | Device OUT Endpoint DMA Address Register 5 | |
| DOEPCTL6 | 0xBC0 | Device Control OUT Endpoint Control Register 6 | |
| DOEPINT6 | 0xBC8 | Device OUT Endpoint Interrupt Register 6 | |
| DOEPTSIZ6 | 0xBD0 | Device OUT Endpoint Transfer Size Register 6 | |
| DOEPDMA6 | 0xBD4 | Device OUT Endpoint DMA Address Register 6 | |
| DOEPCTL7 | 0xBE0 | Device Control OUT Endpoint Control Register 7 | |
| DOEPINT7 | 0xBE8 | Device OUT Endpoint Interrupt Register 7 | |
| DOEPTSIZ7 | 0xBF0 | Device OUT Endpoint Transfer Size Register 7 | |
| DOEPDMA7 | 0xBF4 | Device OUT Endpoint DMA Address Register 7 | |
| DOEPCTL8 | 0xC00 | Device Control OUT Endpoint Control Register 8 | |
| DOEPINT8 | 0xC08 | Device OUT Endpoint Interrupt Register 8 | |
| DOEPTSIZ8 | 0xC10 | Device OUT Endpoint Transfer Size Register 8 | |
| DOEPDMA8 | 0xC14 | Device OUT Endpoint DMA Address Register 8 | |
| DOEPCTL9 | 0xC20 | Device Control OUT Endpoint Control Register 9 | |
| DOEPINT9 | 0xC28 | Device OUT Endpoint Interrupt Register 9 | |
| DOEPTSIZ9 | 0xC30 | Device OUT Endpoint Transfer Size Register 9 | |
| DOEPDMA9 | 0xC34 | Device OUT Endpoint DMA Address Register 9 | |
| DOEPCTL10 | 0xC40 | Device Control OUT Endpoint Control Register 10 | |
| DOEPINT10 | 0xC48 | Device OUT Endpoint Interrupt Register 10 | |
| DOEPTSIZ10 | 0xC50 | Device OUT Endpoint Transfer Size Register 10 | |
| DOEPDMA10 | 0xC54 | Device OUT Endpoint DMA Address Register 10 | |
| DOEPCTL11 | 0xC60 | Device Control OUT Endpoint Control Register 11 | |
| DOEPINT11 | 0xC68 | Device OUT Endpoint Interrupt Register 11 | |
| DOEPTSIZ11 | 0xC70 | Device OUT Endpoint Transfer Size Register 11 | |
| DOEPDMA11 | 0xC74 | Device OUT Endpoint DMA Address Register 11 | |
| DOEPCTL12 | 0xC80 | Device Control OUT Endpoint Control Register 12 | |
| DOEPINT12 | 0xC88 | Device OUT Endpoint Interrupt Register 12 | |
| DOEPTSIZ12 | 0xC90 | Device OUT Endpoint Transfer Size Register 12 | |
| DOEPDMA12 | 0xC94 | Device OUT Endpoint DMA Address Register 12 | |
| DOEPCTL13 | 0xCA0 | Device Control OUT Endpoint Control Register 13 | |
| DOEPINT13 | 0xCA8 | Device OUT Endpoint Interrupt Register 13 | |
| DOEPTSIZ13 | 0xCB0 | Device OUT Endpoint Transfer Size Register 13 | |
| DOEPDMA13 | 0xCB4 | Device OUT Endpoint DMA Address Register 13 | |
| DOEPCTL14 | 0xCC0 | Device Control OUT Endpoint Control Register 14 | |
| DOEPINT14 | 0xCC8 | Device OUT Endpoint Interrupt Register 14 | |
| DOEPTSIZ14 | 0xCD0 | Device OUT Endpoint Transfer Size Register 14 | |
| DOEPDMA14 | 0xCD4 | Device OUT Endpoint DMA Address Register 14 | |
| DOEPCTL15 | 0xCE0 | Device Control OUT Endpoint Control Register 15 | |
| DOEPINT15 | 0xCE8 | Device OUT Endpoint Interrupt Register 15 | |
| DOEPTSIZ15 | 0xCF0 | Device OUT Endpoint Transfer Size Register 15 | |
| DOEPDMA15 | 0xCF4 | Device OUT Endpoint DMA Address Register 15 | |
| PCGCCTL | 0xE00 | Power and Clock Gating Control Register | |
| GSTARFXDIS | 0xF00 | Global STAR Fix Disable Register | |
| DWCOTGDFIFO[n].DATA[o] | 0x1000 | Data FIFO Access Register Map 0 | |
| DWCOTGDFIFODIRECTACCESS.DATA[n] | 0x11000 | Data FIFO Direct Access Register Map |
GOTGCTL
Address offset: 0x000
Control and Status Register
The OTG Control and Status register controls the behavior and reflects the status of the OTG function of the controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | P | O | N | N | N | N | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||
| Reset 0x000D0000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | VBVALIDOVEN | Mode: Host only. VBUS Valid Override Enable (VbvalidOvEn) This bit is used to enable/disable the software to override the Bvalid signal using the GOTGCTL.VbvalidOvVal. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Override is disabled and bvalid signal from the respective PHY selected is used internally by the controller | |||||||||||||||||||||||||||||||||
ENABLED | 1 | The vbus-valid signal received from the PHY is overridden with GOTGCTL.VbvalidOvVal | |||||||||||||||||||||||||||||||||
| B | RW | VBVALIDOVVAL | Mode: Host only. VBUS Valid OverrideValue (VbvalidOvVal) This bit is used to set Override value for vbusvalid signal when GOTGCTL.VbvalidOvEn is set. | ||||||||||||||||||||||||||||||||
SET0 | 0 | vbusvalid value when GOTGCTL.VbvalidOvEn = 1 | |||||||||||||||||||||||||||||||||
SET1 | 1 | vbusvalid value when GOTGCTL.VbvalidOvEn is 1 | |||||||||||||||||||||||||||||||||
| C | RW | AVALIDOVEN | Mode: Host only. A-Peripheral Session Valid Override Enable (AvalidOvEn) This bit is used to enable/disable the software to override the Avalid signal using the GOTGCTL.AvalidOvVal. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Derive AValid from PHY | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Derive Avalid from GOTGCTL.AvalidOvVal | |||||||||||||||||||||||||||||||||
| D | RW | AVALIDOVVAL | Mode: Host only. A-Peripheral Session Valid OverrideValue (AvalidOvVal) This bit is used to set Override value for Avalid signal when GOTGCTL.AvalidOvEn is set. | ||||||||||||||||||||||||||||||||
VALUE0 | 0 | Avalid value is 1'b0 when GOTGCTL.AvalidOvEn =1 | |||||||||||||||||||||||||||||||||
VALUE1 | 1 | Avalid value is 1'b1 when GOTGCTL.AvalidOvEn =1 | |||||||||||||||||||||||||||||||||
| E | RW | BVALIDOVEN | Mode: Device only. B-Peripheral Session Valid Override Value (BvalidOvEn) This bit is used to enable/disable the software to override the Bvalid signal using the GOTGCTL.BvalidOvVal. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Override is disabled and bvalid signal from the respective PHY selected is used internally by the core | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Internally Bvalid received from the PHY is overridden with GOTGCTL.BvalidOvVal | |||||||||||||||||||||||||||||||||
| F | RW | BVALIDOVVAL | Mode: Device only. B-Peripheral Session Valid OverrideValue (BvalidOvVal) This bit is used to set Override value for Bvalid signal when GOTGCTL.BvalidOvEn is set. | ||||||||||||||||||||||||||||||||
VALUE0 | 0 | Bvalid value when GOTGCTL.BvalidOvEn =1 | |||||||||||||||||||||||||||||||||
VALUE1 | 1 | Bvalid value when GOTGCTL.BvalidOvEn =1 | |||||||||||||||||||||||||||||||||
| G | RW | DBNCEFLTRBYPASS | Mode: Host and Device. Debounce Filter Bypass Bypass Debounce filters for avalid, bvalid, vbusvalid, sessend, iddig signals when enabled. Note: This register bit is valid only when debounce filters are present in core. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Debounce Filter Bypass is disabled. | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Debounce Filter Bypass is enabled. | |||||||||||||||||||||||||||||||||
| H | R | CONIDSTS | Mode: Host and Device. Connector ID Status (ConIDSts) Indicates the connector ID status on a connect event. Note: The reset value of this register field can be read only after the PHY clock is stable, or if IDDIG_FILTER is enabled, wait for the filter timer to expire to read the correct reset value which ever event is later. Reset: - 1'b0: in host only mode (OTG_MODE = 5 or 6) - 1'b1: in all other configurations | ||||||||||||||||||||||||||||||||
MODEA | 0 | The core is in A-Device mode. | |||||||||||||||||||||||||||||||||
MODEB | 1 | The core is in B-Device mode. | |||||||||||||||||||||||||||||||||
| I | R | DBNCTIME | Mode: Host only. Long/Short Debounce Time (DbncTime) Indicates the debounce time of a detected connection. | ||||||||||||||||||||||||||||||||
LONG | 0 | Long debounce time, used for physical connections (100 ms + 2.5 micro-sec) | |||||||||||||||||||||||||||||||||
SHORT | 1 | Short debounce time, used for soft connections (2.5 micro-sec) | |||||||||||||||||||||||||||||||||
| J | R | ASESVLD | Mode: Host only. A-Session Valid (ASesVld) Indicates the Host mode transceiver status. Note: If you do not enabled OTG features (such as SRP and HNP), the read reset value will be 1. The vbus assigns the values internally for non-SRP or non-HNP configurations. In case of OTG_MODE=0, the reset value of this bit is 1'b0. | ||||||||||||||||||||||||||||||||
NOTVALID | 0 | A-session is not valid. | |||||||||||||||||||||||||||||||||
VALID | 1 | A-session is valid. | |||||||||||||||||||||||||||||||||
| K | R | BSESVLD | Mode: Device only. B-Session Valid (BSesVld) Indicates the Device mode transceiver status. In OTG mode, you can use this bit to determine if the device is connected or disconnected. Note: - If you do not enable OTG features (such as SRP and HNP), the read reset value will be 1.The vbus assigns the values internally for non- SRP or non-HNP configurations. - In case of OTG_MODE=0, the reset value of this bit is 1'b0. - The reset value of this register field can be read only after the PHY clock is stable, or if IDDIG_FILTER is enabled, wait for the filter timer to expire to read the correct reset value which ever event is later. | ||||||||||||||||||||||||||||||||
NOTVALID | 0 | B-session is not valid. | |||||||||||||||||||||||||||||||||
VALID | 1 | B-session is valid. | |||||||||||||||||||||||||||||||||
| L | RW | OTGVER | OTG Version (OTGVer) Indicates the OTG revision. | ||||||||||||||||||||||||||||||||
VER13 | 0 | Supports OTG Version 1.3 | |||||||||||||||||||||||||||||||||
VER20 | 1 | Supports OTG Version 2.0 | |||||||||||||||||||||||||||||||||
| M | R | CURMOD | Current Mode of Operation (CurMod) Mode: Host and Device Indicates the current mode. Reset: Note: The reset value of this register field can be read only after the PHY clock is stable, or if IDDIG_FILTER is enabled, wait for the filter timer to expire to read the correct reset value which ever event is later. | ||||||||||||||||||||||||||||||||
DEVICEMODE | 0 | Current mode is device mode. | |||||||||||||||||||||||||||||||||
HOSTMODE | 1 | Current mode is host mode. | |||||||||||||||||||||||||||||||||
| N | R | MULTVALIDBC | Mode: Host and Device. Multi Valued ID pin (MultValIdBC) Battery Charger ACA inputs in the following order: | ||||||||||||||||||||||||||||||||
RIDC | 1 | B-Device connected to ACA. VBUS is on. | |||||||||||||||||||||||||||||||||
RIDB | 2 | B-Device connected to ACA. VBUS is off. | |||||||||||||||||||||||||||||||||
RIDA | 4 | A-Device connected to ACA | |||||||||||||||||||||||||||||||||
RIDGND | 8 | A-Device not connected to ACA | |||||||||||||||||||||||||||||||||
RIDFLOAT | 16 | B-Device not connected to ACA | |||||||||||||||||||||||||||||||||
| O | RW | CHIRPEN | Mode: Device Only. This bit when programmed to 1'b1 results in the core asserting chirp_on before sending an actual Chirp "K" signal on USB. This bit is present only if OTG_BC_SUPPORT = 1.If OTG_BC_SUPPORT!=1, this bit is a reserved bit. Do not set this bit when core is operating in HSIC mode because HSIC always operates at High Speed and High speed chirp is not used | ||||||||||||||||||||||||||||||||
CHIRPDISABLE | 0 | The controller does not assert chirp_on before sending an actual Chirp "K" signal on USB. | |||||||||||||||||||||||||||||||||
CHIRPENABLE | 1 | The controller asserts chirp_on before sending an actual Chirp "K" signal on USB. | |||||||||||||||||||||||||||||||||
| P | RW | EUSB2PHYDISCSUPP | This field is only applicable to Device mode and must be set to 1'b1 if eUSB2 PHY is used. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Device disconnect detection using GINTSTS.USBRst interrupt when not in hibernation and GPWRDN.ResetDetected when in hibernation | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Device disconnect detection using GOTGINT.SesEEndDet interrupt when not in hibernation and GPWRDN.StsChngInt when in hibernation | |||||||||||||||||||||||||||||||||
GOTGINT
Address offset: 0x004
Interrupt Register
The application reads this register whenever there is an OTG interrupt and clears the bits in this register to clear the OTG interrupt.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | G | F | E | D | C | B | A | ||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | SESENDDET | Mode: Host and Device. Session End Detected (SesEndDet) The controller sets this bit when the utmiotg_bvalid signal is deasserted. This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Session is Active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SessionEnd utmiotg_bvalid signal is deasserted | |||||||||||||||||||||||||||||||||
| B | RW | SESREQSUCSTSCHNG | Mode: Host and Device. Session Request Success Status Change (SesReqSucStsChng) The core sets this bit on the success or failure of a session request. The application must read the Session Request Success bit in the OTG Control and Status register (GOTGCTL.SesReqScs) to check for success or failure. This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Change in Session Request Status | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Session Request Status has changed | |||||||||||||||||||||||||||||||||
| C | RW | HSTNEGSUCSTSCHNG | Mode: Host and Device. Host Negotiation Success Status Change (HstNegSucStsChng) The core sets this bit on the success or failure of a USB host negotiation request. The application must read the Host Negotiation Success bit of the OTG Control and Status register (GOTGCTL.HstNegScs) to check for success or failure. This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Change | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Host Negotiation Status Change | |||||||||||||||||||||||||||||||||
| D | RW | HSTNEGDET | Mode:Host and Device. Host Negotiation Detected (HstNegDet) The core sets this bit when it detects a host negotiation request on the USB. This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Active HNP Request | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Active HNP request detected | |||||||||||||||||||||||||||||||||
| E | RW | ADEVTOUTCHG | Mode: Host and Device. A-Device Timeout Change (ADevTOUTChg) The core sets this bit to indicate that the A-device has timed out while waiting for the B-device to connect.This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No A-Device Timeout | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | A-Device Timeout | |||||||||||||||||||||||||||||||||
| F | RW | DBNCEDONE | Mode: Host only. Debounce Done (DbnceDone) The core sets this bit when the debounce is completed after the device connect. The application can start driving USB reset after seeing this interrupt. This bit is only valid when the HNP Capable or SRP Capable bit is SET in the Core USB Configuration register (GUSBCFG.HNPCap or GUSBCFG.SRPCap, respectively). This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | After Connect waiting for Debounce to complete | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Debounce completed | |||||||||||||||||||||||||||||||||
| G | RW | MULTVALIPCHNG | This bit when set indicates that there is a change in the value of at least one ACA pin value. This bit is present only if OTG_BC_SUPPORT=1, otherwise it is reserved. | ||||||||||||||||||||||||||||||||
NOACAPINCHANGE | 0 | Indicates there is no change in ACA pin value | |||||||||||||||||||||||||||||||||
ACAPINCHANGE | 1 | Indicates there is a change in ACA pin value | |||||||||||||||||||||||||||||||||
GAHBCFG
Address offset: 0x008
AHB Configuration Register
This register can be used to configure the core after power-on or a change in mode. This register mainly contains AHB system-related configuration parameters. Do not change this register after the initial programming. The application must program this register before starting any transactions on either the AHB or the USB.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | J | J | I | I | H | G | F | E | D | C | B | B | B | B | A | ||||||||||||||||||||
| Reset 0x0A000000 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | GLBLINTRMSK | Mode: Host and device. Global Interrupt Mask (GlblIntrMsk) The application uses this bit to mask or unmask the interrupt line assertion to itself. Irrespective of this bit's setting, the interrupt status registers are updated by the controller. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask the interrupt assertion to the application | |||||||||||||||||||||||||||||||||
NOMASK | 1 | Unmask the interrupt assertion to the application. | |||||||||||||||||||||||||||||||||
| B | RW | HBSTLEN | Mode: Host and device. Burst Length/Type (HBstLen) This field is used in both External and Internal DMA modes. In External DMA mode, these bits appear on dma_burst[3:0] ports, which can be used by an external wrapper to interface the External DMA Controller interface to Synopsys DW_ahb_dmac or ARM PrimeCell. External DMA Mode defines the DMA burst length in terms of 32-bit words: Internal DMA Mode AHB Requester burst type: | ||||||||||||||||||||||||||||||||
WORD1ORSINGLE | 0 | 1 word or single | |||||||||||||||||||||||||||||||||
WORD4ORINCR | 1 | 4 words or INCR | |||||||||||||||||||||||||||||||||
WORD8 | 2 | 8 words | |||||||||||||||||||||||||||||||||
WORD16ORINCR4 | 3 | 16 words or INCR4 | |||||||||||||||||||||||||||||||||
WORD32 | 4 | 32 words | |||||||||||||||||||||||||||||||||
WORD64ORINCR8 | 5 | 64 words or INCR8 | |||||||||||||||||||||||||||||||||
WORD128 | 6 | 128 words | |||||||||||||||||||||||||||||||||
WORD256ORINCR16 | 7 | 256 words or INCR16 | |||||||||||||||||||||||||||||||||
WORDX | 8 | Others reserved | |||||||||||||||||||||||||||||||||
| C | RW | DMAEN | Mode: Host and device. DMA Enable (DMAEn) This bit is always 0 when Completer-Only mode has been selected. | ||||||||||||||||||||||||||||||||
COMPLETERMODE | 0 | Core operates in Completer mode | |||||||||||||||||||||||||||||||||
DMAMODE | 1 | Core operates in a DMA mode | |||||||||||||||||||||||||||||||||
| D | RW | NPTXFEMPLVL | Mode: Host and device. Non-Periodic TxFIFO Empty Level (NPTxFEmpLvl) This bit is used only in Completer mode. In host mode and with Shared FIFO with device mode, this bit indicates when the Non-Periodic TxFIFO Empty Interrupt bit in the Core Interrupt register (GINTSTS.NPTxFEmp) is triggered. With dedicated FIFO in device mode, this bit indicates when IN endpoint Transmit FIFO empty interrupt (DIEPINTn.TxFEmp) is triggered. Host mode and with Shared FIFO with device mode: Dedicated FIFO in device mode: | ||||||||||||||||||||||||||||||||
HALFEMPTY | 0 | DIEPINTn.TxFEmp interrupt indicates that the Non-Periodic TxFIFO is half empty or that the IN Endpoint TxFIFO is half empty. | |||||||||||||||||||||||||||||||||
EMPTY | 1 | GINTSTS.NPTxFEmp interrupt indicates that the Non-Periodic TxFIFO is completely empty or that the IN Endpoint TxFIFO is completely empty. | |||||||||||||||||||||||||||||||||
| E | RW | PTXFEMPLVL | Mode: Host only. Periodic TxFIFO Empty Level (PTxFEmpLvl) Indicates when the Periodic TxFIFO Empty Interrupt bit in the Core Interrupt register (GINTSTS.PTxFEmp) is triggered. This bit is used only in Completer mode. | ||||||||||||||||||||||||||||||||
HALFEMPTY | 0 | GINTSTS.PTxFEmp interrupt indicates that the Periodic TxFIFO is half empty. | |||||||||||||||||||||||||||||||||
EMPTY | 1 | GINTSTS.PTxFEmp interrupt indicates that the Periodic TxFIFO is completely empty. | |||||||||||||||||||||||||||||||||
| F | RW | REMMEMSUPP | Mode: Host and Device. Remote Memory Support (RemMemSupp) This bit is programmed to enable the functionality to wait for the system DMA Done Signal for the DMA Write Transfers. - GAHBCFG.RemMemSupp=1 The int_dma_req output signal is asserted when the DMA starts write transfer to the external memory. When the core is done with the Transfers it asserts int_dma_done signal to flag the completion of DMA writes from the controller. The core then waits for sys_dma_done signal from the system to proceed further and complete the Data Transfer corresponding to a particular Channel/Endpoint. - GAHBCFG.RemMemSupp=0 The int_dma_req and int_dma_done signals are not asserted and the core proceeds with the assertion of the XferComp interrupt as soon as the DMA write transfer is done at the Core Boundary and it does not wait for the sys_dma_done signal to complete the DATA transfers. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Remote Memory Support Feature disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Remote Memory Support Feature enabled | |||||||||||||||||||||||||||||||||
| G | RW | NOTIALLDMAWRIT | Mode: Host and Device. Notify All DMA Write Transactions (NotiAllDmaWrit) This bit is programmed to enable the System DMA Done functionality for all the DMA write Transactions corresponding to the Channel/Endpoint. This bit is valid only when GAHBCFG.RemMemSupp is set to 1. - GAHBCFG.NotiAllDmaWrit = 1 The core asserts int_dma_req for all the DMA write transactions on the AHB interface along with int_dma_done, chep_last_transact and chep_number signal informations. The core waits for sys_dma_done signal for all the DMA write transactions in order to complete the transfer of a particular Channel/Endpoint. - GAHBCFG.NotiAllDmaWrit = 0 The core asserts int_dma_req signal only for the last transaction of DMA write transfer corresponding to a particular Channel/Endpoint. Similarly, the core waits for sys_dma_done signal only for that transaction of DMA write to complete the transfer of a particular Channel/Endpoint. | ||||||||||||||||||||||||||||||||
LASTTRANS | 0 | ||||||||||||||||||||||||||||||||||
ALLTRANS | 1 | The core asserts int_dma_req for all the DMA write transactions on the AHB interface along with int_dma_done, chep_last_transact and chep_number signal informations. The core waits for sys_dma_done signal for all the DMA write transactions in order to complete the transfer of a particular Channel/Endpoint | |||||||||||||||||||||||||||||||||
| H | RW | AHBSINGLE | Mode: Host and Device. AHB Single Support (AHBSingle) This bit when programmed supports Single transfers for the remaining data in a transfer when the core is operating in DMA mode. Note: If this feature is enabled, the AHB RETRY and SPLIT transfers still have INCR burst type. Enable this feature when the AHB Completer connected to the core does not support INCR burst (and when Split, and Retry transactions are not being used in the bus). | ||||||||||||||||||||||||||||||||
INCRBURST | 0 | The remaining data in the transfer is sent using INCR burst size | |||||||||||||||||||||||||||||||||
SINGLEBURST | 1 | The remaining data in the transfer is sent using Single burst size | |||||||||||||||||||||||||||||||||
| I | RW | LOAEOPCHECKCLKSBYTE | Mode: Host. Number of clock cycles to check for EOP SE0 for LOA logic Note: - This field only affects USB2.0 FS operation in UTMI 8bit mode. The mac_prt logic checks for the programmed number of clocks of SE0 to validate an EOP for a packet. - The actual number of clocks checked will be the value programmed plus 1. So a value 1 results in checking for 2 clocks of SE0. Value of 3 checks 4 clocks of SE0 and so on. - The default value is 1, which results in 2 clocks of SE0 check. | ||||||||||||||||||||||||||||||||
ONE | 1 | Check for 2 clocks of EOP SE0 | |||||||||||||||||||||||||||||||||
TWO | 2 | Check for 3 clocks of EOP SE0 | |||||||||||||||||||||||||||||||||
| J | RW | LOAEOPCHECKCLKSWORD | Mode: Host. Number of clock cycles to check for EOP SE0 for LOA logic Note: - This field only affects USB2.0 FS operation in UTMI 16bit mode. The mac_prt logic checks for the programmed number of clocks of SE0 to validate an EOP for a packet. - The actual number of clocks checked will be the value programmed plus 1. So a value 1 results in checking for 2 clocks of SE0. Value of 3 checks 4 clocks of SE0 and so on. - The default value is 1, which results in 2 clocks of SE0 check. | ||||||||||||||||||||||||||||||||
ONE | 1 | Check for 2 clocks of EOP SE0 | |||||||||||||||||||||||||||||||||
TWO | 2 | Check for 3 clocks of EOP SE0 | |||||||||||||||||||||||||||||||||
GUSBCFG
Address offset: 0x00C
USB Configuration Register
This register can be used to configure the core after power-on or when changing to Host mode or Device mode. It contains USB and USB-PHY related configuration parameters. The application must program this register before starting any transactions on either the AHB or the USB. If you are using the HSIC interface, HSIC PHY must be in reset while programming this register. Do not make changes to this register after the initial programming.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | F | F | F | F | E | D | C | B | A | A | A | |||||||||||||||||
| Reset 0x10001400 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | TOUTCAL | Mode: Host and Device. HS/FS Timeout Calibration (TOutCal) The number of PHY clocks that the application programs in this field is added to the high-speed/full-speed interpacket timeout duration in the core to account for any additional delays introduced by the PHY. This can be required, because the delay introduced by the PHY in generating the linestate condition can vary from one PHY to another. The USB standard timeout value for high-speed operation is 736 to 816 (inclusive) bit times. The USB standard timeout value for full-speed operation is 16 to 18 (inclusive) bit times. The application must program this field based on the speed of enumeration. The number of bit times added per PHY clock are as follows: High-speed operation: - One 30-MHz PHY clock = 16 bit times - One 60-MHz PHY clock = 8 bit times Full-speed operation: - One 30-MHz PHY clock = 0.4 bit times - One 60-MHz PHY clock = 0.2 bit times - One 48-MHz PHY clock = 0.25 bit times | ||||||||||||||||||||||||||||||||
ZERO | 0 | Add 0 PHY clocks | |||||||||||||||||||||||||||||||||
ONE | 1 | Add 1 PHY clocks | |||||||||||||||||||||||||||||||||
TWO | 2 | Add 2 PHY clocks | |||||||||||||||||||||||||||||||||
THREE | 3 | Add 3 PHY clocks | |||||||||||||||||||||||||||||||||
FOUR | 4 | Add 4 PHY clocks | |||||||||||||||||||||||||||||||||
FIVE | 5 | Add 5 PHY clocks | |||||||||||||||||||||||||||||||||
SIX | 6 | Add 6 PHY clocks | |||||||||||||||||||||||||||||||||
SEVEN | 7 | Add 7 PHY clocks | |||||||||||||||||||||||||||||||||
| B | RW | PHYIF | Mode: Host and Device. PHY Interface (PHYIf) The application uses this bit to configure the core to support a UTMI+ PHY with an 8- or 16-bit interface. When a ULPI PHY is chosen, this must be Set to 8-bit mode. This bit is writable only If UTMI+ and ULPI were selected. Otherwise, this bit returns the value for the power-on interface selected during configuration. | ||||||||||||||||||||||||||||||||
BITS8 | 0 | PHY 8bit Mode | |||||||||||||||||||||||||||||||||
BITS16 | 1 | PHY 16bit Mode | |||||||||||||||||||||||||||||||||
| C | R | ULPIUTMISEL | Mode: Host and Device. ULPI or UTMI+ Select (ULPI_UTMI_Sel) The application uses this bit to select either a UTMI+ interface or ULPI Interface. | ||||||||||||||||||||||||||||||||
UTMI | 0 | UTMI+ Interface | |||||||||||||||||||||||||||||||||
ULPI | 1 | ULPI Interface | |||||||||||||||||||||||||||||||||
| D | R | FSINTF | Mode: Host and Device. Full-Speed Serial Interface Select (FSIntf) The application uses this bit to select either a unidirectional or bidirectional USB 1.1 full-speed serial transceiver interface. If a USB 1.1 Full-Speed Serial Transceiver interface was not selected, this bit is always 0, with Write Only access. If a USB 1.1 FS interface was selected, Then the application can Set this bit to select between the 3- and 6-pin interfaces, and access is Read and Write. Note: For supporting the new 4-pin bi-directional interface, you need to select 6-pin unidirectional FS serial mode, and add an external control to convert it to a 4-pin interface. | ||||||||||||||||||||||||||||||||
FS6PIN | 0 | 6-pin unidirectional full-speed serial interface | |||||||||||||||||||||||||||||||||
FS3PIN | 1 | 3-pin bidirectional full-speed serial interface | |||||||||||||||||||||||||||||||||
| E | R | PHYSEL | PHYSel Mode: Host and Device USB 2.0 High-Speed PHY or USB 1.1 Full-Speed Serial Transceiver Select (PHYSel) The application uses this bit to select either a high-speed UTMI+ or ULPI PHY, or a full-speed transceiver. If a USB 1.1 Full-Speed Serial Transceiver interface was not selected in, this bit is always 0, with Write Only access. If a high-speed PHY interface was not selected in, this bit is always 1, with Write Only access. If both interface types were selected (parameters have non-zero values), the application uses this bit to select which interface is active, and access is Read and Write. | ||||||||||||||||||||||||||||||||
USB20 | 0 | USB 2.0 high-speed UTMI+ or ULPI PHY is selected | |||||||||||||||||||||||||||||||||
USB11 | 1 | USB 1.1 full-speed serial transceiver is selected | |||||||||||||||||||||||||||||||||
| F | RW | USBTRDTIM | Mode: Device only. USB Turnaround Time (USBTrdTim) Sets the turnaround time in PHY clocks. Specifies the response time for a MAC request to the Packet FIFO Controller (PFC) to fetch data from the DFIFO (SPRAM). This must be programmed to Note:Refer to Programming Guide Section "Choosing the Value of GUSBCFG.USBTrdTim" for the turnaround time calculation. During the AHB Clock Frequency selection, it is recommended to consider mis-sampling into account for USBTrdTim. USB turnaround time is critical for certification where long cables and 5-Hubs are used. If you need the AHB to run at less than 30 MHz (or less than 42MHz when operating in 16-bit UTMI mode in HS speed), and if USB turnaround time is not critical, these bits can be programmed to a larger value. | ||||||||||||||||||||||||||||||||
TURNTIME16BIT | 5 | MAC interface is 16-bit UTMI+. | |||||||||||||||||||||||||||||||||
TURNTIME8BIT | 9 | MAC interface is 8-bit UTMI+. | |||||||||||||||||||||||||||||||||
| G | RW | PHYLPWRCLKSEL | PHY Low-Power Clock Select (PhyLPwrClkSel) Mode: Host and Device Selects either 480-MHz or 48-MHz (low-power) PHY mode. In FS and LS modes, the PHY can usually operate on a 48-MHz clock to save power. In 480 MHz mode, the UTMI interface operates at either 60 or 30-MHz, depending upon whether 8- or 16-bit data width is selected. In 48-MHz mode, the UTMI interface operates at 48 MHz in FS mode and at either 48 or 6 MHz in LS mode (depending on the PHY vendor). This bit drives the utmi_fsls_low_power core output signal, and is valid only for UTMI+ PHYs. | ||||||||||||||||||||||||||||||||
INTPLLCLK | 0 | 480-MHz Internal PLL clock | |||||||||||||||||||||||||||||||||
EXTCLK | 1 | 48-MHz External Clock | |||||||||||||||||||||||||||||||||
| H | RW | TERMSELDLPULSE | Mode: Device only. TermSel DLine Pulsing Selection (TermSelDLPulse) This bit selects utmi_termselect to drive data line pulse during SRP. | ||||||||||||||||||||||||||||||||
TXVALID | 0 | Data line pulsing using utmi_txvalid | |||||||||||||||||||||||||||||||||
TERMSEL | 1 | Data line pulsing using utmi_termsel | |||||||||||||||||||||||||||||||||
| I | R | ICUSBCAP | Mode: Host and Device. IC_USB-Capable (IC_USBCap) The application uses this bit to control the core's IC_USB capabilities. This bit is writable only if OTG_ENABLE_IC_USB=1 and OTG_FSPHY_INTERFACE!=0. The reset value depends on the configuration parameter OTG_SELECT_IC_USB when OTG_ENABLE_IC_USB = 1. In all other cases, this bit is set to 1'b0 and the bit is read only. | ||||||||||||||||||||||||||||||||
NOTSELECTED | 0 | IC_USB PHY Interface is not selected | |||||||||||||||||||||||||||||||||
SELECTED | 1 | IC_USB PHY Interface is selected | |||||||||||||||||||||||||||||||||
| J | RW | TXENDDELAY | Mode: Device only. Tx End Delay (TxEndDelay) Setting this bit to 1'b1 enables the controller to follow the TxEndDelay timings as per UTMI+ specification 1.05 section 4.1.5 for opmode signal during remote wakeup. The default value of this field is 1'b1 and it is not recommended to program it to 1'b0. The option to set it to 1'b0 (Normal Mode) is present only for debug purpose. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Normal Mode | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Tx End delay | |||||||||||||||||||||||||||||||||
| K | RW | FORCEHSTMODE | Mode: Host and device. Force Host Mode (ForceHstMode) Writing a 1 to this bit forces the core to host mode irrespective of utmiotg_iddig input pin. After setting the force bit, the application must wait at least 25 ms before the change to take effect. When the simulation is in scale down mode, waiting for 500 micro sec is sufficient. This bit is valid only when OTG_MODE = 0, 1 or 2. In all other cases, this bit reads 0. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Normal Mode | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Force Host Mode | |||||||||||||||||||||||||||||||||
| L | RW | FORCEDEVMODE | Mode:Host and device. Force Device Mode (ForceDevMode) Writing a 1 to this bit forces the controller to device mode irrespective of utmiotg_iddig input pin. After setting the force bit, the application must wait at least 25 ms before the change to take effect. When the simulation is in scale down mode, waiting for 500 micro sec is sufficient. This bit is valid only when OTG_MODE = 0, 1 or 2. In all other cases, this bit reads 0. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Normal Mode | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Force Device Mode | |||||||||||||||||||||||||||||||||
| M | W | CORRUPTTXPKT | Mode: Host and device. Corrupt Tx packet (CorruptTxPkt) This bit is for debug purposes only. Never Set this bit to 1. The application must always write 1'b0 to this bit. | ||||||||||||||||||||||||||||||||
Disabled | 0 | Normal Mode | |||||||||||||||||||||||||||||||||
Enabled | 1 | Debug Mode | |||||||||||||||||||||||||||||||||
GRSTCTL
Address offset: 0x010
Reset Register
The application uses this register to reset various hardware features inside the controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | J | I | H | G | G | G | F | F | F | F | F | E | D | C | B | A | |||||||||||||||||||
| Reset 0x80000000 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | CSFTRST | Mode: Host and Device. Core Soft Reset (CSftRst) Resets the hclk and phy_clock domains as follows: - Clears the interrupts and all the CSR registers except the following register bits: -- PCGCCTL.RstPdwnModule -- PCGCCTL.GateHclk -- PCGCCTL.PwrClmp -- PCGCCTL.StopPPhyLPwrClkSelclk -- GUSBCFG.ForceDevMode -- GUSBCFG.ForceHstMode -- GUSBCFG.PhyLPwrClkSel -- GUSBCFG.DDRSel -- GUSBCFG.PHYSel -- GUSBCFG.FSIntf -- GUSBCFG.ULPI_UTMI_Sel -- GUSBCFG.PHYIf -- GUSBCFG.TxEndDelay -- GUSBCFG.TermSelDLPulse -- GUSBCFG.ULPIClkSusM -- GUSBCFG.ULPIAutoRes -- GUSBCFG.ULPIFsLs -- GGPIO -- GPWRDN -- GADPCTL -- HCFG.FSLSPclkSel -- DCFG.DevSpd -- DCTL.SftDiscon - All module state machines - All module state machines (except the AHB Completer Unit) are reset to the IDLE state, and all the transmit FIFOs and the receive FIFO are flushed. - Any transactions on the AHB Requester are terminated as soon as possible, after gracefully completing the last data phase of an AHB transfer. Any transactions on the USB are terminated immediately. - When Hibernation or ADP feature is enabled, the PMU module is not reset by the Core Soft Reset. The application can write to this bit any time it wants to reset the core. The application must clear this bit after checking the bit 29 of this register (Core Soft Reset Done). Software must also must check that bit 31 of this register is 1 (AHB Requester is IDLE) before starting any operation. Typically software reset is used during software development and also when you dynamically change the PHY selection bits in the USB configuration registers listed above. When you change the PHY, the corresponding clock for the PHY is selected and used in the PHY domain. Once a new clock is selected, the PHY domain has to be reset for proper operation. | ||||||||||||||||||||||||||||||||
NOTACTIVE | 0 | No reset | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Resets hclk and phy_clock domains | |||||||||||||||||||||||||||||||||
| B | RW | PIUFSSFTRST | Mode: Host and Device. PIU FS Dedicated Controller Soft Reset (PIUFSSftRst) Resets the PIU FS Dedicated Controller All module state machines in FS Dedicated Controller of PIU are reset to the IDLE state. Used to reset the FS Dedicated controller in PIU in case of any PHY Errors like Loss of activity or Babble Error resulting in the PHY remaining in RX state for more than one frame boundary. This is a self clearing bit and core clears this bit after all the necessary logic is reset in the core. | ||||||||||||||||||||||||||||||||
RESETINACTIVE | 0 | No Reset | |||||||||||||||||||||||||||||||||
RESETACTIVE | 1 | PIU FS Dedicated Controller Soft Reset | |||||||||||||||||||||||||||||||||
| C | RW | FRMCNTRRST | Mode: Host only. Host Frame Counter Reset (FrmCntrRst) The application writes this bit to reset the (micro)Frame number counter inside the core. When the (micro)Frame counter is reset, the subsequent SOF sent out by the core has a (micro)Frame number of 0. When application writes 1 to the bit, it might not be able to read back the value as it gets cleared by the core in a few clock cycles. | ||||||||||||||||||||||||||||||||
NOTACTIVE | 0 | No reset | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Host Frame Counter Reset | |||||||||||||||||||||||||||||||||
| D | RW | RXFFLSH | Mode: Host and Device. RxFIFO Flush (RxFFlsh) The application can flush the entire RxFIFO using this bit, but must first ensure that the core is not in the middle of a transaction. The application must only write to this bit after checking that the controller is neither reading from the RxFIFO nor writing to the RxFIFO. The application must wait until the bit is cleared before performing any other operations. This bit requires eight clocks (slowest of PHY or AHB clock) to clear. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Does not flush the entire RxFIFO | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Flushes the entire RxFIFO | |||||||||||||||||||||||||||||||||
| E | RW | TXFFLSH | Mode: Host and Device. TxFIFO Flush (TxFFlsh) This bit selectively flushes a single or all transmit FIFOs, but cannot do so If the core is in the midst of a transaction. The application must write this bit only after checking that the core is neither writing to the TxFIFO nor reading from the TxFIFO. Verify using these registers: - ReadNAK Effective Interrupt ensures the core is not reading from the FIFO - WriteGRSTCTL.AHBIdle ensures the core is not writing anything to the FIFO. Flushing is normally recommended when FIFOs are reconfigured or when switching between Shared FIFO and Dedicated Transmit FIFO operation. FIFO flushing is also recommended during device endpoint disable. The application must wait until the core clears this bit before performing any operations. This bit takes eight clocks to clear, using the slower clock of phy_clk or hclk. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Flush | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Selectively flushes a single or all transmit FIFOs | |||||||||||||||||||||||||||||||||
| F | RW | TXFNUM | Mode: Host and Device. TxFIFO Number (TxFNum) This is the FIFO number that must be flushed using the TxFIFO Flush bit. This field must not be changed until the core clears the TxFIFO Flush bit. -- Non-periodic TxFIFO flush in Host mode -- Non-periodic TxFIFO flush in device mode when in shared FIFO operation -- Tx FIFO 0 flush in device mode when in dedicated FIFO mode -- Periodic TxFIFO flush in Host mode -- Periodic TxFIFO 1 flush in Device mode when in shared FIFO operation -- TXFIFO 1 flush in device mode when in dedicated FIFO mode -- Periodic TxFIFO 2 flush in Device mode when in shared FIFO operation -- TXFIFO 2 flush in device mode when in dedicated FIFO mode ... -- Periodic TxFIFO 15 flush in Device mode when in shared FIFO operation -- TXFIFO 15 flush in device mode when in dedicated FIFO mode | ||||||||||||||||||||||||||||||||
TXF0 | 0 | -Periodic TxFIFO flush in host mode -Periodic TxFIFO 0 flush in device mode when in shared FIFO operation -TXFIFO 0 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF1 | 1 | -Periodic TxFIFO flush in host mode -Periodic TxFIFO 1 flush in device mode when in shared FIFO operation -TXFIFO 1 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF2 | 2 | -Periodic TxFIFO 2 flush in device mode when in shared FIFO operation -TXFIFO 2 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF3 | 3 | -Periodic TxFIFO 3 flush in device mode when in shared FIFO operation -TXFIFO 3 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF4 | 4 | -Periodic TxFIFO 4 flush in device mode when in shared FIFO operation -TXFIFO 4 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF5 | 5 | -Periodic TxFIFO 5 flush in device mode when in shared FIFO operation -TXFIFO 5 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF6 | 6 | -Periodic TxFIFO 6 flush in device mode when in shared FIFO operation -TXFIFO 6 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF7 | 7 | -Periodic TxFIFO 7 flush in device mode when in shared FIFO operation -TXFIFO 7 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF8 | 8 | -Periodic TxFIFO 8 flush in device mode when in shared FIFO operation -TXFIFO 8 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF9 | 9 | -Periodic TxFIFO 9 flush in device mode when in shared FIFO operation -TXFIFO 9 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF10 | 10 | -Periodic TxFIFO 10 flush in device mode when in shared FIFO operation -TXFIFO 10 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF11 | 11 | -Periodic TxFIFO 11 flush in device mode when in shared FIFO operation -TXFIFO 11 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF12 | 12 | -Periodic TxFIFO 12 flush in device mode when in shared FIFO operation -TXFIFO 12 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF13 | 13 | -Periodic TxFIFO 13 flush in Device mode when in shared FIFO operation -TXFIFO 13 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF14 | 14 | -Periodic TxFIFO 14 flush in Device mode when in shared FIFO operation -TXFIFO 14 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF15 | 15 | -Periodic TxFIFO 15 flush in Device mode when in shared FIFO operation - TXFIFO 15 flush in device mode when in dedicated FIFO mode | |||||||||||||||||||||||||||||||||
TXF16 | 16 | Flush all the transmit FIFOs in device or host mode | |||||||||||||||||||||||||||||||||
| G | RW | CLOCKSWITCHTIMER | This field is applicable if the controller is configured with multiple PHY interfaces. It must be programmed before programming the required PHY interface in GUSBCFG register. Host Mode: Set this field to 3'b111 if: - The clock from the previous PHY is OFF before switching to the new PHY. Set this field to 3'b010 if all the below conditions are satisfied: - (OTG_FSPHY_INTERFACE != 0 && OTG_HSPHY_INTERFACE !=0) - USB1.1 FS Serial PHY will be used (i.e., GUSBCFG.PHYSel = 1'b1). - Clock from previous PHY is not OFF before switching to the new PHY. This field need not be programmed in other cases. Device Mode: Set this field to 3'b111 if: - The clock from the previous PHY is off before switching to the new PHY. Set this field to 3'b010 if all the below conditions are satisfied: - (OTG_FSPHY_INTERFACE != 0 && OTG_HSPHY_INTERFACE !=0) - USB1.1 FS Serial PHY will be used (i.e., GUSBCFG.PHYSel = 1'b1) - DCFG.DevSpd = 2'b10. - Clock from previous PHY is not OFF before switching to the new PHY. This field need not be programmed in other cases. Note: This field is not required to be programmed if Shared PHY interface is not configured. | ||||||||||||||||||||||||||||||||
TIMERVALUE19 | 0 | timer value set to 19 | |||||||||||||||||||||||||||||||||
TIMERVALUE15 | 1 | timer value set to 15 | |||||||||||||||||||||||||||||||||
TIMERVALUE147 | 2 | timer value set to 147 | |||||||||||||||||||||||||||||||||
TIMERVALUE50 | 3 | timer value set to 50 | |||||||||||||||||||||||||||||||||
TIMERVALUE100 | 4 | timer value set to 100 | |||||||||||||||||||||||||||||||||
TIMERVALUE125 | 5 | timer value set to 125 | |||||||||||||||||||||||||||||||||
TIMERVALUE200 | 6 | timer value set to 200 | |||||||||||||||||||||||||||||||||
TIMERDISABLED | 7 | timer is disabled | |||||||||||||||||||||||||||||||||
| H | RW | CSFTRSTDONE | Mode: Host and Device. Core Soft Reset Done (CSftRstDone) The core sets this bit when all the necessary logic is reset in the core.This bit is cleared by the application along with GRSTCTL.CSftRst (bit 0) | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No reset | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Core Soft Reset is done | |||||||||||||||||||||||||||||||||
| I | R | DMAREQ | Mode: Host and Device. DMA Request Signal (DMAReq) Indicates that the DMA request is in progress. Used for debug. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No DMA request | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | DMA request is in progress | |||||||||||||||||||||||||||||||||
| J | R | AHBIDLE | Mode: Host and Device. AHB Requester Idle (AHBIdle) Indicates that the AHB Requester State Machine is in the IDLE condition. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not Idle | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Requester Idle | |||||||||||||||||||||||||||||||||
GINTSTS
Address offset: 0x014
Interrupt STATUS Register
This register interrupts the application for system-level events in the current mode (Device mode or Host mode). Some of the bits in this register are valid only in Host mode, while others are valid in Device mode only. This register also indicates the current mode. To clear the interrupt status bits of type R_SS_WC, the application must write 1'b1 to the bit. The FIFO status interrupts are read only; once software reads from or writes to the FIFO while servicing these interrupts, FIFO interrupt conditions are cleared automatically. The application must clear the GINTSTS register at initialization before unmasking the interrupt bit to avoid any interrupts generated prior to initialization. Note: Read the reset value of GINTSTS.CurMod only after the following conditions: - If IDDIG_FILTER is disabled, read only after PHY clock is stable. - If IDDIG_FILTER is enabled, read only after the filter timer expires.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | d | c | b | a | Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||
| Reset 0x04000020 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | CURMOD | Mode: Host and Device. Current Mode of Operation (CurMod) Indicates the current mode. Note: The reset value of this register field can be read only after the PHY clock is stable, or if IDDIG_FILTER is enabled, wait for the filter timer to expire to read the correct reset value which ever event is later. | ||||||||||||||||||||||||||||||||
DEVICE | 0 | Device mode | |||||||||||||||||||||||||||||||||
HOST | 1 | Host mode | |||||||||||||||||||||||||||||||||
| B | RW | MODEMIS | Mode: Host and Device. Mode Mismatch Interrupt (ModeMis) The core sets this bit when the application is trying to access: - A Host mode register, when the controller is operating in Device mode - A Device mode register, when the controller is operating in Host mode The register access is completed on the AHB with an OKAY response, but is ignored by the controller internally and does not affect the operation of the controller. This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Mode Mismatch Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Mode Mismatch Interrupt | |||||||||||||||||||||||||||||||||
| C | R | OTGINT | Mode: Host and Device. OTG Interrupt (OTGInt) The controller sets this bit to indicate an OTG protocol event. The application must read the OTG Interrupt Status (GOTGINT) register to determine the exact event that caused this interrupt. The application must clear the appropriate status bit in the GOTGINT register to clear this bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OTG Interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SOF | Mode: Host and Device. Start of (micro)Frame (Sof) In Host mode, the core sets this bit to indicate that an SOF (FS), micro-SOF (HS), or Keep-Alive (LS) is transmitted on the USB. The application must write a 1 to this bit to clear the interrupt. In Device mode, the controller sets this bit to indicate that an SOF token has been received on the USB. The application can read the Device Status register to get the current (micro)Frame number. This interrupt is seen only when the core is operating at either HS or FS. This bit can be set only by the core and the application must write 1 to clear it. Note: This register may return 1'b1 if read immediately after power-on reset. If the register bit reads 1'b1 immediately after power-on reset, it does not indicate that an SOF has been sent (in case of host mode) or SOF has been received (in case of device mode). The read value of this interrupt is valid only after a valid connection between host and device is established. If the bit is set after power on reset the application can clear the bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Start of Frame | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Start of Frame | |||||||||||||||||||||||||||||||||
| E | R | RXFLVL | Mode: Host and Device. RxFIFO Non-Empty (RxFLvl) Indicates that there is at least one packet pending to be read from the RxFIFO. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Rx Fifo is empty | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Rx Fifo is not empty | |||||||||||||||||||||||||||||||||
| F | R | NPTXFEMP | Mode: Host and Device. Non-periodic TxFIFO Empty (NPTxFEmp) This interrupt is asserted when the Non-periodic TxFIFO is either half or completely empty, and there is space for at least one Entry to be written to the Non-periodic Transmit Request Queue. The half or completely empty status is determined by the Non-periodic TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl). In host mode, the application can use GINTSTS.NPTxFEmp with the OTG_EN_DED_TX_FIFO parameter set to either 1 or 0. In device mode, the application uses GINTSTS.NPTxFEmp when OTG_EN_DED_TX_FIFO=0. When OTG_EN_DED_TX_FIFO=1, the application uses DIEPINTn.TxFEmp. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Non-periodic TxFIFO is not empty | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Non-periodic TxFIFO is empty | |||||||||||||||||||||||||||||||||
| G | R | GINNAKEFF | Mode: Device only. Global IN Non-periodic NAK Effective (GINNakEff) Indicates that the Set Global Non-periodic IN NAK bit in the Device Control register (DCTL.SGNPInNak) set by the application, has taken effect in the core. That is, the core has sampled the Global IN NAK bit Set by the application. This bit can be cleared by clearing the Clear Global Non-periodic IN NAK bit in the Device Control register (DCTL.CGNPInNak). This interrupt does not necessarily mean that a NAK handshake is sent out on the USB. The STALL bit takes precedence over the NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Global Non-periodic IN NAK not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set Global Non-periodic IN NAK bit | |||||||||||||||||||||||||||||||||
| H | R | GOUTNAKEFF | Mode: Device only. Global OUT NAK Effective (GOUTNakEff) Indicates that the Set Global OUT NAK bit in the Device Control register (DCTL.SGOUTNak), Set by the application, has taken effect in the core. This bit can be cleared by writing the Clear Global OUT NAK bit in the Device Control register (DCTL.CGOUTNak). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not Active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Global OUT NAK Effective | |||||||||||||||||||||||||||||||||
| I | RW | ERLYSUSP | Mode: Device only. Early Suspend (ErlySusp) The controller sets this bit to indicate that an Idle state has been detected on the USB for 3 ms. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Idle state detected | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | 3ms of Idle state detected | |||||||||||||||||||||||||||||||||
| J | RW | USBSUSP | Mode: Device only. USB Suspend (USBSusp) The controller sets this bit to indicate that a suspend was detected on the USB. The controller enters the Suspended state when there is no activity on the linestate signal for an extended period of time. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not Active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | USB Suspend | |||||||||||||||||||||||||||||||||
| K | RW | USBRST | Mode: Device only. USB Reset (USBRst) The controller sets this bit to indicate that a reset is detected on the USB. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | USB Reset | |||||||||||||||||||||||||||||||||
| L | RW | ENUMDONE | Mode: Device only. Enumeration Done (EnumDone) The core sets this bit to indicate that speed enumeration is complete. The application must read the Device Status (DSTS) register to obtain the enumerated speed. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enumeration Done | |||||||||||||||||||||||||||||||||
| M | RW | ISOOUTDROP | Mode: Device only. Isochronous OUT Packet Dropped Interrupt (ISOOutDrop) The controller sets this bit when it fails to write an isochronous OUT packet into the RxFIFO because the RxFIFO does not have enough space to accommodate a maximum packet size packet for the isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Isochronous OUT Packet Dropped Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | EOPF | Mode: Device only. End of Periodic Frame Interrupt (EOPF) Indicates that the period specified in the Periodic Frame Interval field of the Device Configuration register (DCFG.PerFrInt) has been reached in the current microframe. In case of Non-Ignore Frame Number Scatter/Gather (Descriptor DMA) mode, the controller internally handles the following scenarios based on EOPF: Read Flush: At the EOPF, the controller checks if there are any pending packets in the FIFO corresponding to the current (micro)Frame. - If there are any pending packets, then the controller initiates read flush, due to which the read pointer is updated to the starting location of the next micro-frame packet. - If there are no pending packets corresponding to the current (micro)Frame, the controller does not take any action. Write Flush: At the EOPF, if the controller is still fetching the current micro-frame data, then the controller stops pushing data into the TXFIFO but keeps fetching the complete packet from the System Memory. After completing the scheduled packet size fetch, the controller updates the Status Quadlet Fields (Transmit Status to BUFFLUSH) and closes the Descriptor. During the descriptor close, the controller initiates write flush, due to which the write pointer is updated to the starting location of the next micro-frame packet. Because the controller stops pushing the packet to the TxFIFO after EOPF, to bring the write pointer to the starting location of the next micro-frame, write flush is done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | End of Periodic Frame Interrupt | |||||||||||||||||||||||||||||||||
| O | RW | RSTRDONEINT | Mode: Device only. Restore Done Interrupt (RstrDoneInt) The controller sets this bit to indicate that the restore command after Hibernation was completed by the core. The controller continues from Suspended state into the mode dictated by PCGCCTL.RestoreMode field. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Restore Done Interrupt | |||||||||||||||||||||||||||||||||
| P | RW | EPMIS | Mode: Device only. Endpoint Mismatch Interrupt (EPMis) Note: This interrupt is valid only in shared FIFO operation. Indicates that an IN token has been received for a non-periodic endpoint, but the data for another endpoint is present in the top of the Non-periodic Transmit FIFO and the IN endpoint mismatch count programmed by the application has expired. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Mismatch Interrupt | |||||||||||||||||||||||||||||||||
| Q | R | IEPINT | Mode: Device only. IN Endpoints Interrupt (IEPInt) The core sets this bit to indicate that an interrupt is pending on one of the IN endpoints of the core (in Device mode). The application must read the Device All Endpoints Interrupt (DAINT) register to determine the exact number of the IN endpoint on Device IN Endpoint-n Interrupt (DIEPINTn) register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the corresponding DIEPINTn register to clear this bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoints Interrupt | |||||||||||||||||||||||||||||||||
| R | R | OEPINT | Mode: Device only. OUT Endpoints Interrupt (OEPInt) The controller sets this bit to indicate that an interrupt is pending on one of the OUT endpoints of the core (in Device mode). The application must read the Device All Endpoints Interrupt (DAINT) register to determine the exact number of the OUT endpoint on which the interrupt occurred, and then read the corresponding Device OUT Endpoint-n Interrupt (DOEPINTn) register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the corresponding DOEPINTn register to clear this bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Endpoints Interrupt | |||||||||||||||||||||||||||||||||
| S | RW | INCOMPISOIN | Mode: Device only. Incomplete Isochronous IN Transfer (incompISOIN) The core sets this interrupt to indicate that there is at least one isochronous IN endpoint on which the transfer is not completed in the current microframe. This interrupt is asserted along with the End of Periodic Frame Interrupt (EOPF) bit in this register. Note: This interrupt is not asserted in Scatter/Gather DMA mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Incomplete Isochronous IN Transfer | |||||||||||||||||||||||||||||||||
| T | RW | INCOMPLP | Incomplete Periodic Transfer (incomplP) Mode: Host only In Host mode, the core sets this interrupt bit when there are incomplete periodic transactions still pending which are scheduled for the current microframe. Incomplete Isochronous OUT Transfer (incompISOOUT) Mode: Device only The Device mode, the core sets this interrupt to indicate that there is at least one isochronous OUT endpoint on which the transfer is not completed in the current microframe. This interrupt is asserted along with the End of Periodic Frame Interrupt (EOPF) bit in this register. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Incomplete Periodic Transfer | |||||||||||||||||||||||||||||||||
| U | RW | FETSUSP | Mode: Device only. Data Fetch Suspended (FetSusp) This interrupt is valid only in DMA mode. This interrupt indicates that the core has stopped fetching data. For IN endpoints due to the unavailability of TxFIFO space or Request Queue space. This interrupt is used by the application for an endpoint mismatch algorithm. For example, after detecting an endpoint mismatch, the application: - Sets a Global non-periodic IN NAK handshake - Disables IN endpoints - Flushes the FIFO - Determines the token sequence from the IN Token Sequence Learning Queue - Re-enables the endpoints - Clears the Global non-periodic IN NAK handshake If the Global non-periodic IN NAK is cleared, the core has not yet fetched data for the IN endpoint, and the IN token is received. The core generates an 'IN token received when FIFO empty' interrupt. It then sends the host a NAK response. To avoid this scenario, the application can check the GINTSTS.FetSusp interrupt, which ensures that the FIFO is full before clearing a Global NAK handshake. Alternatively, the application can mask the IN token received when FIFO empty interrupt when clearing a Global IN NAK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Data Fetch Suspended | |||||||||||||||||||||||||||||||||
| V | RW | RESETDET | Mode: Device only. Reset detected Interrupt (ResetDet) In Device mode, this interrupt is asserted when a reset is detected on the USB in partial power-down mode when the device is in Suspend. In Host mode, this interrupt is not asserted. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Reset detected Interrupt | |||||||||||||||||||||||||||||||||
| W | R | PRTINT | Mode: Host only. Host Port Interrupt (PrtInt) The core sets this bit to indicate a change in port status of one of the controller ports in Host mode. The application must read the Host Port Control and Status (HPRT) register to determine the exact event that caused this interrupt. The application must clear the appropriate status bit in the Host Port Control and Status register to clear this bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Host Port Interrupt | |||||||||||||||||||||||||||||||||
| X | R | HCHINT | Mode: Host only. Host Channels Interrupt (HChInt) The core sets this bit to indicate that an interrupt is pending on one of the channels of the core (in Host mode). The application must read the Host All Channels Interrupt (HAINT) register to determine the exact number of the channel on which the interrupt occurred, and Then read the corresponding Host Channel-n Interrupt (HCINTn) register to determine the exact cause of the interrupt. The application must clear the appropriate status bit in the HCINTn register to clear this bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Host Channels Interrupt | |||||||||||||||||||||||||||||||||
| Y | R | PTXFEMP | Mode: Host only. Periodic TxFIFO Empty (PTxFEmp) This interrupt is asserted when the Periodic Transmit FIFO is either half or completely empty and there is space for at least one entry to be written in the Periodic Request Queue. The half or completely empty status is determined by the Periodic TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.PTxFEmpLvl). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Periodic TxFIFO Empty | |||||||||||||||||||||||||||||||||
| Z | RW | LPMINT | Mode: Host and Device. LPM Transaction Received Interrupt (LPM_Int). - Device Mode: This interrupt is asserted when the device receives an LPM transaction and responds with a non-ERRORed response. - Host Mode: This interrupt is asserted when the device responds to an LPM transaction with a non-ERRORed response or when the host core has completed LPM transactions for the programmed number of times (GLPMCFG.RetryCnt). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not Active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | LPM Transaction Received Interrupt | |||||||||||||||||||||||||||||||||
| a | RW | CONIDSTSCHNG | Mode: Host and Device. Connector ID Status Change (ConIDStsChng) The core sets this bit when there is a change in connector ID status. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not Active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Connector ID Status Change | |||||||||||||||||||||||||||||||||
| b | RW | DISCONNINT | Mode: Host only. Disconnect Detected Interrupt (DisconnInt) Asserted when a device disconnect is detected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disconnect Detected Interrupt | |||||||||||||||||||||||||||||||||
| c | RW | SESSREQINT | Mode: Host and Device. Session Request/New Session Detected Interrupt (SessReqInt) In Host mode, this interrupt is asserted when a session request is detected from the device. In Host mode, this interrupt is asserted when a session request is detected from the device. In Device mode, this interrupt is asserted when the utmisrp_bvalid signal goes high. For more information on how to use this interrupt, see 'Partial Power-Down and Clock Gating Programming Model' in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Session Request New Session Detected Interrupt | |||||||||||||||||||||||||||||||||
| d | RW | WKUPINT | Mode: Host and Device. Resume/Remote Wakeup Detected Interrupt (WkUpInt) Wakeup Interrupt during Suspend(L2) or LPM(L1) state. - During Suspend(L2): -- Device Mode: This interrupt is asserted only when Host Initiated Resume is detected on USB. -- Host Mode: This interrupt is asserted only when Device Initiated Remote Wakeup is detected on USB. For more information, see 'Partial Power-Down and Clock Gating Programming Model' in the Programming Guide. - During LPM(L1): -- Device Mode: This interrupt is asserted for either Host Initiated Resume or Device Initiated Remote Wakeup on USB. -- Host Mode: This interrupt is asserted for either Host Initiated Resume or Device Initiated Remote Wakeup on USB. For more information, see 'LPM Entry and Exit Programming Model' in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Resume or Remote Wakeup Detected Interrupt | |||||||||||||||||||||||||||||||||
GINTMSK
Address offset: 0x018
Interrupt Mask Register
This register works with the Interrupt Register (GINTSTS) to interrupt the application. When an interrupt bit is masked, the interrupt associated with that bit is not generated. However, the GINTSTS register bit corresponding to that interrupt is still set. Note: The fields of this register change depending on host or device mode.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | b | a | Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MODEMISMSK | Mode: Host and Device. Mode Mismatch Interrupt Mask (ModeMisMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mode Mismatch Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Mode Mismatch Interrupt Mask | |||||||||||||||||||||||||||||||||
| B | RW | OTGINTMSK | Mode: Host and Device. OTG Interrupt Mask (OTGIntMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | OTG Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No OTG Interrupt Mask | |||||||||||||||||||||||||||||||||
| C | RW | SOFMSK | Mode: Host and Device. Start of (micro)Frame Mask (SofMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Start of Frame Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Start of Frame Mask | |||||||||||||||||||||||||||||||||
| D | RW | RXFLVLMSK | Mode: Host and Device. Receive FIFO Non-Empty Mask (RxFLvlMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Receive FIFO Non-Empty Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Receive FIFO Non-Empty Mask | |||||||||||||||||||||||||||||||||
| E | RW | NPTXFEMPMSK | Mode: Host and Device. Non-periodic TxFIFO Empty Mask (NPTxFEmpMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Non-periodic TxFIFO Empty Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Non-periodic TxFIFO Empty Mask | |||||||||||||||||||||||||||||||||
| F | RW | GINNAKEFFMSK | Mode: Device only,. Global Non-periodic IN NAK Effective Mask (GINNakEffMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Global Non-periodic IN NAK Effective Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Global Non-periodic IN NAK Effective Mask | |||||||||||||||||||||||||||||||||
| G | RW | GOUTNAKEFFMSK | Mode: Device only. Global OUT NAK Effective Mask (GOUTNakEffMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Global OUT NAK Effective Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Global OUT NAK Effective Mask | |||||||||||||||||||||||||||||||||
| H | RW | ERLYSUSPMSK | Mode: Device only. Early Suspend Mask (ErlySuspMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Early Suspend Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Early Suspend Mask | |||||||||||||||||||||||||||||||||
| I | RW | USBSUSPMSK | Mode: Device only. USB Suspend Mask (USBSuspMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | USB Suspend Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No USB Suspend Mask | |||||||||||||||||||||||||||||||||
| J | RW | USBRSTMSK | Mode: Device only. USB Reset Mask (USBRstMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | USB Reset Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No USB Reset Mask | |||||||||||||||||||||||||||||||||
| K | RW | ENUMDONEMSK | Mode: Device only. Enumeration Done Mask (EnumDoneMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Enumeration Done Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Enumeration Done Mask | |||||||||||||||||||||||||||||||||
| L | RW | ISOOUTDROPMSK | Mode: Device only. Isochronous OUT Packet Dropped Interrupt Mask (ISOOutDropMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Isochronous OUT Packet Dropped Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Isochronous OUT Packet Dropped Interrupt Mask | |||||||||||||||||||||||||||||||||
| M | RW | EOPFMSK | Mode: Device only. End of Periodic Frame Interrupt Mask (EOPFMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | End of Periodic Frame Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No End of Periodic Frame Interrupt Mask | |||||||||||||||||||||||||||||||||
| N | RW | RSTRDONEINTMSK | Mode: Host and Device. Restore Done Interrupt Mask (RstrDoneIntMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Restore Done Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Restore Done Interrupt Mask | |||||||||||||||||||||||||||||||||
| O | RW | EPMISMSK | Mode: Device only. Endpoint Mismatch Interrupt Mask (EPMisMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Endpoint Mismatch Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Endpoint Mismatch Interrupt Mask | |||||||||||||||||||||||||||||||||
| P | RW | IEPINTMSK | Mode: Device only. IN Endpoints Interrupt Mask (IEPIntMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | IN Endpoints Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No IN Endpoints Interrupt Mask | |||||||||||||||||||||||||||||||||
| Q | RW | OEPINTMSK | Mode: Device only. OUT Endpoints Interrupt Mask (OEPIntMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | OUT Endpoints Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No OUT Endpoints Interrupt Mask | |||||||||||||||||||||||||||||||||
| R | RW | INCOMPLPMSK | Incomplete Periodic Transfer Mask (incomplPMsk) Mode: Host only Incomplete Isochronous OUT Transfer Interrupt Mask (incompISOOUTMsk) Mode: Device only | ||||||||||||||||||||||||||||||||
MASK | 0 | Host mode: Incomplete Periodic Transfer MaskDevice mode: Incomplete Isochronous OUT Transfer Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | Host mode: No Incomplete Periodic Transfer MaskDevice mode: No Incomplete Isochronous OUT Transfer Mask | |||||||||||||||||||||||||||||||||
| S | RW | FETSUSPMSK | Mode: Device only. Data Fetch Suspended Mask (FetSuspMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Data Fetch Suspended Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Data Fetch Suspended Mask | |||||||||||||||||||||||||||||||||
| T | RW | RESETDETMSK | Mode: Device only. Reset detected Interrupt Mask (ResetDetMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Reset detected Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Reset detected Interrupt Mask | |||||||||||||||||||||||||||||||||
| U | RW | PRTINTMSK | Mode: Host only. Host Port Interrupt Mask (PrtIntMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Host Port Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Host Port Interrupt Mask | |||||||||||||||||||||||||||||||||
| V | RW | HCHINTMSK | Mode: Host only. Host Channels Interrupt Mask (HChIntMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Host Channels Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Host Channels Interrupt Mask | |||||||||||||||||||||||||||||||||
| W | RW | PTXFEMPMSK | Mode: Host only. Periodic TxFIFO Empty Mask (PTxFEmpMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Periodic TxFIFO Empty Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Periodic TxFIFO Empty Mask | |||||||||||||||||||||||||||||||||
| X | RW | LPMINTMSK | Mode: Host and Device. LPM Transaction Received Interrupt (LPM_Int) LPM Transaction received interrupt Mask | ||||||||||||||||||||||||||||||||
MASK | 0 | LPM Transaction received interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No LPM Transaction received interrupt Mask | |||||||||||||||||||||||||||||||||
| Y | RW | CONIDSTSCHNGMSK | Mode: Host and Device. Connector ID Status Change Mask (ConIDStsChngMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Connector ID Status Change Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Connector ID Status Change Mask | |||||||||||||||||||||||||||||||||
| Z | RW | DISCONNINTMSK | Mode: Host and Device. Disconnect Detected Interrupt Mask (DisconnIntMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Disconnect Detected Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Disconnect Detected Interrupt Mask | |||||||||||||||||||||||||||||||||
| a | RW | SESSREQINTMSK | Mode: Host and Device. Session Request/New Session Detected Interrupt Mask (SessReqIntMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Session Request or New Session Detected Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Session Request or New Session Detected Interrupt Mask | |||||||||||||||||||||||||||||||||
| b | RW | WKUPINTMSK | Mode: Host and Device. Resume/Remote Wakeup Detected Interrupt Mask (WkUpIntMsk) The WakeUp bit is used for LPM state wake up in a way similar to that of wake up in suspend state. | ||||||||||||||||||||||||||||||||
MASK | 0 | Resume or Remote Wakeup Detected Interrupt Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | Unmask Resume Remote Wakeup Detected Interrupt | |||||||||||||||||||||||||||||||||
GRXSTSR
Address offset: 0x01C
Receive Status Debug Read Register
A read to the Receive Status Debug Read register returns the contents of the top of the Receive FIFO. The receive status contents must be interpreted differently in Host and Device modes. The core ignores the receive status read when the receive FIFO is empty and returns a value of 32'h0000_0000. Note: - Use of these fields vary based on whether the core is functioning as a host or a device. - Do not read this register's reset value before configuring the core because the read value is 'X' in the simulation.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | E | E | E | E | D | D | D | D | C | C | B | B | B | B | B | B | B | B | B | B | B | A | A | A | A | ||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | CHNUM | Channel Number (ChNum) Mode: Host only Indicates the channel number to which the current received packet belongs. Endpoint Number (EPNum) Mode: Device only Indicates the endpoint number to which the current received packet belongs. | ||||||||||||||||||||||||||||||||
CHEP0 | 0 | Channel or EndPoint 0 | |||||||||||||||||||||||||||||||||
CHEP1 | 1 | Channel or EndPoint 1 | |||||||||||||||||||||||||||||||||
CHEP2 | 2 | Channel or EndPoint 2 | |||||||||||||||||||||||||||||||||
CHEP3 | 3 | Channel or EndPoint 3 | |||||||||||||||||||||||||||||||||
CHEP4 | 4 | Channel or EndPoint 4 | |||||||||||||||||||||||||||||||||
CHEP5 | 5 | Channel or EndPoint 5 | |||||||||||||||||||||||||||||||||
CHEP6 | 6 | Channel or EndPoint 6 | |||||||||||||||||||||||||||||||||
CHEP7 | 7 | Channel or EndPoint 7 | |||||||||||||||||||||||||||||||||
CHEP8 | 8 | Channel or EndPoint 8 | |||||||||||||||||||||||||||||||||
CHEP9 | 9 | Channel or EndPoint 9 | |||||||||||||||||||||||||||||||||
CHEP10 | 10 | Channel or EndPoint 10 | |||||||||||||||||||||||||||||||||
CHEP11 | 11 | Channel or EndPoint 11 | |||||||||||||||||||||||||||||||||
CHEP12 | 12 | Channel or EndPoint 12 | |||||||||||||||||||||||||||||||||
CHEP13 | 13 | Channel or EndPoint 13 | |||||||||||||||||||||||||||||||||
CHEP14 | 14 | Channel or EndPoint 14 | |||||||||||||||||||||||||||||||||
CHEP15 | 15 | Channel or EndPoint 15 | |||||||||||||||||||||||||||||||||
| B | R | BCNT | Byte Count (BCnt) In host mode, indicates the byte count of the received IN data packet. In device mode, indicates the byte count of the received data packet. | ||||||||||||||||||||||||||||||||
| C | R | DPID | Data PID (DPID) In host mode, indicates the Data PID of the received packet. In device mode, indicates the Data PID of the received OUT data packet. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2 | 1 | DATA2 | |||||||||||||||||||||||||||||||||
DATA1 | 2 | DATA1 | |||||||||||||||||||||||||||||||||
MDATA | 3 | MDATA | |||||||||||||||||||||||||||||||||
| D | R | PKTSTS | Packet Status (PktSts) indicates the status of the received packet. In host mode, In device mode, | ||||||||||||||||||||||||||||||||
OUTNAK | 1 | Global OUT NAK in device mode (triggers an interrupt) | |||||||||||||||||||||||||||||||||
INOUTDPRX | 2 | IN data packet received in host mode and OUT data packet received in device mode | |||||||||||||||||||||||||||||||||
INOUTTRCOM | 3 | IN or OUT transfer completed in both host and device mode (triggers an interrupt) | |||||||||||||||||||||||||||||||||
DSETUPCOM | 4 | SETUP transaction completed in device mode (triggers an interrupt) | |||||||||||||||||||||||||||||||||
DTTOG | 5 | Data toggle error (triggers an interrupt) in host mode | |||||||||||||||||||||||||||||||||
DSETUPRX | 6 | SETUP data packet received in device mode | |||||||||||||||||||||||||||||||||
CHHALT | 7 | Channel halted in host mode (triggers an interrupt) | |||||||||||||||||||||||||||||||||
| E | R | FN | Mode: Device only. Frame Number (FN) This is the least significant 4 bits of the (micro)Frame number in which the packet is received on the USB. This field is supported only when isochronous OUT endpoints are supported. | ||||||||||||||||||||||||||||||||
GRXSTSP
Address offset: 0x020
Receive Status Read/Pop Register
A read to the Receive Status Read and Pop register returns the contents of the top of the Receive FIFO and additionally pops the top data entry out of the RxFIFO. The receive status contents must be interpreted differently in Host and Device modes. The core ignores the receive status pop/read when the receive FIFO is empty and returns a value of 32'h0000_0000. The application must only pop the Receive Status FIFO when the Receive FIFO Non-Empty bit of the Core Interrupt register (GINTSTS.RxFLvl) is asserted. Note: - Use of these fields vary based on whether the core is functioning as a host or a device. - Do not read this register's reset value before configuring the core because the read value is 'X' in the simulation.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | E | E | E | E | D | D | D | D | C | C | B | B | B | B | B | B | B | B | B | B | B | A | A | A | A | ||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | CHNUM | Channel Number (ChNum) Mode: Host only Indicates the channel number to which the current received packet belongs. Endpoint Number (EPNum) Mode: Device only Indicates the endpoint number to which the current received packet belongs. | ||||||||||||||||||||||||||||||||
CHEP0 | 0 | Channel or EndPoint 0 | |||||||||||||||||||||||||||||||||
CHEP1 | 1 | Channel or EndPoint 1 | |||||||||||||||||||||||||||||||||
CHEP2 | 2 | Channel or EndPoint 2 | |||||||||||||||||||||||||||||||||
CHEP3 | 3 | Channel or EndPoint 3 | |||||||||||||||||||||||||||||||||
CHEP4 | 4 | Channel or EndPoint 4 | |||||||||||||||||||||||||||||||||
CHEP5 | 5 | Channel or EndPoint 5 | |||||||||||||||||||||||||||||||||
CHEP6 | 6 | Channel or EndPoint 6 | |||||||||||||||||||||||||||||||||
CHEP7 | 7 | Channel or EndPoint 7 | |||||||||||||||||||||||||||||||||
CHEP8 | 8 | Channel or EndPoint 8 | |||||||||||||||||||||||||||||||||
CHEP9 | 9 | Channel or EndPoint 9 | |||||||||||||||||||||||||||||||||
CHEP10 | 10 | Channel or EndPoint 10 | |||||||||||||||||||||||||||||||||
CHEP11 | 11 | Channel or EndPoint 11 | |||||||||||||||||||||||||||||||||
CHEP12 | 12 | Channel or EndPoint 12 | |||||||||||||||||||||||||||||||||
CHEP13 | 13 | Channel or EndPoint 13 | |||||||||||||||||||||||||||||||||
CHEP14 | 14 | Channel or EndPoint 14 | |||||||||||||||||||||||||||||||||
CHEP15 | 15 | Channel or EndPoint 15 | |||||||||||||||||||||||||||||||||
| B | R | BCNT | Byte Count (BCnt) In host mode, indicates the byte count of the received IN data packet. In device mode, indicates the byte count of the received data packet. | ||||||||||||||||||||||||||||||||
| C | R | DPID | Data PID (DPID) In host mode, indicates the Data PID of the received packet. In device mode, indicates the Data PID of the received OUT data packet. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2 | 1 | DATA2 | |||||||||||||||||||||||||||||||||
DATA1 | 2 | DATA1 | |||||||||||||||||||||||||||||||||
MDATA | 3 | MDATA | |||||||||||||||||||||||||||||||||
| D | R | PKTSTS | Packet Status (PktSts) indicates the status of the received packet. In host mode, In device mode, | ||||||||||||||||||||||||||||||||
OUTNAK | 1 | Global OUT NAK in device mode (triggers an interrupt) | |||||||||||||||||||||||||||||||||
INOUTDPRX | 2 | IN data packet received in host mode and OUT data packet received in device mode | |||||||||||||||||||||||||||||||||
INOUTTRCOM | 3 | IN or OUT transfer completed in both host and device mode (triggers an interrupt) | |||||||||||||||||||||||||||||||||
DSETUPCOM | 4 | SETUP transaction completed in device mode (triggers an interrupt) | |||||||||||||||||||||||||||||||||
DTTOG | 5 | Data toggle error (triggers an interrupt) in host mode | |||||||||||||||||||||||||||||||||
| E | R | FN | Mode: Device only. Frame Number (FN) This is the least significant 4 bits of the (micro)Frame number in which the packet is received on the USB. This field is supported only when isochronous OUT endpoints are supported. | ||||||||||||||||||||||||||||||||
GRXFSIZ
Address offset: 0x024
Receive FIFO Size Register
The application can program the RAM size that must be allocated to the RxFIFO.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | RXFDEP | Mode: Host and Device. RxFIFO Depth (RxFDep) This value is in terms of 32-bit words. - Minimum value is 16 - Maximum value is 32,768 The power-on reset value of this register is specified as the Largest Rx Data FIFO Depth during configuration. If Enable Dynamic FIFO Sizing is selected in coreConsultant, these flops are optimized, and reads return the power-on value. If Enable Dynamic FIFO Sizing is selected in coreConsultant, you can write a new value in this field. Programmed values must not exceed the power-on value. | ||||||||||||||||||||||||||||||||
GNPTXFSIZ
Address offset: 0x028
Non-periodic Transmit FIFO Size Register
The application can program the RAM size and the memory start address for the Non-periodic TxFIFO Note: The fields of this register change depending on host or device mode.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | B | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||
| Reset 0x0C000C00 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | NPTXFSTADDR | Non-periodic Transmit RAM Start Address (NPTxFStAddr) For host mode, this field is always valid. This field contains the memory start address for Non-periodic Transmit FIFO RAM. - This field is determined during coreConsultant configuration by "Enable Dynamic FIFO Sizing?" (OTG_DFIFO_DYNAMIC):OTG_DFIFO_DYNAMIC = 0 These flops are optimized, and reads return the power-on value. - OTG_DFIFO_DYNAMIC = 1 The application can write a new value in this field. Programmed values must not exceed the power-on value set in coreConsultant. Programmed values must not exceed the power-on value set in coreConsultant. The power-on reset value of this field is specified during coreConsultant configuration by Largest Rx Data FIFO Depth (parameter OTG_RX_DFIFO_DEPTH). | ||||||||||||||||||||||||||||||||
| B | RW | NPTXFDEP | Mode: Host only. Non-periodic TxFIFO Depth (NPTxFDep) For host mode, this field is always valid. For device mode, this field is valid only when OTG_EN_DED_TX_FIFO=0. This value is in terms of 32-bit words. - Minimum value is 16 - Maximum value is 32,768 This attribute of field is determined during coreConsultant configuration by "Enable Dynamic FIFO Sizing?" (OTG_DFIFO_DYNAMIC): - OTG_DFIFO_DYNAMIC = 0: These flops are optimized, and reads return the power-on value. - OTG_DFIFO_DYNAMIC = 1: The application can write a new value in this field. Programmed values must not exceed the power-on value set in coreConsultant. The power-on reset value of this field is specified during coreConsultant configuration as Largest IN Endpoint FIFO 0 Depth (parameter OTG_TX_DINEP_DFIFO_DEPTH_0). | ||||||||||||||||||||||||||||||||
GNPTXSTS
Address offset: 0x02C
Non-periodic Transmit FIFO/Queue Status Register
In Device mode, this register is valid only in Shared FIFO operation. This read-only register contains the free space information for the Non-periodic TxFIFO and the Non-periodic Transmit Request Queue.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | C | C | C | C | C | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00080C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | NPTXFSPCAVAIL | Non-periodic TxFIFO Space Avail (NPTxFSpcAvail) Indicates the amount of free space available in the Non-periodic TxFIFO. Values are in terms of 32-bit words. Reset: Configurable | ||||||||||||||||||||||||||||||||
| B | R | NPTXQSPCAVAIL | Non-periodic Transmit Request Queue Space Available (NPTxQSpcAvail) Indicates the amount of free space available in the Non-periodic Transmit Request Queue. This queue holds both IN and OUT requests in Host mode. Device mode has only IN requests. - n: n locations available (0 <= n <= 8) Reset: Configurable | ||||||||||||||||||||||||||||||||
FULL | 0 | Non-periodic Transmit Request Queue is full | |||||||||||||||||||||||||||||||||
QUE1 | 1 | 1 location available | |||||||||||||||||||||||||||||||||
QUE2 | 2 | 2 locations available | |||||||||||||||||||||||||||||||||
QUE3 | 3 | 3 locations available | |||||||||||||||||||||||||||||||||
QUE4 | 4 | 4 locations available | |||||||||||||||||||||||||||||||||
QUE5 | 5 | 5 locations available | |||||||||||||||||||||||||||||||||
QUE6 | 6 | 6 locations available | |||||||||||||||||||||||||||||||||
QUE7 | 7 | 7 locations available | |||||||||||||||||||||||||||||||||
QUE8 | 8 | 8 locations available | |||||||||||||||||||||||||||||||||
| C | R | NPTXQTOP | Top of the Non-periodic Transmit Request Queue (NPTxQTop) Entry in the Non-periodic Tx Request Queue that is currently being processed by the MAC. | ||||||||||||||||||||||||||||||||
INOUTTK | 0 | IN/OUT token | |||||||||||||||||||||||||||||||||
ZEROTX | 1 | Zero-length transmit packet (device IN/host OUT) | |||||||||||||||||||||||||||||||||
PINGCSPLIT | 2 | PING/CSPLIT token | |||||||||||||||||||||||||||||||||
CHNHALT | 3 | Channel halt command | |||||||||||||||||||||||||||||||||
GGPIO
Address offset: 0x038
General Purpose Input/Output Register
The application can use this register for general purpose input/output ports or for debugging.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | GPI | General Purpose Input (GPI) This field's read value reflects the gp_i[15:0] core input value. | ||||||||||||||||||||||||||||||||
| B | RW | GPO | General Purpose Output (GPO) This field is driven as an output from the core, gp_o[15:0]. The application can program this field to determine the corresponding value on the gp_o[15:0] output. | ||||||||||||||||||||||||||||||||
GUID
Address offset: 0x03C
User ID Register
This is a read/write register containing the User ID. It is implemented only if Remove Optional Features? was deselected during coreConsultant configuration (parameter OTG_RM_OPT_FEATURES = 0). The power-on value for this register is specified as the Power-on Value of User ID Register User Identification Register during coreConsultant configuration (parameter OTG_USERID). This register can be used in the following ways: - To store the version or revision of your system - To store hardware configurations that are outside the DWC_otg core - As a scratch register
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | GUID | User ID (UserID) Application-programmable ID field. Reset value is configurable. | ||||||||||||||||||||||||||||||||
GSNPSID
Address offset: 0x040
Synopsys ID Register
This read-only register contains the release number of the core being used.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x4F54500B | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | SYNOPSYSID | Release number of the controller being used currently. Bits [31:16]: - 0x4f54: ASCII Value for OT Bits [15:0]: Current Release Number. For example, 0x400a corresponds to v4.00a Release number. | ||||||||||||||||||||||||||||||||
GHWCFG1
Address offset: 0x044
User Hardware Configuration 1 Register
This register contains the logical endpoint direction(s) selected using coreConsultant.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | EPDIR | This 32-bit field uses two bits per endpoint to determine the endpoint direction. Endpoint ... Direction Note: This field is configured using the OTG_EP_DIR_1(n) parameter. | ||||||||||||||||||||||||||||||||
GHWCFG2
Address offset: 0x048
User Hardware Configuration 2 Register
This register contains configuration options selected using coreConsultant.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | M | M | M | M | L | L | K | K | J | I | H | G | G | G | G | F | F | F | F | E | E | D | D | C | B | B | A | A | A | |||||
| Reset 0x228FFC52 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | OTGMODE | Mode of Operation (OtgMode) - 3'b000: HNP- and SRP-Capable OTG (Host & Device) Note: This field is configured using the OTG_MODE parameter. | ||||||||||||||||||||||||||||||||
HNPSRP | 0 | HNP- and SRP-Capable OTG (Host and Device) | |||||||||||||||||||||||||||||||||
SRPOTG | 1 | SRP-Capable OTG (Host and Device) | |||||||||||||||||||||||||||||||||
NHNPNSRP | 2 | Non-HNP and Non-SRP Capable OTG (Host and Device) | |||||||||||||||||||||||||||||||||
SRPCAPD | 3 | SRP-Capable Device | |||||||||||||||||||||||||||||||||
NONOTGD | 4 | Non-OTG Device | |||||||||||||||||||||||||||||||||
SRPCAPH | 5 | SRP-Capable Host | |||||||||||||||||||||||||||||||||
NONOTGH | 6 | Non-OTG Host | |||||||||||||||||||||||||||||||||
| B | R | OTGARCH | Architecture (OtgArch) - 2'b00: Completer-Only Note: This field is configured using the OTG_ARCHITECTURE parameter. | ||||||||||||||||||||||||||||||||
COMPLETERMODE | 0 | Completer Mode | |||||||||||||||||||||||||||||||||
EXTERNALDMA | 1 | External DMA Mode | |||||||||||||||||||||||||||||||||
INTERNALDMA | 2 | Internal DMA Mode | |||||||||||||||||||||||||||||||||
| C | R | SINGPNT | Point-to-Point (SingPnt) - 1'b0: Multi-point application (hub and split support) Note: This field is configured using the OTG_SINGLE_POINT parameter. | ||||||||||||||||||||||||||||||||
MULTIPOINT | 0 | Multi-point application (hub and split support) | |||||||||||||||||||||||||||||||||
SINGLEPOINT | 1 | Single-point application (no hub and split support) | |||||||||||||||||||||||||||||||||
| D | R | HSPHYTYPE | High-Speed PHY Interface Type (HSPhyType) - 2'b00: High-Speed interface not supported Note: This field is configured using the OTG_HSPHY_INTERFACE parameter. | ||||||||||||||||||||||||||||||||
NOHS | 0 | High-Speed interface not supported | |||||||||||||||||||||||||||||||||
UTMIPLUS | 1 | High Speed Interface UTMI+ is supported | |||||||||||||||||||||||||||||||||
ULPI | 2 | High Speed Interface ULPI is supported | |||||||||||||||||||||||||||||||||
UTMIPUSULPI | 3 | High Speed Interfaces UTMI+ and ULPI is supported | |||||||||||||||||||||||||||||||||
| E | R | FSPHYTYPE | Full-Speed PHY Interface Type (FSPhyType) - 2'b00: Full-speed interface not supported Note: This field is configured using the OTG_FSPHY_INTERFACE parameter. | ||||||||||||||||||||||||||||||||
NOFS | 0 | Full-speed interface not supported | |||||||||||||||||||||||||||||||||
FS | 1 | Dedicated full-speed interface is supported | |||||||||||||||||||||||||||||||||
FSPLUSUTMI | 2 | FS pins shared with UTMI+ pins is supported | |||||||||||||||||||||||||||||||||
FSPLUSULPI | 3 | FS pins shared with ULPI pins is supported | |||||||||||||||||||||||||||||||||
| F | R | NUMDEVEPS | Number of Device Endpoints (NumDevEps) Indicates the number of device endpoints supported by the core in Device mode. The range of this field is 0-15. Note: This field is configured using the OTG_NUM_EPS parameter. | ||||||||||||||||||||||||||||||||
ENDPT0 | 0 | End point 0 | |||||||||||||||||||||||||||||||||
ENDPT1 | 1 | End point 1 | |||||||||||||||||||||||||||||||||
ENDPT2 | 2 | End point 2 | |||||||||||||||||||||||||||||||||
ENDPT3 | 3 | End point 3 | |||||||||||||||||||||||||||||||||
ENDPT4 | 4 | End point 4 | |||||||||||||||||||||||||||||||||
ENDPT5 | 5 | End point 5 | |||||||||||||||||||||||||||||||||
ENDPT6 | 6 | End point 6 | |||||||||||||||||||||||||||||||||
ENDPT7 | 7 | End point 7 | |||||||||||||||||||||||||||||||||
ENDPT8 | 8 | End point 8 | |||||||||||||||||||||||||||||||||
ENDPT9 | 9 | End point 9 | |||||||||||||||||||||||||||||||||
ENDPT10 | 10 | End point 10 | |||||||||||||||||||||||||||||||||
ENDPT11 | 11 | End point 11 | |||||||||||||||||||||||||||||||||
ENDPT12 | 12 | End point 12 | |||||||||||||||||||||||||||||||||
ENDPT13 | 13 | End point 13 | |||||||||||||||||||||||||||||||||
ENDPT14 | 14 | End point 14 | |||||||||||||||||||||||||||||||||
ENDPT15 | 15 | End point 15 | |||||||||||||||||||||||||||||||||
| G | R | NUMHSTCHNL | Number of Host Channels (NumHstChnl) Indicates the number of host channels supported by the core in Host mode. The range of this field is 0-15: 0 specifies 1 channel, 15 specifies 16 channels. Note: This field is configured using the OTG_NUM_HOST_CHAN parameter. | ||||||||||||||||||||||||||||||||
HOSTCH0 | 0 | Host Channel 1 | |||||||||||||||||||||||||||||||||
HOSTCH1 | 1 | Host Channel 2 | |||||||||||||||||||||||||||||||||
HOSTCH2 | 2 | Host Channel 3 | |||||||||||||||||||||||||||||||||
HOSTCH3 | 3 | Host Channel 4 | |||||||||||||||||||||||||||||||||
HOSTCH4 | 4 | Host Channel 5 | |||||||||||||||||||||||||||||||||
HOSTCH5 | 5 | Host Channel 6 | |||||||||||||||||||||||||||||||||
HOSTCH6 | 6 | Host Channel 7 | |||||||||||||||||||||||||||||||||
HOSTCH7 | 7 | Host Channel 8 | |||||||||||||||||||||||||||||||||
HOSTCH8 | 8 | Host Channel 9 | |||||||||||||||||||||||||||||||||
HOSTCH9 | 9 | Host Channel 10 | |||||||||||||||||||||||||||||||||
HOSTCH10 | 10 | Host Channel 11 | |||||||||||||||||||||||||||||||||
HOSTCH11 | 11 | Host Channel 12 | |||||||||||||||||||||||||||||||||
HOSTCH12 | 12 | Host Channel 13 | |||||||||||||||||||||||||||||||||
HOSTCH13 | 13 | Host Channel 14 | |||||||||||||||||||||||||||||||||
HOSTCH14 | 14 | Host Channel 15 | |||||||||||||||||||||||||||||||||
HOSTCH15 | 15 | Host Channel 16 | |||||||||||||||||||||||||||||||||
| H | R | PERIOSUPPORT | Periodic OUT Channels Supported in Host Mode (PerioSupport) - 1'b0: No Note: This field is configured using the OTG_EN_PERIO_HOST parameter. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Periodic OUT Channels is not supported in Host Mode | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Periodic OUT Channels Supported in Host Mode Supported | |||||||||||||||||||||||||||||||||
| I | R | DYNFIFOSIZING | Dynamic FIFO Sizing Enabled (DynFifoSizing) - 1'b0: No Note: This field is configured using the OTG_DFIFO_DYNAMIC parameter. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Dynamic FIFO Sizing Disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Dynamic FIFO Sizing Enabled | |||||||||||||||||||||||||||||||||
| J | R | MULTIPROCINTRPT | Multi Processor Interrupt Enabled (MultiProcIntrpt) - 1'b0: No Note: This field is configured using the OTG_MULTI_PROC_INTRPT parameter. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No Multi Processor Interrupt Enabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Multi Processor Interrupt Enabled | |||||||||||||||||||||||||||||||||
| K | R | NPTXQDEPTH | Non-periodic Request Queue Depth (NPTxQDepth) - 2'b00: 2 Note: This field is configured using the OTG_NPERIO_TX_QUEUE_DEPTH parameter. | ||||||||||||||||||||||||||||||||
TWO | 0 | Queue size 2 | |||||||||||||||||||||||||||||||||
FOUR | 1 | Queue size 4 | |||||||||||||||||||||||||||||||||
EIGHT | 2 | Queue size 8 | |||||||||||||||||||||||||||||||||
| L | R | PTXQDEPTH | Host Mode Periodic Request Queue Depth (PTxQDepth) - 2'b00: 2 Note: This field is configured using the OTG_PERIO_TX_QUEUE_DEPTH parameter. | ||||||||||||||||||||||||||||||||
QUE2 | 0 | Queue Depth 2 | |||||||||||||||||||||||||||||||||
QUE4 | 1 | Queue Depth 4 | |||||||||||||||||||||||||||||||||
QUE8 | 2 | Queue Depth 8 | |||||||||||||||||||||||||||||||||
QUE16 | 3 | Queue Depth 16 | |||||||||||||||||||||||||||||||||
| M | R | TKNQDEPTH | Device Mode IN Token Sequence Learning Queue Depth (TknQDepth) Range: 0-30 Note: This field is configured using the OTG_TOKEN_QUEUE_DEPTH parameter. | ||||||||||||||||||||||||||||||||
GHWCFG3
Address offset: 0x04C
User Hardware Configuration 3 Register
This register contains configuration options selected using coreConsultant.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | L | L | L | L | L | L | L | L | L | L | L | L | L | L | L | K | J | I | H | G | F | E | D | C | B | B | B | A | A | A | A | |||
| Reset 0x0BE0C0E8 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | XFERSIZEWIDTH | Width of Transfer Size Counters (XferSizeWidth) - 4'b0000: 11 bits ... Note: This field is configured using the OTG_PACKET_COUNT_WIDTH parameter. | ||||||||||||||||||||||||||||||||
WIDTH11 | 0 | Width of Transfer Size Counter 11 bits | |||||||||||||||||||||||||||||||||
WIDTH12 | 1 | Width of Transfer Size Counter 12 bits | |||||||||||||||||||||||||||||||||
WIDTH13 | 2 | Width of Transfer Size Counter 13 bits | |||||||||||||||||||||||||||||||||
WIDTH14 | 3 | Width of Transfer Size Counter 14 bits | |||||||||||||||||||||||||||||||||
WIDTH15 | 4 | Width of Transfer Size Counter 15 bits | |||||||||||||||||||||||||||||||||
WIDTH16 | 5 | Width of Transfer Size Counter 16 bits | |||||||||||||||||||||||||||||||||
WIDTH17 | 6 | Width of Transfer Size Counter 17 bits | |||||||||||||||||||||||||||||||||
WIDTH18 | 7 | Width of Transfer Size Counter 18 bits | |||||||||||||||||||||||||||||||||
WIDTH19 | 8 | Width of Transfer Size Counter 19 bits | |||||||||||||||||||||||||||||||||
| B | R | PKTSIZEWIDTH | Width of Packet Size Counters (PktSizeWidth) - 3'b000: 4 bits Note: This field is configured using the OTG_PACKET_COUNT_WIDTH parameter. | ||||||||||||||||||||||||||||||||
BITS4 | 0 | Width of Packet Size Counter 4 | |||||||||||||||||||||||||||||||||
BITS5 | 1 | Width of Packet Size Counter 5 | |||||||||||||||||||||||||||||||||
BITS6 | 2 | Width of Packet Size Counter 6 | |||||||||||||||||||||||||||||||||
BITS7 | 3 | Width of Packet Size Counter 7 | |||||||||||||||||||||||||||||||||
BITS8 | 4 | Width of Packet Size Counter 8 | |||||||||||||||||||||||||||||||||
BITS9 | 5 | Width of Packet Size Counter 9 | |||||||||||||||||||||||||||||||||
BITS10 | 6 | Width of Packet Size Counter 10 | |||||||||||||||||||||||||||||||||
| C | R | OTGEN | OTG Function Enabled (OtgEn) The application uses this bit to indicate the OTG capabilities of the controller . Note: This field is configured using the OTG_MODE parameter. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not OTG Capable | |||||||||||||||||||||||||||||||||
ENABLED | 1 | OTG Capable | |||||||||||||||||||||||||||||||||
| D | R | I2CINTSEL | I2C Selection (I2CIntSel) - 1'b0: I2C Interface is not available on the controller. Note: This field is configured using the OTG_I2C_INTERFACE parameter. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | I2C Interface is not available | |||||||||||||||||||||||||||||||||
ENABLED | 1 | I2C Interface is available | |||||||||||||||||||||||||||||||||
| E | R | VNDCTLSUPT | Vendor Control Interface Support (VndctlSupt) - 1'b0: Vendor Control Interface is not available on the core. Note: This field is configured using the OTG_VENDOR_CTL_INTERFACE parameter. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Vendor Control Interface is not available. | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Vendor Control Interface is available. | |||||||||||||||||||||||||||||||||
| F | R | OPTFEATURE | Optional Features Removed (OptFeature) Indicates whether the User ID register, GPIO interface ports, and SOF toggle and counter ports were removed for gate count optimization by enabling Remove Optional Features. Note: This field is configured using the OTG_RM_OPT_FEATURES parameter. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Optional features were not Removed | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Optional Features have been Removed | |||||||||||||||||||||||||||||||||
| G | R | RSTTYPE | Reset Style for Clocked always Blocks in RTL (RstType) - 1'b0: Asynchronous reset is used in the controller Note: This field is configured using the OTG_SYNC_RESET_TYPE parameter. | ||||||||||||||||||||||||||||||||
ASYNCRST | 0 | Asynchronous reset is used in the core | |||||||||||||||||||||||||||||||||
SYNCRST | 1 | Synchronous reset is used in the core | |||||||||||||||||||||||||||||||||
| H | R | ADPSUPPORT | This bit indicates whether ADP logic is present within or external to the controller - 0: No ADP logic present with the controller - 1: ADP logic is present along with the controller. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | ADP logic is not present along with the controller | |||||||||||||||||||||||||||||||||
ENABLED | 1 | ADP logic is present along with the controller | |||||||||||||||||||||||||||||||||
| I | R | HSICMODE | HSIC mode specified for Mode of Operation Value Range: 0 - 1 - 1: HSIC-capable with shared UTMI PHY interface - 0: Non-HSIC-capable | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No HSIC capability | |||||||||||||||||||||||||||||||||
ENABLED | 1 | HSIC-capable with shared UTMI PHY interface | |||||||||||||||||||||||||||||||||
| J | R | BCSUPPORT | This bit indicates the controller support for Battery Charger. - 0 - No Battery Charger Support | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No Battery Charger Support | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Battery Charger Support present | |||||||||||||||||||||||||||||||||
| K | R | LPMMODE | LPM mode specified for Mode of Operation. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | LPM disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | LPM enabled | |||||||||||||||||||||||||||||||||
| L | R | DFIFODEPTH | DFIFO Depth (DfifoDepth - EP_LOC_CNT) This value is in terms of 32-bit words. - Minimum value is 32 - Maximum value is 32,768 Note: This field is configured using the OTG_DFIFO_DEPTH parameter. For more information on EP_LOC_CNT, see the "Endpoint Information Controller (EPINFO_CTL)" section. | ||||||||||||||||||||||||||||||||
GHWCFG4
Address offset: 0x050
User Hardware Configuration 4 Register
This register contains configuration options selected using coreConsultant. Note: Bit [31] is available only when Scatter/Gather DMA mode is enabled. When Scatter/Gather DMA mode is disabled, this field is reserved.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | U | T | S | S | S | S | R | Q | P | O | N | M | L | L | L | L | K | K | J | I | H | G | F | E | D | C | B | A | A | A | A | ||||
| Reset 0x3E10AA60 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | NUMDEVPERIOEPS | Number of Device Mode Periodic IN Endpoints (NumDevPerioEps) Range: 0-15 | ||||||||||||||||||||||||||||||||
VALUE0 | 0 | Number of Periodic IN EPs is 0 | |||||||||||||||||||||||||||||||||
VALUE1 | 1 | Number of Periodic IN EPs is 1 | |||||||||||||||||||||||||||||||||
VALUE2 | 2 | Number of Periodic IN EPs is 2 | |||||||||||||||||||||||||||||||||
VALUE3 | 3 | Number of Periodic IN EPs is 3 | |||||||||||||||||||||||||||||||||
VALUE4 | 4 | Number of Periodic IN EPs is 4 | |||||||||||||||||||||||||||||||||
VALUE5 | 5 | Number of Periodic IN EPs is 5 | |||||||||||||||||||||||||||||||||
VALUE6 | 6 | Number of Periodic IN EPs is 6 | |||||||||||||||||||||||||||||||||
VALUE7 | 7 | Number of Periodic IN EPs is 7 | |||||||||||||||||||||||||||||||||
VALUE8 | 8 | Number of Periodic IN EPs is 8 | |||||||||||||||||||||||||||||||||
VALUE9 | 9 | Number of Periodic IN EPs is 9 | |||||||||||||||||||||||||||||||||
VALUE10 | 10 | Number of Periodic IN EPs is 10 | |||||||||||||||||||||||||||||||||
VALUE11 | 11 | Number of Periodic IN EPs is 11 | |||||||||||||||||||||||||||||||||
VALUE12 | 12 | Number of Periodic IN EPs is 12 | |||||||||||||||||||||||||||||||||
VALUE13 | 13 | Number of Periodic IN EPs is 13 | |||||||||||||||||||||||||||||||||
VALUE14 | 14 | Number of Periodic IN EPs is 14 | |||||||||||||||||||||||||||||||||
VALUE15 | 15 | Number of Periodic IN EPs is 15 | |||||||||||||||||||||||||||||||||
| B | R | PARTIALPWRDN | Enable Partial Power Down (PartialPwrDn) - 1'b0: Partial Power Down Not Enabled | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Partial Power Down disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Partial Power Down enabled | |||||||||||||||||||||||||||||||||
| C | R | AHBFREQ | Minimum AHB Frequency Less Than 60 MHz (AhbFreq) - 1'b0: No | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Minimum AHB Frequency More Than 60 MHz | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Minimum AHB Frequency Less Than 60 MHz | |||||||||||||||||||||||||||||||||
| D | R | HIBERNATION | Enable Hibernation (Hibernation) - 1'b0: Hibernation feature not enabled | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Hibernation feature disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Hibernation feature enabled | |||||||||||||||||||||||||||||||||
| E | R | EXTENDEDHIBERNATION | Enable Hibernation - 1'b0: Extended Hibernation feature not enabled | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Extended Hibernation feature not enabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Extended Hibernation feature enabled | |||||||||||||||||||||||||||||||||
| F | R | ENHANCEDLPMSUPT1 | Enhanced LPM Support1 (EnhancedLPMSupt1) - This bit indicates that the controller supports L1 entry based on FIFO status. - Accept L1 Request even if Bulk/Interrupt TxFIFO is not empty. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Reject L1 Request even if Non-Periodic (Bulk/Interrupt) TxFIFO is not empty. | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Accept L1 Request even if Non-Periodic (Bulk/Interrupt) TxFIFO is not empty | |||||||||||||||||||||||||||||||||
| G | R | SERVINTFLOW | Service Interval Flow This bit indicates that the controller supports Service-Interval based scheduling flow for ISOC IN EPs. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Service Interval Flow not supported | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Service Interval Flow supported | |||||||||||||||||||||||||||||||||
| H | R | IPGISOCSUPT | Interpacket Gap ISOC OUT Worst-case Support (ipgisocSupt) This bit indicates that the controller supports the worst-case scenario of Rx followed by Rx Inter Packet Gap (IPG) (32-bit times) as per the UTMI Specification for any token following an ISOC OUT token. Without this support, when any token follows an ISOC OUT token with the worst-case IPG, the controller does not detect the followed token. The worst-case IPG of the controller without this support depends on the AHB and PHY clock frequency.By default IPG Support is enabled. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Interpacket Gap ISOC OUT Worst-case Support is Disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Interpacket Gap ISOC OUT Worst-case Support is Enabled (Default) | |||||||||||||||||||||||||||||||||
| I | R | ACGSUPT | Active Clock Gating Support This bit indicates that the controller supports the Dynamic (Switching) Power Reduction during periods when there is no USB and AHB Traffic. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | ||||||||||||||||||||||||||||||||||
ENABLED | 1 | Active Clock Gating Support | |||||||||||||||||||||||||||||||||
| J | R | ENHANCEDLPMSUPT | Enhanced LPM Support (EnhancedLPMSupt) This bit indicates that the controller supports the following behavior: L1 Entry Behavior based on FIFO Status - TX FIFO - Accept L1 Request even if ISOC IN TX FIFO is not empty. - Reject L1 Request if Non-Periodic TX FIFO is not empty. - Ensure application can flush the TX FIFO while the Controller is in L1. - RX FIFO - Accept L1 Request even if RX FIFO (common to Periodic and Non-Periodic) is not empty. - Accept L1 Request but delay SLEEPM assertion until RX SINK Buffer is empty. Prevent L1 Entry if a Control Transfer is in progress on any Control Endpoint. Ability to Flush TxFIFO even if PHY Clock is gated. | ||||||||||||||||||||||||||||||||
ENABLED | 1 | Enhanced LPM Support is enabled | |||||||||||||||||||||||||||||||||
| K | R | PHYDATAWIDTH | UTMI+ PHY/ULPI-to-Internal UTMI+ Wrapper Data Width (PhyDataWidth)<vr>When a ULPI PHY is used, an internal wrapper converts ULPI to UTMI+. | ||||||||||||||||||||||||||||||||
WIDTH1 | 0 | 8 bits | |||||||||||||||||||||||||||||||||
WIDTH2 | 1 | 16 bits | |||||||||||||||||||||||||||||||||
WIDTH3 | 2 | 8/16 bits, software selectable | |||||||||||||||||||||||||||||||||
| L | R | NUMCTLEPS | Number of Device Mode Control Endpoints in Addition to Endpoint 0 (NumCtlEps) Range: 0-15 | ||||||||||||||||||||||||||||||||
ENDPT0 | 0 | End point 0 | |||||||||||||||||||||||||||||||||
ENDPT1 | 1 | End point 1 | |||||||||||||||||||||||||||||||||
ENDPT2 | 2 | End point 2 | |||||||||||||||||||||||||||||||||
ENDPT3 | 3 | End point 3 | |||||||||||||||||||||||||||||||||
ENDPT4 | 4 | End point 4 | |||||||||||||||||||||||||||||||||
ENDPT5 | 5 | End point 5 | |||||||||||||||||||||||||||||||||
ENDPT6 | 6 | End point 6 | |||||||||||||||||||||||||||||||||
ENDPT7 | 7 | End point 7 | |||||||||||||||||||||||||||||||||
ENDPT8 | 8 | End point 8 | |||||||||||||||||||||||||||||||||
ENDPT9 | 9 | End point 9 | |||||||||||||||||||||||||||||||||
ENDPT10 | 10 | End point 10 | |||||||||||||||||||||||||||||||||
ENDPT11 | 11 | End point 11 | |||||||||||||||||||||||||||||||||
ENDPT12 | 12 | End point 12 | |||||||||||||||||||||||||||||||||
ENDPT13 | 13 | End point 13 | |||||||||||||||||||||||||||||||||
ENDPT14 | 14 | End point 14 | |||||||||||||||||||||||||||||||||
ENDPT15 | 15 | End point 15 | |||||||||||||||||||||||||||||||||
| M | R | IDDGFLTR | IDDIG Filter Enable (IddgFltr) - 1'b0: No filter | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Iddig Filter Disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Iddig Filter Enabled | |||||||||||||||||||||||||||||||||
| N | R | VBUSVALIDFLTR | VBUS Valid Filter Enabled (VBusValidFltr) - 1'b0: No filter | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Vbus Valid Filter Disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Vbus Valid Filter Enabled | |||||||||||||||||||||||||||||||||
| O | R | AVALIDFLTR | a_valid Filter Enabled (AValidFltr) - 1'b0: No filter | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No filter | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Filter | |||||||||||||||||||||||||||||||||
| P | R | BVALIDFLTR | b_valid Filter Enabled (BValidFltr) - 1'b0: No filter | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No Filter | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Filter | |||||||||||||||||||||||||||||||||
| Q | R | SESSENDFLTR | session_end Filter Enabled (SessEndFltr) - 1'b0: No filter | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No filter | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Filter | |||||||||||||||||||||||||||||||||
| R | R | DEDFIFOMODE | Enable Dedicated Transmit FIFO for device IN Endpoints (DedFifoMode) | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Dedicated Transmit FIFO Operation not enabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Dedicated Transmit FIFO Operation enabled | |||||||||||||||||||||||||||||||||
| S | R | INEPS | Number of Device Mode IN Endpoints Including Control Endpoints (INEps) - 0: 1 IN Endpoint - 1: 2 IN Endpoints .... - 15: 16 IN Endpoints | ||||||||||||||||||||||||||||||||
ENDPT1 | 0 | 1 IN Endpoint | |||||||||||||||||||||||||||||||||
ENDPT2 | 1 | 2 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT3 | 2 | 3 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT4 | 3 | 4 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT5 | 4 | 5 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT6 | 5 | 6 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT7 | 6 | 7 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT8 | 7 | 8 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT9 | 8 | 9 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT10 | 9 | 10 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT11 | 10 | 11 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT12 | 11 | 12 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT13 | 12 | 13 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT14 | 13 | 14 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT15 | 14 | 15 IN Endpoints | |||||||||||||||||||||||||||||||||
ENDPT16 | 15 | 16 IN Endpoints | |||||||||||||||||||||||||||||||||
| T | R | DESCDMAENABLED | Scatter/Gather DMA configuration - 1'b0: Non-Scatter/Gather DMA configuration | ||||||||||||||||||||||||||||||||
DISABLE | 0 | Non-Scatter/Gather DMA configuration | |||||||||||||||||||||||||||||||||
ENABLE | 1 | Scatter/Gather DMA configuration | |||||||||||||||||||||||||||||||||
| U | R | DESCDMA | Scatter/Gather DMA configuration - 1'b0: Non Dynamic configuration Note: This field is configured using the OTG_EN_DESC_DMA parameter. | ||||||||||||||||||||||||||||||||
CONFIG1 | 0 | Non Dynamic configuration | |||||||||||||||||||||||||||||||||
CONFIG2 | 1 | Dynamic configuration | |||||||||||||||||||||||||||||||||
GLPMCFG
Address offset: 0x054
LPM Config Register
Register to control the LPM functionality of the controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | O | N | M | M | M | L | K | K | K | J | J | J | J | I | H | G | G | F | F | F | F | F | E | D | C | C | C | C | B | A | |||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | LPMCAP | LPM-Capable (LPMCap) The application uses this bit to control the controller LPM capabilities. If the core operates as a non-LPM-capable host, it cannot request the connected device/hub to activate LPM mode. If the core operates as a non-LPM-capable device, it cannot respond to any LPM transactions. If GLPMCFG.LPMCap is 1'b0, the software must not set any of the remaining fields in the GLPMCFG register and these fields must hold their Reset values. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | LPM capability is not enabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | LPM capability is enabled | |||||||||||||||||||||||||||||||||
| B | RW | APPL1RES | Mode: Device only. LPM response programmed by application (AppL1Res) Handshake response to LPM token pre-programmed by device application software. The response depends on GLPMCFG.LPMCap. If GLPMCFG.LPMCap is 1'b0, the core operates as a non-LPM-capable Device and does not respond to any LPM transactions. If GLPMCFG.LPMCap is 1'b1, the core responds as follows: - 1: ACK Even though an ACK is pre-programmed, the core responds with an ACK only on a successful LPM transaction. The LPM transaction is successful if: -- There are no PID/CRC5 errors in both the EXT token and the LPM token (else ERROR) -- A valid bLinkState = 0001B (L1) is received in the LPM transaction (else STALL) -- No data is pending in the Transmit queue (else NYET) - 0: NYET The pre-programmed software bit is overridden for response to LPM token when: -- The received bLinkState is not L1 (STALL response) -- An error is detected in either of the LPM token packets due to corruption (ERROR response). | ||||||||||||||||||||||||||||||||
NYETRESP | 0 | The core responds with a NYET when an error is detected in either of the LPM token packets due to corruption | |||||||||||||||||||||||||||||||||
ACKRESP | 1 | The core responds with an ACK only on a successful LPM transaction | |||||||||||||||||||||||||||||||||
| C | RW | HIRD | Host-Initiated Resume Duration (HIRD) EnBESL = 1'b0 Host Initiated Resume Duration. - Host Mode: The value of HIRD to be sent in an LPM transaction. This value is also used to initiate resume for a duration TL1HubDrvResume1 for host-initiated resume. - Device Mode: This field is read only and is updated with the Received LPM Token HIRD bmAttribute when an ACK/NYET/STALL response is sent to an LPM transaction. If HIRD[3:0], EnBESL = 1'b1 Best Effort Service Latency (BESL). - Host Mode: The value of BESL to be sent in an LPM transaction. This value is also used to initiate resume for a duration TL1HubDrvResume1 for host-initiated resume. - Device Mode: This field is updated with the Received LPM Token BESL bmAttribute when an ACK/NYET/STALL response is sent to an LPM transaction. If BESL[3:0], | ||||||||||||||||||||||||||||||||
| D | RW | BREMOTEWAKE | RemoteWakeEnable (bRemoteWake) Mode: Host and Device Host Mode: The value of remote wake up to be sent in wIndex field of LPM transaction. Device Mode: This field is read only. It is updated with the Received LPM Token bRemoteWake bmAttribute when an ACK/NYET/STALL response is sent to an LPM transaction. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Remote Wakeup is disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | In Host or device mode, this field takes the value of remote wake up | |||||||||||||||||||||||||||||||||
| E | RW | ENBLSLPM | Enable utmi_sleep_n (EnblSlpM) Mode: Host and Device For ULPI interface: The application uses this bit to control the utmi_sleep_n assertion to the PHY when in L1 state. For the host, this bit is valid only in Local Device mode. Note: - When a ULPI interface is configured, enabling this bit results in a write to Bit 7 of the ULPI Function Control register. The Synopsys ULPI PHY supports writing to this bit, and in the L1 state asserts SleepM when utmi_l1_suspend_n cannot be asserted. - When a ULPI/UTMI PHY associated with the controller (Host or device) does not support the LPM sleep feature clock gating, it is recommended to keep the EnblSlpM bit in disabled state (= 1'b0). This ensures the ULPI wrapper is in enabled mode and detects any wakeup events. For all other interfaces: The application uses this bit to control utmi_sleep_n assertion to the PHY in the L1 state. For the host, this bit is valid only in Local Device mode. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | utmi_sleep_n assertion from the core is not transferred to the external PHY | |||||||||||||||||||||||||||||||||
ENABLED | 1 | utmi_sleep_n assertion from the core is transferred to the external PHY when utmi_l1_suspend_n cannot be asserted | |||||||||||||||||||||||||||||||||
| F | RW | HIRDTHRES | BESL/HIRD Threshold (HIRD_Thres) Device Mode: Note: When a ULPI/UTMI PHY associated with the controller (Host or device) does not support the LPM sleep feature clock gating, it is recommended to keep the HIRD_Thres[12] bit in disabled state (= 1'b0). This ensures the ULPI wrapper is in enabled mode and detects any wakeup events. - EnBESL = 1'b0: The core puts the PHY into deep low power mode in L1 (by core asserting L1SuspendM) when HIRD value is greater than or equal to the value defined in this field HIRD_Thres[3:0] and HIRD_Thres[4] is set to 1b1. - EnBESL = 1'b1: The core puts the PHY into deep low power mode in L1 (by core asserting L1SuspendM) when BESL value is greater than or equal to the value defined in this field BESL_Thres[3:0] and BESL_Thres [4] is set to 1'b1. - DCTL.DeepSleepBESLReject = 1'b1: In device initiated resume, the core expects the Host to resume service to the device within the BESL value corresponding to L1 exit time specified in HIRD_Thres[3:0]. The Device sends a NYET response when the received HIRD in LPM token is greater than HIRD threshold. Host Mode: The core puts the PHY into deep low power mode in L1 (by core asserting L1SuspendM) when HIRD_Thres[4] is set to 1'b1. HIRD_Thres[3:0] specifies the time for which resume signaling is to be reflected by host (TL1HubDrvResume2) on the USB bus when it detects device initiated resume. To differentiate between Deep Sleep and Shallow Sleep, HIRD greater than or equal to HIRD threshold comparison is done. For differentiating between NYET or ACK response for LPM token HIRD greater than HIRD Threshold comparison is used. - When EnBESL = 1'b0, HIRD_Thres must not be programmed with a value greater than 4'b1100 in host mode since this exceeds maximum TL1HubDrvResume2. - When EnBESL = 1'b1, HIRD_Thres must not be programmed with a value greater than 4'b0110 in host mode since this exceeds maximum TL1HubDrvResume2. For additional details, see the "Additional Details on GLPMCFG.HIRD_Thres Register Field" section in the databook. | ||||||||||||||||||||||||||||||||
| G | R | COREL1RES | LPM Response (CoreL1Res) Device Mode: The response of the core to LPM transaction received is reflected in these two bits. Host Mode: Handshake response received from local device for LPM transaction | ||||||||||||||||||||||||||||||||
LPMRESP1 | 0 | ERROR : No handshake response | |||||||||||||||||||||||||||||||||
LPMRESP2 | 1 | STALL response | |||||||||||||||||||||||||||||||||
LPMRESP3 | 2 | NYET response | |||||||||||||||||||||||||||||||||
LPMRESP4 | 3 | ACK response | |||||||||||||||||||||||||||||||||
| H | R | SLPSTS | Port Sleep Status (SlpSts) Device Mode: This bit is set as long as a Sleep condition is present on the USB bus. The core enters the Sleep state when an ACK response is sent to an LPM transaction and the TL1TokenRetry timer has expired. To stop the PHY clock, the application must set the Port Clock Stop bit, which asserts the PHY Suspend input signal. The application must rely on SlpSts and not ACK in CoreL1Res to confirm transition into sleep. The core comes out of sleep: - When there is any activity on the USB line_state - When the application writes to the Remote Wakeup Signaling bit in the Device Control register (DCTL.RmtWkUpSig) or when the application resets or soft-disconnects the device. Host Mode: The host transitions to Sleep (L1) state as a side-effect of a successful LPM transaction by the core to the local port with ACK response from the device. The read value of this bit reflects the current Sleep status of the port. The core clears this bit after: - The core detects a remote L1 Wakeup signal; - The application sets the Port Reset bit or the Port L1Resume bit in the HPRT register; or - The application sets the L1Resume/ Remote Wakeup Detected Interrupt bit or Disconnect Detected Interrupt bit in the Core Interrupt register (GINTSTS.L1WkUpInt or GINTSTS.DisconnInt, respectively). | ||||||||||||||||||||||||||||||||
CORENOTINL1 | 0 | In Host or Device mode, this bit indicates core is not in L1 | |||||||||||||||||||||||||||||||||
COREINL1 | 1 | In Host mode, this bit indicates the core transitions to Sleep state as a successful LPM transaction. In Device mode, the core enters the Sleep state when an ACK response is sent to an LPM transaction | |||||||||||||||||||||||||||||||||
| I | R | L1RESUMEOK | Sleep State Resume OK (L1ResumeOK) Device and Host Mode: Indicates that the application or host can start resume from Sleep state. This bit is valid in LPM sleep (L1) state. It is set in sleep mode after a delay of 50 micro sec (TL1Residency). The bit is reset when SlpSts is 0. | ||||||||||||||||||||||||||||||||
NOTOK | 0 | The application/core cannot start Resume from Sleep state | |||||||||||||||||||||||||||||||||
OK | 1 | The application/core can start Resume from Sleep state | |||||||||||||||||||||||||||||||||
| J | RW | LPMCHNLINDX | LPM Channel Index Host Mode: The channel number on which the LPM transaction has to be applied while sending an LPM transaction to the local device. Based on the LPM channel index, the core automatically inserts the device address and end point number programmed in the corresponding channel into the LPM transaction. Device Mode: LPM Accept Control (LPM_Accept_Ctrl) LPM_Accept_Ctrl[0] (LPM_Chnl_Indx[3]): The application can use this bit to accept an LPM token even if data is present in the INTR endpoint TxFIFO. This bit is applicable only for Dedicated TX FIFO configurations (OTG_EN_DED_TX_FIFO=1). | ||||||||||||||||||||||||||||||||
CH0 | 0 | Channel 0 | |||||||||||||||||||||||||||||||||
CH1 | 1 | Channel 1 | |||||||||||||||||||||||||||||||||
CH2 | 2 | Channel 2 | |||||||||||||||||||||||||||||||||
CH3 | 3 | Channel 3 | |||||||||||||||||||||||||||||||||
CH4 | 4 | Channel 4 | |||||||||||||||||||||||||||||||||
CH5 | 5 | Channel 5 | |||||||||||||||||||||||||||||||||
CH6 | 6 | Channel 6 | |||||||||||||||||||||||||||||||||
CH7 | 7 | Channel 7 | |||||||||||||||||||||||||||||||||
CH8 | 8 | Channel 8 | |||||||||||||||||||||||||||||||||
CH9 | 9 | Channel 9 | |||||||||||||||||||||||||||||||||
CH10 | 10 | Channel 10 | |||||||||||||||||||||||||||||||||
CH11 | 11 | Channel 11 | |||||||||||||||||||||||||||||||||
CH12 | 12 | Channel 12 | |||||||||||||||||||||||||||||||||
CH13 | 13 | Channel 13 | |||||||||||||||||||||||||||||||||
CH14 | 14 | Channel 14 | |||||||||||||||||||||||||||||||||
CH15 | 15 | Channel15 | |||||||||||||||||||||||||||||||||
| K | RW | LPMRETRYCNT | LPM Retry Count (LPM_Retry_Cnt) Host Mode: Number of additional LPM retries that the HOST would perform if the Device Response was an ERROR until a valid device response is received (STALL/NYET/ACK). Device Mode: LPM Accept Control (LPM_Accept_Ctrl) LPM_Accept_Ctrl[1]: The application can use this bit to reject an LPM token (NYET) between multiple stages of a single control transfer LPM_Accept_Ctrl[2]: The application can use this bit to accept an LPM token even if data is present in the ISOC endpoint TxFIFO. This bit is applicable only for Dedicated TxFIFO configurations (OTG_EN_DED_TX_FIFO=1). LPM_Accept_Ctrl[3]: The application can use this bit to accept an LPM token even if data is present in the BULK endpoint TxFIFO. This bit is applicable only for Dedicated TxFIFO configurations (OTG_EN_DED_TX_FIFO=1). | ||||||||||||||||||||||||||||||||
RETRY0 | 0 | Zero LPM retries | |||||||||||||||||||||||||||||||||
RETRY1 | 1 | One LPM retry | |||||||||||||||||||||||||||||||||
RETRY2 | 2 | Two LPM retries | |||||||||||||||||||||||||||||||||
RETRY3 | 3 | Three LPM retries | |||||||||||||||||||||||||||||||||
RETRY4 | 4 | Four LPM retries | |||||||||||||||||||||||||||||||||
RETRY5 | 5 | Five LPM retries | |||||||||||||||||||||||||||||||||
RETRY6 | 6 | Six LPM retries | |||||||||||||||||||||||||||||||||
RETRY7 | 7 | Seven LPM retries | |||||||||||||||||||||||||||||||||
| L | RW | SNDLPM | Send LPM Transaction (SndLPM) Host Mode: When set by application software, an LPM transaction containing two tokens, EXT & LPM is sent. Cleared by the hardware once a valid response (STALL./NYET/ACK) is received from the Device or the core had finished transmitting the programmed number of LPM retries. Note that this bit must be set only when the host is connected to local port. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | In host-only mode: Received the response from the device for the LPM transaction | |||||||||||||||||||||||||||||||||
ENABLED | 1 | In host-only mode: Sending LPM transaction containing EXT and LPM tokens | |||||||||||||||||||||||||||||||||
| M | R | LPMRETRYCNTSTS | LPM Retry Count Status (LPM_RetryCnt_Sts) Host Mode: Number of LPM Host Retries still remaining to be transmitted for the current LPM sequence. | ||||||||||||||||||||||||||||||||
RETRYREM0 | 0 | Zero LPM retries remaining | |||||||||||||||||||||||||||||||||
RETRYREM1 | 1 | One LPM retry remaining | |||||||||||||||||||||||||||||||||
RETRYREM2 | 2 | Two LPM retries remaining | |||||||||||||||||||||||||||||||||
RETRYREM3 | 3 | Three LPM retries remaining | |||||||||||||||||||||||||||||||||
RETRYREM4 | 4 | Four LPM retries remaining | |||||||||||||||||||||||||||||||||
RETRYREM5 | 5 | Five LPM retries remaining | |||||||||||||||||||||||||||||||||
RETRYREM6 | 6 | Six LPM retries remaining | |||||||||||||||||||||||||||||||||
RETRYREM7 | 7 | Seven LPM retries remaining | |||||||||||||||||||||||||||||||||
| N | RW | LPMENBESL | LPM Enable BESL (LPM_EnBESL) This bit enables the BESL feature as defined in LPM Errata | ||||||||||||||||||||||||||||||||
DISABLED | 0 | BESL is disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | BESL is enabled as defined in LPM Errata | |||||||||||||||||||||||||||||||||
| O | RW | LPMRESTORESLPSTS | LPM Restore Sleep Status (LPM_RestoreSlpSts) When the application power gates the core (Partial Power Down / Hibernation) the application needs to program this bit to restore the LPM status in the core. The application needs to program this bit, during restore process, based on whether it decides to go into Shallow Sleep (Clock Gating Only) or Deep Sleep (Power Gating) based on the BESL value received from the Host | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Puts the core in Shallow Sleep mode based on the BESL value from the Host | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Puts the core in Deep Sleep mode based on the BESL value from the Host | |||||||||||||||||||||||||||||||||
GPWRDN
Address offset: 0x058
Global Power Down Register
This is the Hibernation control register. This register is active only during hibernation and ADP. The application can get the status of the wakeup_logic and control it through this register.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | W | W | W | W | W | V | U | T | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||
| Reset 0x00000010 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | PMUINTSEL | PMU Interrupt Select (PMUIntSel) A write to this bit with 1'b1 enables the PMU to generate interrupts to the application. During this state all interrupts from the DWC_otg_core module are blocked to the application. Note: This bit must be set to 1'b1 before the core is put into hibernation. Note: This bit must not be written to during normal mode of operation. | ||||||||||||||||||||||||||||||||
DISABLE | 0 | Internal DWC_otg_core interrupt is selected | |||||||||||||||||||||||||||||||||
ENABLE | 1 | External DWC_otg_pmu interrupt is selected | |||||||||||||||||||||||||||||||||
| B | RW | PMUACTV | PMU Active (PMUActv) This is bit is to enable or disable the PMU logic. Note: This bit must not be written to during normal mode of operation. | ||||||||||||||||||||||||||||||||
DISABLE | 0 | Disable PMU module | |||||||||||||||||||||||||||||||||
ENABLE | 1 | Enable PMU module | |||||||||||||||||||||||||||||||||
| C | RW | RESTORE | Restore The application must program this bit to enable or disable restore mode from the PMU module. Note: This bit must not be written to during normal mode of operation. | ||||||||||||||||||||||||||||||||
DISABLE | 0 | The controller in normal mode of operation | |||||||||||||||||||||||||||||||||
ENABLE | 1 | The controller in Restore mode | |||||||||||||||||||||||||||||||||
| D | RW | PWRDNCLMP | Power Down Clamp (PwrDnClmp) The application must program this bit to enable or disable the clamps to all the outputs of the core module to prevent the corruption of other active logic. | ||||||||||||||||||||||||||||||||
DISABLE | 0 | Disable PMU power clamp | |||||||||||||||||||||||||||||||||
ENABLE | 1 | Enable PMU power clamp | |||||||||||||||||||||||||||||||||
| E | RW | PWRDNRSTN | Power Down ResetN (PwrDnRst_n) The application must program this bit to reset the core during the Hibernation exit process or during ADP when powering up the core (in case the core was powered off during ADP process). Note: This bit must not be written to during normal mode of operation. | ||||||||||||||||||||||||||||||||
DISABLE | 0 | Reset the controller | |||||||||||||||||||||||||||||||||
ENABLE | 1 | The controller is in normal operation | |||||||||||||||||||||||||||||||||
| F | RW | PWRDNSWTCH | Power Down Switch (PwrDnSwtch) This bit indicates to the controller whether the VDD switch is in ON/OFF state. Note: This bit must not be written to during normal mode of operation. | ||||||||||||||||||||||||||||||||
ON | 0 | The controller is in ON state | |||||||||||||||||||||||||||||||||
OFF | 1 | The controller is in OFF state | |||||||||||||||||||||||||||||||||
| G | RW | DISABLEVBUS | DisableVBUS Host Mode: The application must program this bit if HPRT0.PrtPwr was programmed to 0 before entering Hibernation. This is to indicate PMU whether session was ended before entering Hibernation. Device Mode: The application must program this bit to inform the PMU whether the bvalid valid signal is high (session valid) or low (session end) whenever the core is switched off. This bit is valid only when GPWRDN.PMUActv is 1. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Host mode:HPRT0.PrtPwr was not programmed to 0, and in Device mode:Session Valid | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Host mode:HPRT0.PrtPwr was programmed to 0 and in Device mode:Session End | |||||||||||||||||||||||||||||||||
| H | RW | LNSTSCHNG | Line State Change (LnStsChng) This interrupt is asserted when there is a Linestate Change detected by the PMU. The application must read GPWRDN.Linestate to determine the current linestate on USB. This bit is valid only when GPWRDN.PMUActv is 1. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No LineState change on USB | |||||||||||||||||||||||||||||||||
ENABLED | 1 | LineState change on USB | |||||||||||||||||||||||||||||||||
| I | RW | LINESTAGECHANGEMSK | LineStageChangeMsk Mask for LineStateChange interrupt. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask for LineStateChange Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No LineStateChange Interrupt Mask | |||||||||||||||||||||||||||||||||
| J | RW | RESETDETECTED | ResetDetected This field indicates that Reset has been detected by the PMU module. This field generates an interrupt. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Reset not detected | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Reset detected | |||||||||||||||||||||||||||||||||
| K | RW | RESETDETMSK | ResetDetMsk Mask for ResetDetected interrupt | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask for ResetDetect Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No ResetDetect Interrupt Mask | |||||||||||||||||||||||||||||||||
| L | RW | DISCONNECTDETECT | DisconnectDetect This field indicates that Disconnect has been detected by the PMU. This field generates an interrupt. After detecting disconnect during hibernation the application must not restore the core, but instead start the initialization process. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disconnect not detected | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Disconnect detected | |||||||||||||||||||||||||||||||||
| M | RW | DISCONNECTDETECTMSK | DisconnectDetectMsk Mask For DisconnectDetect Interrupt | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask for DisconnectDetect Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No DisconnectDetect Interrupt Mask | |||||||||||||||||||||||||||||||||
| N | RW | CONNECTDET | ConnectDet This field indicates that a new connect has been detected | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Connect not detected | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Connect detected | |||||||||||||||||||||||||||||||||
| O | RW | CONNDETMSK | ConnDetMsk Mask for ConnectDet interrupt | ||||||||||||||||||||||||||||||||
NOMASK | 0 | No ConnectDet Interrupt Mask | |||||||||||||||||||||||||||||||||
MASK | 1 | Mask for ConnectDet Interrupt | |||||||||||||||||||||||||||||||||
| P | RW | SRPDETECT | SRPDetect This field indicates that SRP has been detected by the PMU. This field generates an interrupt. After detecting SRP during hibernation the application must not restore the core. The application must get into the initialization process. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | SRP not detected | |||||||||||||||||||||||||||||||||
ENABLED | 1 | SRP detected | |||||||||||||||||||||||||||||||||
| Q | RW | SRPDETECTMSK | SRPDetectMsk Mask for SRPDetect Interrupt | ||||||||||||||||||||||||||||||||
NOMASK | 0 | No SRPDetect Interrupt Mask | |||||||||||||||||||||||||||||||||
MASK | 1 | Mask for SRPDetect Interrupt | |||||||||||||||||||||||||||||||||
| R | RW | STSCHNGINT | Status Change Interrupt (StsChngInt) This field indicates a status change in either the IDDIG or BSessVld signal. After receiving this interrupt the application must read the GPWRDN register and interpret the change in IDDIG or BSesVld with respect to the previous value stored by the application. Note: When Battery Charger is enabled and the ULPI interface is used, if StsChngInt is received and the application reads GPWRDN register and determines that it is because of a change in the value of IDDIG, then StsChngInt may be generated once again within the next few clock cycles. This occurs because of an ambiguity in the implementation of Battery Charger Support over the ULPI interface. After receiving the StsChngInt for the second time the application can once again read the GPWRDN register. However, this time the valueIDDIG (or BSesVld) would not have changed. The application then processes the second interrupt but no further action will be required as a result. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No Status change | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Status change detected | |||||||||||||||||||||||||||||||||
| S | RW | STSCHNGINTMSK | StsChngIntMsk Mask for StsChng Interrupt | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask for Status Change Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Status Change Interrupt Mask | |||||||||||||||||||||||||||||||||
| T | R | LINESTATE | LineState This field indicates the current linestate on USB as seen by the PMU module. This bit is valid only when GPWRDN.PMUActv is 1. | ||||||||||||||||||||||||||||||||
LS1 | 0 | Linestate on USB: DM = 0, DP = 0 | |||||||||||||||||||||||||||||||||
LS2 | 1 | Linestate on USB: DM = 0, DP = 1 | |||||||||||||||||||||||||||||||||
LS3 | 2 | Linestate on USB: DM = 1, DP = 0 | |||||||||||||||||||||||||||||||||
LS4 | 3 | Linestate on USB: Not-defined | |||||||||||||||||||||||||||||||||
| U | R | IDDIG | This bit indicates the status of the signal IDDIG. The application must read this bit after receiving GPWRDN.StsChngInt and decode based on the previous value stored by the application. Indicates the current mode. This bit is valid only when GPWRDN.PMUActv is 1. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Host Mode | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Device Mode | |||||||||||||||||||||||||||||||||
| V | R | BSESSVLD | B Session Valid (BSessVld) This field reflects the B session valid status signal from the PHY. This bit is valid only when GPWRDN.PMUActv is 1. | ||||||||||||||||||||||||||||||||
NOTVALID | 0 | B_Valid is 0 | |||||||||||||||||||||||||||||||||
VALID | 1 | B_Valid is 1 | |||||||||||||||||||||||||||||||||
| W | R | MULTVALIDBC | MultValIdBC Battery Charger ACA inputs in the following order: These bits are present only if BC_SUPPORT = 1. Otherwise, these bits are reserved and will read 5'h0. | ||||||||||||||||||||||||||||||||
RID0 | 0 | OTG device as B-device | |||||||||||||||||||||||||||||||||
RIDC | 1 | OTG device as B-device, can connect | |||||||||||||||||||||||||||||||||
RIDB | 2 | OTG device as B-device, cannot connect | |||||||||||||||||||||||||||||||||
RIDA | 4 | OTG device as A-device | |||||||||||||||||||||||||||||||||
RIDGND | 8 | ID_OTG pin is grounded | |||||||||||||||||||||||||||||||||
RIDARIDGND | 12 | OTG device as A-device, RID_A=1 and RID_GND=1 | |||||||||||||||||||||||||||||||||
RIDFLOAT | 16 | ID pull down when ID_OTG is floating | |||||||||||||||||||||||||||||||||
RIDCRIDFLOAT | 17 | OTG device as B-device, can connect, RID_C=1 and RID_FLOAT=1 | |||||||||||||||||||||||||||||||||
RIDBRIDFLOAT | 18 | OTG device as B-device, cannot connect, RID_B=1 and RID_FLOAT=1 | |||||||||||||||||||||||||||||||||
RID1 | 31 | OTG device as A-device | |||||||||||||||||||||||||||||||||
GDFIFOCFG
Address offset: 0x05C
Global DFIFO Configuration Register
Register to configure the DFIFOs for the controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x0BE00C00 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | GDFIFOCFG | GDFIFOCfg This field is for dynamic programming of the DFIFO Size. This value takes effect only when the application programs a non zero value to this register. The value programmed must conform to the guidelines described in 'FIFO RAM Allocation'. The core does not have any corrective logic if the FIFO sizes are programmed incorrectly. | ||||||||||||||||||||||||||||||||
| B | RW | EPINFOBASEADDR | This field provides the start address of the EP info controller. The EP info controller manages the stored values in the last few locations of the SPRAM as listed below. - Host Buffer DMA mode: One location per channel is used in SPRAM to store the HCDMAn value. - Host Scatter/Gather DMA mode: Four locations per channel are used in SPRAM to store the Base Descriptor address, Current Descriptor address, Current Buffer Pointer, and the Status Quadlet. - Device Buffer DMA mode: One location per endpoint direction is used in SPRAM to store the DIEPDMA and DOEPDMA value. - Device Scatter/Gather DMA mode: Four locations per endpoint direction are used in SPRAM to store the Base Descriptor address, Current Descriptor address, Current Buffer Pointer and the Status Quadlet. | ||||||||||||||||||||||||||||||||
GINTMSK2
Address offset: 0x068
Interrupt Mask Register 2
This register works with the Interrupt Register (GINTSTS2) to interrupt the application. When an interrupt bit is masked, the interrupt associated with that bit is not generated. However, the GINTSTS2 register bit corresponding to that interrupt is still set. Note: The fields of this register change depending on host or device mode.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | GINTMSK2 | |||||||||||||||||||||||||||||||||
GINTSTS2
Address offset: 0x06C
Interrupt Register 2
This register interrupts the application for system-level events in the current mode (Device mode or Host mode). Some of the bits in this register are valid only in Host mode, while others are valid in Device mode only. This register also indicates the current mode. To clear the interrupt status bits of type R_SS_WC, the application must write 1'b1 to the bit. The application must clear the GINTSTS2 register at initialization before unmasking the interrupt bit to avoid any interrupts generated prior to initialization.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | GINTSTS2 | |||||||||||||||||||||||||||||||||
HPTXFSIZ
Address offset: 0x100
Host Periodic Transmit FIFO Size Register
This register holds the size and the memory start address of the Periodic TxFIFO. Note: Read the reset value of this register only after the following conditions: - If IDDIG_FILTER is disabled, read only after PHY clock is stable. - If IDDIG_FILTER is enabled, read only after the filter timer expires.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | B | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||||||||
| Reset 0x0C001800 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | PTXFSTADDR | Host Periodic TxFIFO Start Address (PTxFStAddr) The power-on reset value of this register is the sum of the Largest Rx Data FIFO Depth and Largest Non-periodic Tx Data FIFO Depth.These parameters are: In shared FIFO operation: - OTG_RX_DFIFO_DEPTH + OTG_TX_NPERIO_DFIFO_DEPTH In dedicated FIFO mode: - OTG_RX_DFIFO_DEPTH + OTG_TX_HNPERIO_DFIFO_DEPTH If Enable Dynamic FIFO Sizing? was deselected in coreConsultant (parameter OTG_DFIFO_DYNAMIC = 0), these flops are optimized, and reads return the power-on value. If Enable Dynamic FIFO Sizing? was selected in coreConsultant (parameter OTG_DFIFO_DYNAMIC = 1), you can write a new value in this field. Programmed values must not exceed the power-on value set in coreConsultant. | ||||||||||||||||||||||||||||||||
| B | RW | PTXFSIZE | Host Periodic TxFIFO Depth (PTxFSize) This value is in terms of 32-bit words. - Minimum value is 16 - Maximum value is 32,768 The power-on reset value of this register is specified as the Largest Host Mode Periodic Tx Data FIFO Depth. - If Enable Dynamic FIFO Sizing? was deselected in coreConsultant (parameter OTG_DFIFO_DYNAMIC = 0), these flops are optimized, and reads return the power-on value. - If Enable Dynamic FIFO Sizing? was selected in coreConsultant (parameter OTG_DFIFO_DYNAMIC = 1), you can write a new value in this field. Programmed values must not exceed the power-on value set in coreConsultant. | ||||||||||||||||||||||||||||||||
DIEPTXF[n]
Address offset: 0x104 + (n × 0x4)
Device IN Endpoint Transmit FIFO 1 Size Register
This register is valid only in dedicated FIFO mode (OTG_EN_DED_TX_FIFO=1). It holds the size and memory start address of IN endpoint TxFIFOs implemented in Device mode. Each FIFO holds the data for one IN endpoint. This register is repeated for instantiated IN endpoint FIFOs 1 to 15. For IN endpoint FIFO 0, use GNPTXFSIZ register for programming the size and memory start address.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | B | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||||||||
| Reset 0x0C001800 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | INEPNTXFSTADDR | IN Endpoint FIFOn Transmit RAM Start Address (INEPnTxFStAddr) This field contains the memory start address for the IN endpoint Transmit FIFO that this register corresponds to. The power-on reset value of this register is calculated according to the following formula: OTG_RX_DFIFO_DEPTH + SUM of OTG_TX_DINEP_DFIFO_DEPTH_'n', where n = 0 to (FIFO number-1). For example, Start address of INEP FIFO 1 (DIEPTXF1) is OTG_RX_DFIFO_DEPTH + OTG_TX_DINEP_DFIFO_DEPTH_0, start address of INEP FIFO 2 (DIEPTXF2) is OTG_RX_DFIFO_DEPTH + OTG_TX_DINEP_DFIFO_DEPTH_0 + OTG_TX_DINEP_DFIFO_DEPTH_1, and so on. If at POR the calculated value (C) exceeds 65535, then the Reset value becomes Reset Value(A) = (C-65536). - If Enable Dynamic FIFO Sizing is deselected in coreConsultant (OTG_DFIFO_DYNAMIC = 0), this field is read-only and read value is the power-on reset value. - If Enable Dynamic FIFO Sizing is selected in coreConsultant (OTG_DFIFO_DYNAMIC = 1), and you have calculated or programmed a new value for RxFIFO depth or TX FIFO depths, you can program their values according to the above formula. Programmed values must not exceed the power-on value set in coreConsultant. | ||||||||||||||||||||||||||||||||
| B | RW | INEPNTXFDEP | IN Endpoint TxFIFO Depth (INEPnTxFDep) This value is in terms of 32-bit words. - Minimum value is 16 - Maximum value is 32,768 The power-on reset value of this register is specified as the Largest IN Endpoint FIFO number Depth (parameter OTG_TX_DINEP_DFIFO_DEPTH_i) set during coreConsultant configuration, where i is the FIFO number this register corresponds to. - If "Enable Dynamic FIFO Sizing?" was deselected in coreConsultant (parameter OTG_DFIFO_DYNAMIC = 0), these flops are optimized, and reads return the power-on value. - If "Enable Dynamic FIFO Sizing?" was selected in coreConsultant (parameter OTG_DFIFO_DYNAMIC = 1), you can write a new value in this field. Programmed values must not exceed the power-on value. | ||||||||||||||||||||||||||||||||
HCFG
Address offset: 0x400
Host Configuration Register
This register is used to configure the controller in Host mode.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | E | D | D | D | D | D | D | D | D | C | B | A | A | ||||||||||||||||||||||
| Reset 0x00000200 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | FSLSPCLKSEL | FS/LS PHY Clock Select (FSLSPclkSel) When the core is in FS Host mode When the core is in LS Host mode Notes: - When Core in FS mode, the internal and external clocks have the same frequency. - When Core in LS mode, -- If FSLSPclkSel = 2'b00: Internal and external clocks have the same frequency -- If FSLSPclkSel = 2'b10: Internal clock is the divided by eight version of external 48 MHz clock | ||||||||||||||||||||||||||||||||
CLK3060 | 0 | PHY clock is running at 30/60 MHz | |||||||||||||||||||||||||||||||||
CLK48 | 1 | PHY clock is running at 48 MHz | |||||||||||||||||||||||||||||||||
CLK6 | 2 | PHY clock is running at 6 MHz | |||||||||||||||||||||||||||||||||
| B | RW | FSLSSUPP | FS- and LS-Only Support (FSLSSupp) The application uses this bit to control the core's enumeration speed. Using this bit, the application can make the core enumerate as a FS host, even If the connected device supports HS traffic. Do not make changes to this field after initial programming. | ||||||||||||||||||||||||||||||||
HSFSLS | 0 | HS/FS/LS, based on the maximum speed supported by the connected device | |||||||||||||||||||||||||||||||||
FSLS | 1 | FS/LS-only, even if the connected device can support HS | |||||||||||||||||||||||||||||||||
| C | RW | ENA32KHZS | Enable 32 KHz Suspend mode (Ena32KHzS) This bit can be set only in FS PHY interface is selected. Else, this bit needs to be set to zero. When FS PHY interface is chosen and this bit is set, the core expects that the PHY clock during Suspend is switched from 48 MHz to 32 KHz. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | 32 KHz Suspend mode disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | 32 KHz Suspend mode enabled | |||||||||||||||||||||||||||||||||
| D | RW | RESVALID | Resume Validation Period (ResValid) This field is effective only when HCFG.Ena32KHzS is set. It controls the resume period when the core resumes from suspend. The core counts for 'ResValid' number of clock cycles to detect a valid resume when this is set. | ||||||||||||||||||||||||||||||||
| E | RW | MODECHTIMEN | Mode Change Ready Timer Enable (ModeChTimEn) This bit is used to enable/disable the Host core to wait 200 PHY clock cycles at the end of Resume to change the opmode signal to the PHY to 00 after Suspend or LPM. | ||||||||||||||||||||||||||||||||
ENABLED | 0 | The Host core waits for either 200 PHY clock cycles or a linestate of SE0 at the end of resume to change the opmode from 0x2 to 0x0 | |||||||||||||||||||||||||||||||||
DISABLED | 1 | The Host core waits only for a linestate of SE0 at the end of resume to change the opmode from 0x2 to 0x0 | |||||||||||||||||||||||||||||||||
HFIR
Address offset: 0x404
Host Frame Interval Register
This register is used to control the interval between two consecutive SOFs.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||||||||
| Reset 0x0000EA60 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | FRINT | Frame Interval (FrInt) The value that the application programs to this field specifies the interval between two consecutive SOFs (FS) or micro- SOFs (HS) or Keep-Alive tokens (HS). This field contains the number of PHY clocks that constitute the required frame interval. The Default value set in this field is for FS operation when the PHY clock frequency is 60 MHz. The application can write a value to this register only after the Port Enable bit of the Host Port Control and Status register (HPRT.PrtEnaPort) has been Set. If no value is programmed, the core calculates the value based on the PHY clock specified in the FS/LS PHY Clock Select field of the Host Configuration register (HCFG.FSLSPclkSel). Do not change the value of this field after the initial configuration. - 125 us * (PHY clock frequency for HS) - 1 ms * (PHY clock frequency for FS/LS) | ||||||||||||||||||||||||||||||||
| B | RW | HFIRRLDCTRL | Reload Control (HFIRRldCtrl) This bit allows dynamic reloading of the HFIR register during run time. This bit needs to be programmed during initial configuration and its value must not be changed during runtime. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | The HFIR cannot be reloaded dynamically | |||||||||||||||||||||||||||||||||
ENABLED | 1 | The HFIR can be dynamically reloaded during runtime | |||||||||||||||||||||||||||||||||
HFNUM
Address offset: 0x408
Host Frame Number/Frame Time Remaining Register
This register indicates the current frame number. It also indicates the time remaining (in terms of the number of PHY clocks) in the current (micro)frame. Note: Read the reset value of this register only after the following conditions: - If IDDIG_FILTER is disabled, read only when the PHY clock is stable. - If IDDIG_FILTER is enabled, read only after the filter timer expires.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00003FFF | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | FRNUM | Frame Number (FrNum) This field increments when a new SOF is transmitted on the USB, and is reset to 0 when it reaches 16'h3FFF. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SOF is transmitted | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SOF is transmitted | |||||||||||||||||||||||||||||||||
| B | R | FRREM | Frame Time Remaining (FrRem) Indicates the amount of time remaining in the current microframe (HS) or Frame (FS/LS), in terms of PHY clocks. This field decrements on each PHY clock. When it reaches zero, this field is reloaded with the value in the Frame Interval register and a new SOF is transmitted on the USB. | ||||||||||||||||||||||||||||||||
HPTXSTS
Address offset: 0x410
Host Periodic Transmit FIFO/Queue Status Register
This register contains information about the Periodic Transmit Queue in the Host controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | C | C | C | C | C | C | C | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00080C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | PTXFSPCAVAIL | Periodic Transmit Data FIFO Space Available (PTxFSpcAvail) Indicates the number of free locations available to be written to in the Periodic TxFIFO. Values are in terms of 32-bit words - Others : Reserved | ||||||||||||||||||||||||||||||||
| B | R | PTXQSPCAVAIL | Periodic Transmit Request Queue Space Available (PTxQSpcAvail) Indicates the number of free locations available to be written in the Periodic Transmit Request Queue. This queue holds both IN and OUT requests. - n: n locations available (0 <= n <= 16) | ||||||||||||||||||||||||||||||||
FULL | 0 | Periodic Transmit Request Queue is full | |||||||||||||||||||||||||||||||||
FREE1 | 1 | 1 location available | |||||||||||||||||||||||||||||||||
FREE2 | 2 | 2 locations available | |||||||||||||||||||||||||||||||||
FREE3 | 3 | 3 locations available | |||||||||||||||||||||||||||||||||
FREE4 | 4 | 4 locations available | |||||||||||||||||||||||||||||||||
FREE5 | 5 | 5 locations available | |||||||||||||||||||||||||||||||||
FREE6 | 6 | 6 locations available | |||||||||||||||||||||||||||||||||
FREE7 | 7 | 7 locations available | |||||||||||||||||||||||||||||||||
FREE8 | 8 | 8 locations available | |||||||||||||||||||||||||||||||||
FREE9 | 9 | 9 locations available | |||||||||||||||||||||||||||||||||
FREE10 | 10 | 10 locations available | |||||||||||||||||||||||||||||||||
FREE11 | 11 | 11 locations available | |||||||||||||||||||||||||||||||||
FREE12 | 12 | 12 locations available | |||||||||||||||||||||||||||||||||
FREE13 | 13 | 13 locations available | |||||||||||||||||||||||||||||||||
FREE14 | 14 | 14 locations available | |||||||||||||||||||||||||||||||||
FREE15 | 15 | 15 locations available | |||||||||||||||||||||||||||||||||
| C | R | PTXQTOP | Top of the Periodic Transmit Request Queue (PTxQTop) This indicates the Entry in the Periodic Tx Request Queue that is currently being processed by the MAC. This register is used for debugging. | ||||||||||||||||||||||||||||||||
HAINT
Address offset: 0x414
Host All Channels Interrupt Register
When a significant event occurs on a channel, the Host All Channels Interrupt register interrupts the application using the Host Channels Interrupt bit of the Core Interrupt register (GINTSTS.HChInt). This is shown in the "Interrupt Hierarchy" figure in the databook. There is one interrupt bit per channel, up to a maximum of 16 bits. Bits in this register are set and cleared when the application sets and clears bits in the corresponding Host Channel-n Interrupt register.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | HAINT | Channel Interrupt for channel no. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Host Channel Interrupt | |||||||||||||||||||||||||||||||||
HAINTMSK
Address offset: 0x418
Host All Channels Interrupt Mask Register
The Host All Channel Interrupt Mask register works with the Host All Channel Interrupt register to interrupt the application when an event occurs on a channel. There is one interrupt mask bit per channel, up to a maximum of 16 bits.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | HAINTMSK | Channel Interrupt Mask (HAINTMsk) One bit per channel: Bit 0 for channel 0, bit 15 for channel 15 | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Channel interrupt | |||||||||||||||||||||||||||||||||
UNMASK | 1 | UnMask Channel interrupt | |||||||||||||||||||||||||||||||||
HPRT
Address offset: 0x440
Host Port Control and Status Register
This register is available only in Host mode. Currently, the OTG Host supports only one port. A single register holds USB port-related information such as USB reset, enable, suspend, resume, connect status, and test mode for each port. It is shown in the "Interrupt Hierarchy" figure in the databook. The R_SS_WC bits in this register can trigger an interrupt to the application through the Host Port Interrupt bit of the Core Interrupt register (GINTSTS.PrtInt). On a Port Interrupt, the application must read this register and clear the bit that caused the interrupt. For the R_SS_WC bits, the application must write a 1 to the bit to clear the interrupt.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | M | L | L | L | L | K | J | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | PRTCONNSTS | Port Connect Status (PrtConnSts) - 0: No device is attached to the port. - 1: A device is attached to the port. | ||||||||||||||||||||||||||||||||
NOTATTACHED | 0 | No device is attached to the port | |||||||||||||||||||||||||||||||||
ATTACHED | 1 | A device is attached to the port | |||||||||||||||||||||||||||||||||
| B | RW | PRTCONNDET | Port Connect Detected (PrtConnDet) The core sets this bit when a device connection is detected to trigger an interrupt to the application using the Host Port Interrupt bit of the Core Interrupt register (GINTSTS.PrtInt).This bit can be set only by the core and the application must write 1 to clear it.The application must write a 1 to this bit to clear the interrupt. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No device connection detected | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Device connection detected | |||||||||||||||||||||||||||||||||
| C | RW | PRTENA | Port Enable (PrtEna) A port is enabled only by the core after a reset sequence, and is disabled by an overcurrent condition, a disconnect condition, or by the application clearing this bit. The application cannot Set this bit by a register write. It can only clear it to disable the port by writing 1. This bit does not trigger any interrupt to the application. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Port disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Port enabled | |||||||||||||||||||||||||||||||||
| D | RW | PRTENCHNG | Port Enable/Disable Change (PrtEnChng) The core sets this bit when the status of the Port Enable bit [2] of this register changes.This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Port Enable bit 2 has not changed | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Port Enable bit 2 changed | |||||||||||||||||||||||||||||||||
| E | R | PRTOVRCURRACT | Port Overcurrent Active (PrtOvrCurrAct) Indicates the overcurrent condition of the port. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No overcurrent condition | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Overcurrent condition | |||||||||||||||||||||||||||||||||
| F | RW | PRTOVRCURRCHNG | Port Overcurrent Change (PrtOvrCurrChng) The core sets this bit when the status of the Port Overcurrent Active bit (bit 4) in this register changes.This bit can be set only by the core and the application must write 1 to clear it | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Status of port overcurrent status is not changed | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status of port overcurrent changed | |||||||||||||||||||||||||||||||||
| G | RW | PRTRES | Port Resume (PrtRes) The application sets this bit to drive resume signaling on the port. The core continues to drive the resume signal until the application clears this bit. If the core detects a USB remote wakeup sequence, as indicated by the Port Resume/Remote Wakeup Detected Interrupt bit of the Core Interrupt register (GINTSTS.WkUpInt), the core starts driving resume signaling without application intervention and clears this bit when it detects a disconnect condition. The read value of this bit indicates whether the core is currently driving resume signaling. When LPM is enabled, In L1 state the behavior of this bit is as follows: The application sets this bit to drive resume signaling on the port. The core continues to drive the resume signal until a pre-determined time specified in GLPMCFG.HIRD_Thres[3:0] field. If the core detects a USB remote wakeup sequence, as indicated by the Port L1Resume/Remote L1Wakeup Detected Interrupt bit of the Core Interrupt register (GINTSTS.L1WkUpInt), the core starts driving resume signaling without application intervention and clears this bit at the end of resume.This bit can be set by both core or application and also cleared by core or application. This bit is cleared by the core even if there is no device connected to the Host. | ||||||||||||||||||||||||||||||||
NORESUME | 0 | No resume driven | |||||||||||||||||||||||||||||||||
RESUME | 1 | Resume driven | |||||||||||||||||||||||||||||||||
| H | RW | PRTSUSP | Port Suspend (PrtSusp) The application sets this bit to put this port in Suspend mode. The core only stops sending SOFs when this is Set. To stop the PHY clock, the application must Set the Port Clock Stop bit, which asserts the suspend input pin of the PHY. The read value of this bit reflects the current suspend status of the port. This bit is cleared by the core after a remote wakeup signal is detected or the application sets the Port Reset bit or Port Resume bit in this register or the Resume/Remote Wakeup Detected Interrupt bit or Disconnect Detected Interrupt bit in the Core Interrupt register (GINTSTS.WkUpInt or GINTSTS.DisconnInt, respectively).This bit is cleared by the core even if there is no device connected to the Host. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Port not in Suspend mode | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Port in Suspend mode | |||||||||||||||||||||||||||||||||
| I | RW | PRTRST | Port Reset (PrtRst) When the application sets this bit, a reset sequence is started on this port. The application must time the reset period and clear this bit after the reset sequence is complete. The application must leave this bit set for at least a minimum duration mentioned below to start a reset on the port. The application can leave it set for another 10 ms in addition to the required minimum duration, before clearing the bit, even though there is no maximum limit Set by the USB standard.This bit is cleared by the core even if there is no device connected to the Host. - High speed: 50 ms - Full speed/Low speed: 10 ms | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Port not in reset | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Port in reset | |||||||||||||||||||||||||||||||||
| J | R | PRTLNSTS | Port Line Status (PrtLnSts) Indicates the current logic level USB data lines | ||||||||||||||||||||||||||||||||
PLUSD | 1 | Logic level of D+ | |||||||||||||||||||||||||||||||||
MINUSD | 2 | Logic level of D- | |||||||||||||||||||||||||||||||||
| K | RW | PRTPWR | Port Power (PrtPwr) The application uses this field to control power to this port (write 1'b1 to set to 1'b1 and write 1'b0 to set to 1'b0), and the core can clear this bit on an over current condition. Note: This bit is interface independent. The application needs to program this bit for all interfaces as described in the host programming flow in the Programming Guide. | ||||||||||||||||||||||||||||||||
OFF | 0 | Power off | |||||||||||||||||||||||||||||||||
ON | 1 | Power on | |||||||||||||||||||||||||||||||||
| L | RW | PRTTSTCTL | Port Test Control (PrtTstCtl) The application writes a nonzero value to this field to put the port into a Test mode, and the corresponding pattern is signaled on the port. To move the DWC_otg controller to test mode, you must set this field. Complete the following steps to move the DWC_otg core to test mode: - 1. Power on the core. - 2. Load the DWC_otg driver. - 3. Connect an HS device and enumerate to HS mode. - 4. Access the HPRT register to send test packets. - 5. Remove the device and connect to fixture (OPT) port. The DWC_otg host core continues sending out test packets. - 6. Test the eye diagram. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Test mode disabled | |||||||||||||||||||||||||||||||||
TESTJ | 1 | Test_J mode | |||||||||||||||||||||||||||||||||
TESTK | 2 | Test_K mode | |||||||||||||||||||||||||||||||||
TESTSN | 3 | Test_SE0_NAK mode | |||||||||||||||||||||||||||||||||
TESTPM | 4 | Test_Packet mode | |||||||||||||||||||||||||||||||||
TESTFENB | 5 | Test_force_Enable | |||||||||||||||||||||||||||||||||
| M | R | PRTSPD | Port Speed (PrtSpd) Indicates the speed of the device attached to this port. | ||||||||||||||||||||||||||||||||
HIGHSPD | 0 | High speed | |||||||||||||||||||||||||||||||||
FULLSPD | 1 | Full speed | |||||||||||||||||||||||||||||||||
LOWSPD | 2 | Low speed | |||||||||||||||||||||||||||||||||
PRTSPDRSVD3 | 3 | ||||||||||||||||||||||||||||||||||
HC[n].CHAR
Address offset: 0x500 + (n × 0x18)
Host Channel Characteristics Register 0
This register contains the characteristics of the Host Channel.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | J | I | H | G | G | G | G | G | G | G | F | F | E | E | D | C | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) Indicates the maximum packet size of the associated endpoint. | ||||||||||||||||||||||||||||||||
| B | RW | EPNUM | Endpoint Number (EPNum) Indicates the endpoint number on the device serving as the data source or sink. | ||||||||||||||||||||||||||||||||
ENDPT0 | 0 | End point 0 | |||||||||||||||||||||||||||||||||
ENDPT1 | 1 | End point 1 | |||||||||||||||||||||||||||||||||
ENDPT2 | 2 | End point 2 | |||||||||||||||||||||||||||||||||
ENDPT3 | 3 | End point 3 | |||||||||||||||||||||||||||||||||
ENDPT4 | 4 | End point 4 | |||||||||||||||||||||||||||||||||
ENDPT5 | 5 | End point 5 | |||||||||||||||||||||||||||||||||
ENDPT6 | 6 | End point 6 | |||||||||||||||||||||||||||||||||
ENDPT7 | 7 | End point 7 | |||||||||||||||||||||||||||||||||
ENDPT8 | 8 | End point 8 | |||||||||||||||||||||||||||||||||
ENDPT9 | 9 | End point 9 | |||||||||||||||||||||||||||||||||
ENDPT10 | 10 | End point 10 | |||||||||||||||||||||||||||||||||
ENDPT11 | 11 | End point 11 | |||||||||||||||||||||||||||||||||
ENDPT12 | 12 | End point 12 | |||||||||||||||||||||||||||||||||
ENDPT13 | 13 | End point 13 | |||||||||||||||||||||||||||||||||
ENDPT14 | 14 | End point 14 | |||||||||||||||||||||||||||||||||
ENDPT15 | 15 | End point 15 | |||||||||||||||||||||||||||||||||
| C | RW | EPDIR | Endpoint Direction (EPDir) Indicates whether the transaction is IN or OUT. | ||||||||||||||||||||||||||||||||
OUT | 0 | OUT Direction | |||||||||||||||||||||||||||||||||
IN | 1 | IN Direction | |||||||||||||||||||||||||||||||||
| D | RW | LSPDDEV | Low-Speed Device (LSpdDev) This field is Set by the application to indicate that this channel is communicating to a low-speed device. The application must program this bit when a low speed device is connected to the host through an FS HUB. The DWC_otg Host core uses this field to drive the XCVR_SELECT signal to 2'b11 while communicating to the LS Device through the FS hub. Note: In a peer to peer setup, the DWC_otg Host core ignores this bit even if it is set by the application software. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Communicating with low speed device | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Communicating with low speed device | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) Indicates the transfer type selected. | ||||||||||||||||||||||||||||||||
CTRL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOC | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERR | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | EC | Multi Count (MC) / Error Count (EC) When the Split Enable bit of the Host Channel-n Split Control register (HCSPLTn.SpltEna) is reset (1'b0), this field indicates to the host the number of transactions that must be executed per microframe for this periodic endpoint. For non periodic transfers, this field is used only in DMA mode, and specifies the number packets to be fetched for this channel before the internal DMA engine changes arbitration. When HCSPLTn.SpltEna is Set (1'b1), this field indicates the number of immediate retries to be performed for a periodic split transactions on transaction errors. This field must be Set to at least 2'b01. | ||||||||||||||||||||||||||||||||
ECRSVD0 | 0 | Reserved. This field yields undefined result | |||||||||||||||||||||||||||||||||
TRANSONE | 1 | 1 transaction | |||||||||||||||||||||||||||||||||
TRANSTWO | 2 | 2 transactions to be issued for this endpoint per microframe | |||||||||||||||||||||||||||||||||
TRANSTHREE | 3 | 3 transactions to be issued for this endpoint per microframe | |||||||||||||||||||||||||||||||||
| G | RW | DEVADDR | Device Address (DevAddr) This field selects the specific device serving as the data source or sink. | ||||||||||||||||||||||||||||||||
| H | RW | ODDFRM | Odd Frame (OddFrm) This field is set (reset) by the application to indicate that the OTG host must perform a transfer in an odd (micro)Frame. This field is applicable for only periodic (isochronous and interrupt) transactions. | ||||||||||||||||||||||||||||||||
EFRAME | 0 | Even Frame Transfer | |||||||||||||||||||||||||||||||||
OFRAME | 1 | Odd Frame Transfer | |||||||||||||||||||||||||||||||||
| I | RW | CHDIS | Channel Disable (ChDis) The application sets this bit to stop transmitting/receiving data on a channel, even before the transfer for that channel is complete. The application must wait for the Channel Disabled interrupt before treating the channel as disabled. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Transmit/Recieve normal | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Stop transmitting/receiving data on channel | |||||||||||||||||||||||||||||||||
| J | RW | CHENA | Channel Enable (ChEna) When Scatter/Gather mode is enabled When Scatter/Gather mode is disabled This field is set by the application and cleared by the OTG host. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | If Scatter/Gather mode is enabled, indicates that the descriptor structure is not yet ready. If Scatter/Gather mode is disabled, indicates that the channel is disabled. | |||||||||||||||||||||||||||||||||
ENABLED | 1 | If Scatter/Gather mode is enabled, indicates that the descriptor structure and data buffer with data is set up and this channel can access the descriptor. If Scatter/Gather mode is disabled, indicates that the channel is enabled. | |||||||||||||||||||||||||||||||||
HC[n].SPLT
Address offset: 0x504 + (n × 0x18)
Host Channel Split Control Register 0
This register contains the Split characteristics of the Host Channel.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | E | D | C | C | B | B | B | B | B | B | B | A | A | A | A | A | A | A | |||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | PRTADDR | Port Address (PrtAddr) This field is the port number of the recipient transaction translator. | ||||||||||||||||||||||||||||||||
| B | RW | HUBADDR | Hub Address (HubAddr) This field holds the device address of the transaction translator's hub. | ||||||||||||||||||||||||||||||||
| C | RW | XACTPOS | Transaction Position (XactPos) This field is used to determine whether to send all, first, middle, or last payloads with each OUT transaction. | ||||||||||||||||||||||||||||||||
MIDDLE | 0 | Mid. This is the middle payload of this transaction (which is larger than 188 bytes) | |||||||||||||||||||||||||||||||||
END | 1 | End. This is the last payload of this transaction (which is larger than 188 bytes) | |||||||||||||||||||||||||||||||||
BEGIN | 2 | Begin. This is the first data payload of this transaction (which is larger than 188 bytes) | |||||||||||||||||||||||||||||||||
ALL | 3 | All. This is the entire data payload of this transaction (which is less than or equal to 188 bytes) | |||||||||||||||||||||||||||||||||
| D | RW | COMPSPLT | Do Complete Split (CompSplt) The application sets this field to request the OTG host to perform a complete split transaction. | ||||||||||||||||||||||||||||||||
NOSPLIT | 0 | No complete split transaction | |||||||||||||||||||||||||||||||||
SPLIT | 1 | Complete Split transaction | |||||||||||||||||||||||||||||||||
| E | RW | SPLTENA | Split Enable (SpltEna) The application sets this field to indicate that this channel is enabled to perform split transactions. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Split not enabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Split enabled | |||||||||||||||||||||||||||||||||
HC[n].INT
Address offset: 0x508 + (n × 0x18)
Host Channel Interrupt Register 0
This register indicates the status of a channel with respect to USB- and AHB-related events. It is shown in the "Interrupt Hierarchy" figure in the databook. The application must read this register when the Host Channels Interrupt bit of the Core Interrupt register (GINTSTS.HChInt) is set. Before the application can read this register, it must first read the Host All Channels Interrupt (HAINT) register to get the exact channel number for the Host Channel-n Interrupt register. The application must clear the appropriate bit in this register to clear the corresponding bits in the HAINT and GINTSTS registers.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | K | J | I | H | G | F | E | D | C | B | A | ||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed (XferCompl) Transfer completed normally without any errors.This bit can be set only by the core and the application must write 1 to clear it. - For Scatter/Gather DMA mode, it indicates that current descriptor processing got completed with IOC bit set in its descriptor. - In non Scatter/Gather DMA mode, it indicates that Transfer completed normally without any errors. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Transfer in progress or No Active Transfer | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer completed normally without any errors | |||||||||||||||||||||||||||||||||
| B | RW | CHHLTD | Channel Halted (ChHltd) In non Scatter/Gather DMA mode, it indicates the transfer completed abnormally either because of any USB transaction error or in response to disable request by the application or because of a completed transfer. In Scatter/gather DMA mode, this indicates that transfer completed due to any of the following - EOL being set in descriptor - AHB error - Excessive transaction errors - Babble - Stall | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Channel not halted | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Channel Halted | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) This is generated only in Internal DMA mode when there is an AHB error during AHB read/write. The application can read the corresponding channel's DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB error during AHB read/write | |||||||||||||||||||||||||||||||||
| D | RW | STALL | STALL Response Received Interrupt (STALL) In Scatter/Gather DMA mode, the interrupt due to this bit is masked in the core.This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Stall Response Received Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Stall Response Received Interrupt | |||||||||||||||||||||||||||||||||
| E | RW | NAK | NAK Response Received Interrupt (NAK) In Scatter/Gather DMA mode, the interrupt due to this bit is masked in the core.This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK Response Received Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Response Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | ACK | ACK Response Received/Transmitted Interrupt (ACK) In Scatter/Gather DMA mode, the interrupt due to this bit is masked in the core.This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No ACK Response Received or Transmitted Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | ACK Response Received or Transmitted Interrup | |||||||||||||||||||||||||||||||||
| G | RW | NYET | NYET Response Received Interrupt (NYET) In Scatter/Gather DMA mode, the interrupt due to this bit is masked in the core.This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET Response Received Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Response Received Interrupt | |||||||||||||||||||||||||||||||||
| H | RW | XACTERR | Transaction Error (XactErr) Indicates one of the following errors occurred on the USB. - CRC check failure - Timeout - Bit stuff error - False EOP In Scatter/Gather DMA mode, the interrupt due to this bit is masked in the core.This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transaction Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transaction Error | |||||||||||||||||||||||||||||||||
| I | RW | BBLERR | Babble Error (BblErr) In Scatter/Gather DMA mode, the interrupt due to this bit is masked in the core. This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Babble Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Babble Error | |||||||||||||||||||||||||||||||||
| J | RW | FRMOVRUN | Frame Overrun (FrmOvrun). In Scatter/Gather DMA mode, the interrupt due to this bit is masked in the core. This bit can be set only by the core and the application must write 1 to clear it. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Frame Overrun | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Frame Overrun | |||||||||||||||||||||||||||||||||
| K | RW | DATATGLERR | Data Toggle Error (DataTglErr).This bit can be set only by the core and the application must write 1 to clear it.In Scatter/Gather DMA mode, the interrupt due to this bit is masked in the core. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Data Toggle Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Data Toggle Error | |||||||||||||||||||||||||||||||||
HC[n].INTMSK
Address offset: 0x50C + (n × 0x18)
Host Channel Interrupt Mask Register 0
This register reflects the mask for each channel status described in the previous section.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | K | J | I | H | G | F | E | D | C | B | A | ||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPLMSK | Transfer Completed Mask (XferComplMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Transfer Completed Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Transfer Completed Mask | |||||||||||||||||||||||||||||||||
| B | RW | CHHLTDMSK | Channel Halted Mask (ChHltdMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Channel Halted Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Channel Halted Mask | |||||||||||||||||||||||||||||||||
| C | RW | AHBERRMSK | AHB Error Mask (AHBErrMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | AHB Error Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No AHB Error Mask | |||||||||||||||||||||||||||||||||
| D | RW | STALLMSK | STALL Response Received Interrupt Mask (StallMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask STALL Response Received Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No STALL Response Received Interrupt Mask | |||||||||||||||||||||||||||||||||
| E | RW | NAKMSK | NAK Response Received Interrupt Mask (NakMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask NAK Response Received Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No NAK Response Received Interrupt Mask | |||||||||||||||||||||||||||||||||
| F | RW | ACKMSK | ACK Response Received/Transmitted Interrupt Mask (AckMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask ACK Response Received/Transmitted Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No ACK Response Received/Transmitted Interrupt Mask | |||||||||||||||||||||||||||||||||
| G | RW | NYETMSK | NYET Response Received Interrupt Mask (NyetMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask NYET Response Received Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No NYET Response Received Interrupt Mask | |||||||||||||||||||||||||||||||||
| H | RW | XACTERRMSK | Transaction Error Mask (XactErrMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Transaction Error | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Transaction Error Mask | |||||||||||||||||||||||||||||||||
| I | RW | BBLERRMSK | Babble Error Mask (BblErrMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Babble Error | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Babble Error Mask | |||||||||||||||||||||||||||||||||
| J | RW | FRMOVRUNMSK | Frame Overrun Mask (FrmOvrunMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Overrun Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Frame Overrun Mask | |||||||||||||||||||||||||||||||||
| K | RW | DATATGLERRMSK | Data Toggle Error Mask (DataTglErrMsk) In scatter/gather DMA mode for host, interrupts are not generated due to the corresponding bits set in HCINTn. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Data Toggle Error | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Data Toggle Error Mask | |||||||||||||||||||||||||||||||||
HC[n].TSIZ
Address offset: 0x510 + (n × 0x18)
Host Channel Transfer Size Register 0
This register reflects the transfer size for the Host Channel.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | D | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Non-Scatter/Gather DMA Mode: Transfer Size (XferSize) For an OUT, this field is the number of data bytes the host sends during the transfer. For an IN, this field is the buffer size that the application has Reserved for the transfer. The application is expected to program this field as an integer multiple of the maximum packet size for IN transactions (periodic and non-periodic). The width of this counter is specified as Width of Transfer Size Counters during coreConsultant configuration (parameter OTG_TRANS_COUNT_WIDTH). Scatter/Gather DMA Mode: [18:16]: Reserved [15:8]: NTD (Number of Transfer Descriptors) (Non Isochronous) This value is in terms of number of descriptors. Maximum number of descriptor that can be present in the list is 64. The values can be from 0 to 63. - 0: 1 descriptor - 63: 64 descriptors This field indicates the total number of descriptors present in that list. The core wraps around after servicing NTD number of descriptors for that list. (Isochronous) This field indicates the number of descriptors present in that list microframe. The possible values for FS are - 1: 2 descriptors - 3: 4 descriptors - 7: 8 descriptors - 15: 16 descriptors - 31: 32 descriptors - 63: 64 descriptors The possible values for HS are - 7: 8 descriptors - 15: 16 descriptors - 31: 32 descriptors - 63: 64 descriptors - 127: 128 descriptors - 255: 256 descriptors [7:0]: SCHED_INFO (Schedule information) Every bit in this 8 bit register indicates scheduling for that microframe. Bit 0 indicates scheduling for 1st microframe and bit 7 indicates scheduling for 8th microframe in that frame. A value of 8'b11111111 indicates that the corresponding interrupt channel is scheduled to issue a token every microframe in that frame. A value of 8'b10101010 indicates that the corresponding interrupt channel is scheduled to issue a token every alternate microframe starting with second microframe. Note that this field is applicable only for periodic (Isochronous and Interrupt) channels. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Non-Scatter/Gather DMA Mode: Packet Count (PktCnt) This field is programmed by the application with the expected number of packets to be transmitted (OUT) or received (IN). The host decrements this count on every successful transmission or reception of an OUT/IN packet. Once this count reaches zero, the application is interrupted to indicate normal completion. The width of this counter is specified as Width of Packet Counters during coreConsultant configuration (parameter OTG_PACKET_COUNT_WIDTH). Scatter/Gather DMA Mode: [28:19]: Reserved | ||||||||||||||||||||||||||||||||
| C | RW | PID | PID (Pid) The application programs this field with the type of PID to use for the initial transaction. The host maintains this field for the rest of the transfer. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2 | 1 | DATA2 | |||||||||||||||||||||||||||||||||
DATA1 | 2 | DATA1 | |||||||||||||||||||||||||||||||||
MDATA | 3 | MDATA (non-control)/SETUP (control) | |||||||||||||||||||||||||||||||||
| D | RW | DOPNG | Do Ping (DoPng) This bit is used only for OUT transfers. Setting this field to 1 directs the host to do PING protocol. Note: Do not set this bit for IN transfers. If this bit is set for IN transfers it disables the channel. | ||||||||||||||||||||||||||||||||
NOPING | 0 | No ping protocol | |||||||||||||||||||||||||||||||||
PING | 1 | Ping protocol | |||||||||||||||||||||||||||||||||
HC[n].DMA
Address offset: 0x514 + (n × 0x18)
Host Channel DMA Address Register 0
This register is used by the OTG host in the internal DMA mode to maintain the current buffer pointer for IN/OUT transactions. The starting DMA address must be DWORD-aligned.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | In Buffer DMA Mode: [31:0]: DMA Address (DMAAddr) This field holds the start address in the external memory from which the data for the endpoint must be fetched or to which it must be stored. This register is incremented on every AHB transaction. Reset: X if not programmed as the register is in SPRAM. In Scatter-Gather DMA (DescDMA) Mode for Non-Isochronous: [31:9]: DMA Address (DMAAddr) The start address must be 512-bytes aligned. This field holds the start address of the 512 bytes page. The first descriptor in the list must be located in this address. The first descriptor may be or may not be ready. The core starts processing the list from the CTD value. [8:3]: Current Transfer Desc(CTD) This value is in terms of number of descriptors. The values can be from 0 to 63. This field indicates the current descriptor processed in the list. This field is updated both by application and the core. For example, if the application enables the channel after programming CTD=5, then the core starts processing the sixth descriptor. The address is obtained by adding a value of (8bytes*5=) 40(decimal) to DMAAddr. [2:0]: Reserved In Scatter-Gather DMA (DescDMA) Mode for Isochronous: [31:N]: DMA Address (DMAAddr) The start address must be 512-bytes aligned. This field holds the address of the 2*(nTD+1) bytes of locations in which the isochronous descriptors are present where N is based on nTD as follows: - [31:N]: Base Address - [N-1:3]: Offset - [2:0]: 000 For HS ISOC, if nTD is, - 7, N=6 - 15, N=7 - 31, N=8 - 63, N=9 - 127, N=10 - 255, N=11 For FS ISOC, if nTD is, - 1, N=4 - 3, N=5 - 7, N=6 - 15, N=7 - 31, N=8 - 63, N=9 [N-1:3]: Current Transfer Desc(CTD) CTD for isochronous is based on the current frame/(micro)frame value. Need to be set to zero by application. Reset: (N+1:3)'h0 [2:0]: Reserved | ||||||||||||||||||||||||||||||||
DCFG
Address offset: 0x800
Device Configuration Register
This register configures the core in Device mode after power-on or after certain control commands or enumeration. Do not make changes to this register after initial programming.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | J | J | J | J | J | J | I | I | H | G | F | E | E | D | D | D | D | D | D | D | C | B | A | A | |||||||||||
| Reset 0x08020000 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DEVSPD | Device Speed (DevSpd) Indicates the speed at which the application requires the core to enumerate, or the maximum speed the application can support. However, the actual bus speed is determined only after the connect sequence is completed, and is based on the speed of the USB host to which the core is connected. | ||||||||||||||||||||||||||||||||
USBHS20 | 0 | High speed USB 2.0 PHY clock is 30 MHz or 60 MHz | |||||||||||||||||||||||||||||||||
USBFS20 | 1 | Full speed USB 2.0 PHY clock is 30 MHz or 60 MHz | |||||||||||||||||||||||||||||||||
USBLS116 | 2 | Low speed USB 1.1 transceiver clock is 6 MHz | |||||||||||||||||||||||||||||||||
USBFS1148 | 3 | Full speed USB 1.1 transceiver clock is 48 MHz | |||||||||||||||||||||||||||||||||
| B | RW | NZSTSOUTHSHK | Non-Zero-Length Status OUT Handshake (NZStsOUTHShk) The application can use this field to select the handshake the core sends on receiving a nonzero-length data packet during the OUT transaction of a control transfer's Status stage. | ||||||||||||||||||||||||||||||||
SENDOUT | 0 | Send the received OUT packet to the application (zero-length or non-zero length) and send a handshake based on NAK and STALL bits for the endpoint in the Devce Endpoint Control Register | |||||||||||||||||||||||||||||||||
SENDSTALL | 1 | Send a STALL handshake on a nonzero-length status OUT transaction and do not send the received OUT packet to the application | |||||||||||||||||||||||||||||||||
| C | RW | ENA32KHZSUSP | Enable 32 KHz Suspend mode (Ena32KHzSusp) This bit can be set only if FS PHY interface is selected. Otherwise, this bit needs to be set to zero. If FS PHY interface is chosen and this bit is set, the PHY clock during Suspend must be switched from 48 MHz to 32 KHz. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | USB 1.1 Full-Speed Serial Transceiver not selected | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB 1.1 Full-Speed Serial Transceiver Interface selected | |||||||||||||||||||||||||||||||||
| D | RW | DEVADDR | Device Address (DevAddr) The application must program this field after every SetAddress control command. | ||||||||||||||||||||||||||||||||
| E | RW | PERFRINT | Periodic Frame Interval (PerFrInt) Indicates the time within a (micro)Frame at which the application must be notified using the End Of Periodic Frame Interrupt. This can be used to determine If all the isochronous traffic for that (micro)Frame is complete. | ||||||||||||||||||||||||||||||||
EOPF80 | 0 | 80% of the (micro)Frame interval | |||||||||||||||||||||||||||||||||
EOPF85 | 1 | 85% of the (micro)Frame interval | |||||||||||||||||||||||||||||||||
EOPF90 | 2 | 90% of the (micro)Frame interval | |||||||||||||||||||||||||||||||||
EOPF95 | 3 | 95% of the (micro)Frame interval | |||||||||||||||||||||||||||||||||
| F | RW | XCVRDLY | XCVRDLY Enables or disables delay between xcvr_sel and txvalid during device chirp | ||||||||||||||||||||||||||||||||
DISABLE | 0 | No delay between xcvr_sel and txvalid during Device chirp | |||||||||||||||||||||||||||||||||
ENABLE | 1 | Enable delay between xcvr_sel and txvalid during Device chirp | |||||||||||||||||||||||||||||||||
| G | RW | ERRATICINTMSK | Erratic Error Interrupt Mask | ||||||||||||||||||||||||||||||||
NOMASK | 0 | Early suspend interrupt is generated on erratic error | |||||||||||||||||||||||||||||||||
MASK | 1 | Mask early suspend interrupt on erratic error | |||||||||||||||||||||||||||||||||
| H | RW | IPGISOCSUPT | Worst-Case Inter-Packet Gap ISOC OUT Support (ipgisocSupt) This bit indicates that the controller supports the worst-case scenario of Rx followed by Rx Inter-Packet Gap (IPG) (32 bit times) as per the UTMI Specification for any token following an ISOC OUT token. Without this support, when any token follows an ISOC OUT token with the worst-case IPG, the controller does not detect the followed token. The worst-case IPG of the controller without this support depends on the AHB and PHY clock frequency. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Worst-Case Inter-Packet Gap ISOC OUT Support is disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Worst-Case Inter-Packet Gap ISOC OUT Support is enabled | |||||||||||||||||||||||||||||||||
| I | RW | PERSCHINTVL | Periodic Scheduling Interval (PerSchIntvl) PerSchIntvl must be programmed for Scatter/Gather DMA mode. This field specifies the amount of time the Internal DMA engine must allocate for fetching periodic IN endpoint data. Based on the number of periodic endpoints, this value must be specified as 25,50 or 75% of (micro)Frame. - When any periodic endpoints are active, the internal DMA engine allocates the specified amount of time in fetching periodic IN endpoint data . - When no periodic endpoints are active, Then the internal DMA engine services non-periodic endpoints, ignoring this field. - After the specified time within a (micro)Frame, the DMA switches to fetching for non-periodic endpoints. | ||||||||||||||||||||||||||||||||
MF25 | 0 | 25% of (micro)Frame | |||||||||||||||||||||||||||||||||
MF50 | 1 | 50% of (micro)Frame | |||||||||||||||||||||||||||||||||
MF75 | 2 | 75% of (micro)Frame | |||||||||||||||||||||||||||||||||
PERSCHINTVLRSVD3 | 3 | ||||||||||||||||||||||||||||||||||
| J | RW | RESVALID | Resume Validation Period (ResValid) This field is effective only when DCFG.Ena32KHzSusp is set. It controls the resume period when the core resumes from suspend. The core counts for ResValid number of clock cycles to detect a valid resume when this bit is set | ||||||||||||||||||||||||||||||||
DCTL
Address offset: 0x804
Device Control Register
This register is used to control the characteristics of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | O | N | M | L | K | J | I | H | G | F | E | E | E | D | C | B | A | ||||||||||||||||||
| Reset 0x00000002 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | RMTWKUPSIG | Remote Wakeup Signaling (RmtWkUpSig) When the application sets this bit, the core initiates remote signaling to wake up the USB host. The application must Set this bit to instruct the core to exit the Suspend state. As specified in the USB 2.0 specification, the application must clear this bit 1-15 ms after setting it. If LPM is enabled and the core is in the L1 (Sleep) state, when the application sets this bit, the core initiates L1 remote signaling to wake up the USB host. The application must set this bit to instruct the core to exit the Sleep state. As specified in the LPM specification, the hardware automatically clears this bit 50 microseconds (TL1DevDrvResume) after being set by the application. The application must not set this bit when GLPMCFG bRemoteWake from the previous LPM transaction is zero. | ||||||||||||||||||||||||||||||||
DISABLEDRMWKUP | 0 | Core does not send Remote Wakeup Signaling | |||||||||||||||||||||||||||||||||
ENABLERMWKUP | 1 | Core sends Remote Wakeup Signaling | |||||||||||||||||||||||||||||||||
| B | RW | SFTDISCON | Soft Disconnect (SftDiscon) The application uses this bit to signal the controller to do a soft disconnect. As long as this bit is set, the host does not see that the device is connected, and the device does not receive signals on the USB. The core stays in the disconnected state until the application clears this bit. UTMI+ to 2'b00, which generates a device connect event to the USB host. When the device is reconnected, the USB host restarts device enumeration. The following is the minimum duration under various conditions for which this bit must be set for the USB host to detect a device disconnect. To accommodate clock jitter, it is recommended that the application adds some extra delay to the specified minimum duration. For high speed, if the device state is, - Suspended, the minimum duration is 1ms + 2.5us - Idle, the minimum duration is 3ms + 2.5us - Not Idle or Suspended (performing transactions), the minimum duration 125 us For full speed/low speed, if the device state is, - Suspended, the minimum duration is 1ms + 2.5us - Idle, the minimum duration is 2.5us - Not Idle or Suspended (performing transactions), the minimum duration 125 us Note: - This bit can be also used for ULPI/FS Serial interfaces. - This bit is not impacted by a soft reset. | ||||||||||||||||||||||||||||||||
NODISCONNECT | 0 | The core drives the phy_opmode_o signal on the UTMI+ to 2'b00, which generates a device connect event to the USB host | |||||||||||||||||||||||||||||||||
DISCONNECT | 1 | The core drives the phy_opmode_o signal on the UTMI+ to 2'b01, which generates a device disconnect event to the USB host | |||||||||||||||||||||||||||||||||
| C | R | GNPINNAKSTS | Global Non-periodic IN NAK Status (GNPINNakSts) - 1'b0: A handshake is sent out based on the data availability in the transmit FIFO. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | A handshake is sent out based on the data availability in the transmit FIFO | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | A NAK handshake is sent out on all non-periodic IN endpoints, irrespective of the data availability in the transmit FIFO. | |||||||||||||||||||||||||||||||||
| D | R | GOUTNAKSTS | Global OUT NAK Status (GOUTNakSts) - 1'b0: A handshake is sent based on the FIFO Status and the NAK and STALL bit settings. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | A handshake is sent based on the FIFO Status and the NAK and STALL bit settings. | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | No data is written to the RxFIFO, irrespective of space availability. Sends a NAK handshake on all packets, except on SETUP transactions. All isochronous OUT packets are dropped. | |||||||||||||||||||||||||||||||||
| E | RW | TSTCTL | Test Control (TstCtl) - 3'b000: Test mode disabled | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Test mode disabled | |||||||||||||||||||||||||||||||||
TESTJ | 1 | Test_J mode | |||||||||||||||||||||||||||||||||
TESTK | 2 | Test_K mode | |||||||||||||||||||||||||||||||||
TESTSN | 3 | Test_SE0_NAK mode | |||||||||||||||||||||||||||||||||
TESTPM | 4 | Test_Packet mode | |||||||||||||||||||||||||||||||||
TESTFE | 5 | Test_force_Enable | |||||||||||||||||||||||||||||||||
| F | W | SGNPINNAK | Set Global Non-periodic IN NAK (SGNPInNak) A write to this field sets the Global Non-periodic IN NAK.The application uses this bit to send a NAK handshake on all non-periodic IN endpoints. The core can also Set this bit when a timeout condition is detected on a non-periodic endpoint in shared FIFO operation. The application must Set this bit only after making sure that the Global IN NAK Effective bit in the Core Interrupt Register (GINTSTS.GINNakEff) is cleared | ||||||||||||||||||||||||||||||||
DISABLE | 0 | Disable Global Non-periodic IN NAK | |||||||||||||||||||||||||||||||||
ENABLE | 1 | Set Global Non-periodic IN NAK | |||||||||||||||||||||||||||||||||
| G | W | CGNPINNAK | Clear Global Non-periodic IN NAK (CGNPInNak) A write to this field clears the Global Non-periodic IN NAK. | ||||||||||||||||||||||||||||||||
DISABLE | 0 | Disable Global Non-periodic IN NAK | |||||||||||||||||||||||||||||||||
ENABLE | 1 | Clear Global Non-periodic IN NAK | |||||||||||||||||||||||||||||||||
| H | W | SGOUTNAK | Set Global OUT NAK (SGOUTNak) A write to this field sets the Global OUT NAK. The application uses this bit to send a NAK handshake on all OUT endpoints. The application must set the this bit only after making sure that the Global OUT NAK Effective bit in the Core Interrupt Register (GINTSTS.GOUTNakEff) is cleared. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disable Global OUT NAK | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Global OUT NAK | |||||||||||||||||||||||||||||||||
| I | W | CGOUTNAK | Clear Global OUT NAK (CGOUTNak) A write to this field clears the Global OUT NAK. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disable Clear Global OUT NAK | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Clear Global OUT NAK | |||||||||||||||||||||||||||||||||
| J | RW | PWRONPRGDONE | Power-On Programming Done (PWROnPrgDone) The application uses this bit to indicate that register programming is completed after a wake-up from Power Down mode. | ||||||||||||||||||||||||||||||||
NOTDONE | 0 | Power-On Programming not done | |||||||||||||||||||||||||||||||||
DONE | 1 | Power-On Programming Done | |||||||||||||||||||||||||||||||||
| K | RW | IGNRFRMNUM | Ignore Frame Number Feature for Isochronous Endpoints (IgnrFrmNum) This field is also used to control the Periodic Transfer Interrupt (PTI) feature. Note: Do not program IgnrFrmNum bit to 1'b1 when the core is operating in threshold mode. Completer Mode (GAHBCFG.DMAEn=0): This bit is not valid in Completer mode and must not be programmed to 1. Scatter/Gather DMA Mode (GAHBCFG.DMAEn=1,DCFG.DescDMA=1): Note: When Scatter/Gather DMA mode is enabled this feature is not applicable to High Speed, High bandwidth transfers. When this bit is enabled, there must be only one packet per descriptor. - 0: The core transmits the packets only in the frame number in which they are intended to be transmitted. - 1: The core ignores the frame number, sending packets immediately as the packets are ready. In Scatter/Gather DMA mode, if this bit is enabled, the packets are not flushed when a ISOC IN token is received for an elapsed frame. Non-Scatter/Gather DMA Mode, that is, Buffer DMA Mode (GAHBCFG.DMAEn=1,DCFG.DescDMA=0): When Scatter/Gather DMA mode is disabled, this field is used by the application to enable Periodic Transfer Interrupt (PTI) Mode. The application can program Periodic Endpoint transfers for multiple (micro)Frames. - 0: Periodic Transfer Interrupt feature is disabled, application needs to program transfers for periodic endpoints every (micro)Frame - 1: Periodic Transfer Interrupt feature is enabled, application can program transfers for multiple (micro)Frames for periodic endpoints. In the PTI mode, the application receives Transfer Complete Interrupt after transfers for multiple (micro)Frames are completed. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Scatter/Gather DMA Mode: The core transmits the packets only in the frame number in which they are intended to be transmitted.Non-Scatter/Gather DMA Mode: Periodic Transfer Interrupt feature is disabled. | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Scatter/Gather DMA Mode: The core ignores the frame number, sending packets immediately as the packets are ready.Non-Scatter/Gather DMA Mode: Periodic Transfer Interrupt feature is enabled. | |||||||||||||||||||||||||||||||||
| L | RW | NAKONBBLE | NAK on Babble Error (NakOnBble) Set NAK automatically on babble (NakOnBble). The core sets NAK automatically for the endpoint on which babble is received. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disable NAK on Babble Error | |||||||||||||||||||||||||||||||||
ENABLED | 1 | NAK on Babble Error | |||||||||||||||||||||||||||||||||
| M | RW | DEEPSLEEPBESLREJECT | DeepSleepBESLReject - 1: Deep Sleep BESL Reject feature is enabled - 0: Deep Sleep BESL Reject feature is disabled Core rejects LPM request with HIRD value greater than HIRD threshold programmed. NYET response is sent for LPM tokens with HIRD value greater than HIRD threshold. By default, the Deep Sleep BESL Reject feature is disabled. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Deep Sleep BESL Reject feature is disabled | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Deep Sleep BESL Reject feature is enabled | |||||||||||||||||||||||||||||||||
| N | RW | SERVINT | Service Interval based scheduling for Isochronous IN Endpoints This field is used to enable service interval based scheduling feature for ISOC IN EPs. Note: This bit is applicable only in device mode and when Scatter/Gather DMA mode is used. This feature must not be enabled along with DCTL.IgnrFrmNum. Scatter/Gather DMA Mode (GAHBCFG.DMAEn=1,DCFG.DescDMA=1): When this bit is enabled, the frame number field in the ISOC IN descriptor structure is interpreted as the last frame of the service interval. In Scatter/Gather DMA mode, if this bit is enabled, the pending packets are flushed by the controller at the last frame of the service interval. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | The controller behavior depends on DCTL.IgnrFrmNum field. | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Scatter/Gather DMA Mode: The controller can transmit the packets in any frame of the service interval. | |||||||||||||||||||||||||||||||||
| O | RW | UTMITERMSELCORRDIS | Disable the correction of TermSel on UTMI Interface. When the application sets Soft disconnect (DCTL.SftDiscon=1'b1), the behavior of TermSel has been corrected to drive the valid combination of XcvrSel (FS_XCVR) and TermSel (FS_TERM). The application can set this register bit to 1'b1 to fall back to the original behavior of the Device controller driving XcvrSel (FS_XCVR) and TermSel (HS_TERM) when Soft disconnect is set (DCTL.SftDiscon=1'b1). Note: The application must program this register during Device Initialization before USB Reset and this value cannot be changed afterwards. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Valid Combination of XcvrSel and TermSel is driven by the Device Controller. | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Invalid Combination of XcvrSel and TermSel is driven by the Device Controller. | |||||||||||||||||||||||||||||||||
DSTS
Address offset: 0x808
Device Status Register
This register indicates the status of the core with respect to USB-related events. It must be read on interrupts from Device All Interrupts (DAINT) register.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | E | E | D | D | D | D | D | D | D | D | D | D | D | D | D | D | C | B | B | A | |||||||||||||||
| Reset 0x00000002 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | SUSPSTS | Suspend Status (SuspSts) In Device mode, this bit is set as long as a Suspend condition is detected on the USB. The core enters the Suspend state when there is no activity on the phy_line_state_i signal for an extended period of time. The core comes out of the suspend under the following conditions : - If there is any activity on the phy_line_state_i signal, or - If the application writes to the Remote Wakeup Signaling bit in the Device Control register (DCTL.RmtWkUpSig). When the core comes out of the suspend, this bit is set to 1'b0. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No suspend state | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Suspend state | |||||||||||||||||||||||||||||||||
| B | R | ENUMSPD | Enumerated Speed (EnumSpd) Indicates the speed at which the controller has come up after speed detection through a connect or reset sequence. Low speed is not supported for devices using a UTMI+ PHY. | ||||||||||||||||||||||||||||||||
HS3060 | 0 | High speed (PHY clock is running at 30 or 60 MHz) | |||||||||||||||||||||||||||||||||
FS3060 | 1 | Full speed (PHY clock is running at 30 or 60 MHz) | |||||||||||||||||||||||||||||||||
LS6 | 2 | Low speed (PHY clock is running at 6 MHz) | |||||||||||||||||||||||||||||||||
FS48 | 3 | Full speed (PHY clock is running at 48 MHz) | |||||||||||||||||||||||||||||||||
| C | R | ERRTICERR | Erratic Error (ErrticErr) The core sets this bit to report any erratic errors (phy_rxvalid_i/phy_rxvldh_i or phy_rxactive_i is asserted for at least 2 ms, due to PHY error) seen on the UTMI+. Due to erratic errors, the core goes into Suspended state and an interrupt is generated to the application with Early Suspend bit of the Core Interrupt register (GINTSTS.ErlySusp). If the early suspend is asserted due to an erratic error, the application must perform a PHY reset followed by a soft reset to controller. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Erratic Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Erratic Error | |||||||||||||||||||||||||||||||||
| D | R | SOFFN | Frame or Microframe Number of the Received SOF (SOFFN) When the core is operating at high speed, this field contains a microframe number. When the core is operating at full or low speed, this field contains a Frame number. Note: This register may return a non-zero value if read immediately after power-on reset. In case the register bit reads non-zero immediately after power-on reset, it does not indicate that SOF has been received from the host. The read value of this interrupt is valid only after a valid connection between host and device is established. | ||||||||||||||||||||||||||||||||
| E | R | DEVLNSTS | Device Line Status (DevLnSts) Indicates the current logic level USB data lines - DevLnSts[1]: Logic level of D- - DevLnSts[0]: Logic level of D+ | ||||||||||||||||||||||||||||||||
DIEPMSK
Address offset: 0x810
Device IN Endpoint Common Interrupt Mask Register
This register works with each of the Device IN Endpoint Interrupt (DIEPINTn) registers for all endpoints to generate an interrupt per IN endpoint. The IN endpoint interrupt for a specific status in the DIEPINTn register can be masked by writing to the corresponding bit in this register. Status bits are masked by default.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | I | H | G | F | E | D | C | B | A | ||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPLMSK | Transfer Completed Interrupt Mask (XferComplMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Transfer Completed Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Transfer Completed Interrupt Mask | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLDMSK | Endpoint Disabled Interrupt Mask (EPDisbldMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Endpoint Disabled Interrupt Mask | |||||||||||||||||||||||||||||||||
| C | RW | AHBERRMSK | AHB Error Mask (AHBErrMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask AHB Error Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No AHB Error Interrupt Mask | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUTMSK | Timeout Condition Mask (TimeOUTMsk) (Non-isochronous endpoints) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Timeout Condition Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Timeout Condition Interrupt Mask | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMPMSK | IN Token Received When TxFIFO Empty Mask (INTknTXFEmpMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Token Received When TxFIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No IN Token Received When TxFIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMISMSK | IN Token received with EP Mismatch Mask (INTknEPMisMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Token received with EP Mismatch Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Mask IN Token received with EP Mismatch Interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFFMSK | IN Endpoint NAK Effective Mask (INEPNakEffMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint NAK Effective Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No IN Endpoint NAK Effective Interrupt Mask | |||||||||||||||||||||||||||||||||
| H | RW | TXFIFOUNDRNMSK | Fifo Underrun Mask (TxfifoUndrnMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Fifo Underrun Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Fifo Underrun Interrupt Mask | |||||||||||||||||||||||||||||||||
| I | RW | NAKMSK | NAK interrupt Mask (NAKMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask NAK Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Mask NAK Interrupt | |||||||||||||||||||||||||||||||||
DOEPMSK
Address offset: 0x814
Device OUT Endpoint Common Interrupt Mask Register
This register works with each of the Device OUT Endpoint Interrupt (DOEPINTn) registers for all endpoints to generate an interrupt per OUT endpoint. The OUT endpoint interrupt for a specific status in the DOEPINTn register can be masked by writing into the corresponding bit in this register. Status bits are masked by default.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | K | J | I | H | G | F | E | D | C | B | A | ||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPLMSK | Transfer Completed Interrupt Mask (XferComplMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Transfer Completed Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Transfer Completed Interrupt Mask | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLDMSK | Endpoint Disabled Interrupt Mask (EPDisbldMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Endpoint Disabled Interrupt Mask | |||||||||||||||||||||||||||||||||
| C | RW | AHBERRMSK | AHB Error (AHBErrMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask AHB Error Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No AHB Error Interrupt Mask | |||||||||||||||||||||||||||||||||
| D | RW | SETUPMSK | SETUP Phase Done Mask (SetUPMsk) Applies to control endpoints only. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask SETUP Phase Done Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No SETUP Phase Done Interrupt Mask | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDISMSK | OUT Token Received when Endpoint Disabled Mask (OUTTknEPdisMsk) Applies to control OUT endpoints only. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Token Received when Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No OUT Token Received when Endpoint Disabled Interrupt Mask | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVDMSK | Status Phase Received Mask (StsPhseRcvdMsk) Applies to control OUT endpoints only. | ||||||||||||||||||||||||||||||||
MASK | 0 | Status Phase Received Mask | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Status Phase Received Mask | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received Mask (Back2BackSETup) Applies to control OUT endpoints only. | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Back-to-Back SETUP Packets Received Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Back-to-Back SETUP Packets Received Interrupt Mask | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERRMSK | OUT Packet Error Mask (OutPktErrMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Packet Error Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No OUT Packet Error Interrupt Mask | |||||||||||||||||||||||||||||||||
| I | RW | BBLEERRMSK | Babble Error interrupt Mask (BbleErrMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask Babble Error Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Babble Error Interrupt Mask | |||||||||||||||||||||||||||||||||
| J | RW | NAKMSK | NAK interrupt Mask (NAKMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask NAK Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No NAK Interrupt Mask | |||||||||||||||||||||||||||||||||
| K | RW | NYETMSK | NYET interrupt Mask (NYETMsk) | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask NYET Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No NYET Interrupt Mask | |||||||||||||||||||||||||||||||||
DAINT
Address offset: 0x818
Device All Endpoints Interrupt Register
When a significant event occurs on an endpoint, a Device All Endpoints Interrupt register interrupts the application using the Device OUT Endpoints Interrupt bit or Device IN Endpoints Interrupt bit of the Core Interrupt register (GINTSTS.OEPInt or GINTSTS.IEPInt, respectively). This is shown in Figure 5-2. There is one interrupt bit per endpoint, up to a maximum of 16 bits for OUT endpoints and 16 bits for IN endpoints. For a bidirectional endpoint, the corresponding IN and OUT interrupt bits are used. Bits in this register are set and cleared when the application sets and clears bits in the corresponding Device Endpoint-n Interrupt register (DIEPINTn/DOEPINTn).
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | f | e | d | c | b | a | Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPINT0 | IN Endpoint 0 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for IN EP0 | |||||||||||||||||||||||||||||||||
| B | R | INEPINT1 | IN Endpoint 1 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| C | R | INEPINT2 | IN Endpoint 2 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| D | R | INEPINT3 | IN Endpoint 3 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| E | R | INEPINT4 | IN Endpoint 4 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| F | R | INEPINT5 | IN Endpoint 5 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| G | R | INEPINT6 | IN Endpoint 6 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| H | R | INEPINT7 | IN Endpoint 7 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| I | R | INEPINT8 | IN Endpoint 8 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| J | R | INEPINT9 | IN Endpoint 9 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| K | R | INEPINT10 | IN Endpoint 10 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| L | R | INEPINT11 | IN Endpoint 11 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| M | R | INEPINT12 | IN Endpoint 12 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| N | R | INEPINT13 | IN Endpoint 13 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| O | R | INEPINT14 | IN Endpoint 14 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| P | R | INEPINT15 | IN Endpoint 15 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the IN EP | |||||||||||||||||||||||||||||||||
| Q | R | OUTEPINT0 | OUT Endpoint 0 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for OUT EP0 | |||||||||||||||||||||||||||||||||
| R | R | OUTEPINT1 | OUT Endpoint 1 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| S | R | OUTEPINT2 | OUT Endpoint 2 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| T | R | OUTEPINT3 | OUT Endpoint 3 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| U | R | OUTEPINT4 | OUT Endpoint 4 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| V | R | OUTEPINT5 | OUT Endpoint 5 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| W | R | OUTEPINT6 | OUT Endpoint 6 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| X | R | OUTEPINT7 | OUT Endpoint 7 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| Y | R | OUTEPINT8 | OUT Endpoint 8 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| Z | R | OUTEPINT9 | OUT Endpoint 9 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| a | R | OUTEPINT10 | OUT Endpoint 10 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| b | R | OUTEPINT11 | OUT Endpoint 11 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| c | R | OUTEPINT12 | OUT Endpoint 12 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| d | R | OUTEPINT13 | OUT Endpoint 13 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| e | R | OUTEPINT14 | OUT Endpoint 14 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
| f | R | OUTEPINT15 | OUT Endpoint 15 Interrupt Bit | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Interrupt is active for the OUT EP | |||||||||||||||||||||||||||||||||
DAINTMSK
Address offset: 0x81C
Device All Endpoints Interrupt Mask Register
The Device Endpoint Interrupt Mask register works with the Device Endpoint Interrupt register to interrupt the application when an event occurs on a device endpoint. However, the Device All Endpoints Interrupt (DAINT) register bit corresponding to that interrupt is still set.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | f | e | d | c | b | a | Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | INEPMSK0 | IN Endpoint 0 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint 0 Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| B | RW | INEPMSK1 | IN Endpoint 1 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| C | RW | INEPMSK2 | IN Endpoint 2 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| D | RW | INEPMSK3 | IN Endpoint 3 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| E | RW | INEPMSK4 | IN Endpoint 4 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| F | RW | INEPMSK5 | IN Endpoint 5 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| G | RW | INEPMSK6 | IN Endpoint 6 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| H | RW | INEPMSK7 | IN Endpoint 7 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| I | RW | INEPMSK8 | IN Endpoint 8 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| J | RW | INEPMSK9 | IN Endpoint 9 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| K | RW | INEPMSK10 | IN Endpoint 10 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| L | RW | INEPMSK11 | IN Endpoint 11 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| M | RW | INEPMSK12 | IN Endpoint 12 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| N | RW | INEPMSK13 | IN Endpoint 13 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| O | RW | INEPMSK14 | IN Endpoint 14 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| P | RW | INEPMSK15 | IN Endpoint 15 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask IN Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| Q | RW | OUTEPMSK0 | OUT Endpoint 0 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint 0 Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| R | RW | OUTEPMSK1 | OUT Endpoint 1 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| S | RW | OUTEPMSK2 | OUT Endpoint 2 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| T | RW | OUTEPMSK3 | OUT Endpoint 3 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| U | RW | OUTEPMSK4 | OUT Endpoint 4 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| V | RW | OUTEPMSK5 | OUT Endpoint 5 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| W | RW | OUTEPMSK6 | OUT Endpoint 6 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| X | RW | OUTEPMSK7 | OUT Endpoint 7 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| Y | RW | OUTEPMSK8 | OUT Endpoint 8 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| Z | RW | OUTEPMSK9 | OUT Endpoint 9 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| a | RW | OUTEPMSK10 | OUT Endpoint 10 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| b | RW | OUTEPMSK11 | OUT Endpoint 11 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| c | RW | OUTEPMSK12 | OUT Endpoint 12 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| d | RW | OUTEPMSK13 | OUT Endpoint 13 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| e | RW | OUTEPMSK14 | OUT Endpoint 14 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
| f | RW | OUTEPMSK15 | OUT Endpoint 15 Interrupt mask Bit | ||||||||||||||||||||||||||||||||
MASK | 0 | Mask OUT Endpoint Interrupt | |||||||||||||||||||||||||||||||||
NOMASK | 1 | No Interrupt mask | |||||||||||||||||||||||||||||||||
DVBUSDIS
Address offset: 0x828
Device VBUS Discharge Time Register
This register specifies the VBUS discharge time after VBUS pulsing during SRP.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x000017D7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DVBUSDIS | Device VBUS Discharge Time (DVBUSDis) Specifies the VBUS discharge time after VBUS pulsing during SRP. This value equals (VBUS discharge time in PHY clocks) / 1, 024. The value you use depends whether the PHY is operating at 30MHz (16-bit data width) or 60 MHz (8-bit data width). Depending on your VBUS load, this value can need adjustment. | ||||||||||||||||||||||||||||||||
DVBUSPULSE
Address offset: 0x82C
Device VBUS Pulsing Time Register
This register contains the VBUS pulsing time during SRP.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||||||
| Reset 0x000005B8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DVBUSPULSE | Device VBUS Pulsing Time (DVBUSPulse) Specifies the VBUS pulsing time during SRP. This value equals (VBUS pulsing time in PHY clocks) / 1, 024 The value you use depends whether the PHY is operating at 30MHz (16-bit data width) or 60 MHz (8-bit data width). | ||||||||||||||||||||||||||||||||
DTHRCTL
Address offset: 0x830
Device Threshold Control Register
This register contains the Receive and Transmit Threshold characteristics of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | G | F | F | F | F | F | F | F | F | F | E | D | D | C | C | C | C | C | C | C | C | C | B | A | |||||||||||
| Reset 0x08100020 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | NONISOTHREN | Non-ISO IN Endpoints Threshold Enable. (NonISOThrEn) When this bit is Set, the core enables thresholding for Non Isochronous IN endpoints. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No thresholding | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Enable thresholding for non-isochronous IN endpoints | |||||||||||||||||||||||||||||||||
| B | RW | ISOTHREN | ISO IN Endpoints Threshold Enable. (ISOThrEn) When this bit is Set, the core enables thresholding for isochronous IN endpoints. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | No thresholding | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Enables thresholding for isochronous IN endpoints | |||||||||||||||||||||||||||||||||
| C | RW | TXTHRLEN | Transmit Threshold Length (TxThrLen) This field specifies Transmit thresholding size in DWORDS. This also forms the MAC threshold and specifies the amount of data in bytes to be in the corresponding endpoint transmit FIFO, before the core can start transmit on the USB. The threshold length has to be at least eight DWORDS when the value of AHBThrRatio is 2'h00. In case the AHBThrRatio is non zero the application needs to ensure that the AHB Threshold value does not go below the recommended eight DWORD. This field controls both isochronous and non-isochronous IN endpoint thresholds. The recommended value for ThrLen is to be the same as the programmed AHB Burst Length (GAHBCFG.HBstLen). Note: - When OTG_ARCHITECTURE=0, the reset value of this register field is 0. - When OTG_ARCHITECTURE=2, the reset value of this register field is 8. | ||||||||||||||||||||||||||||||||
| D | RW | AHBTHRRATIO | AHB Threshold Ratio (AHBThrRatio) These bits define the ratio between the AHB threshold and the MAC threshold for the transmit path only. The AHB threshold always remains less than or equal to the USB threshold, because this does not increase overhead. Both the AHB and the MAC threshold must be DWORD-aligned. The application needs to program TxThrLen and the AHBThrRatio to make the AHB Threshold value DWORD aligned. If the AHB threshold value is not DWORD aligned, the core might not behave correctly. When programming the TxThrLen and AHBThrRatio, the application must ensure that the minimum AHB threshold value does not go below 8 DWORDS to meet the USB turnaround time requirements. | ||||||||||||||||||||||||||||||||
THRESZERO | 0 | AHB threshold = MAC threshold | |||||||||||||||||||||||||||||||||
THRESONE | 1 | AHB threshold = MAC threshold /2 | |||||||||||||||||||||||||||||||||
THRESTWO | 2 | AHB threshold = MAC threshold /4 | |||||||||||||||||||||||||||||||||
THRESTHREE | 3 | AHB threshold = MAC threshold /8 | |||||||||||||||||||||||||||||||||
| E | RW | RXTHREN | Receive Threshold Enable (RxThrEn) When this bit is set, the core enables thresholding in the receive direction. Note: We recommends that you do not enable RxThrEn, because it may cause issues in the RxFIFO especially during error conditions such as RxError and Babble. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disable thresholding | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Enable thresholding in the receive direction | |||||||||||||||||||||||||||||||||
| F | RW | RXTHRLEN | Receive Threshold Length (RxThrLen) This field specifies Receive thresholding size in DWORDS. This field also specifies the amount of data received on the USB before the core can start transmitting on the AHB. The threshold length has to be at least eight DWORDS. The recommended value for ThrLen is to be the same as the programmed AHB Burst Length (GAHBCFG.HBstLen). | ||||||||||||||||||||||||||||||||
| G | RW | ARBPRKEN | Arbiter Parking Enable (ArbPrkEn) This bit controls internal DMA arbiter parking for IN endpoints. If thresholding is enabled and this bit is set to one, then the arbiter parks on the IN endpoint for which there is a token received on the USB. This is done to avoid getting into underrun conditions. By default, arbiter parking is enabled. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disable DMA arbiter parking | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Enable DMA arbiter parking for IN endpoints | |||||||||||||||||||||||||||||||||
DIEPEMPMSK
Address offset: 0x834
Device IN Endpoint FIFO Empty Interrupt Mask Register
This register is valid only in Dedicated FIFO operation (OTG_EN_DED_TX_FIFO = 1). This register is used to control the IN endpoint FIFO empty interrupt generation (DIEPINTn.TxfEmp).
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | INEPTXFEMPMSK | IN EP Tx FIFO Empty Interrupt Mask Bits (InEpTxfEmpMsk) These bits acts as mask bits for DIEPINTn.TxFEmp interrupt, one bit per IN Endpoint: Bit 0 for IN EP 0, bit 15 for IN EP 15 | ||||||||||||||||||||||||||||||||
EP0MASK | 1 | Mask IN EP0 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP1MASK | 2 | Mask IN EP1 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP2MASK | 4 | Mask IN EP2 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP3MASK | 8 | Mask IN EP3 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP4MASK | 16 | Mask IN EP4 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP5MASK | 32 | Mask IN EP5 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP6MASK | 64 | Mask IN EP6 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP7MASK | 128 | Mask IN EP7 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP8MASK | 256 | Mask IN EP8 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP9MASK | 512 | Mask IN EP9 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP10MASK | 1024 | Mask IN EP10 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP11MASK | 2048 | Mask IN EP11 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP12MASK | 4096 | Mask IN EP12 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP13MASK | 8192 | Mask IN EP13 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP14MASK | 16384 | Mask IN EP14 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
EP15MASK | 32768 | Mask IN EP15 Tx FIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
DIEPCTL0
Address offset: 0x900
Device Control IN Endpoint 0 Control Register
This register is used to control the characteristics of the IN Endpoint 0 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | J | I | H | G | F | F | F | F | E | D | D | C | B | A | A | ||||||||||||||||||||
| Reset 0x00008000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) Applies to IN and OUT endpoints. The application must program this field with the maximum packet size for the current logical endpoint. | ||||||||||||||||||||||||||||||||
BYTES64 | 0 | 64 bytes | |||||||||||||||||||||||||||||||||
BYTES32 | 1 | 32 bytes | |||||||||||||||||||||||||||||||||
BYTES16 | 2 | 16 bytes | |||||||||||||||||||||||||||||||||
BYTES8 | 3 | 8 bytes | |||||||||||||||||||||||||||||||||
| B | R | USBACTEP | USB Active Endpoint (USBActEP) This bit is always SET to 1, indicating that control endpoint 0 is always active in all configurations and interfaces. | ||||||||||||||||||||||||||||||||
ACTIVE0 | 1 | Control endpoint is always active | |||||||||||||||||||||||||||||||||
| C | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When this bit is set, either by the application or core, the core stops transmitting data, even If there is data available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| D | R | EPTYPE | Endpoint Type (EPType) Hardcoded to 00 for control. | ||||||||||||||||||||||||||||||||
ACTIVE | 0 | Endpoint Control 0 | |||||||||||||||||||||||||||||||||
| E | RW | STALL | STALL Handshake (Stall) The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Nonperiodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Stall | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Stall Handshake | |||||||||||||||||||||||||||||||||
| F | RW | TXFNUM | TxFIFO Number (TxFNum) - For Shared FIFO operation, this value is always set to 0, indicating that control IN endpoint 0 data is always written in the Non-Periodic Transmit FIFO. - For Dedicated FIFO operation, this value is set to the FIFO number that is assigned to IN Endpoint. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
NOCLEAR | 0 | No action | |||||||||||||||||||||||||||||||||
CLEAR | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
NOSET | 0 | No action | |||||||||||||||||||||||||||||||||
SET | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | RW | EPDIS | Endpoint Disable (EPDis) The application sets this bit to stop transmitting data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled Interrupt. The application must Set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disabled Endpoint | |||||||||||||||||||||||||||||||||
| J | RW | EPENA | Endpoint Enable (EPEna) When Scatter/Gather DMA mode is enabled for IN endpoints, this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. When Scatter/Gather DMA mode is disabled (such as in buffer pointer based DMA mode) this bit indicates that data is ready to be transmitted on the endpoint. The core clears this bit before setting the following interrupts on this endpoint: - Endpoint Disabled - Transfer Completed | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT0
Address offset: 0x908
Device IN Endpoint 0 Interrupt Register
This register indicates the status of an endpoint with respect to USB- and AHB-related events. It is shown in the "Interrupt Hierarchy" figure in the databook. The application must read this register when the OUT Endpoints Interrupt bit or IN Endpoints Interrupt bit of the Core Interrupt register (GINTSTS.OEPInt or GINTSTS.IEPInt, respectively) is set. Before the application can read this register, it must first read the Device All Endpoints Interrupt (DAINT) register to get the exact endpoint number for the Device Endpoint-n Interrupt register. The application must clear the appropriate bit in this register to clear the corresponding bits in the DAINT and GINTSTS registers
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Completed Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received when TxFIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received when TxFIFO Empty Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN Endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints only. The core generates this interrupt when it detects a transmit FIFO underrun condition in threshold mode for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Fifo Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Fifo Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. <brIn case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ0
Address offset: 0x910
Device IN Endpoint 0 Transfer Size Register
The application must modify this register before enabling endpoint 0. Once endpoint 0 is enabled using Endpoint Enable bit of the Device Control Endpoint 0 Control registers (DIEPCTL0.EPEna/DOEPCTL0.EPEna), the core modifies this register. The application can only read this register once the core has cleared the Endpoint Enable bit. Nonzero endpoints use the registers for endpoints 115. When Scatter/Gather DMA mode is enabled, this register must not be programmed by the application. If the application reads this register when Scatter/Gather DMA mode is enabled, the core returns all zeros.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | B | B | A | A | A | A | A | A | A | ||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) This field contains the transfer size in bytes for the current endpoint. The transfer size (XferSize) = Sum of buffer sizes across all descriptors in the list for the endpoint. In Buffer DMA, the core only interrupts the application after it has exhausted the transfer size amount of data. The transfer size can be set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. - IN Endpoints: The core decrements this field every time a packet from the external memory is written to the TxFIFO. - OUT Endpoints: The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. - IN Endpoints : This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. - OUT Endpoints: This field is decremented every time a packet (maximum size or short packet) is written to the RxFIFO. | ||||||||||||||||||||||||||||||||
DIEPDMA0
Address offset: 0x914
Device IN Endpoint 0 DMA Address Register
This register contains the DMA Address for the IN Endpoint 0 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | DMAAddr This field holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS0
Address offset: 0x918
Device IN Endpoint Transmit FIFO Status Register 0
This register contains information about the IN Endpoint Transmit FIFO of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field is, - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion | ||||||||||||||||||||||||||||||||
DIEPCTL1
Address offset: 0x920
Device Control IN Endpoint Control Register 1
This register is used to control the characteristics of Endpoint 1. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT1
Address offset: 0x928
Device IN Endpoint Interrupt Register 1
This register contains the interrupts for the IN Endpoint 1 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ1
Address offset: 0x930
Device IN Endpoint Transfer Size Register 1
This register reflects the Transfer Size of the IN Endpoint 1 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA1
Address offset: 0x934
Device IN Endpoint DMA Address Register 1
This register contains the DMA Address for the IN Endpoint 1 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS1
Address offset: 0x938
Device IN Endpoint Transmit FIFO Status Register 1
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 1 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL2
Address offset: 0x940
Device Control IN Endpoint Control Register 2
This register is used to control the characteristics of Endpoint 2. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT2
Address offset: 0x948
Device IN Endpoint Interrupt Register 2
This register contains the interrupts for the IN Endpoint 2 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ2
Address offset: 0x950
Device IN Endpoint Transfer Size Register 2
This register reflects the Transfer Size of the IN Endpoint 2 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA2
Address offset: 0x954
Device IN Endpoint DMA Address Register 2
This register contains the DMA Address for the IN Endpoint 2 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS2
Address offset: 0x958
Device IN Endpoint Transmit FIFO Status Register 2
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 2 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL3
Address offset: 0x960
Device Control IN Endpoint Control Register 3
This register is used to control the characteristics of Endpoint 3. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT3
Address offset: 0x968
Device IN Endpoint Interrupt Register 3
This register contains the interrupts for the IN Endpoint 3 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ3
Address offset: 0x970
Device IN Endpoint Transfer Size Register 3
This register reflects the Transfer Size of the IN Endpoint 3 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA3
Address offset: 0x974
Device IN Endpoint DMA Address Register 3
This register contains the DMA Address for the IN Endpoint 3 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS3
Address offset: 0x978
Device IN Endpoint Transmit FIFO Status Register 3
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 3 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL4
Address offset: 0x980
Device Control IN Endpoint Control Register 4
This register is used to control the characteristics of Endpoint 4. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT4
Address offset: 0x988
Device IN Endpoint Interrupt Register 4
This register contains the interrupts for the IN Endpoint 4 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ4
Address offset: 0x990
Device IN Endpoint Transfer Size Register 4
This register reflects the Transfer Size of the IN Endpoint 4 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA4
Address offset: 0x994
Device IN Endpoint DMA Address Register 4
This register contains the DMA Address for the IN Endpoint 4 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS4
Address offset: 0x998
Device IN Endpoint Transmit FIFO Status Register 4
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 4 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL5
Address offset: 0x9A0
Device Control IN Endpoint Control Register 5
This register is used to control the characteristics of Endpoint 5. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT5
Address offset: 0x9A8
Device IN Endpoint Interrupt Register 5
This register contains the interrupts for the IN Endpoint 5 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ5
Address offset: 0x9B0
Device IN Endpoint Transfer Size Register 5
This register reflects the Transfer Size of the IN Endpoint 5 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA5
Address offset: 0x9B4
Device IN Endpoint DMA Address Register 5
This register contains the DMA Address for the IN Endpoint 5 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS5
Address offset: 0x9B8
Device IN Endpoint Transmit FIFO Status Register 5
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 5 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL6
Address offset: 0x9C0
Device Control IN Endpoint Control Register 6
This register is used to control the characteristics of Endpoint 6. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT6
Address offset: 0x9C8
Device IN Endpoint Interrupt Register 6
This register contains the interrupts for the IN Endpoint 6 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ6
Address offset: 0x9D0
Device IN Endpoint Transfer Size Register 6
This register reflects the Transfer Size of the IN Endpoint 6 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA6
Address offset: 0x9D4
Device IN Endpoint DMA Address Register 6
This register contains the DMA Address for the IN Endpoint 6 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS6
Address offset: 0x9D8
Device IN Endpoint Transmit FIFO Status Register 6
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 6 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL7
Address offset: 0x9E0
Device Control IN Endpoint Control Register 7
This register is used to control the characteristics of Endpoint 7. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT7
Address offset: 0x9E8
Device IN Endpoint Interrupt Register 7
This register contains the interrupts for the IN Endpoint 7 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ7
Address offset: 0x9F0
Device IN Endpoint Transfer Size Register 7
This register reflects the Transfer Size of the IN Endpoint 7 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA7
Address offset: 0x9F4
Device IN Endpoint DMA Address Register 7
This register contains the DMA Address for the IN Endpoint 7 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS7
Address offset: 0x9F8
Device IN Endpoint Transmit FIFO Status Register 7
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 7 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL8
Address offset: 0xA00
Device Control IN Endpoint Control Register 8
This register is used to control the characteristics of Endpoint 8. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT8
Address offset: 0xA08
Device IN Endpoint Interrupt Register 8
This register contains the interrupts for the IN Endpoint 8 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ8
Address offset: 0xA10
Device IN Endpoint Transfer Size Register 8
This register reflects the Transfer Size of the IN Endpoint 8 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA8
Address offset: 0xA14
Device IN Endpoint DMA Address Register 8
This register contains the DMA Address for the IN Endpoint 8 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS8
Address offset: 0xA18
Device IN Endpoint Transmit FIFO Status Register 8
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 8 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL9
Address offset: 0xA20
Device Control IN Endpoint Control Register 9
This register is used to control the characteristics of Endpoint 9. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT9
Address offset: 0xA28
Device IN Endpoint Interrupt Register 9
This register contains the interrupts for the IN Endpoint 9 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ9
Address offset: 0xA30
Device IN Endpoint Transfer Size Register 9
This register reflects the Transfer Size of the IN Endpoint 9 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA9
Address offset: 0xA34
Device IN Endpoint DMA Address Register 9
This register contains the DMA Address for the IN Endpoint 9 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS9
Address offset: 0xA38
Device IN Endpoint Transmit FIFO Status Register 9
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 9 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL10
Address offset: 0xA40
Device Control IN Endpoint Control Register 10
This register is used to control the characteristics of Endpoint 10. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT10
Address offset: 0xA48
Device IN Endpoint Interrupt Register 10
This register contains the interrupts for the IN Endpoint 10 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ10
Address offset: 0xA50
Device IN Endpoint Transfer Size Register 10
This register reflects the Transfer Size of the IN Endpoint 10 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA10
Address offset: 0xA54
Device IN Endpoint DMA Address Register 10
This register contains the DMA Address for the IN Endpoint 10 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS10
Address offset: 0xA58
Device IN Endpoint Transmit FIFO Status Register 10
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 10 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL11
Address offset: 0xA60
Device Control IN Endpoint Control Register 11
This register is used to control the characteristics of Endpoint 11. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT11
Address offset: 0xA68
Device IN Endpoint Interrupt Register 11
This register contains the interrupts for the IN Endpoint 11 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ11
Address offset: 0xA70
Device IN Endpoint Transfer Size Register 11
This register reflects the Transfer Size of the IN Endpoint 11 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA11
Address offset: 0xA74
Device IN Endpoint DMA Address Register 11
This register contains the DMA Address for the IN Endpoint 11 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS11
Address offset: 0xA78
Device IN Endpoint Transmit FIFO Status Register 11
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 11 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL12
Address offset: 0xA80
Device Control IN Endpoint Control Register 12
This register is used to control the characteristics of Endpoint 12. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT12
Address offset: 0xA88
Device IN Endpoint Interrupt Register 12
This register contains the interrupts for the IN Endpoint 12 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ12
Address offset: 0xA90
Device IN Endpoint Transfer Size Register 12
This register reflects the Transfer Size of the IN Endpoint 12 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA12
Address offset: 0xA94
Device IN Endpoint DMA Address Register 12
This register contains the DMA Address for the IN Endpoint 12 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS12
Address offset: 0xA98
Device IN Endpoint Transmit FIFO Status Register 12
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 12 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL13
Address offset: 0xAA0
Device Control IN Endpoint Control Register 13
This register is used to control the characteristics of Endpoint 13. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT13
Address offset: 0xAA8
Device IN Endpoint Interrupt Register 13
This register contains the interrupts for the IN Endpoint 13 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ13
Address offset: 0xAB0
Device IN Endpoint Transfer Size Register 13
This register reflects the Transfer Size of the IN Endpoint 13 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA13
Address offset: 0xAB4
Device IN Endpoint DMA Address Register 13
This register contains the DMA Address for the IN Endpoint 13 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS13
Address offset: 0xAB8
Device IN Endpoint Transmit FIFO Status Register 13
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 13 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL14
Address offset: 0xAC0
Device Control IN Endpoint Control Register 14
This register is used to control the characteristics of Endpoint 14. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT14
Address offset: 0xAC8
Device IN Endpoint Interrupt Register 14
This register contains the interrupts for the IN Endpoint 14 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ14
Address offset: 0xAD0
Device IN Endpoint Transfer Size Register 14
This register reflects the Transfer Size of the IN Endpoint 14 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA14
Address offset: 0xAD4
Device IN Endpoint DMA Address Register 14
This register contains the DMA Address for the IN Endpoint 14 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS14
Address offset: 0xAD8
Device IN Endpoint Transmit FIFO Status Register 14
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 14 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DIEPCTL15
Address offset: 0xAE0
Device Control IN Endpoint Control Register 15
This register is used to control the characteristics of Endpoint 15. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | M | L | K | J | I | H | G | G | G | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: Applies to isochronous IN and OUT endpoints only. Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DATA0EVENFRM | 0 | DATA0 or Even Frame | |||||||||||||||||||||||||||||||||
DATA1ODDFRM | 1 | DATA1 or Odd Frame | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUP | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | RW | TXFNUM | TxFIFO Number (TxFNum) Shared FIFO Operation non-periodic endpoints must set this bit to zero. Periodic endpoints must map this to the corresponding Periodic TxFIFO number. - Others: Specified Periodic TxFIFO.number Note: An interrupt IN endpoint can be configured as a non-periodic endpoint for applications such as mass storage. The core treats an IN endpoint as a non-periodic endpoint if the TxFNum field is set to 0. Otherwise, a separate periodic FIFO must be allocated for an interrupt IN endpoint, and the number of this FIFO must be programmed into the TxFNum field. Configuring an interrupt IN endpoint as a non-periodic endpoint saves the extra periodic FIFO area. Dedicated FIFO Operation: These bits specify the FIFO number associated with this endpoint. Each active IN endpoint must be programmed to a separate FIFO number. This field is valid only for IN endpoints. | ||||||||||||||||||||||||||||||||
TXFIFO0 | 0 | Tx FIFO 0 | |||||||||||||||||||||||||||||||||
TXFIFO1 | 1 | Tx FIFO 1 | |||||||||||||||||||||||||||||||||
TXFIFO2 | 2 | Tx FIFO 2 | |||||||||||||||||||||||||||||||||
TXFIFO3 | 3 | Tx FIFO 3 | |||||||||||||||||||||||||||||||||
TXFIFO4 | 4 | Tx FIFO 4 | |||||||||||||||||||||||||||||||||
TXFIFO5 | 5 | Tx FIFO 5 | |||||||||||||||||||||||||||||||||
TXFIFO6 | 6 | Tx FIFO 6 | |||||||||||||||||||||||||||||||||
TXFIFO7 | 7 | Tx FIFO 7 | |||||||||||||||||||||||||||||||||
TXFIFO8 | 8 | Tx FIFO 8 | |||||||||||||||||||||||||||||||||
TXFIFO9 | 9 | Tx FIFO 9 | |||||||||||||||||||||||||||||||||
TXFIFO10 | 10 | Tx FIFO 10 | |||||||||||||||||||||||||||||||||
TXFIFO11 | 11 | Tx FIFO 11 | |||||||||||||||||||||||||||||||||
TXFIFO12 | 12 | Tx FIFO 12 | |||||||||||||||||||||||||||||||||
TXFIFO13 | 13 | Tx FIFO 13 | |||||||||||||||||||||||||||||||||
TXFIFO14 | 14 | Tx FIFO 14 | |||||||||||||||||||||||||||||||||
TXFIFO15 | 15 | Tx FIFO 15 | |||||||||||||||||||||||||||||||||
| H | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| I | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also Set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| J | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to Even (micro)Frame | |||||||||||||||||||||||||||||||||
| K | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd (micro)Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to Odd (micro)Frame | |||||||||||||||||||||||||||||||||
| L | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| M | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled, -- For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. -- For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: -- For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. -- For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: For control endpoints in DMA mode, this bit must be set to be able to transfer SETUP data packets in memory. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DIEPINT15
Address offset: 0xAE8
Device IN Endpoint Interrupt Register 15
This register contains the interrupts for the IN Endpoint 15 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000080 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | TIMEOUT | Timeout Condition (TimeOUT) - In shared TX FIFO mode, applies to non-isochronous IN endpoints only. - In dedicated FIFO mode, applies only to Control IN endpoints. - In Scatter/Gather DMA mode, the TimeOUT interrupt is not asserted. Indicates that the core has detected a timeout condition on the USB for the last IN token on this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Timeout interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Timeout interrupt | |||||||||||||||||||||||||||||||||
| E | RW | INTKNTXFEMP | IN Token Received When TxFIFO is Empty (INTknTXFEmp) Applies to non-periodic IN endpoints only. Indicates that an IN token was received when the associated TxFIFO (periodic/non-periodic) was empty. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | INTKNEPMIS | IN Token Received with EP Mismatch (INTknEPMis) Applies to non-periodic IN endpoints only. Indicates that the data in the top of the non-periodic TxFIFO belongs to an endpoint other than the one for which the IN token was received. This interrupt is asserted on the endpoint for which the IN token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Token Received with EP Mismatch interrupt | |||||||||||||||||||||||||||||||||
| G | RW | INEPNAKEFF | IN Endpoint NAK Effective (INEPNakEff) Applies to periodic IN endpoints only. This bit can be cleared when the application clears the IN endpoint NAK by writing to DIEPCTLn.CNAK. This interrupt indicates that the core has sampled the NAK bit Set (either by the application or by the core). The interrupt indicates that the IN endpoint NAK bit Set by the application has taken effect in the core. This interrupt does not guarantee that a NAK handshake is sent on the USB. A STALL bit takes priority over a NAK bit. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | IN Endpoint NAK Effective interrupt | |||||||||||||||||||||||||||||||||
| H | R | TXFEMP | Transmit FIFO Empty (TxFEmp) This bit is valid only for IN endpoints This interrupt is asserted when the TxFIFO for this endpoint is either half or completely empty. The half or completely empty status is determined by the TxFIFO Empty Level bit in the Core AHB Configuration register (GAHBCFG.NPTxFEmpLvl)). | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transmit FIFO Empty interrupt | |||||||||||||||||||||||||||||||||
| I | RW | TXFIFOUNDRN | Fifo Underrun (TxfifoUndrn) Applies to IN endpoints Only This bit is valid only If thresholding is enabled. The core generates this interrupt when it detects a transmit FIFO underrun condition for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Tx FIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | TxFIFO Underrun interrupt | |||||||||||||||||||||||||||||||||
| J | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| K | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| L | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
DIEPTSIZ15
Address offset: 0xAF0
Device IN Endpoint Transfer Size Register 15
This register reflects the Transfer Size of the IN Endpoint 15 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet from the external memory is written to the TxFIFO. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) Indicates the total number of USB packets that constitute the Transfer Size amount of data for endpoint 0. This field is decremented every time a packet (maximum size or short packet) is read from the TxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | MC | MC Applies to IN endpoints only. For periodic IN endpoints, this field indicates the number of packets that must be transmitted per microframe on the USB. The core uses this field to calculate the data PID for isochronous IN endpoints. For non-periodic IN endpoints, this field is valid only in Internal DMA mode. It specifies the number of packets the core must fetchfor an IN endpoint before it switches to the endpoint pointed to by the Next Endpoint field of the Device Endpoint-n Control register (DIEPCTLn.NextEp) | ||||||||||||||||||||||||||||||||
PACKETONE | 1 | 1 packet | |||||||||||||||||||||||||||||||||
PACKETTWO | 2 | 2 packets | |||||||||||||||||||||||||||||||||
PACKETTHREE | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DIEPDMA15
Address offset: 0xAF4
Device IN Endpoint DMA Address Register 15
This register contains the DMA Address for the IN Endpoint 15 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DTXFSTS15
Address offset: 0xAF8
Device IN Endpoint Transmit FIFO Status Register 15
This register reflects the status of the IN Endpoint Transmit FIFO Status Register 15 of the Device controller. Note: This register exists for an endpoint i if the OTG_EP_DIR_i parameter is 0 or 1 for that endpoint.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||||||||||||||||||
| Reset 0x00000C00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | INEPTXFSPCAVAIL | IN Endpoint TxFIFO Space Avail (INEPTxFSpcAvail) Indicates the amount of free space available in the Endpoint TxFIFO. Values are in terms of 32-bit words. In DRD configurations (OTG_MODE = 0, 1, or 2) with dynamic FIFO sizing feature enabled (OTG_DFIFO_DYNAMIC = 1), the value of this field (before DIEPCTLi.TxFNum is programmed) is - the maximum value of (OTG_TX_HNPERIO_DFIFO_DEPTH, OTG_TX_DINEP_DFIFO_DEPTH_0) during reset, and - OTG_TX_DINEP_DFIFO_DEPTH_0, immediately after reset deassertion After DIEPCTLi.TxFNum is programmed, the value of this field will return OTG_TX_DINEP_DFIFO_DEPTH_i | ||||||||||||||||||||||||||||||||
DOEPCTL0
Address offset: 0xB00
Device Control OUT Endpoint 0 Control Register
This register is used to control the characteristics of the OUT Endpoint 0 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | I | H | G | F | E | D | D | C | B | A | A | ||||||||||||||||||||||||
| Reset 0x00008000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | R | MPS | Maximum Packet Size (MPS) The maximum packet size for control OUT endpoint 0 is the same as what is programmed in control IN Endpoint 0. | ||||||||||||||||||||||||||||||||
BYTE64 | 0 | 64 bytes | |||||||||||||||||||||||||||||||||
BYTE32 | 1 | 32 bytes | |||||||||||||||||||||||||||||||||
BYTE16 | 2 | 16 bytes | |||||||||||||||||||||||||||||||||
BYTE8 | 3 | 8 bytes | |||||||||||||||||||||||||||||||||
| B | R | USBACTEP | USB Active Endpoint (USBActEP) This bit is always set to 1, indicating that a control endpoint 0 is always active in all configurations and interfaces. | ||||||||||||||||||||||||||||||||
ACTIVE | 1 | USB Active Endpoint 0 | |||||||||||||||||||||||||||||||||
| C | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit, the core stops receiving data, even If there is space in the RxFIFO to accommodate the incoming packet. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| D | R | EPTYPE | Endpoint Type (EPType) Hardcoded to 2'b00 for control. | ||||||||||||||||||||||||||||||||
ACTIVE | 0 | Endpoint Control 0 | |||||||||||||||||||||||||||||||||
| E | RW | STALL | STALL Handshake (Stall) The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit or Global OUT NAK is Set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Stall | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Stall Handshake | |||||||||||||||||||||||||||||||||
| F | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
NOCLEAR | 0 | No action | |||||||||||||||||||||||||||||||||
CLEAR | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| G | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set bit on a Transfer Completed interrupt, or after a SETUP is received on the endpoint. | ||||||||||||||||||||||||||||||||
NOSET | 0 | No action | |||||||||||||||||||||||||||||||||
SET | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| H | R | EPDIS | Endpoint Disable (EPDis) The application cannot disable control OUT endpoint 0. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint disable | |||||||||||||||||||||||||||||||||
| I | RW | EPENA | Endpoint Enable (EPEna) - When Scatter/Gather DMA mode is enabled, for OUT endpoints this bit indicates that the descriptor structure and data buffer to receive data is setup. - When Scatter/Gather DMA mode is disabled (such as for buffer-pointer based DMA mode)this bit indicates that the application has allocated the memory to start receiving data from the USB. - The core clears this bit before setting any of the following interrupts on this endpoint: -- SETUP Phase Done -- Endpoint Disabled -- Transfer Completed Note: In DMA mode, this bit must be set for the core to transfer SETUP data packets into memory and it is not cleared on Transfer Completed interrupt of SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT0
Address offset: 0xB08
Device OUT Endpoint 0 Interrupt Register
This register contains the interrupts for the OUT Endpoint 0 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled - For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. - For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. Note: In DMA mode, this bit must be set for the core to transfer SETUP data packets into memory. When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the core to process, such as Host busy or DMA done. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ0
Address offset: 0xB10
Device OUT Endpoint 0 Transfer Size Register
This register contains the Transfer Size for the OUT Endpoint 0 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | A | A | A | A | A | A | A | |||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for endpoint 0. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | RW | SUPCNT | SETUP Packet Count (SUPCnt) This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
ONEPACKET | 1 | 1 packet | |||||||||||||||||||||||||||||||||
TWOPACKET | 2 | 2 packets | |||||||||||||||||||||||||||||||||
THREEPACKET | 3 | 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA0
Address offset: 0xB14
Device OUT Endpoint 0 DMA Address Register
This register contains the DMA Address for the OUT Endpoint 0 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL1
Address offset: 0xB20
Device Control OUT Endpoint Control Register 1
This register is used to control the characteristics of OUT Endpoint 1 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT1
Address offset: 0xB28
Device OUT Endpoint Interrupt Register 1
This register contains the interrupts for the OUT Endpoint 1 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ1
Address offset: 0xB30
Device OUT Endpoint Transfer Size Register 1
This register contains the Transfer Size for the OUT Endpoint 1 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA1
Address offset: 0xB34
Device OUT Endpoint DMA Address Register 1
This register contains the DMA Address for the OUT Endpoint 1 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL2
Address offset: 0xB40
Device Control OUT Endpoint Control Register 2
This register is used to control the characteristics of OUT Endpoint 2 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT2
Address offset: 0xB48
Device OUT Endpoint Interrupt Register 2
This register contains the interrupts for the OUT Endpoint 2 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ2
Address offset: 0xB50
Device OUT Endpoint Transfer Size Register 2
This register contains the Transfer Size for the OUT Endpoint 2 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA2
Address offset: 0xB54
Device OUT Endpoint DMA Address Register 2
This register contains the DMA Address for the OUT Endpoint 2 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL3
Address offset: 0xB60
Device Control OUT Endpoint Control Register 3
This register is used to control the characteristics of OUT Endpoint 3 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT3
Address offset: 0xB68
Device OUT Endpoint Interrupt Register 3
This register contains the interrupts for the OUT Endpoint 3 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ3
Address offset: 0xB70
Device OUT Endpoint Transfer Size Register 3
This register contains the Transfer Size for the OUT Endpoint 3 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA3
Address offset: 0xB74
Device OUT Endpoint DMA Address Register 3
This register contains the DMA Address for the OUT Endpoint 3 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL4
Address offset: 0xB80
Device Control OUT Endpoint Control Register 4
This register is used to control the characteristics of OUT Endpoint 4 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT4
Address offset: 0xB88
Device OUT Endpoint Interrupt Register 4
This register contains the interrupts for the OUT Endpoint 4 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ4
Address offset: 0xB90
Device OUT Endpoint Transfer Size Register 4
This register contains the Transfer Size for the OUT Endpoint 4 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA4
Address offset: 0xB94
Device OUT Endpoint DMA Address Register 4
This register contains the DMA Address for the OUT Endpoint 4 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL5
Address offset: 0xBA0
Device Control OUT Endpoint Control Register 5
This register is used to control the characteristics of OUT Endpoint 5 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT5
Address offset: 0xBA8
Device OUT Endpoint Interrupt Register 5
This register contains the interrupts for the OUT Endpoint 5 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ5
Address offset: 0xBB0
Device OUT Endpoint Transfer Size Register 5
This register contains the Transfer Size for the OUT Endpoint 5 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA5
Address offset: 0xBB4
Device OUT Endpoint DMA Address Register 5
This register contains the DMA Address for the OUT Endpoint 5 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL6
Address offset: 0xBC0
Device Control OUT Endpoint Control Register 6
This register is used to control the characteristics of OUT Endpoint 6 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT6
Address offset: 0xBC8
Device OUT Endpoint Interrupt Register 6
This register contains the interrupts for the OUT Endpoint 6 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ6
Address offset: 0xBD0
Device OUT Endpoint Transfer Size Register 6
This register contains the Transfer Size for the OUT Endpoint 6 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA6
Address offset: 0xBD4
Device OUT Endpoint DMA Address Register 6
This register contains the DMA Address for the OUT Endpoint 6 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL7
Address offset: 0xBE0
Device Control OUT Endpoint Control Register 7
This register is used to control the characteristics of OUT Endpoint 7 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT7
Address offset: 0xBE8
Device OUT Endpoint Interrupt Register 7
This register contains the interrupts for the OUT Endpoint 7 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ7
Address offset: 0xBF0
Device OUT Endpoint Transfer Size Register 7
This register contains the Transfer Size for the OUT Endpoint 7 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA7
Address offset: 0xBF4
Device OUT Endpoint DMA Address Register 7
This register contains the DMA Address for the OUT Endpoint 7 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL8
Address offset: 0xC00
Device Control OUT Endpoint Control Register 8
This register is used to control the characteristics of OUT Endpoint 8 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT8
Address offset: 0xC08
Device OUT Endpoint Interrupt Register 8
This register contains the interrupts for the OUT Endpoint 8 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ8
Address offset: 0xC10
Device OUT Endpoint Transfer Size Register 8
This register contains the Transfer Size for the OUT Endpoint 8 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA8
Address offset: 0xC14
Device OUT Endpoint DMA Address Register 8
This register contains the DMA Address for the OUT Endpoint 8 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL9
Address offset: 0xC20
Device Control OUT Endpoint Control Register 9
This register is used to control the characteristics of OUT Endpoint 9 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT9
Address offset: 0xC28
Device OUT Endpoint Interrupt Register 9
This register contains the interrupts for the OUT Endpoint 9 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ9
Address offset: 0xC30
Device OUT Endpoint Transfer Size Register 9
This register contains the Transfer Size for the OUT Endpoint 9 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA9
Address offset: 0xC34
Device OUT Endpoint DMA Address Register 9
This register contains the DMA Address for the OUT Endpoint 9 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL10
Address offset: 0xC40
Device Control OUT Endpoint Control Register 10
This register is used to control the characteristics of OUT Endpoint 10 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT10
Address offset: 0xC48
Device OUT Endpoint Interrupt Register 10
This register contains the interrupts for the OUT Endpoint 10 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ10
Address offset: 0xC50
Device OUT Endpoint Transfer Size Register 10
This register contains the Transfer Size for the OUT Endpoint 10 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA10
Address offset: 0xC54
Device OUT Endpoint DMA Address Register 10
This register contains the DMA Address for the OUT Endpoint 10 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL11
Address offset: 0xC60
Device Control OUT Endpoint Control Register 11
This register is used to control the characteristics of OUT Endpoint 11 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT11
Address offset: 0xC68
Device OUT Endpoint Interrupt Register 11
This register contains the interrupts for the OUT Endpoint 11 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ11
Address offset: 0xC70
Device OUT Endpoint Transfer Size Register 11
This register contains the Transfer Size for the OUT Endpoint 11 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA11
Address offset: 0xC74
Device OUT Endpoint DMA Address Register 11
This register contains the DMA Address for the OUT Endpoint 11 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL12
Address offset: 0xC80
Device Control OUT Endpoint Control Register 12
This register is used to control the characteristics of OUT Endpoint 12 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT12
Address offset: 0xC88
Device OUT Endpoint Interrupt Register 12
This register contains the interrupts for the OUT Endpoint 12 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ12
Address offset: 0xC90
Device OUT Endpoint Transfer Size Register 12
This register contains the Transfer Size for the OUT Endpoint 12 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA12
Address offset: 0xC94
Device OUT Endpoint DMA Address Register 12
This register contains the DMA Address for the OUT Endpoint 12 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL13
Address offset: 0xCA0
Device Control OUT Endpoint Control Register 13
This register is used to control the characteristics of OUT Endpoint 13 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT13
Address offset: 0xCA8
Device OUT Endpoint Interrupt Register 13
This register contains the interrupts for the OUT Endpoint 13 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ13
Address offset: 0xCB0
Device OUT Endpoint Transfer Size Register 13
This register contains the Transfer Size for the OUT Endpoint 13 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA13
Address offset: 0xCB4
Device OUT Endpoint DMA Address Register 13
This register contains the DMA Address for the OUT Endpoint 13 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL14
Address offset: 0xCC0
Device Control OUT Endpoint Control Register 14
This register is used to control the characteristics of OUT Endpoint 14 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT14
Address offset: 0xCC8
Device OUT Endpoint Interrupt Register 14
This register contains the interrupts for the OUT Endpoint 14 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ14
Address offset: 0xCD0
Device OUT Endpoint Transfer Size Register 14
This register contains the Transfer Size for the OUT Endpoint 14 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA14
Address offset: 0xCD4
Device OUT Endpoint DMA Address Register 14
This register contains the DMA Address for the OUT Endpoint 14 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
DOEPCTL15
Address offset: 0xCE0
Device Control OUT Endpoint Control Register 15
This register is used to control the characteristics of OUT Endpoint 15 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | L | K | J | I | H | G | F | E | E | D | C | B | A | A | A | A | A | A | A | A | A | A | A | ||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | MPS | Maximum Packet Size (MPS) The application must program this field with the maximum packet size for the current logical endpoint. This value is in bytes. | ||||||||||||||||||||||||||||||||
| B | RW | USBACTEP | USB Active Endpoint (USBActEP) Indicates whether this endpoint is active in the current configuration and interface. The core clears this bit for all endpoints (other than EP 0) after detecting a USB reset. After receiving the SetConfiguration and SetInterface commands, the application must program endpoint registers accordingly and set this bit. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Not Active | |||||||||||||||||||||||||||||||||
ENABLED | 1 | USB Active Endpoint | |||||||||||||||||||||||||||||||||
| C | R | DPID | Endpoint Data PID (DPID) Applies to interrupt/bulk IN and OUT endpoints only. Contains the PID of the packet to be received or transmitted on this endpoint. The application must program the PID of the first packet to be received or transmitted on this endpoint, after the endpoint is activated. The applications use the SetD1PID and SetD0PID fields of this register to program either DATA0 or DATA1 PID. This field is applicable for both Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. Even/Odd (Micro)Frame (EO_FrNum) In non-Scatter/Gather DMA mode: - Applies to isochronous IN and OUT endpoints only. - Indicates the (micro)frame number in which the core transmits/receives isochronous data for this endpoint. The application must program the even/odd (micro)frame number in which it intends to transmit/receive isochronous data for this endpoint using the SetEvnFr and SetOddFr fields in this register. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is provided in the transmit descriptor structure. The frame in which data is received is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Endpoint Data PID not active | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Data PID active | |||||||||||||||||||||||||||||||||
| D | R | NAKSTS | NAK Status (NAKSts) Indicates the following: When either the application or the core sets this bit: - The core stops receiving any data on an OUT endpoint, even if there is space in the RxFIFO to accommodate the incoming packet. - For non-isochronous IN endpoints: The core stops transmitting any data on an IN endpoint, even if there data is available in the TxFIFO. - For isochronous IN endpoints: The core sends out a zero-length data packet, even if there data is available in the TxFIFO. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
NONNAK | 0 | The core is transmitting non-NAK handshakes based on the FIFO status | |||||||||||||||||||||||||||||||||
NAK | 1 | The core is transmitting NAK handshakes on this endpoint | |||||||||||||||||||||||||||||||||
| E | RW | EPTYPE | Endpoint Type (EPType) This is the transfer type supported by this logical endpoint. | ||||||||||||||||||||||||||||||||
CONTROL | 0 | Control | |||||||||||||||||||||||||||||||||
ISOCHRONOUS | 1 | Isochronous | |||||||||||||||||||||||||||||||||
BULK | 2 | Bulk | |||||||||||||||||||||||||||||||||
INTERRUPT | 3 | Interrupt | |||||||||||||||||||||||||||||||||
| F | RW | STALL | STALL Handshake (Stall) Applies to non-control, non-isochronous IN and OUT endpoints only. The application sets this bit to stall all tokens from the USB host to this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Only the application can clear this bit, never the core. Applies to control endpoints only. The application can only set this bit, and the core clears it, when a SETUP token is received for this endpoint. If a NAK bit, Global Non-periodic IN NAK, or Global OUT NAK is set along with this bit, the STALL bit takes priority. Irrespective of this bit's setting, the core always responds to SETUP data packets with an ACK handshake. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | STALL All non-active tokens | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | STALL All Active Tokens | |||||||||||||||||||||||||||||||||
| G | W | CNAK | Clear NAK (CNAK) A write to this bit clears the NAK bit for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Clear NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Clear NAK | |||||||||||||||||||||||||||||||||
| H | W | SNAK | Set NAK (SNAK) A write to this bit sets the NAK bit for the endpoint. Using this bit, the application can control the transmission of NAK handshakes on an endpoint. The core can also set this bit for an endpoint after a SETUP packet is received on that endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Set NAK | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Set NAK | |||||||||||||||||||||||||||||||||
| I | W | SETD0PID | Set DATA0 PID (SetD0PID) - Applies to interrupt/bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA0. - This field is applicable both for Scatter/Gather DMA mode and non-Scatter/Gather DMA mode. In non-Scatter/Gather DMA mode: Set Even (micro)frame (SetEvenFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the Even/Odd (micro)frame (EO_FrNum) field to even (micro)frame. - When Scatter/Gather DMA mode is enabled, this field is reserved. The frame number in which to send data is in the transmit descriptor structure. The frame in which to receive data is updated in receive descriptor structure. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA0 PID or Do not force Even Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA0 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| J | W | SETD1PID | Set DATA1 PID (SetD1PID) - Applies to interrupt and bulk IN and OUT endpoints only. - Writing to this field sets the Endpoint Data PID (DPID) field in this register to DATA1. - This field is applicable both for scatter-gather DMA mode and non scatter-gather DMA mode. Set Odd (micro)frame (SetOddFr) - Applies to isochronous IN and OUT endpoints only. - Writing to this field sets the even and odd (micro)frame (EO_FrNum) field to odd (micro)frame. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disables Set DATA1 PID or Do not force Odd Frame | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Set Endpoint Data PID to DATA1 or Sets EO_FrNum field to odd (micro)Frame | |||||||||||||||||||||||||||||||||
| K | RW | EPDIS | Endpoint Disable (EPDis) Applies to IN and OUT endpoints. The application sets this bit to stop transmitting/receiving data on an endpoint, even before the transfer for that endpoint is complete. The application must wait for the Endpoint Disabled interrupt before treating the endpoint as disabled. The core clears this bit before setting the Endpoint Disabled interrupt. The application must set this bit only if Endpoint Enable is already set for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Disable Endpoint | |||||||||||||||||||||||||||||||||
| L | RW | EPENA | Endpoint Enable (EPEna) Applies to IN and OUT endpoints. When Scatter/Gather DMA mode is enabled, - For IN endpoints this bit indicates that the descriptor structure and data buffer with data ready to transmit is setup. - For OUT endpoint it indicates that the descriptor structure and data buffer to receive data is setup. When Scatter/Gather DMA mode is enabled such as for buffer-pointer based DMA mode: - For IN endpoints, this bit indicates that data is ready to be transmitted on the endpoint. - For OUT endpoints, this bit indicates that the application has allocated the memory to start receiving data from the USB. The core clears this bit before setting any of the following interrupts on this endpoint: - SETUP Phase Done - Endpoint Disabled - Transfer Completed Note: For control endpoints in DMA mode, this bit must be set for the controller to transfer SETUP data packets to the memory. This bit is not cleared on Transfer Completed interrupt of the SETUP packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Action | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Enable Endpoint | |||||||||||||||||||||||||||||||||
DOEPINT15
Address offset: 0xCE8
Device OUT Endpoint Interrupt Register 15
This register contains the interrupts for the OUT Endpoint 15 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | N | M | L | K | J | I | H | G | F | E | D | C | B | A | |||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERCOMPL | Transfer Completed Interrupt (XferCompl) Applies to IN and OUT endpoints. - When Scatter/Gather DMA mode is enabled -- For IN endpoint this field indicates that the requested data from the descriptor is moved from external system memory to internal FIFO. -- For OUT endpoint this field indicates that the requested data from the internal FIFO is moved to external system memory. This interrupt is generated only when the corresponding endpoint descriptor is closed, and the IOC bit for the corresponding descriptor is Set. - When Scatter/Gather DMA mode is disabled, this field indicates that the programmed transfer is complete on the AHB as well as on the USB, for this endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Transfer Complete Interrupt | |||||||||||||||||||||||||||||||||
| B | RW | EPDISBLD | Endpoint Disabled Interrupt (EPDisbld) Applies to IN and OUT endpoints. This bit indicates that the endpoint is disabled per the application's request. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Endpoint Disabled Interrupt | |||||||||||||||||||||||||||||||||
| C | RW | AHBERR | AHB Error (AHBErr) Applies to IN and OUT endpoints. This is generated only in Internal DMA mode when there is an AHB error during an AHB read/write. The application can read the corresponding endpoint DMA address register to get the error address. For details, see "AHB Error Handling" section in the Programming Guide. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No AHB Error Interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | AHB Error interrupt | |||||||||||||||||||||||||||||||||
| D | RW | SETUP | SETUP Phase Done (SetUp) Applies to control OUT endpoints only. Indicates that the SETUP phase for the control endpoint is complete and no more back-to-back SETUP packets were received for the current control transfer. On this interrupt, the application can decode the received SETUP data packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No SETUP Phase Done | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | SETUP Phase Done | |||||||||||||||||||||||||||||||||
| E | RW | OUTTKNEPDIS | OUT Token Received When Endpoint Disabled (OUTTknEPdis) Applies only to control OUT endpoints. Indicates that an OUT token was received when the endpoint was not yet enabled. This interrupt is asserted on the endpoint for which the OUT token was received. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Token Received When Endpoint Disabled | |||||||||||||||||||||||||||||||||
| F | RW | STSPHSERCVD | Status Phase Received for Control Write (StsPhseRcvd) This interrupt is valid only for Control OUT endpoints. This interrupt is generated only after the core has transferred all the data that the host has sent during the data phase of a control write transfer, to the system memory buffer. The interrupt indicates to the application that the host has switched from data phase to the status phase of a Control Write transfer. The application can use this interrupt to ACK or STALL the Status phase, after it has decoded the data phase. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Status Phase Received for Control Write | |||||||||||||||||||||||||||||||||
| G | RW | BACK2BACKSETUP | Back-to-Back SETUP Packets Received (Back2BackSETup) Applies to Control OUT endpoints only. This bit indicates that the core has received more than three back-to-back SETUP packets for this particular endpoint. For information about handling this interrupt, refer to Programming guide section "Handling More Than Three Back-to-Back SETUP Packets". This bit is not valid in Completer mode. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Back-to-Back SETUP Packets Received | |||||||||||||||||||||||||||||||||
| H | RW | OUTPKTERR | OUT Packet Error (OutPktErr) Applies to OUT endpoints Only This interrupt is valid only when thresholding is enabled. This interrupt is asserted when the core detects an overflow or a CRC error for non-Isochronous OUT packet. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No OUT Packet Error | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | OUT Packet Error | |||||||||||||||||||||||||||||||||
| I | RW | BNAINTR | BNA (Buffer Not Available) Interrupt (BNAIntr) This bit is valid only when Scatter/Gather DMA mode is enabled. The core generates this interrupt when the descriptor accessed is not ready for the Core to process, such as Host busy or DMA done | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BNA interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BNA interrupt | |||||||||||||||||||||||||||||||||
| J | RW | PKTDRPSTS | Packet Drop Status (PktDrpSts) This bit indicates to the application that an ISOC OUT packet has been dropped. This bit does not have an associated mask bit and does not generate an interrupt. Dependency: This bit is valid in non Scatter/Gather DMA mode when periodic transfer interrupt feature is selected. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Packet Drop Status interrupt | |||||||||||||||||||||||||||||||||
| K | RW | BBLEERR | NAK Interrupt (BbleErr) The core generates this interrupt when babble is received for the endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No BbleErr interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | BbleErr interrupt | |||||||||||||||||||||||||||||||||
| L | RW | NAKINTRPT | NAK Interrupt (NAKInterrupt) The core generates this interrupt when a NAK is transmitted or received by the device. In case of isochronous IN endpoints the interrupt gets generated when a zero length packet is transmitted due to un-availability of data in the TXFifo. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NAK interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NAK Interrupt | |||||||||||||||||||||||||||||||||
| M | RW | NYETINTRPT | NYET Interrupt (NYETIntrpt) The core generates this interrupt when a NYET response is transmitted for a non isochronous OUT endpoint. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | No NYET interrupt | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | NYET Interrupt | |||||||||||||||||||||||||||||||||
| N | RW | STUPPKTRCVD | Setup Packet Received Applicable for Control OUT Endpoints in only in the Buffer DMA Mode Set by the controller, this bit indicates that this buffer holds 8 bytes of setup data. There is only one Setup packet per buffer. On receiving a Setup packet, the controller closes the buffer and disables the corresponding endpoint. The application has to re-enable the endpoint to receive any OUT data for the Control Transfer and reprogram the buffer start address. Note: Because of the above behavior, the controller can receive any number of back to back setup packets and one buffer for every setup packet is used. | ||||||||||||||||||||||||||||||||
NOTRCVD | 0 | No Setup packet received | |||||||||||||||||||||||||||||||||
RCVD | 1 | Setup packet received | |||||||||||||||||||||||||||||||||
DOEPTSIZ15
Address offset: 0xCF0
Device OUT Endpoint Transfer Size Register 15
This register contains the Transfer Size for the OUT Endpoint 15 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | C | C | B | B | B | B | B | B | B | B | B | B | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | ||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | XFERSIZE | Transfer Size (XferSize) Indicates the transfer size in bytes for the endpoint. The core interrupts the application only after it has exhausted the transfer size amount of data. The transfer size can be Set to the maximum packet size of the endpoint, to be interrupted at the end of each packet. The core decrements this field every time a packet is read from the RxFIFO and written to the external memory. | ||||||||||||||||||||||||||||||||
| B | RW | PKTCNT | Packet Count (PktCnt) This field is decremented to zero after a packet is written into the RxFIFO. | ||||||||||||||||||||||||||||||||
| C | R | RXDPID | RxDPID Applies to isochronous OUT endpoints only. This is the data PID received in the last packet for this endpoint. SETUP Packet Count (SUPCnt) Applies to control OUT Endpoints only. This field specifies the number of back-to-back SETUP data packets the endpoint can receive. | ||||||||||||||||||||||||||||||||
DATA0 | 0 | DATA0 | |||||||||||||||||||||||||||||||||
DATA2PACKET1 | 1 | DATA2 or 1 packet | |||||||||||||||||||||||||||||||||
DATA1PACKET2 | 2 | DATA1 or 2 packets | |||||||||||||||||||||||||||||||||
MDATAPACKET3 | 3 | MDATA or 3 packets | |||||||||||||||||||||||||||||||||
DOEPDMA15
Address offset: 0xCF4
Device OUT Endpoint DMA Address Register 15
This register contains the DMA Address for the OUT Endpoint 15 of the Device controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | A | |||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | DMAADDR | Holds the start address of the external memory for storing or fetching endpoint data. Note: For control endpoints, this field stores control OUT data packets as well as SETUP transaction data packets. When more than three SETUP packets are received back-to-back, the SETUP data packet in the memory is overwritten. This register is incremented on every AHB transaction. The application can give only a DWORD-aligned address. - When Scatter/Gather DMA mode is not enabled, the application programs the start address value in this field. - When Scatter/Gather DMA mode is enabled, this field indicates the base pointer for the descriptor list. | ||||||||||||||||||||||||||||||||
PCGCCTL
Address offset: 0xE00
Power and Clock Gating Control Register
This register is used to control the Power and Clock Gating characteristics of the controller.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | I | I | I | I | I | I | I | I | I | I | I | I | I | I | I | I | I | I | H | G | F | E | D | C | B | A | |||||||||
| Reset 0x880A0000 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | STOPPCLK | Stop Pclk (StopPclk) - The application sets this bit to stop the PHY clock (phy_clk) when the USB is suspended, the session is not valid, or the device is disconnected. - The application clears this bit when the USB is resumed or a new session starts. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Disable Stop Pclk | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Enable Stop Pclk | |||||||||||||||||||||||||||||||||
| B | RW | GATEHCLK | Gate Hclk (GateHclk) - The application sets this bit to gate hclk to modules other than the AHB Completer and Requester and wakeup logic when the USB is suspended or the session is not valid. - The application clears this bit when the USB is resumed or a new session starts. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | Clears this bit when the USB is resumed or a new session starts | |||||||||||||||||||||||||||||||||
ENABLED | 1 | Sets this bit to gate hclk to modules when the USB is suspended or the session is not valid | |||||||||||||||||||||||||||||||||
| C | RW | RSTPDWNMODULE | Reset Power-Down Modules (RstPdwnModule) This bit is valid only in Partial Power-Down mode. - The application sets this bit when the power is turned off. - The application clears this bit after the power is turned on and the PHY clock is up. Note: The R/W of all core registers are possible only when this bit is set to 1b0. | ||||||||||||||||||||||||||||||||
ON | 0 | Power is turned on | |||||||||||||||||||||||||||||||||
OFF | 1 | Power is turned off | |||||||||||||||||||||||||||||||||
| D | RW | ENBLL1GATING | Enable Sleep Clock Gating If this bit is set, core internal clock gating is enabled sleep state if utmi_l1_suspend_n cannot be asserted by the core. The PHY clock is not gated in sleep state if Enbl_L1Gating is not set. | ||||||||||||||||||||||||||||||||
DISABLED | 0 | The PHY clock is not gated in Sleep state | |||||||||||||||||||||||||||||||||
ENABLED | 1 | The Core internal clock gating is enabled in Sleep state | |||||||||||||||||||||||||||||||||
| E | R | PHYSLEEP | PHY In Sleep Indicates that the PHY is in Sleep State. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Phy not in Sleep state | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Phy in Sleep state | |||||||||||||||||||||||||||||||||
| F | R | L1SUSPENDED | L1 Deep Sleep Indicates that the PHY is in deep sleep when in L1 state. | ||||||||||||||||||||||||||||||||
INACTIVE | 0 | Non Deep Sleep | |||||||||||||||||||||||||||||||||
ACTIVE | 1 | Deep Sleep | |||||||||||||||||||||||||||||||||
| G | RW | RESTOREMODE | Restore Mode (RestoreMode) The application must program this bit to specify the restore mode during RESTORE POINT before programming PCGCCTL.EssRegRest bit is set. - Host Mode: - Device Mode: | ||||||||||||||||||||||||||||||||
DISABLED | 0 | In Host mode,this bit indicates Host-initiated Resume and Reset. In Device mode, this bit indicates Device-initiated Remote Wakeup | |||||||||||||||||||||||||||||||||
ENABLED | 1 | In Host mode,this bit indicates Device-initiated Remote Wakeup. In Device mode, this bit indicates Host-initiated Resume and Reset | |||||||||||||||||||||||||||||||||
| H | W | ESSREGRESTORED | Essential Register Values Restored (EssRegRestored) A write of one into this field indicates that register values of essential registers have been restored. For definition of essential registers, refer programming flow section for Hibernation. | ||||||||||||||||||||||||||||||||
NOTRESTORED | 0 | Register values of essential registers are not restored | |||||||||||||||||||||||||||||||||
RESTORED | 1 | Register values of essential registers have been restored | |||||||||||||||||||||||||||||||||
| I | RW | RESTOREVALUE | Restore Value (RestoreValue) When Hibernation mode is enabled, the RestoreValue needs to be read at SAVE_POINT to store in non-volatile memory and at RESTORE_POINT restored before PCGCCTL.EssRegRestored field is set. - [31] if_dev_mode -- 1: Device mode, core restored as device -- 0: Host mode, core restored as host - [30:29] p2hd_prt_spd (PRT speed) -- 00: HS -- 01: FS -- 10: LS -- 11: Reserved - [28:27] p2hd_dev_enum_spd (Device enumerated speed) -- 00: HS -- 01: FS (30/60 MHz clk) -- 10: LS -- 11: FS (48 MHz clk) - [26:20] mac_dev_addr (MAC device address) Device address - [19] mac_termselect (Termination selection) -- 0: HS_TERM (Program for High Speed) -- 1: FS_TERM (Program for Full Speed) - [18:17] mac_xcvrselect (Transceiver select) -- 00: HS_XCVR (High Speed) -- 01: FS_XCVR (Full Speed) -- 10: LS_XCVR (Low Speed) -- 11: LFS_XCVR (Reserved) - [16] sh2pl_prt_ctl[0] -- 1: prt_power enabled -- 0: prt_power disabled - [15:14] prt_clk_sel (Refer prt_clk_sel table) Defines port clock select for different speeds. | ||||||||||||||||||||||||||||||||
GSTARFXDIS
Address offset: 0xF00
Global STAR Fix Disable Register
This register is used to disable STAR fixes added in the controller. The application can set the register fields to operate with the functionality before the fix was done.
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | a | Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A | ||||||||
| Reset 0x00002200 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A | RW | HOSTIGNORESRMTWKUPDIS | Disable the STAR fix added for Device controller to go back to low power mode when Host ignores Remote wakeup The application programs Host_Ignores_RmtWkup_dis=1 to disable the device controller from going back to low power mode (SUSPENDED state) when the host ignores the remote wakeup signalling from the device and does not respond back with resume. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Device controller goes back into SUSPENDED state when host ignores Remote Wakeup | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Device controller waits indefinitely without entering SUSPENDED state when host ignores the Remote Wakeup | |||||||||||||||||||||||||||||||||
| B | RW | RESUMEFRMCHKBUSDIS | Disable the STAR fix added for Device controller to detect lineK and move to RESUMING state after the 50us pull-up delay ends The application programs Resume_frm_CHK_BUS_dis=1 to disable the device controller from detecting line K and transitioning to RESUMING state in the scenario where Host resume starts immediately after the 50us pull-up delay timer expires. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Device controller detects line K and resumes | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Device controller does not detect line K and resume | |||||||||||||||||||||||||||||||||
| C | RW | IGNORECTLOUTDATA0DIS | Disable the STAR fix added for Device controller to reject DATA0 for the first Control OUT Data Phase and Control Status OUT Phase The application programs Ignore_CtlOUT_DATA0_dis=1 to disable the device controller from reporting transaction error when DATA0 PID is received from host for the first Control OUT Data Phase and Control Status OUT phase. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Transaction Error reported when host sends DATA0 PID | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Transaction Error not reported when host sends DATA0 PID | |||||||||||||||||||||||||||||||||
| D | RW | SSPLITSTALLNYETERRDIS | Disable the STAR fix added for Host controller to flag error for SSPLIT STALL/NYET The application programs SSPLIT_STALLNYET_Err_dis=1 to disable the host controller from reporting transaction error for STALL/NYET received from device for SSPLIT transfer. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Transaction Error reported when device sends STALL/NYET for SSPLIT | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Transaction Error not reported when device sends STALL/NYET for SSPLIT | |||||||||||||||||||||||||||||||||
| E | RW | ACCEPTISOCSPLITDATA1DIS | Disable the STAR fix added for Host controller to accept DATA1 PID from device for ISOC Split transfers The application programs Accept_Isoc_split_DATA1_dis=1 to disable the host controller from accepting DATA1 PID from device for ISOC Split transfers. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Transaction Error not reported when device sends DATA1 PID for ISOC Split | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Transaction Error reported when device sends DATA1 PID for ISOC Split | |||||||||||||||||||||||||||||||||
| F | RW | HANDLEFAULTYCABLEDIS | Disable the STAR fix added for Host controller to handle Faulty cable scenarios The application programs HandleFaultyCable_dis=1 to disable the host controller from reporting Port Babble error when the linestate is stuck at 1 (in FS mode) or 2 (in LS mode) due to a Faulty cable. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Fix for handling faulty cable enabled | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Fix for handling faulty cable disabled | |||||||||||||||||||||||||||||||||
| G | RW | LSIPGINCRDIS | Disable the STAR fix added for Host controller LS mode IPG increment from 2 LS bit times to 3 LS bit times The application programs LS_IPG_incr_dis=1 to disable the IPG increment from 2 to 3 LS bit times when host controller is operating in LS mode. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Host LS mode IPG is 3 LS bit times | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Host LS mode IPG is 2 LS bit times | |||||||||||||||||||||||||||||||||
| H | RW | FSDISCIDLEDIS | Disable the STAR fix added for Device controller to transition to IDLE state during FS device disconnect The application programs FSDisc_Idle_dis=1 to disable the Transmit/Receive state machine from moving to IDLE state when FS device disconnect happens. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Device controller transitions to IDLE state during FS device disconnect | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Device controller does not transition to IDLE state during FS device disconnect | |||||||||||||||||||||||||||||||||
| I | RW | CONCURRENTRMTWKUPUSBRESUMEDIS | Disable the STAR fix added for Device controller to not start Remote Wakeup signalling when USB resume has already started The application programs Concurrent_Rmtwkup_USBResume_dis=1 to allow the controller to do remote wakeup signalling when USB resume has already started from the Host. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Device controller does not start remote wakeup signalling when host resume has already started | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Device controller is allowed to start remote wakeup signalling when host resume has already started | |||||||||||||||||||||||||||||||||
| J | RW | LSIPGCHKAFTERNAKSTALLFORINDIS | Disable the STAR fix added for Host controller to wait for IPG duration to send next token after receiving NAK/STALL for previous IN token with FS/LS device The application programs LS_IPG_chk_after_NAK_STALL_for_IN_dis=1 to allow the controller to send the next token without waiting for the interpacket gap duration after receiving a NAK/STALL from device for the previous IN token. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Host controller checks IPG after NAK/STALL for IN token | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Host controller does not check IPG after NAK/STALL for IN token | |||||||||||||||||||||||||||||||||
| K | RW | PHYIOPXCVRSELTXVLDCORRDIS | Disable the STAR fix added for Host controller to increase the gap between utmi_xcvrselect switching and utmi_txvalid assertion in LS/FS mode The application programs PHY_IOp_xcvrsel_txvld_corr_dis=1 to allow the controller to assert utmi_txvalid 1 cycle after the utmi_xcvrselect switching. This can cause interop issues with SNPS PHY which requires at least 2 cycles of gap between the utmi_xcvrselect switch and the utmi_txvalid assertion. Hence it is recommended to program PHY_IOp_xcvrsel_txvld_corr_dis=0. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Host controller asserts utmi_txvalid at least 2 utmi_clk cycles after utmi_xcvrselect switching | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Host controller can assert utmi_txvalid after 1 utmi_clk cycle of utmi_xcvrselect switching | |||||||||||||||||||||||||||||||||
| L | RW | ULPIXCVRSELSWITCHCORRDIS | Disable the STAR fix added for Host controller to increase the preamble transceiver select switch delay to accommodate time taken for ULPI function control write The application programs ULPI_xcvrsel_switch_corr_dis=1 to allow the controller to do back to back transceiver select switching within the duration required for a single ULPI function control write (around 5-6 ulpi_clk cycles). This can cause a corrupted packet to go on the bus since the ULPI wrapper may not be able to do the second ULPI functional update (register write) correctly. Hence it is recommended to program ULPI_xcvrsel_switch_corr_dis=0. With ULPI_xcvrsel_switch_corr_dis=0, the delay between transceiver select switch and txvalid assertion has also been increased for FS/LS mode to resolve PHY interop issues. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Host controller waits for previous functional register update to complete before switching the transceiver select again or asserting txvalid | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Host controller does not wait for the previous functional register update to complete before switching the transceiver select again or asserting txvalid | |||||||||||||||||||||||||||||||||
| M | RW | XACTERRDATA0CTRLSTSINDIS | Disable the STAR fix added for Host controller to report transaction error when DATA0 PID is received for CTRL STATUS IN transfer in DMA mode The application programs XactErr_DATA0_CTRL_STS_IN_dis=1 to allow the controller to respond with ACK for the incorrect DATA0 PID and then retry the control STATUS IN transfer until DATA1 PID is received. With XactErr_DATA0_CTRL_STS_IN_dis=0, the controller generates Transaction Error interrupt when the incorrect PID is received. This STAR fix is applicable only for Buffer DMA and Descriptor DMA modes. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Host controller reports transaction error when DATA0 PID is received for CTRL STATUS IN transfer in DMA mode | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Host controller retries the transfer when DATA0 PID is received for CTRL STATUS IN transfer in DMA mode | |||||||||||||||||||||||||||||||||
| N | RW | HOSTUTMITXVLDCORRDIS | Disable the correction to OpMode/XcvrSel/TermSel on UTMI Interface in Host mode. When HPRT.PrtRst is set by the application, the Host controller can change the Opmode, XcvrSel and TermSel while TxValid is still high (1'b1) during SOF transmission in 8-bit UTMI mode. This behavior of the controller has been corrected to handle port reset during SOF transmission. With the fix, the controller waits for Txvalid to go low (1'b0) and then changes the OpMode, XcvrSel and TermSel. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Opmode, XcvrSel, TermSel are changed by the Host Controller after TxValid goes LOW (1'b0) | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Opmode, XcvrSel, TermSel are changed by the Host Controller without waiting for TxValid to go LOW (1'b0) during SOF transmission | |||||||||||||||||||||||||||||||||
| O | RW | OPMODEXCVRSELCHIRPENCORRDIS | Disable the STAR fix added for correcting Opmode and XcvrSel on UTMI Interface when reset is detected in suspend state. In configurations with Battery charger support enabled (and GOTGCTL.ChirpEn programmed to 1), the RTL has been updated to wait for 1ms and then change the opmode and xcvrselect when reset is detected in the suspend state. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller and change Opmode and XcvrSel without waiting for 1ms after reset detection. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Valid Combination of Opmode and XcvrSel is driven when reset is detected in suspend state | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Invalid Combination of Opmode and XcvrSel is driven when reset is detected in suspend state | |||||||||||||||||||||||||||||||||
| P | RW | TXVALIDDEASSERTIONCORRDIS | Disable the STAR fix added for correcting Txvalid deassertion on UTMI Interface when soft disconnect is done. The RTL has been updated to wait for utmi_txready and then de-assert the utmi_txvalid being driven by MAC DSSR when soft disconnect is done. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller and change Txvalid without waiting for Txready. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Txvalid is deasserted during soft disconnect after receiving Txready from the PHY | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Txvalid is deasserted during soft disconnect without waiting for Txready from the PHY | |||||||||||||||||||||||||||||||||
| Q | RW | HOSTNOXFERAFTERPRTDISFIXDIS | Disable the STAR fix added for correcting Host behavior when port is disabled. The RTL has been updated to not assert utmi_txvalid when the port is disabled. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Txvalid is not asserted when port is disabled | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Txvalid can be asserted when port is disabled | |||||||||||||||||||||||||||||||||
| R | RW | LINESTATESE0FILTERFOREOPDIS | Disable the STAR fix added for filtering SE0 from the linestate during EOP detection.. The RTL has been updated to filter glitches occurred in the linestate. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Filter for linestate is enabled | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Filter for linestate is not enabled | |||||||||||||||||||||||||||||||||
| S | RW | DMPULLDOWNUPDATEINOTGFORHIBANDPP | Disable the STAR fix added for utmiotg_dmpulldown update in Hibernation and Partial power down modes. The RTL has been updated for OTG mode to remove the glitch in utmiotg_dmpulldown signal while controller is exiting from Hibernation or Partial power down. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | utmiotg_dmpulldown logic for hiberabtion and partial power down is enabled | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | utmiotg_dmpulldown logic for hiberabtion and partial power down is not enabled | |||||||||||||||||||||||||||||||||
| T | RW | CHIRPDETECTIONUPDTHSTDIS | Disable the Chirp detection logic change in host mode. The RTL has been updated in Host mode to avoid the unexpected chirp detection when there is no chirp K from device. After the RTL fix chirp detection logic depends on the delayed WAIT_CHIRP state. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Chirp detection logic in MAC PRT module depends on the delayed WAIT_CHIRP state and only valid chirp K from device is detected | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Chirp detection logic depends on the WAIT_CHIRP state and controller might detect false chirp K from device | |||||||||||||||||||||||||||||||||
| U | RW | PROGRAMMABLESE0DURATIONTODETECTEOP | Disable the STAR fix added for programmable se0 duration to detect EOP in Host mode . The RTL Enhancement has been done to reduce the EOP SE0 detection time for USB2 SOF,transmitted by the core to work with longer cables and/or devices with longer delays. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Programmable se0 duration to detect EOP in Host mode is enabled | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Programmable se0 duration to detect EOP in Host mode is disabled | |||||||||||||||||||||||||||||||||
| V | RW | ENABLELEVELSYNCHRONISERFORH2PDTXF0LENPKT | Disable the STAR fix added for h2pd_txf_0len_pkt signal which is passing through a level synchronizer. Dummy synchronizer of h2pd_txf_0len_pkt signal has been replaced with Level synchronizer. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | level synchroniser for h2pd_txf_0len_pkt is enabled and disabled dummy synchronizer | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | level synchroniser for h2pd_txf_0len_pkt is disabled and connected through dummy synchronizer | |||||||||||||||||||||||||||||||||
| W | RW | EUSB2TERMINATERESUMEONDISCDIS | Disable fix for Terminating Resume if UTMI HostDisconnect is detected. The RTL has been updated in Host mode to terminate Resume if UTMI HostDisconnect is asserted, this is to avoid the controller and PHY from being out of sync if HostDisconnect coincides with the beginning of Resume transmission. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Host controller terminates Resume if HostDisconnect is asserted | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Host controller does not terminate Resume if HostDisconnect is asserted | |||||||||||||||||||||||||||||||||
| X | RW | EUSB2FSLSDISCDETECTIONDIS | Disable fix for FS/LS disconnect detection using UTMI HostDisconnect in MAC PRT. The RTL has been updated in Host mode to detect disconnect using the utmi_hostdisconnect signal instead of monitoring 2.5us of SE0 on DP/DM. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Host controller detects FS/LS disconnect using utmi_hostdisconnect signal | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Host controller detects disconnect by monitoring 2.5us of SE0 on DP/DM | |||||||||||||||||||||||||||||||||
| Y | RW | HOSTFLUSHEXCESSTKNFIXDIS | Disable fix for recovering the Host controller when sufficient time is not available in the current uF for an overscheduled ISOC OUT or INTR IN transfer. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | Host controller functionality is as expected if there is an overscheduled ISOC OUT or INTR IN transfer | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | Host controller functionality cannot be determined if there is an overscheduled ISOC OUT or INTR IN transfer | |||||||||||||||||||||||||||||||||
| Z | RW | TITRANSDONETGLDURINGISOCEOPFDISABLE | Disable the fix added to not toggle ti_trans_done in SEND_EOP state when the ISOC in tokens responds with zero length packets after end of periodic frame till next start of frame. The fix is added when operating in descriptor dma device mode. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | ti_transdone is not toggled after eopf during ISOC IN transfer till next SOF | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | ti_transdone is toggled after eopf during ISOC IN transfer till next SOF | |||||||||||||||||||||||||||||||||
| a | RW | CLEARSOFREFCLKTIMERDURINGDISC | Disable the STAR fix added to clear the SOF refclk timer during disconnect detection. The STAR fix is added when using both UTMI and eUSB2 PHY. The application can set this register bit to 1'b1 to fall back to the original behavior of the controller. This bit must be programmed during the initial configuration of the controller and must not be modified later. | ||||||||||||||||||||||||||||||||
ENABLEFIX | 0 | SOF refclk timer is cleared immediately after device disconnect is detected. | |||||||||||||||||||||||||||||||||
DISABLEFIX | 1 | SOF refclk timer is not cleared immediately after device disconnect is detected. | |||||||||||||||||||||||||||||||||
DWCOTGDFIFO[n].DATA[o]
Address offset: 0x1000 + (n × 0x1000) + (o × 0x4)
Data FIFO Access Register Map 0
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | |||||||||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
DWCOTGDFIFODIRECTACCESS.DATA[n]
Address offset: 0x11000 + (n × 0x4)
Data FIFO Direct Access Register Map
| Bit number | 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 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | |||||||||||||||||||||||||||||||||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||