<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Isochronus Usb Device in LPC2468</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/23758/isochronus-usb-device-in-lpc2468</link><description> 
Hi Techies, Presently we are working on LPC2468 OEM Board for
isochronus transfer in USB Device. 

 
Can anybody exaplains the hardware behaviour(Registers use) with
isochronus data transfer for IN and OUT in LPC2468. 

 
Our quiries are 
1.When we</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Isochronus Usb Device in LPC2468</title><link>https://community.arm.com/thread/100640?ContentTypeID=1</link><pubDate>Tue, 13 May 2008 08:18:25 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:978d395b-9479-497f-88b0-81ea5ad775e5</guid><dc:creator>Tsuneo Chinzei</dc:creator><description>&lt;p&gt;&lt;p&gt;
Above example code also supports DMA using conditional
compilation.&lt;br /&gt;
Search &amp;quot;#if USB_DMA #endif&amp;quot; pair on the example code. The example
code will help you to understand the description on the
datasheet.&lt;/p&gt;

&lt;p&gt;
The usbcfg.h defines the keys.&lt;/p&gt;

&lt;pre&gt;
usbcfg.h
#define USB_DMA             0
#define USB_DMA_EP          0x00000040
&lt;/pre&gt;

&lt;p&gt;
&lt;br /&gt;
Modify it directly&lt;br /&gt;
OR&lt;br /&gt;
apply uVision Config wizard to usbcfg.h to enable DMA on the isoc
EPs&lt;/p&gt;

&lt;p&gt;
There are several scheme for the synchronization of isoc EP. Above
example applies synchronized EP, popular for PCM audio. In this
scheme, the number of the data on a packet represents the sampling
rate.&lt;/p&gt;

&lt;p&gt;
For example, when the sampling rate is 8kHz, each packet has 8
pairs of data for each channel.&lt;br /&gt;
To represent fractional sampling rate, say 44.1kHz, packets with 44
or 45 pairs are used. Usually, 44 pairs are transferred, but 45 pairs
are sent every 10 transfers.&lt;br /&gt;
44 * 9/10 + 45 * 1/10 = 44.1&lt;/p&gt;

&lt;p&gt;
This requirement makes the DMA descriptor complicated.&lt;/p&gt;

&lt;p&gt;
Tsuneo&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Isochronus Usb Device in LPC2468</title><link>https://community.arm.com/thread/76269?ContentTypeID=1</link><pubDate>Mon, 12 May 2008 22:27:48 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:e1db0899-b4c9-49be-aa76-881de1a7331e</guid><dc:creator>Embedded Device</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thanks Tsueno, That&amp;#39;s what exactly I want. But right now we are
implementing the Isoch through DMA.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Isochronus Usb Device in LPC2468</title><link>https://community.arm.com/thread/49864?ContentTypeID=1</link><pubDate>Mon, 12 May 2008 14:00:05 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:e902fe5d-4426-493a-8a55-5b7a6b145cda</guid><dc:creator>Tsuneo Chinzei</dc:creator><description>&lt;p&gt;&lt;p&gt;
LPC2468 has both of USB device and host function.&lt;br /&gt;
You seem asking about the USB device side, not for the host.&lt;/p&gt;

&lt;p&gt;
The USB device function on LPC2468 is almost same as LPC214x and
LPC236x-237x. Then, these examples on the KEIL web pages show the
isoc endpoint (EP) handling.&lt;/p&gt;

&lt;p&gt;
LPC2148 USB Audio Device Example&lt;br /&gt;
&lt;a href="http://www.keil.com/download/docs/308.asp"&gt;http://www.keil.com/download/docs/308.asp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
LPC2368 / LPC2378 USB Audio Device Example&lt;br /&gt;
&lt;a href="http://www.keil.com/download/docs/334.asp"&gt;http://www.keil.com/download/docs/334.asp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
In the USB 1.0/1.1 spec, the bInterval of isoc EP is fixed to 1ms,
a packet per single USB frame of full-speed (FS). Though the USB 2.0
spec allows other setting for bInterval, FS isoc EP is usually driven
in 1ms interval, because of this historical reason. The isoc EPs on
LPC family is designed following this 1ms custom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&amp;quot;1. how can we know that which Endpoint is received/transmition
(was success for IN)the data? ... after getting the frame interrupt
what we have to do?&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
Isoc EP doesn&amp;#39;t directly generate any interrupt on this MCU.&lt;br /&gt;
You have to check each isoc endpoint in the SOF (Start Of FRAME)
interrupt service routine (ISR).&lt;/p&gt;

&lt;p&gt;
For OUT EP, check Receive Packet Length register (USBRxPLen),
PKT_RDY, DV and PKT_LNGTH fields. If it is valid data, read out it.
If it isn&amp;#39;t, drop the packet.&lt;/p&gt;

&lt;p&gt;
For IN EP, just send the next packet.&lt;br /&gt;
There is no flag which shows success on the last packet. The isoc
protocol doesn&amp;#39;t care if the packet may drop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&amp;quot;2. What is the use of Start of Frame (11 bits) value? How can we
use it?What information it contains?&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
It&amp;#39;s the frame number, attached to the SOF packet.&lt;br /&gt;
Each SOF packet has this frame number, incremented by one on each
frame.&lt;br /&gt;
Tracking this number on each SOF (FRAME) interrupt, drop of SOF
reception is detected.&lt;/p&gt;

&lt;p&gt;
Tsuneo&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>