Isochronous Endpoint Operation; Setting Up Of Dma Transfer; Finding The Dma Descriptor; Transferring The Data - Philips LPC214 Series User Manual

Table of Contents

Advertisement

Philips Semiconductors
Volume 1

14.14 Isochronous Endpoint Operation

In case of isochronous endpoint operation the packet size can vary on each and every
packet. There will be one packet per isochronous endpoint at every frame.

14.14.1 Setting up of DMA transfer

For Isochronous DMA descriptor the DMA length is set in terms of the number of frames
the transfer is to be made rather than the number of bytes. The DMA count is also updated
in terms of the number of frames.

14.14.2 Finding the DMA Descriptor

Finding the descriptor is done in the same way as that for a non isochronous endpoint.
DMA descriptor has a bit field in the word 1 (isochronous_endpoint) to indicate that the
descriptor belongs to an isochronous endpoint. Also, isochronous DD has a fifth word
showing where the packet length for the frame has to be put (for OUT endpoint) or from
where it has to be read.
DMA request will be placed for DMA enabled isochronous endpoints on every frame
interrupt. For a DMA request the DMA engine will fetch the descriptor and if it identifies
that the descriptor belongs to an Isochronous endpoint, it will fetch the fifth word of the DD
which will give the location from where the packet length has to be placed or fetched.

14.14.3 Transferring the Data

The data is transferred to or from the memory location pointed by the
dma_buffer_start_addr. After the end of the packet transfer the dma_count value is
incremented by 1.
For an OUT transfer a word is formed by combining the frame number and the packet
length such that the packet length appears at the least significant 2 bytes (15 to 0). Bit 16
shows whether the packet is valid or not (set when packet is valid i.e. it was received
without any errors). The frame number appears in the most significant 2 bytes (bit 31 to
17). The frame number is available from the USB device. This word is then transferred to
the address location pointed by the variable Isochronous_packet_size_memory_address.
The Isochronous_packet_size_memory_address is incremented by 4 after receiving or
transmitting an Isochronous data packet. The Isochronous_packet_size memory buffer
should be big enough to hold information of all packets sent by the host.
For an IN endpoint only the bits from 15 to 0 are applicable. An Isochronous data packet of
size specified by this field is transferred from the USB device to the Host in each frame. If
the size programmed in this location is zero an empty packet will be sent by the USB
device.
The Isochronous endpoint works only in the normal mode DMA operation.
An Isochronous endpoint can have only 'normal completion' since there is no short packet
on Isochronous endpoint and the transfer continues infinitely till a system error occurs.
Also, there is no data_over_run detection.
9397 750 XXXXX
User manual
Rev. 01 — 15 August 2005
UM10139
Chapter 14: USB Device Controller
© Koninklijke Philips Electronics N.V. 2005. All rights reserved.
240

Advertisement

Table of Contents
loading

This manual is also suitable for:

Lpc2148Lpc2141Lpc2142Lpc2144Lpc2146

Table of Contents