38.7.14 Device Endpoint x Configuration Register
Name: | USBHS_DEVEPTCFGx |
Offset: | 0x0100 + x*0x04 [x=0..8] |
Reset: | 0 |
Property: | Read/Write |
Bit | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | |
Access | |||||||||
Reset |
Bit | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | |
Access | |||||||||
Reset |
Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | |
NBTRANS[1:0] | EPTYPE[1:0] | AUTOSW | EPDIR | ||||||
Access | R/W | R/W | R/W | R/W | R/W | R/W | |||
Reset | 0 | 0 | 0 | 0 | 0 | 0 |
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
EPSIZE[2:0] | EPBK[1:0] | ALLOC | |||||||
Access | R/W | R/W | R/W | R/W | R/W | R/W | |||
Reset | 0 | 0 | 0 | 0 | 0 | 0 |
Bits 14:13 – NBTRANS[1:0] Number of transactions per microframe for isochronous endpoint
This field should be written with the number of transactions per microframe to perform high-bandwidth isochronous transfer.
It can be written only for endpoints that have this capability (see USBHS_FEATURES.ENHBISOx bit). Otherwise, this field is 0.
This field is irrelevant for non-isochronous endpoints.
Value | Name | Description |
---|---|---|
0 | 0_TRANS | Reserved to endpoint that does not have the high-bandwidth isochronous capability. |
1 | 1_TRANS | Default value: one transaction per microframe. |
2 | 2_TRANS | Two transactions per microframe. This endpoint should be configured as double-bank. |
3 | 3_TRANS | Three transactions per microframe. This endpoint should be configured as triple-bank. |
Bits 12:11 – EPTYPE[1:0] Endpoint Type
This field should be written to select the endpoint type:
This field is cleared upon receiving a USB reset.
Value | Name | Description |
---|---|---|
0 | CTRL | Control |
1 | ISO | Isochronous |
2 | BLK | Bulk |
3 | INTRPT | Interrupt |
Bit 9 – AUTOSW Automatic Switch
This bit is cleared upon receiving a USB reset.
Value | Description |
---|---|
0 | The automatic bank switching is disabled. |
1 | The automatic bank switching is enabled. |
Bit 8 – EPDIR Endpoint Direction
This bit is cleared upon receiving a USB reset.
0 (OUT): The endpoint direction is OUT.
1 (IN): The endpoint direction is IN (nor for control endpoints).
Bits 6:4 – EPSIZE[2:0] Endpoint Size
This field should be written to select the size of each endpoint bank:
This field is cleared upon receiving a USB reset (except for endpoint 0).
Value | Name | Description |
---|---|---|
0 | 8_BYTE | 8 bytes |
1 | 16_BYTE | 16 bytes |
2 | 32_BYTE | 32 bytes |
3 | 64_BYTE | 64 bytes |
4 | 128_BYTE | 128 bytes |
5 | 256_BYTE | 256 bytes |
6 | 512_BYTE | 512 bytes |
7 | 1024_BYTE | 1024 bytes |
Bits 3:2 – EPBK[1:0] Endpoint Banks
This field should be written to select the number of banks for the endpoint:
For control endpoints, a single-bank endpoint (0b00) should be selected.
This field is cleared upon receiving a USB reset (except for endpoint 0).
Value | Name | Description |
---|---|---|
0 | 1_BANK | Single-bank endpoint |
1 | 2_BANK | Double-bank endpoint |
2 | 3_BANK | Triple-bank endpoint |
3 | Reserved |
Bit 1 – ALLOC Endpoint Memory Allocate
This bit is cleared upon receiving a USB reset (except for endpoint 0).
Value | Description |
---|---|
0 | Frees the endpoint memory. |
1 | Allocates the endpoint memory. The user should check the USBHS_DEVEPTISRx.CFGOK bit to know whether the allocation of this endpoint is correct. |