| M480 BSP V3.05.001 The Board Support Package for M480 Series

Data Fields
USBD_T Struct Reference
Control Register

`#include <usbd_reg.h>`

## Data Fields
__IO uint32_t | INTEN
__IO uint32_t | INTSTS
__IO uint32_t | FADDR
__I uint32_t | EPSTS
__IO uint32_t | ATTR
__I uint32_t | VBUSDET
__IO uint32_t | STBUFSEG
__I uint32_t | EPSTS0
__I uint32_t | EPSTS1
__I uint32_t | LPMATTR
__I uint32_t | FN
__IO uint32_t | SE0
USBD_EP_T | EP [12]

## Detailed Description

Definition at line 186 of file usbd_reg.h.

## Field Documentation

## ◆ ATTR

USBD_T::ATTR

[0x0010] USB Device Bus Status and Attribution Register

ATTR

Offset: 0x10 USB Device Bus Status and Attribution Register

Bits | Field | Descriptions
[0] | USBRST | USB Reset Status 0 = Bus no reset. 1 = Bus reset when SE0 (single-ended 0) more than 2.5us. Note: This bit is read only.
[1] | SUSPEND | Suspend Status 0 = Bus no suspend. 1 = Bus idle more than 3ms, either cable is plugged off or host is sleeping. Note: This bit is read only.
[2] | RESUME | Resume Status 0 = No bus resume. 1 = Resume from suspend. Note: This bit is read only.
[3] | TOUT | Time-out Status 0 = No time-out. 1 = No Bus response more than 18 bits time. Note: This bit is read only.
[4] | PHYEN | PHY Transceiver Function Enable Bit 0 = PHY transceiver function Disabled. 1 = PHY transceiver function Enabled.
[5] | RWAKEUP | Remote Wake-up 0 = Release the USB bus from K state. 1 = Force USB bus to K (USB_D+ low, USB_D-: high) state, used for remote wake-up.
[7] | USBEN | USB Controller Enable Bit 0 = USB Controller Disabled. 1 = USB Controller Enabled.
[8] | DPPUEN | Pull-up Resistor on USB_DP Enable Bit 0 = Pull-up resistor in USB_D+ bus Disabled. 1 = Pull-up resistor in USB_D+ bus Active.
[10] | BYTEM | CPU Access USB SRAM Size Mode Selection 0 = Word mode: The size of the transfer from CPU to USB SRAM can be Word only. 1 = Byte mode: The size of the transfer from CPU to USB SRAM can be Byte only.
[11] | LPMACK | LPM Token Acknowledge Enable Bit The NYET/ACK will be returned only on a successful LPM transaction if no errors in both the EXT token and the LPM token and a valid bLinkState = 0001 (L1) is received, else ERROR and STALL will be returned automatically, respectively. 0= the valid LPM Token will be NYET. 1= the valid LPM Token will be ACK.
[12] | L1SUSPEND | LPM L1 Suspend 0 = Bus no L1 state suspend. 1 = This bit is set by the hardware when LPM command to enter the L1 state is successfully received and acknowledged. Note: This bit is read only.
[13] | L1RESUME | LPM L1 Resume 0 = Bus no LPM L1 state resume. 1 = LPM L1 state Resume from LPM L1 state suspend. Note: This bit is read only.

Definition at line 894 of file usbd_reg.h.

## ◆ EP

USBD_EP_T USBD_T::EP[12]

[0x500~0x5bc] USB End Point 0 ~ 11 Configuration Register

Definition at line 911 of file usbd_reg.h.

## ◆ EPSTS

USBD_T::EPSTS

[0x000c] USB Device Endpoint Status Register

EPSTS

Offset: 0x0C USB Device Endpoint Status Register

Bits | Field | Descriptions
[7] | OV | Overrun It indicates that the received data is over the maximum payload number or not. 0 = No overrun. 1 = Out Data is more than the Max Payload in MXPLD register or the Setup Data is more than 8 Bytes.

Definition at line 893 of file usbd_reg.h.

## ◆ EPSTS0

USBD_T::EPSTS0

[0x0020] USB Device Endpoint Status Register 0

EPSTS0

Offset: 0x20 USB Device Endpoint Status Register 0

Bits | Field | Descriptions
[03:00] | EPSTS0 | Endpoint 0 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[07:04] | EPSTS1 | Endpoint 1 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[11:08] | EPSTS2 | Endpoint 2 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[15:12] | EPSTS3 | Endpoint 3 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[19:16] | EPSTS4 | Endpoint 4 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[23:20] | EPSTS5 | Endpoint 5 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[27:24] | EPSTS6 | Endpoint 6 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[31:28] | EPSTS7 | Endpoint 7 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.

Definition at line 900 of file usbd_reg.h.

## ◆ EPSTS1

USBD_T::EPSTS1

[0x0024] USB Device Endpoint Status Register 1

EPSTS1

