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.

LAUNCHXL-F28069M: F28069M USB serial device

Part Number: LAUNCHXL-F28069M
Other Parts Discussed in Thread: TMS320F28069, , C2000WARE, TMDSCNCD28069ISO

Hi,

We are working on  TMS320F28069 microcontroller and we are using LAUNCHXL-F28069M launchpad for the evaluation and feasibility.

We are planning to use the F28069 USB peripheral for serial data transfer by using the CDC driver.

There are example projects available in the C2000Ware directory that we can use for this purpose.

C:\ti\C2000Ware_3_04_00_00_Software\device_support\f2806x\examples\c28\usb_dev_serial

So for evaluating this feature how we can use the LAUNCHXL-F28069M launchpad? How the USB interface/cable from the PC can be connected to the

LAUNCHXL-F28069M launchpad for evaluating the USB serial device functionality?

Regards,

Shijo Thomas

  • Hi Shijo,

    Are you wanting to use the USB module integrated into the F28069 device? The LAUNCHXL-F28069M has a XDS100v2 debug probe on the board which serves as a USB to UART adapter and for JTAG connection to the host PC. This is what the USB port on the board connects to. Would sending / receiving serial data using that port work OK for your needs?

    If you want to use the USB module on the F2806x, I'd suggest using TMDSCNCD28069ISO instead since it has a dedicated USB port for the USB module. i.e. +D / -D / VBUS connections. On the LaunchPad you'd have to use some custom wiring and connector to make the USB connection to PC work.

    Best,

    Kevin

  • Hi Kevin,

    Thanks for the reply.

    We are planning to use the USB module integrated into the F28069 device itself. The USB to UART interface over XDS100v2 debug probe is used for printing debug messages.

    We actually wanted to use the USB peripheral of the F28069 itself for CDC serial data transfer. We are developing the hardware which actually have circuitry to connect the F28069  USB peripheral lines to PC using mini-B connector. So we just want do some feasibility of this using the Launchpad before the actual HW is developed.

    As you suggest we can use the TMDSCNCD28069ISO, but initially we are trying to use the  LaunchPad itself.

    Could you please provide some information about the custom wiring/circuitry that we can do to make the USB connection to PC work using the LaunchPad.

    Regards,

    Shijo Thomas

  • Hi Shijo,

    OK understand.The HW connection requirements are documented in the USB section of the F2806x device TRM. See image below for the gist.

    I think you should be able to use a breadboard, jumper wires, and through-hole components to make this work. A through-hole USB connector that can connect to the breadboard seems simplest to me, but maybe you can do some fancy wire soldering to some other USB connector pins.

    Alternatively you could cut a USB cable you have and connect / solder to the respective signal wires.

    Best,

    Kevin

  • Hi Kevin,

    Thanks for the response.

    Based on the above diagram, we only requires a 100K resister and the USB cable for make it work? The diodes are internal to the controller and are enabled by default?

    There are some doubts regarding the USB serial application. Could you please provide some information regarding the following points.

    1. Basically, we have are developing windows based UI application. Our intention is to communicate from the windows application to the F28069 controller using the USB serial communication. So for this can we use any of the following the examples

    C:\ti\C2000Ware_3_04_00_00_Software\device_support\f2806x\examples\c28\usb_dev_serial  or

    C:\ti\C2000Ware_3_04_00_00_Software\device_support\f2806x\examples\c28\usb_dev_bulk

    2. When the above examples are used, the F28069 device will be detected as a USB to serial device? Like a USB to serial convertor. So that we can open any serial terminal like putty and send/receive data from F28069?

    3. For connecting from the Windows 10, weather we need to have different driver files? Already some driver files are available in the folder

    C:\ti\C2000Ware_3_04_00_00_Software\utilities\windows_drivers

     These drivers will work for Windows 10?

    4. The controller is used as USB device mode? In this case, the VBUS connection to the controller is necessary? Only the D+ and D- connection are sufficient?

     

    Regards,

    Shijo Thomas

  • Hi Shijo,

    Based on the above diagram, we only requires a 100K resister and the USB cable for make it work? The diodes are internal to the controller and are enabled by default?

    That's right, the ESD diodes shown are internal to the device GPIO.

    2. When the above examples are used, the F28069 device will be detected as a USB to serial device? Like a USB to serial convertor. So that we can open any serial terminal like putty and send/receive data from F28069?

    Yes, that's essentially right. The virtual serial port for the 'usb_dev_bulk' example is just for display messages from the application, it demonstrates bulk data transfer as well. Suggest reviewing the comments at the top of the main .c example files for a description of the application.

    3. For connecting from the Windows 10, weather we need to have different driver files? Already some driver files are available in the folder

    C:\ti\C2000Ware_3_04_00_00_Software\utilities\windows_drivers

     These drivers will work for Windows 10?

    I'm not certain if they work on Win10 by default. If not, see the E2E below for a potential fix.

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/619710/tms320f28062-usb-drivers-for-bulk-mode-on-windows-10

    4. The controller is used as USB device mode? In this case, the VBUS connection to the controller is necessary? Only the D+ and D- connection are sufficient?

    Recommend reading section 17.2.4 'VBus Recommendations' in the f2806x TRM doc. I don't believe V_BUS monitoring is required in your case.

    Best,

    Kevin

  • Hi Kevin,

    Thanks for the response.

    Does the USB peripheral requires external oscillator to work.?

    External crystal is not connected in the F28069 Launchpad which we are using.

    When the example code executed, the code stuck SysCtrlInit @     while(!SysCtrlRegs.PLL2STS.bit.PLL2LOCKS);

    Regards,

    Shijo Thomas

  • Hi Shijo,

    I think it should work with the internal oscillator if you want to try that. You'll need to change SysCtrlInit() function since it's set-up for 20 MHz XTAL by default.

    This E2E may be helpful too: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/113671/problem-in-executing-usb-examples-on-piccollo-f2806x-devices

    Best,

    Kevin

  • Hi Kevin,
    The project is built and run successfully. But having some issues while connecting to the PC (Windows 10). While connecting to PC the following message is popped up and, in the Device Manager it is listed as Unknown USB device.
    The device descriptor request is getting failed? What could be the issue.?? I have tried to update the driver form folder. the C:\ti\c2000\C2000Ware_3_02_00_00\utilities\windows_drivers 
    But that also not succeeded.
    Regards,
    Shijo Thomas
  • Hi Shijo,

    The project is built and run successfully.

    You've confirmed the example SW does not get stuck anywhere while running and debugging the code?

    The 'device descriptor request failed' error might be an issue on the windows PC side. Searching online it seems there's a number of things you can try. i.e. different USB port on your PC, re-installing the USB drivers, etc.

    You may need to try re-installing the drivers following the method from the E2E post below:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/619710/tms320f28062-usb-drivers-for-bulk-mode-on-windows-10

    Best,

    Kevin

  • Hi Kevin,

    I have confirmed that the example code is working correctly. The f28x_USB0DeviceIntHandler ISR is triggered whenever the USB cable is connected to the PC and the breakpoint inside the while loop also hits. 

    I have tried different methods in the forum posts as suggested, but no use. Always shows that "The best driver for your device is already installed".

    Found another post similar to my issue.

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/936712/ccs-launchxl-f28379d-implement-a-usb-device-peripheral-in-launchxl-f28379d

    In this case also, he is facing the same issue. This is also not resolved.

    Any idea that the serial example has been checked by connecting to Windows 10 PC?

    Regards,

    Shijo Thomas

  • Hi Shijo,

    Sorry this issue is becoming more difficult than anticipated.

    Just to confirm you're using the 'usb_dev_serial.inf' file and not the one for 'dev_bulk'? Something you could alternatively try is the 'usb_dev_bulk' example with installing the respective driver .inf file being used/installed.

    Any idea that the serial example has been checked by connecting to Windows 10 PC?

    I believe it has and that drivers were updated in C2000WARE to work with Windows 10 some time ago, as mentioned in the prior E2E below.

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/675527/tms320f28069-in-search-of-signed-usb_dev_bulk-driver-for-windows-10

    I'll see about testing the example myself if I can find a controlCard to use.

    Best,

    Kevin

  • Hi Kevin,

    I have tried both the examples and inf files. Could you please clarify what you meant by "respective driver .inf file being used/installed."

    The steps for drive installation followed is Update Driver>Browse>C:\ti\c2000\C2000Ware_4_00_00_00\utilities\windows_drivers and click Next

    After this step always getting the message

    Also tried installing by Righ click> install by7 selecting the inf file.

    Is this the correct step for driver update. Any other method I need to follow?

    Regards,

    Shijo Thomas

  • Hi Shijo,

    I have tried some different things on my windows 10 machine and the TMDSCNCD28069ISO board. I am seeing something different than you.

    1. I tried running the example without manually installing the drivers provided in C2000WARE. The USB device was detected by windows and the example ran OK. I had not previously installed the drivers too.
    2. I tried manually installing the drivers with the same 'browse for drivers on your computer' method you used. The following is what I saw:
    3. Then after resetting my PC:
    4. And re-trying to install the driver

    The example works fine after all these steps too. Maybe it's still a hardware issue. Can you provide a picture of your HW set-up?

    If you're open to getting the TMDSCNCD28069ISO board you could try with that since it has the USB circuitry / connector included on-board. Alternatively it might help to look at that board's schematic/design (see J200 connector), however I think the ID and VBUS circuitry isn't necessary for your case. You can find the files in the directory below:

    C:\ti\c2000\C2000Ware_4_00_00_00\boards\controlCARDs\TMDSCNCD28069ISO\R0_4

    Best,

    Kevin

  • Hi Kevin,

    I could able to solve the issue by modifying the clock configuration. Actually we are using 10Mhz external crystal.

    But the example projects are based on 20MHz. 

    After modifying the PLL2 Multiplier to 12, the device is detected on PC

      SysCtrlRegs.PLL2MULT.bit.PLL2MULT = 12;

    The USB peripheral requires a fixed clock input of 60MHz?

    The device is shown as TiwaWare USB serial port on the PC. Can we assign custom Name for the device?

    Thanks for the support.

    Regards,

    Shijo Thomas

  • Hi Shijo,

    That explains it, good to hear you found the issue. I had thought you were using the zero-pin oscillator earlier, which is 10 MHz as well. The TMDSCNCD28069ISO has a 20 MHz crystal on-board which the SW example is designed for.

    The USB peripheral requires a fixed clock input of 60MHz?

    That's right, the below is from the USB TRM section:

    To use the USB Controller, the clock for the USB controller must first be configured. USBCLK is driven via the second PLL within the chip. The PLL should be configured to operate at 60MHz via the PLL2CTL, PLL2MULT, PLL2STS registers.

    The device is shown as TiwaWare USB serial port on the PC. Can we assign custom Name for the device?

    You can change some of the descriptions / definitions in the .inf file and re-install the driver I believe. Maybe there's an easier way, but I'm not certain.

    Best,

    Kevin