实现MAXQ2000微控制器的JTAG加载主机

2012-03-19 08:52:34来源: 互联网
摘要:MAXQ®微控制器提供的JTAG启动加载程序使外部JTAG主机能够利用一组标准命令,轻松地识别MAXQ微控制器,并对其进行编程。本应用笔记中的代码可以用作构建全功能JTAG启动加载主机应用程序的出发点。主机应用程序能够识别、初始化、装载、验证支持标准启动加载程序命令集MAXQ微控制器的程序和数据存储器内容。

简介

具有可在线编程的程序存储器(例如MAXQ2000和MAXQ3210)的MAXQ微控制器一般还提供基于ROM的启动加载程序,利用微控制器的JTAG兼容调试端口,实现程序存储器的加载。尽管不同的器件有不同的JTAG启动加载程序功能,但是通常都包括程序和数据存储器写、读、验证和擦除等命令。有的器件为启动加载程序提供其他接口(例如,串口或者SPI™接口),而JTAG接口是最常用的,原因有两个。第一,JTAG接口支持在线调试功能,第二,最终用户应用程序并没有充分发挥JTAG接口的功能(与串口不同)。一旦加载程序代码后,可选择的加密机制限制了对启动加载程序的访问,或在线调试。关于每个MAXQ器件功能的详细信息,请参考产品说明,包括数据资料和用户指南等。

本应用笔记涉及到实现MAXQ2000 JTAG启动加载程序主机的基本步骤。这些步骤包括JTAG端口接口,测试访问端口(TAP)控制器通信,激活启动加载程序模式,向基于ROM的启动加载程序发送命令等。由于所有MAXQ器件的JTAG端口工作情况一般相同,MAXQ启动加载程序采用共享命令集工作,因此,在实现MAXQ微控制器JTAG启动加载程序主机时可以参考本应用笔记涉及到的大部分主题(以及大部分实例代码)。

除了串口,应用笔记并没有使用MAXQ2000的特殊功能。这表明,这里的实例代码很容易重新用于程序存储器空间足够大的任何MAXQ20器件。代码以MAXQ汇编语言编写,采用MAX-IDE开发环境编译。可以下载这些代码。

硬件设置

采用一对MAXQ2000评估(EV)板来开发本应用笔记的实例代码。需要两块MAXQ2000评估板执行这里的软件。一个MAXQ2000 (JTAG主机)运行实例代码;第二个MAXQ2000用作JTAG从机,由主机对它重新编程。两个MAXQ2000微控制器都采用了标准8.00MHz晶振。

在原型区安装一个2 x 5引脚插座对主机MAXQ2000评估板进行改动,原型区提供JTAG电缆主机侧连接。插座的引脚符合标准MAXQ JTAG插座布局,按照表1所示进行连接。

表1. MAXQ2000 JTAG连接
JTAG Header Pin JTAG Cable Function MAXQ2000 JTAG
Master Connection
MAXQ2000 JTAG
Slave Connection
1 TCK (Test Clock) P0.0 (Output) P4.0 (Input)
2 GND GND GND
3 TDO (Test Data Out) P0.1 (Input) P4.3 (Output)
4 VREF
5 TMS (Test Mode Select) P0.2 (Output) P4.2 (Input)
6 nRESET P0.4 (Open Drain) nRESET (Input)
7 Keyed pin
8 +5V
9 TDI (Test Data In) P0.3 (Output) P4.1 (Input)
10 GND GND GND

不需要对从机MAXQ2000评估板进行改动。按照上面的说明在主机MAXQ2000评估板的原型区安装2 x 5 JTAG插座。然后,将两块评估板连接起来;主机评估板原型区的2 x 5 JTAG插座和从机评估板的标准JTAG插座(J4)之间连接标准2 x 5 JTAG电缆(这种JTAG一般用于连接串口至JTAG板和MAXQ评估板)。JTAG 2 x 5连接器含在MAXQ2000评估套件中。

为简化起见,没有对主机评估板和从机评估板的JTAG电缆电源或者参考电压连接进行试验。而是设置两块评估板采用同一VDDIO电压(大约3.6V)工作。这种设置保证了主机和从机MAXQ2000采用公共I/O电源电平工作。

从机评估板还在插座J3上安装了LCD子卡(MAXQ2000-K01)。表2列出了两块电路板(以及串口至JTAG电路板)的跳线和DIP开关设置。注意:应断开未列出的所有跳线。图1所示为最终设置。

表2. 电路板开关和跳线设置
Board Switch or Jumper Setting Notes
Serial-to-JTAG Board JH1 Connected  
JH2 Connected
JH3 Connected Supplies 5V power over JTAG cable
Master MAXQ2000 EV Kit JU1 Pins 1 and 2 connected Powers VDD from 2.5V supply
JU2 Pins 1 and 2 connected Powers VDDIO from 3.6V supply
JU3 Pins 1 and 2 connected Powers VLCD from 3.6V supply
JU11 Connected Powers kit board from JTAG 5V supply
DIP SW1 Switches #4 and #8 ON; all other switches OFF Enables serial port 0 output to J5
DIP SW3 All switches OFF
DIP SW6 All switches OFF
Slave MAXQ2000 EV Kit JU1 Pins 1 and 2 connected Powers VDD from 2.5V supply
JU2 Pins 1 and 2 connected Powers VDDIO from 3.6V supply
JU3 Pins 1 and 2 connected Powers VLCD from 3.6V supply
DIP SW1 All switches OFF
DIP SW3 All switches OFF
DIP SW6 All switches OFF

