packetend, auto commit and buffers for FX3

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

cross mob
MaXi_1246331
Level 4
Level 4
50 replies posted 25 replies posted 10 replies posted

Previously I develop firnware of FX2P. It has a conception of auto commit for an in endpoint. If the packet end signal does not asserted and data are continuously written into the in endpoint. The data would be auto commited. What is the meanning of commit. Does it mean the end of a packet. Does the similarity exists for FX3? I remmeber I should set the auto commit option for FX2L, but I have not seen the setting of auto commit for FX3.

Another question is: Does one packet have to exclusively occupy a buffer no matter how short the packet is?

0 Likes
1 Solution
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello,

COMMIT - Transfer of buffer handle from one block to another (For example, from GPIF II to USB).

The concept of AUTO/MANUAL COMMIT exists in both FX2LP and FX3. In FX2LP< the EPxAUTOINLEN registers determine when the buffer is committed to the USB side. In the case of FX3, the AUTO commit of data is taken care if the DMA channel is set to be of type AUTO and the buffer is full. The CyU3PDmaChannelCreate() API contains parameters to specify the size of each buffer and the type of DMA channel.

Data can only be committed in terms of buffers and not as individual bytes. So, even if a buffer is filled with a short packet, the entire buffer is committed.

Best regards,
Srinath S

View solution in original post

0 Likes
2 Replies
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello,

COMMIT - Transfer of buffer handle from one block to another (For example, from GPIF II to USB).

The concept of AUTO/MANUAL COMMIT exists in both FX2LP and FX3. In FX2LP< the EPxAUTOINLEN registers determine when the buffer is committed to the USB side. In the case of FX3, the AUTO commit of data is taken care if the DMA channel is set to be of type AUTO and the buffer is full. The CyU3PDmaChannelCreate() API contains parameters to specify the size of each buffer and the type of DMA channel.

Data can only be committed in terms of buffers and not as individual bytes. So, even if a buffer is filled with a short packet, the entire buffer is committed.

Best regards,
Srinath S

0 Likes

Thank you, the question is perfectly answered.

0 Likes