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.

TMS320F28377D: USB Host Mouse or keyboard demo examples unable to detect the mouse or keyboard device attached to it

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Hello there,

For the sake of validating our custom board I was trying to run the usb_host_msc, usb_host_keyboard and the usb_host_mouse examples. Out of these 3 examples only the usb_host_msc works, i.e., I am able to connect a USB memory stick and it is detected by the host and I can execute any of the commands provided by the example app. When I tried to run the usb_host_keyboard and the usb_host_mouse examples the host was not able to recognize the devices although they are HID compliant keyboard and mouse (at least that's what I see in Windows Device Manager), the device enumeration does not even start.

In our board the GPIO46 and GPIO47, which on the F2837x controlCARD Rev 1.3 are used for VBUS and USB-ID, are used for the external memory interface and the power to the USB side (+5V)  is always available. To account for the fact that the two GPIOs are not available I commented out the lines from the USBGPIOEnable() function setting the direction for GPIO46 and GPIO47.

Another difference from the F2837x controlCARD Rev 1.3 is that our board uses an USB Isolator (ADuM3160) that is connected so that the power to the upstream port becomes available on board power up.

My question is what can be the cause of the host not recognizing the keyboard or mouse devices?

Thanks a lot,

Doru

  • It may be in part due to the drivers. Please make sure you are using the latest drivers in C2000Ware. Also see if the device examples are recognized by your PC as well as a test.

    sal
  • Hi Sal,

    Thanks for taking your time to answer to my post.

    The usb_host_msc, usb_host_keyboard and the usb_host_mouse examples are taken from the "C2000Ware_1_00_01_00\device_support\f2837xd\examples\cpu1" folder. I also tried the usb_dev_serial example (from the same folder), it was actually the first one that I tried, but it did not work. 

    You mentioned about drivers but I'm not sure what you mean, in the usb_host_msc, usb_host_keyboard and the usb_host_mouse examples, the F28377D USB port is configured to work as a host so there would not be need for any drivers.

    Our board has a USB type A female connector as it is intended to work as a host. When the mouse or keyboard is attached to the host the D- signal goes high and that is supposed to signal the host to start the enumeration process but nothing happens, the D+ and D- signals remain flat. Is there anything else that would signal the host that a device was attached?

    Thanks,

    Doru

  • There are windows usb drivers that should be used with our MCUs.

    Please see C:\ti\c2000\C2000Ware_1_00_00_00\utilities\windows_drivers

    sal
  • Hi Sal,

    When I try the usb_dev_serial example the D+ and D- lines both stay low, which means that the USB device doesn't even attempt to start the enumeration procedure. Because of that Windows does not see any new USB device when I attach the cable between our 320F28377D based board and the PC; therefore I don't get to the point of needing to install  Windows drivers.

    Thanks,

    Doru

  • Hi Sal,

    I now know why the USB_HOST_Keyboard and USB_HOST_Mouse do not work; the ADuM3160 USB isolator that we're using cannot accommodate negotiating USB bus speed as the bus speed is set via pull-up or pull-down resistors connected to the USB isolator SPU and SPD pins.

    The mouse and keyboard devices are low speed devices but the USB isolator is set for full speed so only full speed devices can work.

    Thanks for your time,

    Best regards,

    Doru

  • Doru, Thanks for letting me know. Glad you got it worked out.

    sal