Freescale Semiconductor ColdFire MCF52210 User Manual

Page 235

Advertising
background image

Universal Serial Bus, OTG Capable Controller

MCF52211 ColdFire® Integrated Microcontroller Reference Manual, Rev. 2

Freescale Semiconductor

15-7

Figure 15-5. Buffer Descriptor Byte Format

31:26

25:16

15:8

7

6

5 4 3 2

1

0

RSVD

BC

(10-Bits)

RSVD OWN DATA0/1

KEEP/

TOK_PID[3]

NINC/

TOK_PID[2]

DTS/ 5

TOK_PID[1]

BDT_STALL/

TOK_PID[0]

0 0

Buffer Address (32-Bits)

Table 15-3. Buffer Descriptor Byte Fields

Field Description

31 – 26

RSVD

Reserved

25 – 16
BC[9:0]

The Byte Count bits represent the 10-bit Byte Count. The USB-FS SIE changes this field upon the
completion of a RX transfer with the byte count of the data received.

15 – 8
RSVD

Reserved

7

OWN

If OWN=1 USB-FS has exclusive access to the BD. If OWN=0 the microprocessor has exclusive access to
the BD. This OWN bit determines who currently owns the buffer. The SIE generally writes a 0 to this bit when
it has completed a token, except when KEEP=1. The USB-FS ignores all other fields in the BD when
OWN=0. The microprocessor has access to the entire BD when OWN=0. This byte of the BD should always
be the last byte the microprocessor updates when it initializes a BD. After the BD has been assigned to the
USB-FS, the microprocessor should not change it in any way.

6

DATA0/1

This bit defines if a DATA0 field (DATA0/1=0) or a DATA1 (DATA0/1=1) field was transmitted or received. It is
unchanged by the USB-FS.

5

KEEP/

TOK_PID[3]

If KEEP equals 1, after the OWN bit is set it remains owned by the USB-FS forever. KEEP must equal 0 to
allow the USB-FS to release the BD when a token has been processed. Typically this bit is set to 1 with ISO
endpoints that are feeding a FIFO. The microprocessor is not informed that a token has been processed,
the data is simply transferred to or from the FIFO. The NINC bit is normally also set when KEEP=1 to prevent
address increment. If KEEP=1 this bit is unchanged by the USB-FS, otherwise bit 3 of the current token PID
is written back in to the BD by the USB-FS.

4

NINC/

TOK_PID[2]

The No INCrement bit disables the DMA engine address increment. This forces the DMA engine to read or
write from the same address. This is useful for endpoints when data needs to be read from or written to a
single location such as a FIFO. Typically this bit is set with the KEEP bit for ISO endpoints that are interfacing
to a FIFO. If KEEP=1 this bit is unchanged by the USB-FS, otherwise bit 2 of the current token PID is written
back in to the BD by the USB-FS.

3

DTS/

TOK_PID[1]

Setting this bit enables the USB-FS to perform Data Toggle Synchronization. When this bit is 0 no Data
Toggle Synchronization is performed. If KEEP=1 this bit is unchanged by the USB-FS, otherwise bit 1 of the
current token PID is written back in to the BD by the USB-FS.

2

BDT_STALL

TOK_PID[0]

Setting this bit causes the USB-FS to issue a STALL handshake if a token is received by the SIE that would
use the BDT in this location. The BDT is not consumed by the SIE (the owns bit remains and the rest of the
BDT are unchanged) when a BDT-STALL bit is set.
If KEEP=1 this bit is unchanged by the USB-FS, otherwise bit 0 of the current token PID is written back in
to the BD by the USB-FS

TOK_PID[n]

Bits [5:2] can also represent the current token PID. The current token PID is written back in to the BD by the
USB-FS when a transfer completes. The values written back are the token PID values from the USB
specification: 0x1 for an OUT token, 0x9 for and IN token or 0xd for a SETUP token.
In host mode this field is used to report the last returned PID or a transfer status indication. The possible
values returned are: 0x3 DATA0, 0xb DATA1, 0x2 ACK, 0xe STALL, 0xa NAK, 0x0 Bus Timeout, 0xf Data
Error.

Advertising
This manual is related to the following products: