Author Topic: Linux JTAG and serial /dev/ttyUSBx  (Read 167 times)

tcmichals

  • Active Member
  • *
  • Posts: 7
Linux JTAG and serial /dev/ttyUSBx
« on: February 09, 2019, 11:55:41 PM »
Is it possible to  possible to access the jtag and the serial port at the same time in Linux?  For example, in windows a serial port and the jtag is active at the same time.

Thank you,

Tim

tcmichals

  • Active Member
  • *
  • Posts: 7
Re: Linux JTAG and serial /dev/ttyUSBx
« Reply #1 on: February 10, 2019, 12:15:07 AM »
I found this https://www.systutorials.com/linux-kernels/489268/usb-serial-ftdi_sio-use-jtag-quirk-for-arrow-usb-blaster-linux-4-9-98/
I'm using kernel Linux desktop 4.15.0-45-generic #
syslog reports:

 Feb  9 17:02:13 desktop upowerd[1333]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8.4
Feb  9 17:02:17 desktop kernel: [28687.093353] usb 1-8.4: new high-speed USB device number 24 using xhci_hcd
Feb  9 17:02:17 desktop kernel: [28687.197963] usb 1-8.4: New USB device found, idVendor=0403, idProduct=6010
Feb  9 17:02:17 desktop kernel: [28687.197965] usb 1-8.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb  9 17:02:17 desktop kernel: [28687.197968] usb 1-8.4: Product: Arrow USB Blaster
Feb  9 17:02:17 desktop kernel: [28687.197969] usb 1-8.4: Manufacturer: Arrow
Feb  9 17:02:17 desktop kernel: [28687.197971] usb 1-8.4: SerialNumber: AR2E3J9H
Feb  9 17:02:17 desktop kernel: [28687.200998] usb 1-8.4: Ignoring serial port reserved for JTAG

But the only way to get the Arrow programmer to show show up is to use 51-arrow-programmer.rules .

Also, looking at:  ls /sys/bus/usb/drivers/ftdi_sio/
1-8.4:1.1  bind  module  uevent  unbind
 Looks like the /dev/ttyUSB0 is on the interface 1 not 0.  Correct?

Using a standard FTDI serial port:
ls /sys/bus/usb/drivers/ftdi_sio/
1-8.3:1.0  bind  module  uevent  unbind
So, this is for the first interface, 0.


JH

  • Hero Member
  • *****
  • Posts: 795
Re: Linux JTAG and serial /dev/ttyUSBx
« Reply #2 on: February 11, 2019, 08:37:02 AM »
Hi,
which programmer did you mean exactly?
This one:
there are 2 ports, one is reserved for JTAG and the second one can be used for uart.
On Linux the first detected ttyUSB of the programmer should be JTAG and second one UART

br
John

tcmichals

  • Active Member
  • *
  • Posts: 7
Re: Linux JTAG and serial /dev/ttyUSBx
« Reply #3 on: February 12, 2019, 12:13:38 AM »
Correct there are two physical ports.  (1) JTAG and (1) RS232.  Linux should have a JTAG port and /dev/ttyUSB0 or some /dev/ttyUSBx number correct? 

tcmichals

  • Active Member
  • *
  • Posts: 7
Re: Linux JTAG and serial /dev/ttyUSBx
« Reply #4 on: February 12, 2019, 01:33:49 AM »
OK,  I updated the rules file to:
# Arrow-USB-Programmer
 SUBSYSTEM=="usb",\
 ENV{DEVTYPE}=="usb_device",\
 ATTR{idVendor}=="0403",\
 ATTR{idProduct}=="6010",\
 MODE="0666",\
 NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",\
 RUN+="/bin/chmod 0666 %c"
 
# Interface number zero is a JTAG.
# SUBSYSTEM=="usb",\
# ATTRS{idVendor}=="0403",\
# ATTRS{idProduct}=="6010",\
# ATTR{interface}=="Arrow USB Blaster",\
# ATTR{bInterfaceNumber}=="00"
# RUN="/bin/sh -c 'echo $kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'"

Now there is a JTAG device (that is working) and /dev/ttyUSB0  I have not validated if serial is working.   Will try in couple of days.

tcmichals

  • Active Member
  • *
  • Posts: 7
Re: Linux JTAG and serial /dev/ttyUSBx
« Reply #5 on: February 14, 2019, 04:30:35 AM »
Removing
#Interface number zero is a JTAG.
# SUBSYSTEM=="usb",\
# ATTRS{idVendor}=="0403",\
# ATTRS{idProduct}=="6010",\
# ATTR{interface}=="Arrow USB Blaster",\
# ATTR{bInterfaceNumber}=="00"
# RUN="/bin/sh -c 'echo $kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'"
rrom the rules file allows /dev/ttyUSBx and JTAG to work at the same time.  Created a simple loop back on the serial pins using the CYC1000 and was able to echo data back up to 3Mbps using minicom  Also, adding some pins to route the serial out to the header and validated pins were toggling using a log analyzer.