Offset: 0x24 USB Device Endpoint Status Register 1

Bits | Field | Descriptions
[3:0] | EPSTS8 | Endpoint 8 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[7:4] | EPSTS9 | Endpoint 9 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[11:8] | EPSTS10 | Endpoint 10 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.
[15:12] | EPSTS11 | Endpoint 11 Status These bits are used to indicate the current status of this endpoint 0000 = In ACK. 0001 = In NAK. 0010 = Out Packet Data0 ACK. 0011 = Setup ACK. 0110 = Out Packet Data1 ACK. 0111 = Isochronous transfer end.

Definition at line 901 of file usbd_reg.h.

## ◆ FADDR

USBD_T::FADDR

[0x0008] USB Device Function Address Register

FADDR

Offset: 0x08 USB Device Function Address Register

Bits | Field | Descriptions
[6:0] | FADDR | USB Device Function Address

Definition at line 892 of file usbd_reg.h.

## ◆ FN

USBD_T::FN

[0x008c] USB Frame number Register

FN

Offset: 0x8C USB Frame number Register

Bits | Field | Descriptions
[10:0] | FN | Frame Number These bits contain the 11-bits frame number in the last received SOF packet.

Definition at line 906 of file usbd_reg.h.

## ◆ INTEN

USBD_T::INTEN

[0x0000] USB Device Interrupt Enable Register

INTEN

Offset: 0x00 USB Device Interrupt Enable Register

Bits | Field | Descriptions
[0] | BUSIEN | Bus Event Interrupt Enable Bit 0 = BUS event interrupt Disabled. 1 = BUS event interrupt Enabled.
[1] | USBIEN | USB Event Interrupt Enable Bit 0 = USB event interrupt Disabled. 1 = USB event interrupt Enabled.
[2] | VBDETIEN | VBUS Detection Interrupt Enable Bit 0 = VBUS detection Interrupt Disabled. 1 = VBUS detection Interrupt Enabled.
[3] | NEVWKIEN | USB No-event-wake-up Interrupt Enable Bit 0 = No-event-wake-up Interrupt Disabled. 1 = No-event-wake-up Interrupt Enabled.
[4] | SOFIEN | Start of Frame Interrupt Enable Bit 0 = SOF Interrupt Disabled. 1 = SOF Interrupt Enabled.
[8] | WKEN | Wake-up Function Enable Bit 0 = USB wake-up function Disabled. 1 = USB wake-up function Enabled.
[15] | INNAKEN | Active NAK Function and Its Status in IN Token 0 = When device responds NAK after receiving IN token, IN NAK status will not be updated to USBD_EPSTS0 and USBD_EPSTS1register, so that the USB interrupt event will not be asserted. 1 = IN NAK status will be updated to USBD_EPSTS0 and USBD_EPSTS1 register and the USB interrupt event will be asserted, when the device responds NAK after receiving IN token.

Definition at line 890 of file usbd_reg.h.

## ◆ INTSTS

USBD_T::INTSTS

[0x0004] USB Device Interrupt Event Status Register

INTSTS

Offset: 0x04 USB Device Interrupt Event Status Register

