6. Write the TOKEN register with a SETUP to Endpoint 0, the peripheral device default
control pipe (TOKEN=0xD0). This initiates a setup token on the bus followed by a
data packet. The device handshake is returned in the BDT PID field after the packets
complete. When the BDT is written, a Token Done (ISTAT[TOKDNE]) interrupt is
asserted. This completes the setup phase of the setup transaction.
7. To initiate the data phase of the setup transaction (that is, get the data for the GET
DEVICE DESCRIPTOR command), set up a buffer in memory for the data to be
transferred.
8. Initialize the current even or odd TX EP0 BDT to transfer the data.
• Set the BDT command word to 0x004000C0 – BC to 64 (the byte count of the
data buffer in this case), OWN bit to 1, Data toggle to Data1.
• Set the BDT buffer address field to the start address of the data buffer
9. Write the TOKEN register with an IN or OUT token to Endpoint 0, the peripheral
device default control pipe, an IN token for a GET DEVICE DESCRIPTOR
command (TOKEN=0x90). This initiates an IN token on the bus followed by a data
packet from the device to the host. When the data packet completes, the BDT is
written and a Token Done (ISTAT[DNE]) interrupt is asserted. For control transfers
with a single packet data phase this completes the data phase of the setup transaction.
10. To initiate the status phase of the setup transaction, set up a buffer in memory to
receive or send the zero length status phase data packet.
11. Initialize the current even or odd TX EP0 BDT to transfer the status data.
• Set the BDT command word to 0x00000080 – BC to 0 (the byte count of the
data buffer in this case), OWN bit to 1, Data toggle to Data1.
• Set the BDT buffer address field to the start address of the data buffer
12. Write the TOKEN register with a IN or OUT token to Endpoint 0, the peripheral
device default control pipe, an OUT token for a GET DEVICE DESCRIPTOR
command (TOKEN=0x10). This initiates an OUT token on the bus followed by a
zero length data packet from the host to the device. When the data packet completes,
the BDT is written with the handshake from the device and a Token Done
(ISTAT[TOKDNE]) interrupt is asserted. This completes the data phase of the setup
transaction.
To send a full speed bulk data transfer to a peripheral device:
Host Mode Operation Examples
K22F Sub-Family Reference Manual, Rev. 4, 08/2016
1112 NXP Semiconductors