This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[Concerto] - USB Host MSC problem

Other Parts Discussed in Thread: CONTROLSUITE

Hello,

I want to use the USB port of the M3 on the Concerto to write data to an USB Flash stick.

I downloaded the latest controlSuite (V2.6.0) from the TI website. When I try to build the "usb_host_msc_m3" example, I get several errors. After a while I found out that the usblib was corrupted. To solve this problem I did a rebuild of the usblib.lib.

After that, the example compiles well, I can load the code into the device and I can run the example. But when I connect an USB flash drive to the USB port ( I use the cable included with the development kit)  the code gets in an endless loop in the function call USBHCDPipeWrite as showed in the attached picture.

I tried the example with 3 different USB flash drives, but the problem exists.

I placed 2 jumpers on the connectivity mux. M3_USB0PFLT to PJ1_GPIO57 and M3_USB0DM to PG2_GPIO42. When I remove this jumpers, the code will run without the endless loop problem but it will not recognize the flash drive. I can see this on my serial terminal.

USB Mass Storage Host program

NODEV> Unknown device connected. UNKNOWN> Unknown device disconnected. NODEV>

But I think removing the 2 jumpers is not the way to go...?!

Has anyone the same problem with this example or are there some ideas to fix this problem?

Thanks in advance!

3s

Concerto: F28M35H52C1

CCSv4.2.4

 Update (16u45) I did some extra trials. The usb_host_mouse example works well. So a hardware problem/jumper problem can be eleminated I think.

  • 3sRol,

    Actually this is a known bug which has already been fixed internally.  The issue is that the linker command file the project uses allocates all of the data to the C0 and C1 Rams, which are not DMA accessible.  This example tries to copy from USB to the RAM, but fails because the DMA can't access the buffers.  You should be able to fix the example by editing the linker command file to put data and bss in C2 or C3.


    Try something like this:

        .vtable :   > C3
        .data   :   > C3
        .bss    :   > C3
        .sysmem :   > C3
        .stack  :   > C3

    A fix will be released in the next version of CS.

    Trey

  • Thanks for your answer! I have the example working. I still have some problems to implement the USB host functionality in my application... I will come back if the problem don't get solved...

    3sRol