0
点赞
收藏
分享

微信扫一扫

JT ag接口是什么,如何调试接入AG接口麟游线路节点测试

晗韩不普通 2022-04-20 阅读 56

Test Action Group , 联合测试行动小组 ) 是一种国际标准测试协议,ag接口主要用于芯片内部测试及对系统进行api接口仿真开沪、NG接口调试,bcAG技术是一种嵌入式调试技术, 它在芯片内部封装了专门的测试电路TAP( Test Access Port, 麟游测试访问口) , 通过专用的AG接口测试工具对内部节点进行测试。

目前大多数比较复杂的器件都支持JT AGAPI开沪协议, 如 ARM 、 DSP 、 FPGA 器件等。 标准的 JTAG 接口是 4 线: TMS 、 TCK 、 TDI 、 TDO , 分别为测试模式选择、 测试时钟、 测试数据输入和测试数据输出。
JTAG 测试允许多个器件通过 JTAG 接口串联在一起, 形成一个 JTAG 链, 能实现对各个器件分别测试。 bcAG接口还常用于实现 ISP ( In-System Programmable 在系统编程) 功能, 如对 FLASH 器件进行编程等。
通过 JTAG 接口, 可对芯片内部的所有部件进行访问, 因而是开发调试嵌入式系统的一种简洁高效的手段。 目前 JTAG 接口的连接有两种标准, 即 14 针接口和 20 针接口, 其
定义分别如下所示。
14 针 JTAG 接口定义:
14 针 JTAG 接口定义引 脚 名 称 描 述
1 、 13 VCC 接电源
2 、 4 、 6 、 8 、 10 、 14 GND 接地
3 nTRST 测试系统复位信号
5 TDI 测试数据串行输入
7 TMS 测试模式选择
9 TCK 测试时钟
TDO 测试数据串行输出
12 NC 未连接
20 针 JTAG 接口定义引 脚 名 称 描 述
1 VTref 目标板参考电压, 接电源
2 VCC 接电源
3 nTRST 测试系统复位信号
4、 6、 8、 10、 12、 14、 16、 18、 20 GND 接地
5 TDI 测试数据串行输入
7 TMS 测试模式选择
9 TCK 测试时钟
11 RTCK 测试时钟返回信号
13 TDO 测试数据串行输出
15 nRESET 目标系统复位信号
17 、 19 NC 未连接
下面以 S3C4510B 开发板为例说明 JTAG 接口:
在保证电源电路、晶振电路和复位电路正常工作的前提下, 可通过 JTAG 接口调试 S3C4510B,
在系统上电前, 首先应检测 JTAG 接口的 TMS 、 TCK 、 TDI 、 TDO 信号是否已与 S3C4510B
的对应引脚相连, 其次应检测 S3C4510B 的 nEWAIT 引 脚( Pin71 ) 是否已上拉, ExtMREQ
引脚( Pin108 ) 是否已下拉, 对这两只引脚的处理应注意, 作者遇到多起 S3C4510B 不能
正常工作或无法与 JTAG 接口通信, 均与没有正确处理这两只引脚有关。

给系统上电后, 可通过示波器查看 S3C4510B 对应引脚的输出波形, 判断是否已正常工作,
若 S3C4510B 已正常工作, 在使能片内 PLL 电路的情况下, SDCLK/MCLKO 引脚( Pin77 )
应输出频率为 50MHz 的波形, 同时, MDC 引脚( Pin50 ) 和其他一些引脚也应有波形输
出。
S3C4510B 已正常工作的情况下, 可使用 ADS 或 SDT 通过 JTAG 接口对片内的部件
进行访问和控制。
在此, 首先通过对片内控制通用 I/O 口的特殊功能寄存器的操作, 来点亮连接在 P3 ~ P0
口上的 4 只 LED , 用以验证 ADS 或 SDT 调试环境是否已正确设置, 以及与 JTAG 接口的
连接是否正常。
ADS 和 SDT 均为 ARM 公司为方便用户在 ARM 芯片上进行应用开发而推出的一整套集成开
发工具,其中 , ADS 为 SDT 的升级版本。 该系统的调试以 ADS 为例, 同时也适合于 SDT 开
发环境。
连接好硬件后,打开 AXD Debugger , 建立与目 标板 ( 待调试的系统板) 的连接, AXDDebugger
有软件仿真方式和带目标系统的调试方式, 此时应工作在带目标系统的调试方式。
选择菜单 System Views → Command Line Interface 功能,该选项为 AXD Debugger 的一
个命令行窗口, 可在该窗口内输入各种调试命令, 使用非常方便。 在命令行窗口输入:
> setmem 0x3FF5000, 0xFFFF, 32
> setmem 0x3FF5008, 0xFFFF, 32
setmem 命令用于对特定的地址设置特定的值, 待设定的值可以是 8 位、 16 位或 32 位,
在此, 对通用 I/O 口的模式寄存器和数据寄存器设置相应的值, 点亮 LED 。
S3C4510B 在复位后, 特殊功能寄存器的基地址为 0x3FF0000, 由表 5 -2-3 可知, I/O 口
的模式寄存器偏移地址为 0x5000, 因此, I/O 口的模式寄存器的物理地址为 0x3FF5000 ,
设定该寄存器的值为 0xFFFF , 将 I/O 口置为输出方式。 I/O 口的数据寄存器的物理地址
为 0x3FF5008 , 设定该寄存器的值为 0xFFFF , 将 I/O 口的输出置为高电平。
在执行完以上两条命令后, 连接在通用 I/O 口的 4 只 LED 应被点亮, 表示调试系统的软、
硬件连接完好, 可进行下一步的调试工作, 否则, 应重新检查调试系统。
用户若使用 SDT 作为调试工具, 操作方法类似。 连接好硬件后, 打开 ARM Debugger for
Windows , 建立与目标板(待调试的系统板) 的连接, 选择菜单 View → Command 功能,
即可显示命令行窗口, 在命令行窗口输入:
Debug: let 0x3FF5000 = 0xFFFF
Debug: let 0x3FF5008 = 0xFFFF
执行完以上两条命令后, 连接在通用 I/O 口的 4 只 LED 应被点亮。
I/O 口更具体的工作原理和使用方法, 可参考 S3C4510B 用户手册。
用户系统若能正常完成上述操作并成功点亮连接在 P3~P0 口上的 LED 显示器, 则表S3C4510B 已在正常工作, 且调试环境也已正确建立, 以后的调试工作就相对简单。 笔者曾遇到多个用户系统因为不能完成这步工作, 使开发者失去信心而最终放弃。很多工程师在对按键去抖动都会采用软件延时的方法, 今天介绍下关于 Piccolo DSPGPIO 所具有的硬件去抖功能。