Bits | Field | Descriptions
[0] | BUSIF | BUS Interrupt Status The BUS event means that there is one of the suspense or the resume function in the bus. 0 = No BUS event occurred. 1 = Bus event occurred; check USBD_ATTR[3:0] to know which kind of bus event was occurred, cleared by write 1 to USBD_INTSTS[0].
[1] | USBIF | USB Event Interrupt Status The USB event includes the SETUP Token, IN Token, OUT ACK, ISO IN, or ISO OUT events in the bus. 0 = No USB event occurred. 1 = USB event occurred, check EPSTS0~5[2:0] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[1] or EPSTS0~11 and SETUP (USBD_INTSTS[31]).
[2] | VBDETIF | VBUS Detection Interrupt Status 0 = There is not attached/detached event in the USB. 1 = There is attached/detached event in the USB bus and it is cleared by write 1 to USBD_INTSTS[2].
[3] | NEVWKIF | No-event-wake-up Interrupt Status 0 = NEVWK event does not occur. 1 = No-event-wake-up event occurred, cleared by write 1 to USBD_INTSTS[3].
[4] | SOFIF | Start of Frame Interrupt Status 0 = SOF event does not occur. 1 = SOF event occurred, cleared by write 1 to USBD_INTSTS[4].
[16] | EPEVT0 | Endpoint 0's USB Event Status 0 = No event occurred in endpoint 0. 1 = USB event occurred on Endpoint 0, check USBD_EPSTS0[3:0] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[16] or USBD_INTSTS[1].
[17] | EPEVT1 | Endpoint 1's USB Event Status 0 = No event occurred in endpoint 1. 1 = USB event occurred on Endpoint 1, check USBD_EPSTS0[7:4] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[17] or USBD_INTSTS[1].
[18] | EPEVT2 | Endpoint 2's USB Event Status 0 = No event occurred in endpoint 2. 1 = USB event occurred on Endpoint 2, check USBD_EPSTS0[11:8] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[18] or USBD_INTSTS[1].
[19] | EPEVT3 | Endpoint 3's USB Event Status 0 = No event occurred in endpoint 3. 1 = USB event occurred on Endpoint 3, check USBD_EPSTS0[15:12] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[19] or USBD_INTSTS[1].
[20] | EPEVT4 | Endpoint 4's USB Event Status 0 = No event occurred in endpoint 4. 1 = USB event occurred on Endpoint 4, check USBD_EPSTS0[19:16] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[20] or USBD_INTSTS[1].
[21] | EPEVT5 | Endpoint 5's USB Event Status 0 = No event occurred in endpoint 5. 1 = USB event occurred on Endpoint 5, check USBD_EPSTS0[23:20] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[21] or USBD_INTSTS[1].
[22] | EPEVT6 | Endpoint 6's USB Event Status 0 = No event occurred in endpoint 6. 1 = USB event occurred on Endpoint 6, check USBD_EPSTS0[27:24] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[22] or USBD_INTSTS[1].
[23] | EPEVT7 | Endpoint 7's USB Event Status 0 = No event occurred in endpoint 7. 1 = USB event occurred on Endpoint 7, check USBD_EPSTS0[31:28] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[23] or USBD_INTSTS[1].
[24] | EPEVT8 | Endpoint 8's USB Event Status 0 = No event occurred in endpoint 8. 1 = USB event occurred on Endpoint 8, check USBD_EPSTS1[3 :0] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[24] or USBD_INTSTS[1].
[25] | EPEVT9 | Endpoint 9's USB Event Status 0 = No event occurred in endpoint 9. 1 = USB event occurred on Endpoint 9, check USBD_EPSTS1[7 :4] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[25] or USBD_INTSTS[1].
[26] | EPEVT10 | Endpoint 10's USB Event Status 0 = No event occurred in endpoint 10. 1 = USB event occurred on Endpoint 10, check USBD_EPSTS1[11 :8] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[26] or USBD_INTSTS[1].
[27] | EPEVT11 | Endpoint 11's USB Event Status 0 = No event occurred in endpoint 11. 1 = USB event occurred on Endpoint 11, check USBD_EPSTS1[ 15:12] to know which kind of USB event was occurred, cleared by write 1 to USBD_INTSTS[27] or USBD_INTSTS[1].
[31] | SETUP | Setup Event Status 0 = No Setup event. 1 = Setup event occurred, cleared by write 1 to USBD_INTSTS[31].

Definition at line 891 of file usbd_reg.h.

## ◆ LPMATTR

USBD_T::LPMATTR

[0x0088] USB LPM Attribution Register

LPMATTR

Offset: 0x88 USB LPM Attribution Register

Bits | Field | Descriptions
[3:0] | LPMLINKSTS | LPM Link State These bits contain the bLinkState received with last ACK LPM Token
[7:4] | LPMBESL | LPM Best Effort Service Latency These bits contain the BESL value received with last ACK LPM Token
[8] | LPMRWAKUP | LPM Remote Wakeup This bit contains the bRemoteWake value received with last ACK LPM Token

Definition at line 905 of file usbd_reg.h.

## ◆ SE0

USBD_T::SE0

[0x0090] USB Device Drive SE0 Control Register

SE0

Offset: 0x90 USB Device Drive SE0 Control Register

Bits | Field | Descriptions
[0] | SE0 | Drive Single Ended Zero in USB Bus The Single Ended Zero (SE0) is when both lines (USB_D+ and USB_D-) are being pulled low. 0 = Normal operation. 1 = Force USB PHY transceiver to drive SE0.

Definition at line 907 of file usbd_reg.h.

## ◆ STBUFSEG

USBD_T::STBUFSEG

[0x0018] SETUP Token Buffer Segmentation Register

STBUFSEG

Offset: 0x18 SETUP Token Buffer Segmentation Register

Bits | Field | Descriptions
[8:3] | STBUFSEG | SETUP Token Buffer Segmentation It is used to indicate the offset address for the SETUP token with the USB Device SRAM starting address The effective starting address is USBD_SRAM address + {STBUFSEG, 3'b000} Where the USBD_SRAM address = USBD_BA+0x100h. Note: It is used for SETUP token only.

Definition at line 896 of file usbd_reg.h.

## ◆ VBUSDET

USBD_T::VBUSDET

[0x0014] USB Device VBUS Detection Register

VBUSDET

Offset: 0x14 USB Device VBUS Detection Register

Bits | Field | Descriptions
[0] | VBUSDET | Device VBUS Detection 0 = Controller is not attached to the USB host. 1 = Controller is attached to the USB host.

Definition at line 895 of file usbd_reg.h.

The documentation for this struct was generated from the following file:

- Device/Nuvoton/M480/Include/usbd_reg.h