FX2LP control endpoint 0

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
avjz
Level 1
Level 1
5 sign-ins First reply posted First question asked

Hi,

FX2LP control endpoint 0 is able to transfer more than 64 bytes. How that could be explained?. The control center device info shows 64 bytes for the control endpoint 0. Is it the hardware versus software limitation?.

 

0 Likes
1 Solution
MallikaK_22
Moderator
Moderator
Moderator
50 likes received 750 replies posted 250 solutions authored

Hi,

EP0 is a fixed 64 byte wide endpoint. It uses a single 64 byte buffer for both IN and OUT transfers, so the maximum packet size can be 64 bytes.

In control center if the 'bytes to transfer' is chosen to be more than 64 bytes, then the no of packets will increase while each packet being of 64 bytes, i.e. larger size of data will be split into 64 bytes packet. This will be taken care by the Control Center.

Regards,

 

View solution in original post

6 Replies
MallikaK_22
Moderator
Moderator
Moderator
50 likes received 750 replies posted 250 solutions authored

Hi,

EP0 is a fixed 64 byte wide endpoint. It uses a single 64 byte buffer for both IN and OUT transfers, so the maximum packet size can be 64 bytes.

In control center if the 'bytes to transfer' is chosen to be more than 64 bytes, then the no of packets will increase while each packet being of 64 bytes, i.e. larger size of data will be split into 64 bytes packet. This will be taken care by the Control Center.

Regards,

 

using cypress library , I am also able to send/receive 256 bytes (long nBytes = 256;). Does the cypress library handles data buffers of more than 64 bytes the same way?. i.e., internally dividing the 256 data requests and handles them in chunks of 64 bytes?.

0 Likes
avjz
Level 1
Level 1
5 sign-ins First reply posted First question asked

any update reply?.

0 Likes
MallikaK_22
Moderator
Moderator
Moderator
50 likes received 750 replies posted 250 solutions authored

Please provide details : which Cy library you are referring to and which API are you using?

Regards,

Mallika

 

0 Likes

.NET:

https://www.cypress.com/file/53111/download

Cypress CyUSB .NET DLL Programmer's Reference

page 28:

int len = 256; byte[] buf = new byte[len]; CtrlEndPt.XferData(ref buf, ref len);

page 88:

int len = 128; byte[] buf = new byte[len];

CtrlEndPt.Write(ref buf, ref len);

n is 256 or less.

CyUSB::CyControlEndpoint ^ctrlEp;

ctrlEp→Target=CyConst::TGT_DEVICE;

etc.

ctrlEp→write(buf, n);

0 Likes
MallikaK_22
Moderator
Moderator
Moderator
50 likes received 750 replies posted 250 solutions authored

Hi,

The host controller also handles and takes care and of splitting into 64 bytes chunks.

Regards,

Mallika

0 Likes