Open JTAG Project
Open JTAG Project is an open source hardware and software for a high speed USB JTAG tool.
In this site, you can find and download all necesary files to make your JTAG device.
The electric schematics, the PCB design including Gerber files, the VHDL project in Altera Quartus II format,
and the C++ examples in Microsoft Visual Studio 2005, are free to be downloaded.
If you like to collaborate, please click on our Opencores.org Open JTAG project page.
We encourage JTAG lovers to collaborate with this project:
We need:
- Patch the OpenOCD to support Open JTAG commands.
- Optimize the VHDL code (I am not the best VHDL programmer, of course!)
- Test hardware and software
Note:
The full project could be emulated in the Altera MAX II Development Kit. Click here to viiew Altera page
The hardware project is mainly composed of:
- 1 two-layer PCB
- 1 FTDIChip FT245BL USB to Parallel converter
- 1 Altera EPM570T100 TQFP100 CPLD
- 1 generic 93C46 serial EEPROM
- 1 IQD SPXO018043 48 MHZ oscillator
- 1 generic HC49 6MHZ quartz
- 1 ST Microelectronics LK112M33TR 3.3V LDO regulator
- 2 Texas TXS0104 bidirectional level converter
The circuitry is simple and easy to understand. The FT245 is the USB front end, c
onverting USB serial data to parallel bus to interface with the EPM570 CPLD.
The CPLD latch the parallel data and execute macro-instruction commands,
driving the main five JTAG signals: TCK, TMS, TDI, TDO and TRST.
Inside the CPLD there is a synthesized clock divisor to work with slow target devices.
The higher TCK frequency is 24 MHZ (main clock / 2) and the lower frequency is 187.5 KHZ.
The board have 8 input/output pins (J4 connector) to be used as general purpose I/O.
The PCB size is 57.2mm x 43.3mm (2.26" x 1.7") and fits inside the Altera USB Blaster plastic box,
and it is pin-to-pin compatible. The same JTAG flat cable can be used.
There is another projetc from Kolja Waschk (http://www.ixo.de) to create an Altera USB Blaster compatible JTAG.
The Kolja project could be implemented in our hardware.
We have tested the project using Quartus II 9.0 and seems to work fine.
Please click here to download the Quartus II Kolja project, ready to be used in our hardware.
The latest files:
Please read the License Document before download files.
- Quartus II VHDL Project 1.4
- Visual Studio 6 test program 1.1
- OpenOCD files 1.0 (old version)
- New OpenOCD files from Ryan Corbin (recommended)
- Protocol Manual 1.1
- Schematic diagram 1.1 (updated, thanks to Michael Kuhn)
- Schematic diagram 1.1 (older version, not recommended)
- Hardware User Manual 1.0
- Gerber Files
- Bill of Materials
- PCB Component mask
- PCB Top view
- PCB Bottom view
USB-Blaster compatibility:
To get USB-Blaster compatibility with our hardware, download and program the CPLD with the Kolja Waschk VHDL project.
This option make OpenJTAG full USB-Blaster compatible. Was tested using an EPM1270 CPLD as target and, of course, with the EPM570 CPLD, both from Altera Corporation. Please note that the OpenJTAG project and the Kolja Waschk project areDIFFERENT.
Remember to change the EEPROM USB VID/PID, product description and manufacturer name using the FTProg utility from FTDI site at (http://ftdichip.com).
__________________________________________________________________
Older files (for reference only)
Click the links to download Open JTAG project files.
Please read the License Document before download files.
Software version 1.1 (the current version).
Hardware board version 1.1 (the current board).
Changes:
- Add R22 (10K) to oscillator enable pin as pull-up
- Change 2 MAX3378E by 2 Texas TXB0104 to improve speed
- Change LED power from +5V to +VCCIO
- Schematic diagram
- Hardware User Manual (no changes, download the previous version)
- Gerber files
- PCB Component mask
- PCB Top view
- PCB bottom view
- Bill of Materials
Hardware board version 1.0:
VHDL version 1.0:
Software version 1.0:
- Protocol Manual
- Visual Studio 2005 C++ project example files
什么是Open JTAG。Open JTAG是一个开源项目,
她的目标是使嵌入式开发者能够通过JTAG接口,
用开放的硬件和软件系统进行烧写、校验和调试。
作为Open JTAG的官方网站,http://www.openjtag.net
上详述了Open JATG可以实现的硬件解决方式。
然而,他们的重点确实放在详述花费 $200 的高速JATG解决方案上,
令我辈山寨开发者十分不满。
还好,USB接口的解放方案提供了一种相对低廉的解决方式,
20M的速率也不算低,这就是给予FTDI的FT2232系列的JTAG调试器。
当然,Open JTAG的硬件成本就不可能做到比Jlink的价格还低了。
不过令人振奋的是,Open JTAG以他特殊的开源优势,特别适合嵌入式开发者的使用,
特别是在Lunix下的使用... ... 我是做硬件的...具体的优势有待查明再讨论。
搭配的软件常用的是OpenOCD,它是一个开源的JTAG上位机程序,主页在
http://openocd.berlios.de/web/,论坛在
http://forum.sparkfun.com/viewforum.php?f=18。
目前支持多种芯片。可以简单查看
src/target/target.c中的target_types的定义就可以了解支持哪些处理器了:
target_type_t *target_types[] =
{
&arm7tdmi_target,
&arm9tdmi_target,
&arm920t_target,
&arm720t_target,
&arm966e_target,
&arm926ejs_target,
&feroceon_target,
&xscale_target,
&cortexm3_target,
&arm11_target,
&mips_m4k_target,
... ...
所以也就是说,凡是以上列出的,Open JTAG都可用。
而且随着Open OCD的功能晚上,支持的芯片还会越来越多。
可以配饰Open JTAG使用的开源软件还有 Eclipse 等,非专业人士,就不做介绍啦。
多种烧写方法:
① 类似sjf2410/sjf2440的oflash工具,支持s3c2410,s3c2440,s3c6410的直接烧写
② 直接使用openocd的命令行烧写
③ 从JTAG口下载u-boot到内存中,使用u-boot来烧写
多种调试手段:
① 使用openocd的命令直接调试
② 使用gdb命令行调试
③ 使用Eclipse图形化工具调试
支持多种调试工具:
① 支持IAR
② 支持Eclipse
③ 可以调试ADS编译出来的axf文件
它是一款集三大功能(USB转JTAG、USB转串口、在线调试)于一体的调试器。
无论是台式机,还是缺乏串口、并口的笔记本,都可以使用。
可以用来调试ARM7, ARM9, Cortex-M3, XSCALE系列CPU的裸板程序、u-boot、内核。
硬件特点:
USB:
USB2.0全速接口
使用USB电源
即插即用
JTAG:
IEEE 1149.1标准
最大速率6Mbits/sec
是并口JTAG的150倍
Multi-ICE 10-pin插座
Multi-ICE 20-pin插座
目标系统1.5~5V自适应
串口:
RS232标准
支持7或8位数据位
1或2位停止位
奇校验/偶校验/标志位/空位/无校验
最大波特率1Mbps
在线仿真功能:
支持的多种CPU系列:ARM7, ARM9, Cortex-M3/M8/A8, XSCALE
软件特点:
·Eclipse集成开发环境的安装程序及教程(Linux/Windows版)
·可调试ADS、KEIL编译出来的axf文件
·源码级别调试器OpenOCD的安装程序及教程(Linux/Windows版)
·实时调试功能:单步、全速运行、复位、软/硬件断点、跳转等
·CPU寄存器、存储器、变量观察窗口:动态变化,实时察看
·支持ARM内置的Cache和MMU功能
·在线烧写多种NOR Flash和NAND Flash
·驱动程序:支持Linux 2.4或更高版本, Windows ME, 2000, Server 2003, XP, win 7
J-Link、J-Trace、Open JTAG都是用来调试程序的(当然还有其他工具可以进行调试,比如ICE),
J-Link和J-Trace是SEGGER公司的(http://www.segger.com)。
Open JTAG(http://www.openjtag.org/)是一个开源项目,
其目标是使嵌入式开发者能够通过JTAG接口,用开放的硬件和软件系统进行烧写、校验和调试[1]。
他们都基于JTAG调试接口协议。
工作原理
调试arm,总要遵循arm的调试接口协议吧,jtag就是其中的一种吧。
当仿真时,iar,keil,ads等等都有一个公共的调试接口,RDI(RDI接口是ARM公司提出的调试接口标准,主要用于ARM芯片的JTAG仿真。)
就是其中的一咱吧, 那么我们如何完成RDI-->arm调试协议(JTAG)的转换呢? 如是乎就有两种做法:
(1) 在电脑上写一个服务程序,把keil,ads,iar中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(
注意,这个转换只是电气物理层 上的转换,就像RS232那样的作用)发送你的的目标板。
h-jtag就是这样的。 h-jtag的硬件就仅是一个物理电平的转换接口,所以很简单。
而电脑中装的h-jtag软件就是前面说到的服务程序,负责协议转换的。
(2)另一种做法,就是做一个板,用此板直接接收来自keil,ads,iar等软件的调试命令,
由此板做rdi->jtag协议的转换。然后与目标板通信,这就是jlink的工作原理。(这也就实现了USB转JTAG协议。)
一回贴说:“大佬,两者都是软件完成的,只不过软件放的地方不一样(一个放计算机,一个放仿真器里面了).
真正的硬件,就象是JTRACE一样,用FPGA来实现.实质上,还是软件到硬件的过程.”。
J-Link与Open JTAG区别
正如上文所述,这两者都是用来调试程序的,都实现了USB转JTAG协议功能,即用USB连接主机,用JTAG线连接板子的JTAG口,
而这之间的转换通过J-Link或者Open JTAG转换。
另J-Link一般是独立的组件,而Open JTAG一般集成到板子上。
Open JTAG Project的更多相关文章
- Debugging JTAG Connectivity Problems
2013-12-04 22:34:26 转自:http://processors.wiki.ti.com/index.php/Debugging_JTAG_Connectivity_Problems ...
- Boot Petalinux Project Using a remote system
通过jtag实现在远程服务器端下载petalinux image到连接在本地PC的开发板上的方法. 具体连接方式为 比如Host的系统为Windows,Remote system为运载在远程服务器上的 ...
- TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总
CCS与仿真器连接问题 实际使用过程中.仿真器和CCS连接可能出现这样或那样的问题,或许你的连接非常成功,没碰到过什么问题.但我的问题的确不少,可能与电脑配置有关吧,也可能与人品有关吧. 以下的自己的 ...
- Bootloader Project
Bootloader Project From OMAPpedia Jump to: navigation, search Contents [hide] 1 OMAP Bootloader Over ...
- JTAG 引脚自动识别 JTAG Finder, JTAG Pinout Tool, JTAG Pin Finder, JTAG pinout detector, JTAGULATOR, Easy-JTAG, JTAG Enumeration
JTAG Finder Figuring out the JTAG Pinouts on a Device is usually the most time-consuming and frustra ...
- Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors
Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the pro ...
- .NET Core系列 : 2 、project.json 这葫芦里卖的什么药
.NET Core系列 : 1..NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容.我们可 ...
- 记一个mvn奇怪错误: Archive for required library: 'D:/mvn/repos/junit/junit/3.8.1/junit-3.8.1.jar' in project 'xxx' cannot be read or is not a valid ZIP file
我的maven 项目有一个红色感叹号, 而且Problems 存在 errors : Description Resource Path Location Type Archive for requi ...
- ASP.NET Core project.json imports 是什么意思?
示例代码: "frameworks": { "netcoreapp1.0.0": { "imports" : "portable- ...
随机推荐
- 第10月第20天 afnetwork like MKNetworkEngine http post
1. + (AFHTTPRequestOperation *)requestSellerWithCompletion:(requestFinishedCompletionBlock)successBl ...
- linux 图形配置网络
命令:setup 打开网络等系统信息的图形配置 yyp复制 vi /etc/sysconfig/network-scripts/ifcfg-eth0 配置网络参数 重启网卡:/etc/init.d/n ...
- Explain EV in /proc/bus/input/devices data【转】
转自:https://unix.stackexchange.com/questions/74903/explain-ev-in-proc-bus-input-devices-data It repre ...
- iptables-25个常用用法【转】
本文介绍25个常用的iptables用法.如果你对iptables还不甚了解,可以参考上一篇iptables详细教程:基础.架构.清空规则.追加规则.应用实例,看完这篇文章,你就能明白iptables ...
- PHP中冒号、endif、endwhile、endfor使用介绍
我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如: 复制代码代码如下: <?php if(empty($GET_['a'])): ?> <font c ...
- 『实践』Yalmip+Ipopt+Cplex使用手册
Yalmip+Ipopt+Cplex使用手册 1.软件版本 Cplex 12.6.2,Matlab R2014a,Ipopt 3.12.9,Yalmip 2.Cplex添加方法 官方下载地址: htt ...
- elasticsearch安装marvel插件
Marvel插件要在Elasticsearch和Kibana中同时安装.Step 1: Install Marvel into Elasticsearch: bin/plugin install li ...
- 【mysql】source导入多个文件
在mysql中,可以将表导出为sql文件,比如1.sql, 2.sql等等. 导入一个文件: source /home/somepath/.sql 那么问题来了,如果我想一次导入100个文件呢?总不能 ...
- java 异常的限制
一. 1.) 在覆盖方法的时候,只能抛出在基类方法的异常说明里列出的那些异常 2.) 在基类构造器声明的异常,在子类必须抛出,子类的构造器可以抛出任何异常,但是必须抛出基类构造器的异常 3.) 在基类 ...
- P4186 【[USACO18JAN]Cow at Large G】
思路是覆盖子树,我们发现,农民想截住牛的最优策略是不断向上来尽可能地覆盖更大的子树 我们想要尽早地覆盖一个子树,一个显然的贪心是在这个子树中选取深度最小的一个放农民 如果我们在一个点放置了农民,那么其 ...