Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > How to get continuative data access

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



How to get continuative data access
Moderator:
RSKV

Post Reply
Follow this topic



How to get continuative data access

mylogic posted on 06 Sep 2012 2:02 AM PST
Member
4 Forum Posts

 

How to get continuative data access without "Not Ready Signal from FX3"?

Since my system does not have external memory, there is no way to keep saving data (Analog to Digital Data), if "Not ready signal("low") from FX3 occurs.

My system has two DMA channels with Async Slave FIFO Interface (One for U2P and The other one for P2U).

The required transfer rate for U2P is 1,500 Kbytes/sec, and That for P2U is 3,000 KBytes/sec. Both rate is exact number.
Thus total transfer rate is 4.39453125 MBytes/sec.

Since required transfer rate for each End Point, the size of buffer has been allocated in different size as below.

Firmware (FX3)
 -DMA Buffer Size
    - U2P : 64Kbytes  [Size (8KBytes) * Buffer Count (8)]   at Ep 0x02
    - P2U : 128Kbytes [Size (16KBytes) * Buffer Count (8)]  at Ep 0x82
Host PC (Intel I5, 4 GBytes Memory, Mother Board Support Both USB 3.0 and 2.0)
 - this.inDataEp.XferSize = 256KBytes;
 - this.outDataEp.XferSize = 256KBytes;

Since my system MUST work on USB 2.0, I think it is impossible to increase brust length more than one.

Currently, in aging test, "Not ready signal" occurs in about 5 hours(but actually ramdomly), and FX3 gives "ready signal" about 1ms later, after it occurs.

This is a fatal error. Please help me to solve this problem.
 




Re: How to get continuative data access

RSKV posted on 06 Sep 2012 04:20 AM PST
Cypress Employee
655 Forum Posts

Hi,

I have a comment about the following line:

"Since my system MUST work on USB 2.0, I think it is impossible to increase brust length more than one"

You can have burst length set to any value between 1 to 16 and still it can work on USB2.0.

You can set the burst length based on the USB speed that you detect in the firmware. As you know the descriptors for Super speed and USB2.0 are different. So it should not be any issue in using burst.

Thanks,

sai krishna.



Re: How to get continuative data access

mylogic posted on 06 Sep 2012 04:33 PM PST
Member
4 Forum Posts

Thank you very much.

In USBBulkSourceSink, burstLen of ep config is set as

"epCfg.burstLen = (usbSpeed == CY_U3P_SUPER_SPEED) ? (CY_FX_EP_BURST_LENGTH) : 1;".

So, I thought burst lengh more one is not appliable for USB 2.0.






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.