0
点赞
收藏
分享

微信扫一扫

bc接口开设-AG接口api文档怎么申请,使用AG文档有什么流程

笙烛 2022-04-18 阅读 54
sublime text

bc接口开设新户需要的AG文档怎么申请,以及申请到手的AG api文档有哪些使用流程,我们通过这篇文章会有一个更深的API认识。
AG(api)最初是用来对芯片进行测试的, JTAG 的基本原理是在器件内部定义一个 TAP(Test Access Port; 测试访问口) 通过专用的AG测试工具对内部bc节点进行测试。

JTAG 测试允许多个器件通过 JTAG 接口串联在一起, 形成一个 JTAG 链, 能实现对各个器件分别测试。 如今, JTAG 接口还常用于实现 ISP(In-System Programmer, 在系统编程) , 对 FLASH 等器件进行编程。
JTAG 编程方式是在线编程, 传统生产流程中先对芯片进行预编程现再装到板上因此而改变, 简化的流程为先固定器件到电路板上,再用 JTAG 编程, 从而大大加快工程进度。 JTAG 接口可对 PSD 芯片内部的所有部件进行编程。
具有 JTAG 口的芯片都有如下 JTAG 引脚定义:
TCK——测试时钟输入;
TDI——测试数据输入, 数据通过 TDI 输入 JTAG 口;
TDO——测试数据输出, 数据通过 TDO 从 JTAG 口输出;
TMS——测试模式选择, TMS用来设置 JTAG 口处于某种特定的测试模式。
可选引脚 TRST——测试复位, 输入引脚, 低电平有效。
含有 JTAG 口的芯片种类较多, 如 CPU、 DSP、 CPLD 等。
JTAG 内部有一个状态机, 称为 TAP控制器。 TAP控制器的状态机通过 TCK和 TMS进行状态的改变, 实现数据和指令的输入。

2 JTAG 芯片的边界扫描寄存器
JTAG 标准定义了 一个串行的移位寄存器。 寄存器的每一个单元分配给 IC芯片的相应引脚, 每一个独立的单元称为 BSC(Boundary-Scan Cell) 边界扫描单元。 这个串联的 BSC 在 IC内部构成 JTAG 回路, 所有的 BSR(Boundary-Scan Register) 边界扫描寄存器通过 J
TAG 测试激活, 平时这些引脚保持正常的 IC 功能。
3 JTAG 在线写 Flash 的硬件电路设计和与 PC的连接方式以含 JTAG 接口的 StrongARM SA1 1 1 0 为例, Flash 为 Intel 28F1 28J32 1 6MB 容量。 SA1 1 1 0 的 JTAG 的 TCK、 TDI、 TMS、 TDO 分别接 PC并口的 2、 3、 4、 1 1 线上, 通过程序将对 JTAG 口的控制指令和目标代码从 PC的并口写入 JTAG 的 BSR 中。

