DSPRelated.com
Forums

TMS320VC5509 DSK, USB Data Transfer Inconsistency

Started by mgor...@yahoo.com May 22, 2007
Hello,
I am a grad student working on a DSP project for research and I haven't had much experience with DSP's and as such have run into a bit of a stumbling block. I am currently using the TMS320VC5509A evaluation board from Spectrum Digital and I am attempting to get USB communication running between the board and the pc. I have downloaded the sample USB code from Spectrum Digital listed below, and followed the instructions to run it.

Spectrum Digital USB Sample Code: http://c5000.spectrumdigital.com/evm5509a/files/usbexample/example_usb.html

I have installed LibUsb-Win32-0.1.8.0 and compiled the windows code under Visual Studio 2005 and the 5509A code under CC3.1, either with no errors. Both seem to run correctly and the pc detects the board once I begin execution and the drivers install. The sample program is able to detect the device and it runs through the simple send and receive test.

However my problem comes in there, while it runs the sample code I made some slight modifications to have it send and retrieve a 128 bit key value. The key appears to send correctly but when I go to do a bulk read to get the key back from the board I get garbage, however if I do it enough times it occasionally spits out parts of the key. I have used a USB sniffing utility to determine that the key is indeed being sent and garbage is indeed being returned so the problem looks like its resident to the code on the board.

I assumed this method should have worked as their code used the same buffer for in and out events, however doing a watch on the buffer showed that its value did not change and defiantly did not represent the key ever. Next, I tried putting breakpoints in the event handlers and it seemed that the event handlers were not being called consistently for reading from the board. I checked online and saw some people noting the APLL clock issue with USB, I double checked their configuration and APLL was enabled with a multiplier of 4x seeming that they handled it properly.

So with that out of the way I am a little stuck I tried to update to newer LibUSB drivers but the .in for the 5509A wouldn't work with the newer drivers. I've also tried a few other code fixes and tweaks, mostly just playing around and still can't get a message to send then receive back consistently or without garbage.

Thank you all for you help in advance, if I get a solution figured out before someone responds I will post, looks like other people have issues with USB on the TMS320VC5509A.

-Mike
Mike-

If you can't get it to work and run into a time constraint, another option you might
consider is an inexpensive USB daughtercard from Avnet or other supplier (I think
Avnet's is about USD 50). These come with C code and CCS project examples. We had
good success here using this approach with DSK 5510; maybe it would work out well on
DSK 5509 also.

-Jeff

m...@yahoo.com wrote:
>
> Hello,
> I am a grad student working on a DSP project for research and I haven't had much experience with DSP's and as such have run into a bit of a stumbling block. I am currently using the TMS320VC5509A evaluation board from Spectrum Digital and I am attempting to get USB communication running between the board and the pc. I have downloaded the sample USB code from Spectrum Digital listed below, and followed the instructions to run it.
>
> Spectrum Digital USB Sample Code: http://c5000.spectrumdigital.com/evm5509a/files/usbexample/example_usb.html
>
> I have installed LibUsb-Win32-0.1.8.0 and compiled the windows code under Visual Studio 2005 and the 5509A code under CC3.1, either with no errors. Both seem to run correctly and the pc detects the board once I begin execution and the drivers install. The sample program is able to detect the device and it runs through the simple send and receive test.
>
> However my problem comes in there, while it runs the sample code I made some slight modifications to have it send and retrieve a 128 bit key value. The key appears to send correctly but when I go to do a bulk read to get the key back from the board I get garbage, however if I do it enough times it occasionally spits out parts of the key. I have used a USB sniffing utility to determine that the key is indeed being sent and garbage is indeed being returned so the problem looks like its resident to the code on the board.
>
> I assumed this method should have worked as their code used the same buffer for in and out events, however doing a watch on the buffer showed that its value did not change and defiantly did not represent the key ever. Next, I tried putting breakpoints in the event handlers and it seemed that the event handlers were not being called consistently for reading from the board. I checked online and saw some people noting the APLL clock issue with USB, I double checked their configuration and APLL was enabled with a multiplier of 4x seeming that they handled it properly.
>
> So with that out of the way I am a little stuck I tried to update to newer LibUSB drivers but the .in for the 5509A wouldn't work with the newer drivers. I've also tried a few other code fixes and tweaks, mostly just playing around and still can't get a message to send then receive back consistently or without garbage.
>
> Thank you all for you help in advance, if I get a solution figured out before someone responds I will post, looks like other people have issues with USB on the TMS320VC5509A.
>
> -Mike