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.

TMS320F28388D: Regarding switch between HOST (MSC) and DEV (CDC) with C28x CPU1 USB

Part Number: TMS320F28388D

Hi experts, 

I'm asking again because the link below is locked.

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1121025/tms320f28388d-regarding-switch-between-host-msc-and-dec-cdc-with-c28x-cpu1-usb/4158527#4158527

My customer wants to use CDC and MSC with dual USB detect.
They set up to use CDC and MSC based on usb_ex8_dual_detect example.

However, after the device boots, the device only recognizes CDC.
Once the CDC is recognized, the MSC can be recognized.

I want to know how to connect MSC first. Why usb_ex8_dual_detect examples can connect to MSC only after connecting CDC?

Below are additional customer surveys.

When the device is connected with CDC, f28x_USB0DualModeIntHandler () (usb_hal.c)
Seems to be called periodically. The device is then calling this function even though they unplug the CDC's USB cable.
If this function is called, the device can be recognized when the MSC is connected.

However, this interrupt function will not be called unless the CDC is connected. Therefore, it seems that MSC cannot connect.
How do they program to get this interrupt called without connecting the CDC?

Best regards,
Sasaki

  • Hi,

    The subject matter expert is out of office due to holiday break. Please expect response by 1st week of January. Sincere apology for inconvenience.

    Regards, Santosh

  • Hi Santosh-san,

    Thank you for your reply.

    Do you have any update?

    Best regards,
    Sasaki

  • Saski,

    Sorry for the delayed response on this issue.

    I ran the usb_ex8_dual_detect example with only a mass storage device connected and it triggered the interrupt "USB0DualModeIntHandler" without having to do setup the CDC.  

    If nothing is connected, the interrupt will not be generated. USBHCDMain function is periodically called to determine if there is any change in the device . 

    f28x_USB0DualModeIntHandler will be periodically tirggered to determine if there is any state change on the device connected. 

    I don't see anything wrong with this example. 

    Pls provide more information to reprdouce this issue.

    Best Regards

    Siddharth

  • Hi Siddharth-san,

    Thank you for your support.

    This question is closed because I didn't reproduce the problem in the example.

    Best regards,
    Sasaki