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.
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 the JTAG is connected. Unplug it before going on to do board testing. Actually this only seems to apply to the LART/JTUX adaptor type. The more complicated Xilinx-type allows the relevant pins can float and PCMCIA works fine, even with the JTAG cable attached.
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
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
xilinx-type dongle
This is the currently-preferred device. 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:
- LED D3 (green) indicates power is coming from the target board.
- LED D4 (green) indicates that programming is complete, but isn't quite that simple. It is mostly on.
- LED D5 (yellow) indicates that the connecting computer has attached, however this may not work with plaxsxvf as it depends on the computer leaving the pins in a specific state during/after programming.
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
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
FT2232 based dongles
In the future we will use USB-based dongles in order to dramatically increase the speed of JTAG access. Anyone wanting to work on this is very welcome.
urppd dongle
We are developing 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.
Details of programming
BalloonCPLDProgramming and BalloonBootLoaderJFLASHing gives details of the commands/software procedures using the above devices.