Contents
- Introduction
Overview, Features and Copyright - Hardware
Schematics and Eagle CAD files - Firmware
How to program the EEPROM - USB Drivers
PC Installation - Links
Additional resources in the Web
Note: If you bought a ready-to-run Turtelizer dongle or any of its clones and just want to know,
how to use it for programming and debugging your target board, then the
Turtelizer 2 User's Guide
is the right document for you.
Introducing Turtelizer 2
Overview
Turtelizer 2 had been developed to provide JTAG Flash programming and debugging of ARM based boards via USB. Typical target boards are Ethernut 3 , the Elektor Internet Radio or Ethernut 5. However, as the hardware is based on the FT2232 chip from www.ftdichip.com, it offers a general JTAG, SPI, I2C and RS 232 capabilities.
This document will present the open source hardware design and some basic information how to get it up and running. Several links to external resources are given, where specific topics are discussed in detail. It is intended for hardware developers, who want to build their own FTDI based JTAG dongle.
If you bought a ready-to-run Turtelizer dongle or any of its clones and just want to know, how to use it for programming and debugging your target board, then the Turtelizer 2 User's Guide is the right document for you.
Features
-
Fully buffered JTAG interface for target voltages from 1.65V to 5.5V.
-
Additional RS 232 Interface with virtual COM port driver.
-
Space saving 10-pin JTAG connector. Standard 14-pin and 20-pin connectors require an adapter.
-
Open Source hardware and software. Supported by OpenOCD and YAGARTO and tested on Linux, Mac OS X and Windows.
Requirements
Most tools used here to get the Turtelizer hardware up and running are available for Windows only, specifically the MProg Tool.
Once configured, the Turtelizer can be used on Mac OS X, Linux and Windows PCs.
Open Source Hardware Copyright
Copyright (C) by egnite GmbH
Redistribution and use of the layout itself or products based on this design,
with or without modification, are permitted provided that the following
conditions are met:
- Redistributions of the layout must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions of hardware products based on this design must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
In simple words, you can use this layout for your personal use or for a commercial product free of charge.
If you want to pay for it, I'd suggest to donate a small amount to the OpenOCD.
Important Legal Notes
Some time ago a discussion came up in the OpenOCD development mailing list about whether it is legal to distribute a binary version of OpenOCD, which is linked to the proprietary library FTD2XX provided by FTDI. The result in one short sentence: It violates the GPL, under which OpenOCD is released.
This does not mean that OpenOCD stops workingwith Turtelizer 2. One alternative is to use the free library libftdi as a replacement for the FTD2XX library. However, there are some disadvantages:
- libftdi had been reported to be up to 2.5x slower than its closed source counterpart.
- The serial port on the Turtelizer will no longer work.
- libftdi will not work on 64-bit Windows.
Hopefully upcoming versions of libftdi will overcome these limitations. What can be done in the meantime?
The GPL regulates distribution of software, not its usage. For your own personal use it is allowed to create a version of OpenOCD that is linked with proprietary code. For Linux and OS X users this is typically no problem. Unfortunately, building OpenOCD from source code on Windows PCs is not trivial and requires a number of additional tools. Most unexperienced users will probably fail.
We decided to provide a pragmatic solution by seperating OpenOCD and the FTDI driver. You can find both packets on egnite's product page.
It is not allowed to distribute OpenOCD and the Turtelizer USB driver in a single package. Always keep them seperated.