Table 4-1. USB Data Direction

Table 4-1. USB Data Direction

 

Rx

 

Tx

 

Device

OUT or SETUP

 

IN

 

Host

IN

 

OUT or SETUP

 

 

 

 

 

 

Addressing BDT Entries

Before describing how to access endpoint data via the USB or microprocessor, it is important to understand the BDT addressing mechanism. The BDT occupies up to 256 bytes of system memory. Sixteen bidirectional endpoints can be supported with a full BDT of 256 bytes. Eight bytes are needed for each USB endpoint direction. Applications with less than 16 endpoints require less Random Access Memory (RAM) to implement the BDT.

The BDT Page register points to the starting location of the BDT. The BDT must reside on a

256-byte boundary in system memory. All enabled TX and RX endpoint BD entries are indexed into the BDT for easy access via the USB or microprocessor.

When the USB receives a USB token on an enabled endpoint, it uses its integrated DMA controller to interrogate the BDT. The USB reads the corresponding endpoint BD entry to determine if it owns the BD and corresponding buffer in system memory. To compute the entry point in to the BDT, the BDT_PAGE register is concatenated with the current endpoint and the TX and ODD fields to form the following 16- bit address.

Table 4-2. 16-Bit USB Address

BIT

15

14

 

13

12

11

10

 

9

8

7

6

5

 

4

3

 

2

 

1

 

 

0

FIELD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ODD

 

 

 

 

 

 

 

 

 

BDT_PAGE REGISTER

 

 

 

 

END_POINT

 

TX

 

 

 

///

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RESET

0

0

 

0

0

0

0

 

0

0

0

0

0

 

0

0

0

 

0

 

0

RW

RW

RW

 

R

RW

RW

RW

 

RW

RW

RW

RW

RW

 

RW

RW

 

RW

 

RW

 

 

RW

 

 

Table 4-3. 16-Bit USB Address Definitions

 

 

 

Bits

Field Name

Description

15:8

BDT_PAGE

Register in the Control Block

 

REGISTER

 

7:4

END_POINT

Endpoint Field from the USB Token

3

TX

Transmit

 

 

Shows whether the USB core is transmitting or receiving data.

 

 

1 = USB core is transmitting data.

 

 

0 = USB core is receiving data.

2

ODD

Bit That the USB SIE Maintains

 

 

This bit corresponds to the buffer currently in use. Buffers are used in a ping-pong

 

 

fashion.

1:0

///

Reserved

Buffer Descriptor Formats

Buffer Descriptors (BDs) provide endpoint buffer control information for the USB and microprocessor. BDs have different meanings based on which unit is reading the descriptor in memory.

The USB controller and microprocessor use the data stored in the BDs to determine the items in Table 4-4.

34

Page 42
Image 42
Lantronix DSTni-EX 1. USB Data Direction, Addressing BDT Entries, 2. 16-Bit USB Address, 3. 16-Bit USB Address Definitions