Trenz Electronic GmbH Support Forum
Community => Arrow USB Programmer2 => Topic started by: tcmichals 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
-
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.
-
Hi,
which programmer did you mean exactly?
This one:
- https://wiki.trenz-electronic.de/display/PD/TEI0004+TRM
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
-
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?
-
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.
-
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.