I'm new to the dsp/bios in general, and I' m currently learning how to use the BIOSUSB. I've followed the instructions in the T.I. manuals and I've built the "USB_Dev_Hid" example as it is given in the manuals.
I can build and run the example, however I cannot reproduce the output results as stated in the manual. Also when I run the example (with the usb pluged in) I get the following windows error :
"usb device not recognized."
It looks like something goes wrong during the enumeration of the usb device. By usb device I mean my evaluation board that has a C6748 on-board, which the usb is connected to.
CCS Version: 4.2.4.00033,
Has anyone seen this before?
1. Please try connecting the device to USB port of PC after running the program.
2. Hard reset the board each time before running new example.
3. Also, please try connecting the device to different ports of PC.
thanks for the reply,
I have tried your approach but no effect, the same error comes up everytime I plug in the board to any USB port of the PC (even if plugged in after running the program). I was wondering, maybe a driver is needed, maybe a jungo USB host/PC driver?
I've run the DSPBIOS/BIOSUSB HID Device example on the OMAP-L137 EVM. On my Windows XP box, I did not need a driver. It showed up as HID keyboard. I vaguely remember it shows up in the Device Manager once in the USB tree and once in the Keyboard tree. I expect you probably see an exclamation marked item instead. Debugging USB connnection problems are notoriously difficult. Maybe try a different USB cable. Try a shorter one. Or put a powered hub in between.
thanks for the reply, I've tried different cables but no effect, I'll try the usb hub tomorrow to see if the error persists. I'm also trying to find out a way to check the device enumeration, I want to find out what the PC detects and specifies it asdevice not recognized (it could be zero's or some weird number..).
If the device got as far as enumeration, the device manager properties on the device will display a PID_nnnn and VID_nnnn. Its under the Details tab, Hardward Ids item. I have my doubts it got that far. There a a few software USB info utilities out there. Microsoft used to offer UVCView tool as a separate download. It's now bundled up in the DDK/WDK. Try "Thesycon USB Descriptor Dumper" at:
For really low-level USB debugging, you'll have to go with a HW USB sniffer. I've used the one from Ellisys (http://www.ellisys.com). The SW that comes with is pretty good.
you're correct it doesn't get very far the device manager shows PID and VID as zeros: USB\VID_0000&PID_0000\6&18AB60CE&0&4
Unfortunately I couldn't get my hands on a self powered usb hub, I have a normal usb hub (powered by the USB port) .
However, I think it won't be the power , initially I connected the my EVM Board to the PC through the USB and I get the error you know. Then I connected a keyboard directly to the Board to check if there will be any comms, but no success there (as expected).
Then I connected the hub to the PC usb port, the hub gets power from the PC and it is normally detected as shown in device manager (its light is also on).
I also connected a usb keyboard on the hub and that also got detected normally, however when I connect the EVM board with the C6748 on board on the hub (or on the PC usb Port), when I run the program I get the usb device not recognized error in windows although the hub light is still on (indicates that the hub gets powered up).
Also there is a procedure (described in BIOSUSB_UserGuide, page 20, section 7) which states that the power management library (ti.biosusb.pm.a674) needs to be linked with BIOSUSB stack along with PWRM libraries to enable power management capabilities in the USB stack. But I do not know how to link those libraries. In section 7 it is stated to follow the steps in example usbhosthid_pm in section 9.6, which in turn if you have CCS4 reverts you back to section 7? Have you done this step?
Also, the latest weird thing that happened which seems relevant, is that I connected a USB mouse on to the hub and I get the same usb device not recognized error. However when I connect the same mouse on the PC usb port it gets detected and works!. but it is not the hub because I connect a USB keyboard on it, and the keyboard works. Also the mouse can't be faulty because it works when I connect it to the PC usb port.?
It worked out of the box for me. I don't remember messing about with PWRM. I used CCS3.x. Not sure if CCS3 and CCS4 would have any difference. And there may be slight differences between the OMAP-L137 in my case and TMS320C6748 demo code in your case. As far are processor and USB controller peripheral are concerned, they should be the same.
USB hubs can both fix and break. Hubs can fix speed mismatches but can break protocol level stuff. The mouse probably doesn't quite handle talking to a hub but the keyboard does. I remember the HID demo allows you to force full speed rather than high speed. Maybe try that. Can't remember if you need to force device mode. I think the BIOSUSB stack probably does that.
I am continuing on this issue, and currently I've build to test the simpler version of the T.I. sample code from the BIOSUSB user guide, the: usb_dev_hid_sample.pjt. I have placed breakpoints everywhere in the code, and I have noticed that within the "keyboard_sample.c" inside the "hw_kbd_init(..)" when the program calls the "keyboard_test_task(void *args) " the actual call is:
" rc = jthread_create(keyboard_test_task, kbd_ctx, THREAD_PRIORITY_DEVICE_HID_SAMPLE, NULL);"
the windows warning/error appears on the lower right corner of my monitor which is: USB device not recognised.
of course after that the sample program does not work as the user guide describes (although the main thread shows running) since the host has failed to enumerate the device (USB device not recognised).
Anyone has had a similar issue?
I spent a lot of time debugging the Jungo USB driver and trying to implement a CDC-ACM driver, and along the way learnt a lot about USB. Most critically when debugging, however, is that there are a number of USB messages and operations that are time critical, so putting in break points actually breaks the code / USB, similarly any excessive use of printf or function that takes a long time and blocks the scheduler/DSP will also break the USB.
I'm not sure where you are headed with your USB developments, but I would point out the TI does not support custom development on the USB using the Jungo USB driver, so should you want to implement a serial port / bulk transfer methods for your DSP then these are beyond the scope of what TI engineers can help you about. If you are interested in a virtual serial port implementation for the C6747, have a look here :
or email me or message me in the forum,
Dr Peter Myerscough-Jackopson - Principal Engineer Tel: +44 (0)23 8076 7808 Fax: +44 (0)23 8076 0602 Web: http://www.macltd.com/ Email: firstname.lastname@example.org MULTIPLE ACCESS COMMUNICATIONS LIMITED is a company registered in England at Delta House, The University of Southampton Science Park, Southampton, SO16 7NS, United Kingdom with Company Number 1979185 and VAT Number GB 411942866
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.