cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

Anonymous
Not applicable

I would like to debug FX3 on Ubuntu 16.04 LTS.

I use the latest SDK 1.3.3.

I have a problem with openocd:

$ /opt/cypress/cyfx3sdk/JTAG/OpenOCD/Linux/x64/openocd -f  /opt/cypress//cyfx3sdk/JTAG/OpenOCD/Config/arm926ejs_fx3.cfg

Open On-Chip Debugger 0.8.0 (2014-12-03-16:28)

Licensed under GNU GPL v2

For bug reports, read

    http://openocd.sourceforge.net/doc/doxygen/bugs.html

Warn : Adapter driver 'cy7c65215' did not declare which transports it allows; assuming legacy JTAG-only

Info : only one transport option; autoselect 'jtag'

adapter_nsrst_delay: 200

jtag_ntrst_delay: 200

adapter speed: 1000 kHz

trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst

RCLK - adaptive

adapter speed: 1000 kHz

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

USB Device: Vid=9fb Pid=6001 Intf=1

USB Interface 0: Type=255

Error: CyGetDeviceInfo failed

USB Device: Vid=4b4 Pid=5 Intf=5

USB Interface 0: Type=0

USB Interface 1: Type=0

USB Interface 2: Type=0

USB Interface 3: Type=0

USB Interface 4: Type=5

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyGetDeviceInfo failed

Error: CyJtagDevice Not found

in procedure 'init'

The same error is returned inside ezUsbSuite trying to launch openocd.

If I understand correctly, openocd detects USB-Serial device correctly.

$lsusb

Bus 004 Device 003: ID 17ef:3070 Lenovo

Bus 004 Device 002: ID 17ef:3070 Lenovo

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 003 Device 005: ID 17ef:3075 Lenovo

Bus 003 Device 008: ID 046d:c52b Logitech, Inc. Unifying Receiver

Bus 003 Device 007: ID 17ef:306f Lenovo

Bus 003 Device 123: ID 04b4:00f3 Cypress Semiconductor Corp.

Bus 003 Device 006: ID 09fb:6001 Altera Blaster

Bus 003 Device 101: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)

Bus 003 Device 100: ID 04b4:0005 Cypress Semiconductor Corp.

Bus 003 Device 099: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)

Bus 003 Device 097: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub

Bus 003 Device 003: ID 17ef:3071 Lenovo

Bus 003 Device 002: ID 17ef:3071 Lenovo

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 003: ID 0bda:0316 Realtek Semiconductor Corp.

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 005: ID 04f2:b604 Chicony Electronics Co., Ltd

Bus 001 Device 003: ID 04f2:b613 Chicony Electronics Co., Ltd

Bus 001 Device 002: ID 17ef:3074 Lenovo

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

On the custom board, I have a 4-port hub:

  • port 1: not used
  • port 2:  FTDI231
  • port 3: CY7C65215
    • port 0: FX3 UART (works fine)
    • port 1: FX3 jTag (openocd has a problem described above)
  • port 4: FTDI231

$dmesg

...

[ +15,759768] usb 3-1.2.1: new high-speed USB device number 16 using xhci_hcd

[  +0,148158] usb 3-1.2.1: New USB device found, idVendor=0424, idProduct=2514

[  +0,000002] usb 3-1.2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0

[  +0,000879] hub 3-1.2.1:1.0: USB hub found

[  +0,000018] hub 3-1.2.1:1.0: 4 ports detected

[  +0,286859] usb 3-1.2.1.2: new full-speed USB device number 17 using xhci_hcd

[  +0,108158] usb 3-1.2.1.2: New USB device found, idVendor=0403, idProduct=6015

[  +0,000001] usb 3-1.2.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[  +0,000001] usb 3-1.2.1.2: Product: FT231X USB UART

[  +0,000001] usb 3-1.2.1.2: Manufacturer: FTDI

[  +0,000001] usb 3-1.2.1.2: SerialNumber: DM00D53X

[  +0,003890] ftdi_sio 3-1.2.1.2:1.0: FTDI USB Serial Device converter detected

[  +0,000028] usb 3-1.2.1.2: Detected FT-X

[  +0,000403] usb 3-1.2.1.2: FTDI USB Serial Device converter now attached to ttyUSB0

[  +0,079480] usb 3-1.2.1.3: new full-speed USB device number 18 using xhci_hcd

