There is a number of possible ways of accessing the JTAG interfaces on Balloon. It depends which Balloon board you have, which JTAG hardware you have and thus what software you need.

This page describes the different hardware JTAG interfaces in use, where you plug then in on your balloon and which software is used with which device. Other pages cover the actual commands and procedures for uploading stuff.

Balloon JTAG Connectors

Balloon2 and 3 both have 2 separate JTAG chains - one for the CPLD/FPGA, and one for the CPU. Some dongles/interface boards allow them to be chained.

Balloon 3

J12. 24pin Top-contact FFC. On the front next to the CPU. You will need a suitable JTAG widget or adaptor board.

Note that some of the JTAG pins are shared with the PCMCIA interface so it may not work whilst a simple-minded dongle is connected. This problem only seems to arise with the LART/JTUX dongle, which must be unplugged before going on to do board testing. The fancier Xilinx-type parallel dongle and the USB-based dongles allow the relevant pins to float and PCMCIA works fine, even with the JTAG cable attached.

Currently OpenOCD is used with USB dongles and bflash/jflash with parallel dongles. OpenOCD support for the parallel devices is underway.

OpenOCD works with Balloon 3 from both Linux and Windows. Read Balloon3OpenOCD for config details and versions.

Balloon 2

The CPU chain connector is J1, the 10-way Serial/JTAG connector on the top of the board.
The CPLD chain connector is J9, the 10-way Serial/JTAG connector on the bottom of the board.

Dongle Types

There are 3 components: the board (chips), the interface (dongle) and the software. You need matching software and hardware. The xilinx and LART/JTUX type dongles are functionally equivalent but have different pinouts so need corresponding software to work properly. OpenOCD can support everything.

There are dongles which connnect to the parallel port (old, slow - not much use on modern machines that don't have parallel ports), and dongles with connect to USB - normally much faster, and more use these days.

USB dongles

There are many of these available. We have used and worked out OpenOCD config files for the Amontec JTAG key and Olimex JTAG Tiny. All need adaptor boards from the 'arm standard' 20-pin 0.1" header connector (power, JTAG, serial, reset lines) to the balloonboard connector.

Amontec JTAG key

This has been used succesfully with Windows and the Amontec-supplied version of OpenOCD (r717)

Olimex USB tiny

This has been used successfully with Linux and various versions of OpenOCD, from v0.0r1409 onwards.

donglewithboard.jpeg

urppd dongle

Guralp have developed a small JTAG dongle based on the Cypress EZ-USB microprocessor (enhanced 8051 with USB controller) aimed at being fast and useful. See this page for more details.

Balloon Devkit board

This board is the offical balloon dev kit/programming station base board as supplied in Balloon3 development kits. The OpenOCD files in the balloon distro support this interface board. This provides the two JTAG ports chained as well as power and access to all the other balloon devices (MMC, CF, LCD, etc). J12 is balloon JTAG connector (bottom contact socket) and J10 is 'arm standard JTAG' connector for USB dongle (J11 is Xilinx standard JTAG connector). The pic below shows a dongle cable (ribbon) in J10, serial cable in J8, and JTAG FFC cable in J12.

http://balloonboard.org/gallery/devboard3.jpg

Dongle adaptor boards

This is the 'hopinterface' with separate CPLD and CPU JTAG 'ARM standard' connectors, serial output and a reset button. OpenOCD files to support this interface are included in the balloon distro. Connect any JTAG dongle to the 20-pin headers - pin 1 is at the reset-button end. The 24way FPC connector is bottom-side contacts. You need to turn switch 1 of blue 'port_en' switch 'on' to unsure that the CPLD JTAG port is enabled (otherwise the CPLD code on a programmed CPLD steals the pins).

hopinterface.jpeg

XJTAG/Balloon adaptor board

This is a Chris jones design, allowing use of XJTAG dongle and software with balloon3. Schematic, but no pic, currently.

Parallel port dongles

xilinx-type dongle

http://balloonboard.org/hardware/JTAG/xilinx/JTAGdonglesm.jpg

This device supercedes the Lart/JTUX dongle. It has always been used to talk to the CPLD JTAG on Balloon2 and can now talk to the CPU as well using the bflash software. This is standard for Balloon3 and Balloo2 from September 2007 (test-v0.3 software release). Prior to that the LART/JTUX dongle was needed for the CPU chain.

There are four connectors on the board. The big one obviously plugs into your parallel port. The 10-way molex is to the JTAG/serial socket. On a Balloon2 this is 1-1 wiring. On Balloon3 an FPC adaptor is needed (See below). The 8-way molex is just the JTAG signals, without the serial stuff (not quite sure what this is intended for?). The 4-way molex is just the serial signals so you can plug in a 4-way molex to 9-pin D cable here to have JTAG and serial accessible on the board. Pin 1 on each is indicated by an arrow on the board markings.

The switch (if fitted) lets you pull port_enable low or high. This is needed to allow JTAG programming even if the JTAG pins on the CPLD are re-used as GPIOs. In this case you need to pull port_en high (switch moved towards LEDs) to force them to operate as JTAG pins again. Moving it the other way sets port_end to GND which means that the balloon/CPLD can operate the JTAG pins as GPIOs even if the dongle is attached. If the JTAG pins are not re-used as GPIOs then the switch is irrelevant.

The 3 LEDs are:

Balloon3 breakout wiring.

JTAG dongle

FPC pin

1

14

+3V power to dongle

2

15

serial TX

3

16

serial RX

4

N/C

Port enable

5

6

TCLK

6

5

TDI

7

4

TDO

8

3

TMS

9

2

NTRST

10

1

GND

http://balloonboard.org/hardware/JTAG/xilinx/jtag_dongle_schematic.PDF

Here are the design files: http://balloonboard.org/hardware/JTAG/xilinx/jtag_dongle_design.tgz

The dongles are available from Aleph One

LART/JTUX dongle

http://balloonboard.org/hardware/JTAG/LART/serial+LARTJTAG.sm.jpg

This pic shows the combined serial+JTAG cable assembly.

The JTAG device can be driven with jflash from Linux or Windows to program the NOR flash via the CPU on Balloon2.

Jflash for linux is included in BalloonBinaryLoader.
Jflash for Windows is available here

This is the same JTAG dongle used on the LART and Tuxscreen (JTUX), designed by Holly Gates. Here are the design files (zipped).

http://balloonboard.org/hardware/JTAG/LART/LART-jtag-X2.pdf

The pinout is:

JTAG Dongle

J1

Serial 9Pin D

1

NC

5

2

9

3

1

4

7

5

6

6

5

7

8

8

10

NC

2

2

NC

3

3

JTAG is numbered with pin 1 on left when PCB is component-side up, 25 pin D away from you.
J1 is numbered with pin 1 on left when crimps visible in housing.
JTAG Dongles/Serial leads wired with balloon J1 connectors have all been sold, but there are a few dongles with LART and JTUX connectors on which could be pressed into service. Contact Aleph One

Details of programming

BalloonCPLDProgramming and BalloonBootLoaderJFLASHing gives details of the commands/software procedures using the above devices.

Balloonboard: BalloonJTAGing (last edited 2010-09-16 01:45:49 by wookey)