图1. JTAG演示板配置
图1. JTAG演示板配置

MAXQ JTAG接口

MAXQ微控制器的JTAG接口由四条信号线组成,用于测试访问端口(TAP)控制器的信息输入和输出。TAP控制器支持对MAXQ启动加载程序的访问,提供在线调试功能(注意,调试主机的实现和启动加载程序主机的实现类似,但是已经超出了本应用笔记的范围)。表3对四条JTAG信号线进行了说明。

表3. JTAG接口信号
JTAG Signal Signal Name Direction (Master) Direction (Slave) Signal Description
TMS Test Mode Select Output Input This signal line, along with the TCK line, is used to shift the TAP controller from one operational state to the next.
TCK Test Clock Output Input This signal provides the clock for the JTAG interface. The JTAG clock is limited to a maximum of the slave's clock frequency divided by 8. For example, if the slave is running at a clock frequency of 8MHz, the JTAG clock at TCK cannot run any faster than 1MHz.
TDI Test Data In Output Input This signal carries data that is sent from the master to the slave.
TDO Test Data Out Input Output This signal carries data that is sent from the slave back to the master.

从技术上看,nRESET引脚并不是JTAG接口的组成部分。它含在JTAG电缆中,使JTAG主机能够复位从机微控制器。重新设置从机微控制器是进入启动加载程序模式需要的步骤,如果JTAG通信意外中断,也需要重新设置从机微控制器。

JTAG接口是全双工的,数据在TDI线上由主机送入从机,同时,数据在TDO线上由从机送入主机。从机在TCK上升沿对到达数据(在TDI和TMS上)进行采样,在TCK下降沿,数据在TDO上被驱动输出至主机。对于到达和输出数据,最先传送最低有效位。本应用笔记简要介绍JTAG接口和TAP控制器,以解释实例代码的工作。关于这些特性的详细讨论,请参考MAXQ系列用户指南(English only)的测试访问端口(TAP)、在线调试模式、在系统编程等章节,公司网站上有该文档。

TAP控制器通信

TAP控制器围绕状态机进行构建,如下面的图2所示。TAP状态机中有16个分立状态。根据TMS信号值,在TCK的上升沿从一个状态向下一个状态转变。例如,如果TAP控制器处于Select-DR-Scan状态,TCK出现了上升沿:
  • 如果TMS = 1,TAP控制器将转换到Select-IR-Scan状态。
  • 如果TMS = 0,TAP控制器将转换到Capture-DR状态。
通过这种方式,TAP控制器能够同步到任何需要的状态。对状态图(图2)需要注意两点:
  • 5个'1'转换(保持TMS高电平,同步TCK 5个周期)总是使状态机回到Test-Logic-Reset,而不论起始状态如何。这表明,如果不确定TAP控制器当前的状态,或者在某些情况下JTAG主机和从机间的通信中断,总是可以通过同步5个'1'转换,使TAP控制器回到已知状态。
  • 即使TCK时钟继续运行,也可以暂停JTAG通信,不确定地保持在Run-Test-Idle、Pause-DR或者Pause-IR状态,而不影响TAP控制器的状态。
图2. 测试访问端口(TAP)状态机
图2. 测试访问端口(TAP)状态机

TAP控制器的状态机提供对两个控制寄存器的访问,而寄存器提供启动加载程序接口、调试接口以及其他功能。
  • IR (指令寄存器)宽度总是3位。该寄存器可以用作指数寄存器,控制DR的功能(参见下面)。
  • DR (数据寄存器)是TAP控制器中几个寄存器的访问点。当比特移入或者移出DR时实际访问的寄存器取决于IR当前值。
图3. TAP控制器中的寄存器访问
图3. TAP控制器中的寄存器访问

如图3所示,DR根据IR值而指向三个内部寄存器之一。
  • 如果IR = 011b,TAP控制器处于Bypass模式。在这一模式下(这是TAP控制器的默认模式),通过TDO,移入到DR (通过TDI)的数据被直接移回送出。通过TAP控制器移动数据并没有改变内部寄存器。
  • 设置IR = 100b,使TAP控制器处于System Programming模式。在这种模式下,移入DR中的数据被移入到3位系统编程寄存器中。该寄存器(也可以通过MAXQ微控制器ICDF寄存器的[3:1]位进行访问)控制MAXQ复位后进入正常程序执行模式还是启动加载程序模式。如果使能启动加载程序模式,它还控制启动加载程序使用哪一接口(JTAG、串口或者SPI)。
  • 设置IR = 010b,使TAP控制器进入Debug模式。在这一模式下,移入DR的数据被移入到内部10位调试寄存器中,可以被启动加载程序读取。启动加载程序输出的数据也通过该寄存器,在TDO上被移回送出(以及两个状态位)。该寄存器被用于启动加载程序模式和在线调试模式时的数据传送。
  • 在上面讨论的三种模式中,Bypass模式是"非工作"模式;它并不使用我们感兴趣的启动加载程序功能。System Programming模式虽然有这样的名称,但实际上并不用于启动加载程序的通信,只是使能对它的访问。一旦激活启动加载程序,开始进行通信,不再使用TAP模式。D
[1] [2] [3] [4] [5]

关键字:MAXQ2000  微控制器  JTAG

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0319/article_15254.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
MAXQ2000
微控制器
JTAG

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved