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.

TM4C123GH6PM: USB (Ubuntu)

Part Number: TM4C123GH6PM

Hi Community Members,

We use TM4C123GH6PM in our project. We would like to use 3 serial ports. Using usb library, in windows 7 and 10, we create 3 different com ports. However, in ubuntu 16.04 we see only one ACM (ttyACM0). ttyACM1 and ttyACM2 do not show up. The followings are reported:

usb 2-1: Product: Virtual COM Port

usb 2-1: Manufacturer: Texas Instruments

usb 2-1: SerialNumber: 12345678

cdc_acm 2-1:1.0: ttyACM0: USB ACM device

cdc_acm: probe of 2-1:1.2 failed with error -22

cdc_acm: probe of 2-1:1.4 failed with error -22

usb 2-1: USB disconnect, device number 3

How can we solve that problem?

Thank you very much.

  • Hello Tufan,

    Unfortunately I have no real experience with ubuntu. That you got it working in Win 10 and then can't get it showing up on ubuntu makes me think of two possibilities:

    1) There is a flaw with the implementation that Windows is not catching - this could be something like misnumbered endpoints or reusing endpoint numbers

    or

    2) Ubuntu isn't allowing the TM4C device to enumerate all end points and only is enumerating the first one - maybe something 'driver' related on the ubuntu side?

    For either case, I would recommend you use a USB analyzer to see what is different between successful enumeration in Win 10 and what is going on with ubuntu including if there is any packets that seem to be rejected by ubuntu. The USB analyzer will also let you track endpoint numbers and assignments to make sure they are being assigned and enumerated correctly.

    Hopefully that gives you some ideas on what to work towards.

    Best Regards,

    Ralph Jacobi

  • Hello Ralph,

    Thank you very much for your detailed answer. I solved the problem. I am sharing the solution so that other users can benefit:

    I was using the library of TivaWare_C_Series-2.1.1.71. I changed it with the library of TivaWare_C_Series-2.2.0.295 which includes driverlib, inc and usblib folders. In order to do that:

    1) I downloaded SW-TM4C-USBL-2.2.0.295.exe from TI website and installed it.

    2) I put rvmdk folder of TivaWare_C_Series-2.1.1.71 including usblib.lib into my project folder.

    Thus, I can open 3 serial ports on ubuntu 16.04.

    Thank you very much.

    Best Regards.

    Tufan Erkınacı

  • Hello Tufan,

    Ahh I should have asked if you were using the latest SDK. That makes a lot of sense, I had fixed a USB library bug from prior versions that impacted the ability to properly enumerate multiple USB CDC ports. I am very surprised it worked in Windows 10 - in the past Windows 10 also did not properly enumerate the multiple ports with versions of TivaWare before 2.2.0.295. Very curious. But glad you got it working with the latest libraries.

    Best Regards,

    Ralph Jacobi