Other Parts Discussed in Thread: CONTROLSUITE, DESIGNDRIVE, C2000WARE
Tool/software: Code Composer Studio
Hello,
I have posted on here recently with a problem related apparently to the CCS debugger or perhaps the CCS projects included in the controlSuite support software. I have validated that this problem does not exist with the usb_dev_serial_cpu1 project.
We recently purchased the DesignDRIVE Development Kit IDDK as shown here: www.ti.com/.../TMDXIDDK379D. We then developed software around the TI chip and this development board using the IDDK controlSuite project, but we have noticed that when we launch the debugger within CCS, the code loads onto the controller and the debugger runs to main(). When we proceed into the main() function with or without breakpoints, a USB com port does not shown to be enumerated in Windows Device Manager, and we sometimes receive a Windows notification that the last USB device was not recognized. After purchasing the DesignDRIVE kit, it seemed logical that we would begin software development with the IDDK controlSuite project.
When we use the usb_dev_serial_cpu1 project from controlSuite, we can still load the code onto the controlCARD. But the difference is that when this project halts at main() and we step into main() with or without breakpoints set, the Windows Device Manager does show a USB COM port enumerated under "Ports (COM & LPT)". Clearly, after we terminate the debugger and disconnect the USB cables from the host PC the COM port disappears. However, this [assumingly correct] behavior only occurs when running the usb_dev_serial_cpu1 project. What is the difference between these two projects? It is desired to replicate the behavior of the usb_dev_serial_cpu1 project in other CCS projects, specifically the IDDK_PM_Servo_F2837x-v2 project.
When debugging both projects, usb_dev_serial_cpu1 and IDDK_PM_Servo_F2837x-v2, I believe I isolated the problem to the function call void *USBDCDCInit(uint32_t ui32Index, tUSBDCDCDevice *psCDCDevice) within the TI USB libraries. The execution of this call in the usb_dev_serial_cpu1 project causes the enumeration of a COM port in Device Manager. However, the same execution of this call in the IDDK_PM_Servo_F2837x-v2 project does not cause the enumeration of the COM port. When looking into the USB library, namely the file usbdcdc.c/.h, I see that USBDCDCInit contains a call to USBDCDCCompositeInit(ui32Index, psCDCDevice, 0) as well as a call to USBDCDInit(ui32Index, &psInst->sDevInfo, (void *)psCDCDevice).
Thank you for the help on this matter,
Earl Green