信号首先同步于系统时钟, 在输入到内核改变之前要经过一定周期个数的量化,这种方式可以滤除噪声。 量化窗口输入的结构示意图如图所示。由图可知, 外部的管脚输入信号经过一个量化窗口到达 DSP 内核。 量化窗口的时间宽度取决于采样间隔和采样个数。 采样间隔由 GPxCTRL 寄存器决定, 采样个数由寄存器GPxQSELn 决定。
如果 QUxLPRDn = 0, 采样间隔为一个系统周期整数倍。 如果 QUxLPRDn = N (N≠0),采样周期为系统周期的 2N 倍。

如表所示采样个数可以配置位三个或六个。 通过寄存器 GPAQSEL1、 GPAQSEL2、 GPBQSEL1 来配置, 当外部管脚电平状态发生变化时, 量化窗口检测到三个或六个周期内相同的状态时,才把此次状态改变传送到内核, 否则会当成杂波滤除。接口的宽度就确定了。 量化窗口与采样周期及采样个数的关系如表所示。


现举例说明量化窗口的用法及效果。 假如某个 GPIO 引脚为数字输入, 量化模式为 6 个采样周期量化, 采样周期寄存器中 QUxLPRDn 值为一, 则采样周期为两个系统时钟周期宽度, 量化输入的结果如图所示。
eQEP 是 28335 用在运动控制系统中获得电机的位置信息、 速度信息和方向的和编码器直接接口的模块。
有四个输入引脚: 两个是正交脉冲方式或者是方向-脉冲方式引脚, 一个索引或者叫零位引脚, 最后一个是事件引脚。 后两个还可以作为位置比较输出引脚。包括一下几个AG接口子模块单元:


(1) QDU(正交解码单元)
可以接收正交编码器输出的正交信号, 进入此单元可以进行极性的改变和两相信号的互换,
在解码逻辑中进行 4*倍频, 得到 4*后的脉冲串和方向送入计数单元。 也可以接收脉冲方向信号,当接收此编码器信号时解码单元只对脉冲信号进行监测, 通过配置寄存器可以选择脉冲信号进行上升沿监测或者上升沿和下降沿监测, 从而进行 1*或 2*倍频, 把信号送入计数单元。


(2) PCCU(位置计数和控制单元)
此单元有一个位置计数器, 对 QDU 解码过的信号进行计数, 从而得到位置信息, 计数方式可以通过寄存器选择, 如根据索引引脚或者事件引脚进行计数器的复位或者锁存位置信息。 此单元还包括一个位置比较单元, 位置比较寄存器里的值和位置计数器里的值相匹配的时候产生一个位置匹配中断, 同时产生匹配输出, 可以配置索引引脚或事件引脚作为输出引脚。 通过相关寄存器可以配置输出的脉冲宽度和极性。


(3) QCP(边缘捕获单元)
此单元可以计算速度, 低速和高速时的速度计算方法不相同, 低速时采用 v(k)=X/t(k)-t(k-1)=X/△t, X 为单位编码器脉冲, t 通过 QCP 单元的时间计数器进行计算, 当 X 值满足设定的值时, 会产生一个事件, 这时可以读时间计数器里的值进行速度 V 的计算。 高速时采用v(k)=X (k)-X(k-1)/T =△X/T, 计算时用到单位时间基子模块产生单位时间, 在单位时间里通过读取 PCCU 单元里的△X 可以计算高速时的速度。

举报

相关推荐

0 条评论