Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > CY7C68013A (FX2LP) isochronous IN transfer problem

Bookmark and Share
Cypress Developer CommunityTM
Forums | Videos | Blogs | Training | Rewards Program | Community Components



CY7C68013A (FX2LP) isochronous IN transfer problem
Moderator:
RSKV

Post Reply
Follow this topic



CY7C68013A (FX2LP) isochronous IN transfer problem

chris posted on 04 Aug 2009 2:59 PM PST
Member
5 Forum Posts
We have a device that uses a CY7C68013A chip to transfer video data. It is configured to perform isochronous transfers at 3x 1024 bytes per microframe, using endpoint 2 with quad-buffered 1024 byte FIFOs. Streaming video can have a varying data rate, though, so not every transfer is filled up. It is said that the FX2LP can automatically send zero-length packets when necessary, but in practice transfers shorter than 2048 bytes are improperly transmitted, causing the transaction error bit to be set by the host USB controller. This happens whether we use externally generated data fed into the FIFOs or manually generate data and commit packets with the firmware. Is there anything special one has to do to commit short transfers? Do we have to set anything to enable automatic zero-length packets? Thanks.


Re: CY7C68013A (FX2LP) isochronous IN transfer problem

aasi posted on 05 Aug 2009 10:31 PM PST
Cypress Employee
1090 Forum Posts
I don't think there is anything to be set to do that. What do you mean by transaction error bit is set... i mean does it mean turn-around time error or corrupted packet... In either case do you try using a CATC trace to analyze what is actually going on in the bus...

Re: CY7C68013A (FX2LP) isochronous IN transfer problem

chris posted on 05 Aug 2009 08:07 AM PST
Member
5 Forum Posts
As far as I can tell, the EHCI controller sets bit 28 in the relevant isochronous transfer descriptor (XactErr). From the EHCI specification, section 3.3.2:

"Set to a one by the Host Controller during status update in the case where the host did not receive a valid response from the device (Timeout, CRC, Bad PID, etc.). This bit may only be set for isochronous IN transactions."

I was under the impression that when the FX2LP receives a SOF, it looks for FIFOs that are committed and sends out however much it can, padding with zero-length packets as needed to avoid errors. Whatever it is doing, though, the host controller does not accept it.

For short transfers I send as many full packets of 1024 as possible and then a short packet, e.g. 1536 would be split into 1024 + 512. For some reason packets of exactly 2048 work (1024 + 1024), but any shorter does not. Perhaps the controller does not accept short packets followed by zero-length packets? This seems inconsistent with the specification and with common sense.

I have considered using a USB analyzer but they are rather pricey.

Re: CY7C68013A (FX2LP) isochronous IN transfer problem

aasi posted on 06 Aug 2009 04:09 AM PST
Cypress Employee
1090 Forum Posts
You have set FX2LP to respond with 3 iso packets per microframe. If the 2nd or 1st packet sent is a short packet then FX2LP will not be sending any packets for the rest of the microframe. I remember reading it in the TRM. Have you tried sending partial packets in the 3rd packet i.e packet size between 2048 and 3072 to see if this error occurs...

Re: CY7C68013A (FX2LP) isochronous IN transfer problem

chris posted on 06 Aug 2009 02:37 PM PST
Member
5 Forum Posts
Sending packets with total length between 2048 and 3072 does work. However, if I want to send a packet shorter than that (1024, for example), what am I supposed to do?

Re: CY7C68013A (FX2LP) isochronous IN transfer problem

aasi posted on 06 Aug 2009 09:09 PM PST
Cypress Employee
1090 Forum Posts
I've not read the host spec and am not sure if the host is supposed to ask for 3 packets in a microframe when the first or second packet is a short packet... without the CATC trace we can't be sure whether the host is actually querying or setting error since the number of packets received is less... if possible i'll do some probing on my side and update you on what i observe....

Re: CY7C68013A (FX2LP) isochronous IN transfer problem

chris posted on 07 Aug 2009 09:07 AM PST
Member
5 Forum Posts
As far as I can tell the host just sends out a SOF packet every microframe, and the device responds (in the 3x case) with PIDs of DATA2, DATA1, and DATA0 in that order. I was under the impression that the FX2LP handles all of this data synchronization automatically, though.

Re: CY7C68013A (FX2LP) isochronous IN transfer problem

aasi posted on 07 Aug 2009 09:57 AM PST
Cypress Employee
1090 Forum Posts
nah.... the host has to send IN tokens for the device to respond with packets... SOF just marks the start of the (micro)frame...

Re: CY7C68013A (FX2LP) isochronous IN transfer problem

chris posted on 07 Aug 2009 10:49 AM PST
Member
5 Forum Posts
Yes that is right, I forgot. Well, if you can find out what is going on it would be great, since I have been working on this for weeks and cannot figure it out.

Re: CY7C68013A (FX2LP) isochronous IN transfer problem

aasi posted on 16 Aug 2009 03:17 PM PST
Cypress Employee
1090 Forum Posts
Dude i've been caught with some crazy stuff lately... will ping u with my probing as soon as i can... btw when it comes to high bandwidth like your case the device would be sending mdata PIDs....




ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Spec No: None; Sunset Owner: KXP; Secondary Owner: VWA; Sunset Date: 01/01/20