[  +0,106464] usb 3-1.2.1.3: New USB device found, idVendor=04b4, idProduct=0005

[  +0,000001] usb 3-1.2.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[  +0,000001] usb 3-1.2.1.3: Product: USB-Serial (Dual Channel)

[  +0,000001] usb 3-1.2.1.3: Manufacturer: Cypress Semiconductor

[  +0,001637] cdc_acm 3-1.2.1.3:1.0: ttyACM0: USB ACM device

[  +0,000425] cdc_acm 3-1.2.1.3:1.2: ttyACM1: USB ACM device

[  +0,015808] usb 3-1.2.1.4: new full-speed USB device number 19 using xhci_hcd

[  +0,108836] usb 3-1.2.1.4: New USB device found, idVendor=0403, idProduct=6015

[  +0,000001] usb 3-1.2.1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[  +0,000001] usb 3-1.2.1.4: Product: FT231X USB UART

[  +0,000001] usb 3-1.2.1.4: Manufacturer: FTDI

[  +0,000001] usb 3-1.2.1.4: SerialNumber: DM00CXDF

[  +0,003762] ftdi_sio 3-1.2.1.4:1.0: FTDI USB Serial Device converter detected

[  +0,000021] usb 3-1.2.1.4: Detected FT-X

[  +0,000364] usb 3-1.2.1.4: FTDI USB Serial Device converter now attached to ttyUSB1

0 Likes
1 Solution
abhinavg_21
Moderator
Moderator

Hi,

I found that the VID and PID of USB Serial bridge to be 0x04b4 and 0x0005 which indicates that both the channels of the bridge are configured as CDC. I also have seen it enumerating as ttyACM device supporting my assumption.

Can you please connect the USB serial bridge to a windows PC and use the USB Serial configuration Utility to reconfigure it to use one channel for UART CDC and other for JTAG vendor protocol?

FYI- Once you update the configuration in windows PC, that configuration retains when you connect to Linux machine.

Thanks & Regards

Abhinav

View solution in original post

0 Likes
3 Replies
abhinavg_21
Moderator
Moderator

Hi,

Could you please try to install a new version of libusb and then try again. If the problem persist you can download USB Serial SDK, go to the following link:

http://www.cypress.com/documentation/software-and-drivers/usb-serial-software-development-kit

Install the SDK.

It contains test utility which you can use to test serial device. Please note that you have to install "libusb" provided along with this SDK.

Thanks & Regards

Abhinav 

0 Likes
Anonymous
Not applicable

Hi abga

Thank you for your message.

I have installed libusb(version 1.0.9) from USB Serial SDK. However, it doesn't solve the problem of openocd.

I knew SDK comes with CyUSBSerialTestUtility. However, it didn't work also (no devices were listed). The insllation of the specific libusb didn't solve the issue.

---------------------------------------------------------------------------------

Device Number | VID | PID | INTERFACE NUMBER | FUNCTIONALITY

---------------------------------------------------------------------------------

---------------------------------------------------------------------------------

-------------------------------------------------------------------

1: Print list of devices

2: Select device...No device selected !!

3: Enter I2C/SPI Flash page address and length to write/read.

4: Verify data

5: Exit

-------------------------------------------------------------------

5

I installed libusb under /usr/local. The tool uses proper libraries:

$ ldd CyUSBSerialTestUtility

    linux-vdso.so.1 =>  (0x00007ffcd9bcf000)

    libcyusbserial.so => /usr/local/lib/libcyusbserial.so (0x00007fdab0ae2000)

    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdab0718000)

    libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007fdab0508000)

    /lib64/ld-linux-x86-64.so.2 (0x00007fdab0cec000)

    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fdab0300000)

    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdab00e3000)

To avoid uncertainty regarding source of the issue, I have installed udev rules beforehand (91-cyusbserial.rules) as well.

0 Likes
abhinavg_21
Moderator
Moderator

Hi,

I found that the VID and PID of USB Serial bridge to be 0x04b4 and 0x0005 which indicates that both the channels of the bridge are configured as CDC. I also have seen it enumerating as ttyACM device supporting my assumption.

Can you please connect the USB serial bridge to a windows PC and use the USB Serial configuration Utility to reconfigure it to use one channel for UART CDC and other for JTAG vendor protocol?

FYI- Once you update the configuration in windows PC, that configuration retains when you connect to Linux machine.

Thanks & Regards

Abhinav

View solution in original post

0 Likes