USB 2.0 discussion:Data communication via CY7C68001 | Cypress Semiconductor
USB 2.0 discussion:Data communication via CY7C68001
In our application design, we meet some difficulties about the CY7C68001 and hope to get your suggestions.
1. Use the USB 2.0 to deal with the CT graphic data communication between the host (PC) and the external master (DSP board: for data computing). We use the control and the bulk way for the communication. And the key issue is about the bulk way when using the CY7C68001.
2. Data stream consideration:
Step (1).get the graphic data (6300*6400, i.e, large number) at one time from the PC host and transmit to DSP board via USB 2.0 interface;
Step (2).the DSP board begins the step of data computing when receive the first lot of 6400 number, at this time it needs the host (PC) to pause the data transferring and wait for the data computing from external master (in DSP board);
Step (3).when the data computing (for the first lot 6400) has been finished and it will transmit the computed data to the PC host and ask the host (PC) to start the graphic data transferring again;
Step (4).the PC host begins the graphic data transferring (the second lot, also 6400); the same process begins (loop: step(2)-->step(3)-->step(2)-->step(3)-->step(2)...)the whole process will be in the end when the PC transfer the whole number.
3. Issues we hope to get suggestions
It locates in the bulk way when the PC host pause the process (transfer the data to the external master, i.e. the DSP board)
My way: every time, I send a token packet (e.g. all number is 4) via EP2, EP4 from the PC host to the external mater and then decide which steps to go: (1) continues to transmit data if receiving the same data as the token packet; (2) PC host pause the transmit when it receive the different data in a packet via the EP6, and the EP8
Also, when the DSP board wants begins the step (data computing), I let it transmit a token packet (e.g. all number is 4) to host via EP6 and the EP8. Sure it get the PC token data (a packet) firstly.
4. My own question:
Yes, the whole process can run smoothly at the beginning and I can get the correct computed data in the PC host while the process suspending. The symptom is: the PC transmits the error data or it suspends the process. I have studied the CY7C68001 data sheet these days. If I know correctly, the PC host will continues to transmit the same data if it cannot finish it successfully in the last time. And I am little confused about my data stream design. The PC can only play the role: (start the data transmit and pause data transferring). In normal situation, how to deal with my application?
P.S. I see the saying in the forum:Suspend condition cannot be sent to a USB device using EZ-USB Control panel/Cyconsole/Control center. It is initiated by the host when it is going into power saving modes or standby. Can I think the data stream is not proper in our application?
Thanks for your time and consideration.