在设计 PCB 时, 必须将 SA1 1 10 的数据线和地址线及控制线与 Flash 的地线、 数据线和控制线相连。 因 SA1 1 1 0 的数据线、 地址线及控制线的引脚上都有其相应 BSC, 只要用 JTAG 指令将数据、 地址及控制信号送到其 BSC中, 就可通过 BSC 对应的引脚将信号送给 Flash, 实现对 Flash 的操作。
JTAG 的系统板设计和连线关系如图 3 所示。
4 通过使用 TAP状态机的指令实行对 Flash 的操作
通过 TCK、 TMS的设置, 可将 JTAG 设置为接收指令或数据状态。 JTAG 常用指令如下:
SAMPLE/PRELOAD——用此指令采样 BSC内容或将数据写入 BSC单元;
EXTEST——当执行此指令时, BSC 的内容通过引脚送到其连接的相应芯片的引脚, 我们就是通过这种指令实现在线写 Flash 的;
BYPASS——此指令将一个一位寄存器置于 BSC的移位回路中, 即仅有一个一位寄存器处于 TDI 和 TDO 之间。
在 PCB 电路设计好后, 即可用程序先将对 JTAG 的控制指令, 通过 TDI 送入 JTAG 控制器的指令寄存器中。 再通过 TDI 将要写 Flash 的地址、 数据及控制线信号入 BSR中, 并将数据锁存到 BSC 中, 用 EXTEST 指令通过 BSC 将写入 Flash。
5 软件编程
在线写 Flash 的程序用 Turbo C编写。 程序使用 PC的并行口, 将程序通过含有 JTAG 的芯片写入 Flash 芯片。 程序先对 PC的并口初始化, 对 JTAG 口复位和测试, 并读 Flash, 判断是否锁,如加锁, 必须先解锁, 方可进行操作。 写 Flash 之前, 必须对其先擦除。 将 JTAG 芯片设置在 EXTEST 模式, 通过 PC的并口, 将目标文件通过 JTAG 写入 Flash, 并在烧写完成后进行校验。 程序主流程如图 4 所示。
通过 JTAG 的读芯片 ID 子程序如下:
void id_command(void){
putp(1 ,0,IP); //Run-Test/Idle;使 JTAG 复位
putp(1 ,0,IP); //Run-Test/Idle
putp(1 ,0,IP); //Run-Test/Idle
putp(1 ,0,IP); //Run-Test/Idle
putp(1 ,1 ,IP);
putp(1 ,1 ,IP); //选择指令寄存器
putp(1 ,0,IP); //捕获指令寄存器
putp(1 ,0,IP); /移位指令寄存器
putp(0,0,IP); //SA1 1 1 0JTAG 口指令长度 5 位, IDCODE 为 01 1 00
putp(1 ,0,IP);
putp(1 ,0,IP);
putp(0,0,IP);
putp(0,0,IP);
putp(0,1 ,IP); //退出指令寄存器
putp(1 ,1 ,IP); //更新指令寄存器, 执行指令寄存器中的指令
putp(1 ,0,IP); //Run-Test/Idle
putp(1 ,0,IP); //Run-Test/Idle
putp(1 ,0,IP); //Run-Test/Idle
putp(1 ,1 ,IP);
putp(1 ,0,IP);
if(check_id(SA1 1 1 0ID))
error_out("failed to read device ID for the SA-1 1 1 0");
putp(1 ,1 ,IP); //退出数据寄存器
putp(1 ,1 ,IP); //更新数据寄存器
 putp(1 ,0,IP); //Run-Test/Idle,使 JTAG 复位
putp(1 ,0,IP); //Run-Test/Idle
putp(1 ,0,IP); //Run-Test/Idle
}
6 电路设计和编程中的注意事项
①Flash 芯片的 WE、 CE、 OE 等控制线必须与 SA1 1 1 0 的 BSR 相连。 只有这样, 才能通过 BSR 控制 Flash 的相应引脚。
②JTAG 口与 PC 并口的连接线要尽量短, 原则上不大于 1 5cm。
③Flash 在擦写和编程时所需的工作电流较大, 在选用系统的供电芯片时, 必须加以考虑。
④为提高对 Flash 的编程速度, 尽量使 TCK不低于 6MHz, 可编写烧写 Flash 程序时实现。

3 说明
通常所说的 JTAG 大致分两类, 一类用于测试芯片的电气特性, 检测芯片是否有问题; 一类用于 Debug; 一般支持 JTAG 的 CPU 内
都包含了 这两个模块。


一个含有 JTAG Debug 接口模块的 CPU, 只要时钟正常, 就可以通过 JTAG 接口访问 CPU 的内部寄存器和挂在 CPU 总线上的设备,如 FLASH, RAM, SOC(比如 451 0B, 44Box, AT91 M 系列) 内置模块的寄存器, 象 UART, Timers, GPIO 等等的寄存器。
上面说的只是 JTAG 接口所具备的能力, 要使用这些功能, 还需要软件的配合, 具体实现的功能则由具体的软件决定。


例如下载程序到 RAM 功能。 了解 SOC 的都知道, 要使用外接的 RAM, 需要参照 SOC DataSheet 的寄存器说明, 设置 RAM 的基地址, 总线宽度, 访问速度等等。 有的 SOC 则还需要 Remap, 才能正常工作。 运行 Firmware 时, 这些设置由 Firmware 的初始化程序完成。 但如果使用 JTAG 接口, 相关的寄存器可能还处在上电值, 甚至是错误值, RAM 不能正常工作, 所以下载必然要失败。 要正常使用,先要想办法设置 RAM。 在 ADW 中, 可以在 Console 窗口通过 Let 命令设置, 在 AXD 中可以在 Console 窗口通过 Set 命令设置。

举报

相关推荐

0 条评论