09.12.2012 Views

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

USB on-the-go high-speed (OTG_HS) <strong>RM0090</strong><br />

Endpoint initialization on enumeration completion<br />

1. On the Enumeration Done interrupt (ENUMDNE in OTG_HS_GINTSTS), read the<br />

OTG_HS_DSTS register to determine the enumeration speed.<br />

2. Program the MPSIZ field in OTG_HS_DIEPCTL0 to set the maximum packet size. This<br />

step configures control endpoint 0. The maximum packet size for a control endpoint<br />

depends on the enumeration speed.<br />

3. In DMA mode, program the DOEPCTL0 register to enable control OUT endpoint 0, to<br />

receive a SETUP packet.<br />

– EPENA bit in DOEPCTL0 = 1<br />

At this point, the device is ready to receive SOF packets and is configured to perform control<br />

transfers on control endpoint 0.<br />

Endpoint initialization on SetAddress command<br />

This section describes what the application must do when it receives a SetAddress<br />

command in a SETUP packet.<br />

1. Program the OTG_HS_DCFG register with the device address received in the<br />

SetAddress command<br />

1. Program the core to send out a status IN packet<br />

Endpoint initialization on SetConfiguration/SetInterface command<br />

This section describes what the application must do when it receives a SetConfiguration or<br />

SetInterface command in a SETUP packet.<br />

1. When a SetConfiguration command is received, the application must program the<br />

endpoint registers to configure them with the characteristics of the valid endpoints in<br />

the new configuration.<br />

2. When a SetInterface command is received, the application must program the endpoint<br />

registers of the endpoints affected by this command.<br />

3. Some endpoints that were active in the prior configuration or alternate setting are not<br />

valid in the new configuration or alternate setting. These invalid endpoints must be<br />

deactivated.<br />

4. Unmask the interrupt for each active endpoint and mask the interrupts for all inactive<br />

endpoints in the OTG_HS_DAINTMSK register.<br />

5. Set up the Data FIFO RAM for each FIFO.<br />

6. After all required endpoints are configured; the application must program the core to<br />

send a status IN packet.<br />

At this point, the device core is configured to receive and transmit any type of data packet.<br />

Endpoint activation<br />

This section describes the steps required to activate a device endpoint or to configure an<br />

existing device endpoint to a new type.<br />

1287/1416 Doc ID 018909 Rev 3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!