WWWBoard New Message: Message 647: *** URGENT!! Problem with Cypress FX2 ISO transfers|
WWWBoard: Message 647
[ Follow Ups ] [ Post Followup ] [ ]
Posted by Rick on 05/22/02 at 6:52 PM|
Subject: *** URGENT!! Problem with Cypress FX2 ISO transfers
I have purchased the Cypress FX2 development board am am writing my own windows application (Win2k) to transfer ISO data to and from the FX2.
I have written code for the FX2 that takes data that is in EP2OUT and transfers it to the EP6IN buffer so that the host can read it back (Both EPs
have a MaxPacketSize of 64). This transfer is done in the SOF interrupt service routine.
So, i've set up my application so that the user can specifiy the number of packets, number of buffers, etc (as in the control panel application) to
characterise the transfer. Therefore, the application takes the parameter values and writes data to the FX2 through pipe 0 (EP2OUT). The user then
prompts the application to read the data back through pipe 1 (EP6IN). However, when i attempt to read back the data that was written to the FX2, i
only get back a portion of the data.
Having performed many transfers with different parameter values, it seems that i can never read back more than 4 packets of data.
The following results were recorded.
# Pkts PktSize #Buffers Frms/Buffer #PktsReadBack Success
1 16 1 1 1 yes
2 16 1 1 1 no
2 16 2 1 2 yes
4 16 2 2 4 yes
4 16 2 1 3 no
4 16 1 2 4 yes
6 16 3 2 4 no
6 16 2 3 4 no etc.......
An interesting observation was that when there is only 1 buffer, the application seems to read back every second packet that was sent. I have a
feeling that there is something wrong with the way the buffer count is being used in the transfers.
I cannot find out where the problem lies. I am careful to reset the pipe before every ISO transfer. I have analysed the code for the control panel
application but i cannot find where i could be going wrong. I have also tried using both the control panel and my own application (ie. writing to the
FX2 with one app, and then reading from the FX2 with the other app, and vice versa) to try and pinpoint the location of the problem. It seems that
my application is not writing the whole burst of data. However, i know through these tests that my read isn't working either.
Could anyone provide me with some help on this problem???