Jump to content
  • 0

PC Linux connection to USB UART (Nexys A7)


Michal Hucik

Question

Hello,
I want connect PC Linux desktop to Nexys A7 board by USB. Is there some how-to guide for this?

Connection to FPGA JTAG by the Digilent Adept 2 utility is not problem. But I'm not well to connect any application by UART.

My PC is running Linux Centos 7, kernel 3.10.0 and when Nexys A7 USB is connected, so dmesg contains this:

[72270.483319] usb 2-2.2: new full-speed USB device number 12 using uhci_hcd
[72271.101519] usb 2-2.2: New USB device found, idVendor=0451, idProduct=3410, bcdDevice= 1.00
[72271.101523] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[72271.101525] usb 2-2.2: Product: TUSB3410 Boot Device
[72271.101527] usb 2-2.2: Manufacturer: Texas Instruments
[72271.101529] usb 2-2.2: SerialNumber: TUSB3410        
[72271.105323] ti_usb_3410_5052 2-2.2:1.0: TI USB 3410 1 port adapter converter detected
[72271.117920] ti_usb_3410_5052 2-2.2:2.0: TI USB 3410 1 port adapter converter detected
[72271.118153] usb 2-2.2: TI USB 3410 1 port adapter converter now attached to ttyUSB0
[72287.671228] ti_usb_3410_5052_1 ttyUSB0: ti_close - cannot send close port command, -110
[72289.673023] ti_usb_3410_5052_1 ttyUSB0: ti_set_termios - cannot set config on port 0, -110
[72290.673926] ti_usb_3410_5052_1 ttyUSB0: ti_write_byte - failed, -110
[72290.673959] ti_usb_3410_5052_1 ttyUSB0: ti_set_termios - cannot set modem control on port 0, -110
[72291.674758] ti_usb_3410_5052_1 ttyUSB0: ti_open - cannot send open command, -110

When I boot the same PC into system Windows 10, so connection to USB UART with any terminal is not problem, but Linux is my favorite development desktop.

In connection with Linux and TI USB 3410 I found on the Google some informations about "Direct firmware load for ti_usb-v0451-p3410.fw", but nothing closer to download this firmware. (I don't know if is still necessary any FW.)

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

I use Centos 6 ( so far I haven't been able to build a suitable Centos 7 or 8 workstation replacement...). Centos is my preferred Linux distribution but as you know is more server oriented and requires more effort to set up as a workstation for development.

I've not had issues with any Digilent FPGA board using Centos.

What does lsusb or lsusb -v tell you?

I have Digilent's Adept support installed on all of my PCs.

The Nexys A7 uses a PIC for configuration/UART and these functions are separate USB endpoints ( at least on FTDI devices; I'm not sure how this works on a PIC ). I don't have a Nexys A7 board so I can't produce your exact results.

I posted on this previously, but in any OS checking what's connected before and after plugging in a USB attached device cable helps clear up confusion. I do this with Windows Hardware Manager in WIn7 or WIn10 and use lsusb and dmesg | grep tty on Linux distributions.

Rather than slog through all ot the dmesg log you can find specific devices. For instance to see what Etherent connections you have dmesg | grep eth will do nicely.

Link to comment
Share on other sites

Ach so, now I understand! Nexys A7 is identified as USB devices with two ttyUSB ports. I was expecting UART on ttyUSB0 (as TI USB 3410), but UART is connected on ttyUSB2 as FTDI.

 

# dmesg |grep tty
[    5.462377] usb 2-2.2: TI USB 3410 1 port adapter converter now attached to ttyUSB0
[    5.509490] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB1
[    5.512731] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB2

# lsusb
Bus 001 Device 002: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC
Bus 002 Device 005: ID 0451:3410 Texas Instruments, Inc. TUSB3410 Microcontroller

 

Link to comment
Share on other sites

Not that anyone has asked but I'll share a few ideas about modern Linux distributions and hardware that have tripped me up for a time recently.

I have a 6 month old Win10 box that was built by a custom shop that only supports Windows. I had to  make some BIOS settings changes in order to install Linux on a second HD. My first shot was at installing Centos 8. It didn't help that this distribution has an iso image requiring a dual-layer DVD writer, which I don't have. I never made it to the end of the installation process as the noveau drivers don't support my nVidia card. In theory I could have stopped at the int3 stage and avoided the GUI altogether during installation but the ElRepo support for newer nVidia cards isn't there yet for Centos 8. I had no issues installing it on my older box with older hardware. The good thing about Centos/Red Hat is that you can stick to well worn and reliable OS elements that have matured. The bad thing is that most of what you want to use hasn't been pre-compiled and vetted yet. Centos does have Centos 8 Streams if you are daring. One 'issue'  with recent Linux distributions is systemd.... I'm still figuring this out.

Recent distributions of Linux want to pretend that all applications are 64-bit, like the OS. Unless you install i386 architecture just after updating your OS installation you will have difficulty installing most familiar applications, as some still have components using 32-bit code. I haven't found a code editor and assorted text tools that replaces my Win7 tools. I was able to compile wine64 from the sources, in order to use NotePad++,  but it still wouldn't work until I added i386 architecture support. Same with the optimized Unbuntu 18.04 VM in Win10 Pro.

I've been playing with Unbuntu 19.10 as a separate BIOS boot option on my Win10 box, as a potential Xilinx HD/SW workstation. For the most part it's acceptable though I really prefer Gnome2 over Gnome3 and am always fighting Unbuntu over permissions. The outlook so far is mixed. The one great thing is that the install media supports new nVidia cards out of the box. Making it past hte initial installation process is unusual and nice. I managed to install Vivado but only for root which is worrisome. Didn't get Petalinux installed yet. Octave 4.2.2 runs but the GUI file browser is FUBAR. Didn't have problems installing Wine/NotePad++.

For now I seem to have Win10 working with ISE for legacy devices and Vivado 2019.1 for Xilinx. I managed, with some difficulty, to set up a usable Unbuntu 18.02 VM on which I've installed the Petalinux tools. I agree with those that find Linux to be a better OS for HD/SW development in general. If only there were editing and file tools that were as productive as my Win7 tools....

So little time... so much to do before I can spend my time doing what I want to do rather than fixing things in order to do it. New Linux Kernels are being released faster than anyone can support them and the complexity seems to causing a de-evolution for the user experience instead of an evolution. Sigh... 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...