09.12.2012 Views

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

USB on-the-go full-speed (OTG_FS) <strong>RM0090</strong><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_FS_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_FS_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 />

1. Program the characteristics of the required endpoint into the following fields of the<br />

OTG_FS_DIEPCTLx register (for IN or bidirectional endpoints) or the<br />

OTG_FS_DOEPCTLx register (for OUT or bidirectional endpoints).<br />

– Maximum packet size<br />

– USB active endpoint = 1<br />

– Endpoint start data toggle (for interrupt and bulk endpoints)<br />

– Endpoint type<br />

– TxFIFO number<br />

2. Once the endpoint is activated, the core starts decoding the tokens addressed to that<br />

endpoint and sends out a valid handshake for each valid token received for the<br />

endpoint.<br />

Endpoint deactivation<br />

This section describes the steps required to deactivate an existing endpoint.<br />

1129/1416 Doc ID 018909 Rev 3

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

Saved successfully!

Ooh no, something went wrong!