How to read data from Endpoint of a CY7C68001 ?

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

cross mob
Anonymous
Not applicable
        Hi!   
   
I am using a CY7C68001 that i access from a FPGA.   
   
I use the standard endpont settings as below:   
EP2 Bulk OUT, 512 bytes/packet, 2x buffered   
EP4 Bulk OUT, 512 bytes/packet, 2x buffered   
EP6 Bulk IN, 512 bytes/packet, 2x buffered   
EP8 Bulk IN, 512 bytes/packet, 2x buffered   
   
I have managed to write down the descriptor to the chip and it does also enumerates   
when the USB connector is connected to my PC.   
   
I have managed to send data from my FPGA via the cypress chip using Endpoint 6.   
I receive the data in my PC in my own VB program that uses the CyUSB driver.   
   
Now, my problem is that i just does not understand how to receive data in the FPGA   
when data is sent in the opposite direction (PC->FPGA) using Endpoint 2.   
   
My questions are:   
   
Q1   
I send smaller batches of data than the buffer size of 512 bytes.   
I plan to use the empty flag to check if there is any data in the endpoint buffer.   
How do i know how many data bytes to read from the buffer?   
   
Or must i alwayas read all 512 bytes and then myself figure out how much useful data i received?   
   
Q2   
When i have read data from the Endpoint buffer, how do i tell the cypress chip that i am ready   
with the endpoint buffer and it can be used for the next batch of data?   
   
Any help would be helpful.   
   
BR Paul   
0 Likes
0 Replies