English
Language : 

CC2510FX Datasheet, PDF (172/253 Pages) List of Unclassifed Manufacturers – True System-on-Chip with Low Power RF Transceiver and 8051 MCU
CC2510Fx / CC2511Fx
OUT endpoints generate interrupts by
setting the interrupt flags in the USBOIF
register in the following situations:
• A data packet has been received.
USBCSOL.OUTPKT_RDY has been
set.
• A STALL condition has been
generated by the hardware.
13.15.6.5 Bulk/Interrupt IN Endpoint
Interrupt IN transfers occur at regular
intervals while bulk IN transfers utilize
available bandwidth not allocated to
isochronous, interrupt and control
transfers and can happen at any time.
Interrupt IN endpoints may set the
USBCSIH.FRC_DATA_TOG bit. When this
bit is set the data toggle bit is continuously
toggled regardless of whether an ACK was
received. This feature is typically used by
interrupt IN endpoints that report rate
feedback for isochronous endpoints.
A Bulk/Interrupt IN endpoint can be stalled
by setting the USBCSIL.SEND_STALL bit
to 1. When the endpoint is stalled the USB
Controller will respond with a STALL
handshake to IN tokens. The
USBCSIL.SENT_STALL bit will then be
set and an interrupt will be generated.
A bulk transfer longer than the maximum
packet size is performed by splitting the
transfer into a number of data packets of
maximum size followed by a smaller data
packet containing the remaining bytes. If
the transfer length is divisible by the
maximum packet size a zero length data
packet is sent last. Thus, a packet with a
size less than the maximum packet size
denotes the end of the transfer. The
AutoSet feature can be useful in this case,
since many data packets will be of
maximum size.
13.15.6.6 Isochronous IN Endpoint
An isochronous IN endpoint is guaranteed
to be able to send exactly one data packet
every USB frame and is typically used to
send a continous stream of data.
If there is no data packet loaded in the IN
FIFO when the USB host requests data,
the USB Controller sends a zero length
data packet. The USBCSIL.UNDERRUN bit
will be set and an interrupt will be
generated.
Double buffering requires the data packet
to be loaded during the frame before the
packet is sent. If the first data packet is
loaded before an IN token is received the
data packet will be sent during the same
frame the packet is loaded which violates
the double buffering strategy. Thus, when
double buffering is used, the
USBPOW.ISO_WAIT_SOF bit should be set
to avoid this. Setting this bit will ensure
that a loaded data packet is not sent until
the next SOF token has been received.
The AutoSet feature will typically not be
used for isochronous endpoints since the
packet size will increase or decrease from
frame to frame to match the source data
rate.
Notice that an isochronous endpoint
cannot be stalled.
13.15.6.7 Bulk/Interrupt OUT Endpoint
Interrupt OUT transfers occur at regular
intervals while bulk OUT transfers utilize
available bandwidth not allocated to
isochronous, interrupt and control
transfers and can happen at any time.
A Bulk/Interrupt OUT endpoint can be
stalled
by
setting
the
USBCSOL.SEND_STALL bit to 1. When the
endpoint is stalled the USB Controller will
respond with a STALL handshake when
the host is done sending the data packet.
The data packet is discarded and is not
placed in the OUT FIFO. The USB
Controller
will
set
the
USBCSOL.SENT_STALL bit and generate
an interrupt when the STALL handshake is
sent.
As the AutoSet feature is useful for bulk IN
endpoints, the AutoClear feature is useful
for OUT endpoint since many packets will
be of maximum size.
13.15.6.8 Isochronous OUT Endpoint
An isochronous OUT endpoint is
guaranteed to receive exactly one data
packet every USB frame and is typically
used to receive a continous stream of
data.
If there is no buffer available when a data
packet is being received the
CC2510Fx/CC2511Fx PRELIMINARY Data Sheet (Rev. 1.2) SWRS055A Page 172 of
252