PIC24FJ128GB MICROCHIP [Microchip Technology], PIC24FJ128GB Datasheet - Page 199

no-image

PIC24FJ128GB

Manufacturer Part Number
PIC24FJ128GB
Description
64/80/100-Pin, 16-Bit Flash Microcontrollers with USB On-The-Go (OTG)
Manufacturer
MICROCHIP [Microchip Technology]
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
PIC24FJ128GB106-I/MR
Manufacturer:
MICROCHIP
Quantity:
54 574
Part Number:
PIC24FJ128GB106-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC24FJ128GB106-I/PT
0
Part Number:
PIC24FJ128GB106T-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC24FJ128GB106T-I/PT
0
Part Number:
PIC24FJ128GB108-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC24FJ128GB108T-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC24FJ128GB110-I/PF
Manufacturer:
Microchip Technology
Quantity:
10 000
Company:
Part Number:
PIC24FJ128GB210-I/PT
Quantity:
119
17.1
Endpoint buffer control is handled through a structure
called the Buffer Descriptor Table (BDT). This provides
a flexible method for users to construct and control
endpoint buffers of various lengths and configurations.
The BDT can be located in any available, 512-byte
aligned block of data RAM. The BDT Pointer
(U1BDTP1) contains the upper address byte of the
BDT, and sets the location of the BDT in RAM. The user
must set this pointer to indicate the table’s location.
The BDT is composed of Buffer Descriptors (BDs)
which are used to define and control the actual buffers
in the USB RAM space. Each BD consists of two, 16-bit
“soft” (non-fixed-address) registers, BDnSTAT and
BDnADR, where n represents one of the 64 possible
BDs (range of 0 to 63). BDnSTAT is the status register
for BDn, while BDnADR specifies the starting address
for the buffer associated with BDn.
FIGURE 17-2:
© 2008 Microchip Technology Inc.
Total BDT Space:
PPB1:PPB0 = 00
Note:
No Ping-Pong
128 bytes
Buffers
USB Buffer Descriptors and the
BDT
Memory area not shown to scale.
EP0 Rx
Descriptor
EP0 Tx
Descriptor
EP1 Rx
Descriptor
EP1 Tx
Descriptor
EP15 Tx
Descriptor
BDT MAPPING FOR ENDPOINT BUFFERING MODES
Ping-Pong Buffer
PPB1:PPB0 = 01
Total BDT Space:
on EP0 OUT
132 bytes
EP0 Rx Even
Descriptor
EP0 Rx Odd
Descriptor
EP0 Tx
Descriptor
EP1 Rx
Descriptor
EP1 Tx
Descriptor
EP15 Tx
Descriptor
PIC24FJ256GB110 FAMILY
Preliminary
Ping-Pong Buffers
PPB1:PPB0 = 10
Total BDT Space:
on all EPs
256 bytes
Depending on the endpoint buffering configuration
used, there are up to 64 sets of buffer descriptors, for a
total of 256 bytes. At a minimum, the BDT must be at
least 8 bytes long. This is because the USB specifica-
tion mandates that every device must have Endpoint 0
with both input and output for initial setup.
Endpoint mapping in the BDT is dependent on three
variables:
• Endpoint number (0 to 15)
• Endpoint direction (Rx or Tx)
• Ping-pong settings (U1CNFG1<1:0>)
Figure 17-2 illustrates how these variables are used to
map endpoints in the BDT.
In Host mode, only Endpoint 0 buffer descriptors are
used. All transfers utilize the Endpoint 0 buffer descriptor
and Endpoint Control register (U1EP0). For received
packets, the attached device’s source endpoint is
indicated by the value of ENDPT3:ENDPT0 in the USB
status register (U1STAT<7:4>). For transmitted packet,
the attached device’s destination endpoint is indicated
by the value written to the Token register (U1TOK).
EP0 Rx Even
Descriptor
EP0 Rx Odd
Descriptor
EP0 Tx Even
Descriptor
EP0 Tx Odd
Descriptor
EP1 Rx Even
Descriptor
EP1 Rx Odd
Descriptor
EP1 Tx Even
Descriptor
EP1 Tx Odd
Descriptor
EP15 Tx Odd
Descriptor
Ping-Pong Buffers
PPB1:PPB0 = 11
Total BDT Space:
on all other EPs
except EP0
248 bytes
DS39897B-page 197
EP0 Rx
Descriptor
EP0 Tx
Descriptor
EP1 Rx Even
Descriptor
EP1 Rx Odd
Descriptor
EP1 Tx Odd
Descriptor
EP15 Tx Odd
Descriptor
EP1 Tx Even
Descriptor

Related parts for PIC24FJ128GB