Overview

USB Hub

attaches to the FT2232D for JTAG and serial console on downstream port 1

attaches to a free USB-A connector using downstream port 2

attaches to the phone using downstream port 3

Using the hub, you can have access to the phone, JTAG and serial simultaneously, through a single USB cable.

You can actually even charge the phone (100mA slow charge) using that downstream port.

For the ISB hub function, we use the TUSB2046B chip.

JTAG using FT2232

Basically, we integrate a USB-JTAG adaptor similar to the [Amontec JTAGkey-tiny]. The actual reference design that we used (Thanks to Joern!) was found at http://www.oocdlink.com (but the domain has gone).

This provides us full JTAG debugging, at about 150times the speed of the wiggler

The actual JTAG port is connected with

the phone (via debug flex cable)

A separate 20-pin header using standard ARM-JTAG pinout

this allows the user to use this device as JTAG adaptor even for other arm-based devices

Serial Port

Instead of replicating a true RS232 port, we wanted to use a USB serial converter chip,
such as the FT232 or the PL2303.

As it turns out, we can even use the second port of the FT2232 simultaneously with the JTAG. So no extra FT232 or PL2303 is required.

Tri-State Serial Port

On GTA01 the CPU UART serial port needed a multiplexer formed by a tri-state driver, since it was both connected to the GSM modem AND to the debug board. We drive the GTA01-tri-state driver mux by an inverted GSM_EN signal (pin 7 on FPC connector).
For GTA02 the console serial port isn't multiplexed and connects directly to CPU UART.

Usage Instructions

Preconditions

FT2232D EEPROM

Your Debug Board contains a small serial EEPROM which should be flashed correctly during production. However, some boards have received incorrect/incomplete programming during production and thus you should verify this.

If the board shows up as USB ID 1457:5118, then everything is correct.

Only if your board shows up as USB ID 0403:6010, then you will need to flash the board!

Flashing with Linux

NOTE: FIC has done that for you, in case you have officially been supplied with the board. However, if you are one of the early adopters, the configuration and USB vendorID / productID might have not yet been set correctly.

Flashing with Windows

NOTE: FIC has done that for you, in case you have officially been supplied with the board. However, if you are one of the early adopters, the configuration and USB vendorID / productID might have not yet been set correctly.

udev rule

NOTE: Some distros no longer name their USB subsystem usb_device, but uses simply usb instead (e.g. Ubuntu 8.x). If so, you should change the line with SUBSYSTEM accordingly, otherwise the device will not be recognized by the udev rule.

Windows

Hardware connection

The recommended connection sequence given in Debug Board v2#Hardware connection may not work for debug board v3 and the FreeRunner. It seems impossible to turn on the FreeRunner after plugging the FreeRunner USB cable into the PC, but before plugging the debug board USB cable into the PC. After the debug board is powered by the PC, the FreeRunner should start.

Actually using it

On Linux

Serial Port

The Linux kernel of your host system will create a virtual serial device called /dev/ttyUSBx where 'x' is a sequentially assigned number. If you don't have any other USB serial converters attached to your machine, the device name will be /dev/ttyUSB0.

You can use your favourite terminal emualtor (minicom, cu, zc, ...) just like for any other/real serial port. You may use gdb as well (eg. target remote /dev/ttya).

JTAG

Once you have installed libftdi >= 0.8 and configured OpenOCD with the correct openocd.cfg from OpenOCD#openocd.cfg, it should work just fine.

Overview

USB Hub

attaches to the FT2232D for JTAG and serial console on downstream port 1

attaches to a free USB-A connector using downstream port 2

attaches to the phone using downstream port 3

Using the hub, you can have access to the phone, JTAG and serial simultaneously, through a single USB cable.

You can actually even charge the phone (100mA slow charge) using that downstream port.

For the ISB hub function, we use the TUSB2046B chip.

JTAG using FT2232

Basically, we integrate a USB-JTAG adaptor similar to the [Amontec JTAGkey-tiny]. The actual reference design that we used (Thanks to Joern!) was found at http://www.oocdlink.com (but the domain has gone).

This provides us full JTAG debugging, at about 150times the speed of the wiggler

The actual JTAG port is connected with

the phone (via debug flex cable)

A separate 20-pin header using standard ARM-JTAG pinout

this allows the user to use this device as JTAG adaptor even for other arm-based devices

Serial Port

Instead of replicating a true RS232 port, we wanted to use a USB serial converter chip,
such as the FT232 or the PL2303.

As it turns out, we can even use the second port of the FT2232 simultaneously with the JTAG. So no extra FT232 or PL2303 is required.

Tri-State Serial Port

On GTA01 the CPU UART serial port needed a multiplexer formed by a tri-state driver, since it was both connected to the GSM modem AND to the debug board. We drive the GTA01-tri-state driver mux by an inverted GSM_EN signal (pin 7 on FPC connector).
For GTA02 the console serial port isn't multiplexed and connects directly to CPU UART.

Usage Instructions

Preconditions

FT2232D EEPROM

Your Debug Board contains a small serial EEPROM which should be flashed correctly during production. However, some boards have received incorrect/incomplete programming during production and thus you should verify this.

If the board shows up as USB ID 1457:5118, then everything is correct.

Only if your board shows up as USB ID 0403:6010, then you will need to flash the board!

Flashing with Linux

NOTE: FIC has done that for you, in case you have officially been supplied with the board. However, if you are one of the early adopters, the configuration and USB vendorID / productID might have not yet been set correctly.

Flashing with Windows

NOTE: FIC has done that for you, in case you have officially been supplied with the board. However, if you are one of the early adopters, the configuration and USB vendorID / productID might have not yet been set correctly.

udev rule

NOTE: Some distros no longer name their USB subsystem usb_device, but uses simply usb instead (e.g. Ubuntu 8.x). If so, you should change the line with SUBSYSTEM accordingly, otherwise the device will not be recognized by the udev rule.

Windows

Hardware connection

The recommended connection sequence given in Debug Board v2#Hardware connection may not work for debug board v3 and the FreeRunner. It seems impossible to turn on the FreeRunner after plugging the FreeRunner USB cable into the PC, but before plugging the debug board USB cable into the PC. After the debug board is powered by the PC, the FreeRunner should start.

Actually using it

On Linux

Serial Port

The Linux kernel of your host system will create a virtual serial device called /dev/ttyUSBx where 'x' is a sequentially assigned number. If you don't have any other USB serial converters attached to your machine, the device name will be /dev/ttyUSB0.

You can use your favourite terminal emualtor (minicom, cu, zc, ...) just like for any other/real serial port. You may use gdb as well (eg. target remote /dev/ttya).

JTAG

Once you have installed libftdi >= 0.8 and configured OpenOCD with the correct openocd.cfg from OpenOCD#openocd.cfg, it should work just fine.