JTAG Tools

Infinity APEL JTAG Embedded-test Language allows quick and easy testing development of complex PCBs, including testing and programming of non-JTAG devices.

What is APEL?

APEL is a high-level scripting language which can be used to directly control the IO Ports on devices that are connected on the JTAG scan chain.

Boundary Scan Instructions

The IEEE 1149.1 standard defines a set of instructions that must be available for a device to be considered compliant. These instructions are:

  • BYPASS – this instruction causes the TDI and TDO lines to be connected via a single-bit pass-through register (the BYPASS register). This instruction allows the testing of other devices in the JTAG chain without any unnecessary overhead.
  • EXTEST – this instruction causes the TDI and TDO to be connected to the Boundary Scan Register (BSR). The device’s pin states are sampled with the ‘capture dr’ JTAG state and new values are shifted into the BSR with the ‘shift dr’ state; these values are then applied to the pins of the device using the ‘update dr’ state.
  • SAMPLE – this instruction causes the TDI and TDO to be connected to the BSR. However, the device is left in its normal functional mode. During this instruction, the BSR can be accessed by a data scan operation to take a sample of the functional data entering and leaving the device. The instruction is also used to preload test data into the BSR prior to loading an EXTEST instruction.

The Need for APEL

APEL uses these commands to allow the boundary scan chain to be read or loaded

Suppose we had a board that was connected as follows:

Using APEL we could read the sensor, regardless of how the JTAG devices are configured and without having to add anyembedded test software with a script such as

FOR LOOP = 1 TO COUNT
    EPM3032AT44.IO23 = "1"
    LOAD
    EPM3032AT44.IO23 = "0"
    LOAD        // This will sample the pins as well
    RESULT = RESULT + EPM3032AT44.IO24    // Add the result to a string
NEXT

Perhaps there is a parallel FLASH device that needs programming i.e.

Well with APEL we can program the FLASH device without the FLASH being connected on the JTAG chain even if the interface is connected across different devices on the JTAG chain.

OPEN INT, "PROGRAM.HEX", DATAARRAY
BUS ADDRESSBUS = {DEVICE1.IO30, DEVICE1.IO31 DEVICE1.IO32, DEVICE1.IO33 }
BUS DATABUS = { DEVICE2.IO34, DEVICE2.IO35, DEVICE2.IO36, DEVICE2.IO37 }
BUS WE = DEVICE1.IO38
FOR i = 1 TO LENGTH(DATAARRAY)
  ADDRESSBUS = STRV(i-1,4,OUTPUT)
  DATABUS = DATAARRAY[i-1]
  WE = "0"
  LOAD    // PUT the address and data values on the PINS
  WE = "1"
  LOAD    // Set WE high
  WE = "0"
  LOAD    // Take it low again
NEXT

APEL can also be used to test boards in JTAG SAMPLE mode by writing scripts that test that inputs have changed (clocks are present and databuses are toggling), test connectivity between pins on the board or waiting for configuration pins to toggle etc.

APEL provides comprehensive functional testing and debugging of boards, including non-JTAG devices. It allows variables, arrays and bus definitions and supports complex loops, functions, delays and conditional execution.

The APEL Studio Script Editor provides breakpoints, single-step execution, variable and bus tracing and editing and device chain visualisation. Write your own custom test sequences, generate script automatically using the Script Wizard or use code provided by Atomic Programming.


ActiveX Object script control allows full integration of software into the user's GUI, and a Console mode run scripts from command prompts. The APEL Player function means scripts can be compiled to be run at remote sites without having to release the source code.



The APEL Player script runner functions means scripts can be compiled to be run at remote sites without having to release the source code. ActiveX Object script control allows full integration of software into the user's GUI, and a Console mode run scripts from command prompts or within batch files or scripts. These are all included in the basic version of APEL.

Infinity Database

APEL uses the Infinity Database. See Database for more information

Availability 

APEL is available with three different license options. The table below helps identify exactly which features are available with each option:

Infinity APEL Features Runner Studio Studio+
Windows APEL Script Runner
Console APEL Script Runner
ActiveX Object
Script Editor  
Debugger  
APEL Script Wizard     
APEL Compiler    
Atomic Script Library    


 

 

Filters
List of articles in category APEL
Title
APEL Example Scripts
APEL Script Wizard Tutorial
APEL Studio Tutorial
FAQ and Useful APEL Tricks

APEL Language Reference

APEL Fundamentals
Functions19
ASC
CHR
DATE
DECV
HEXS
HEXV
LENGTH
LOWER
NOT
RND
SPLIT
STRH
STRV
SUBST
TIME
UPPER
VALD
VALH
VALS
Operators
Statements19
TRST
Bus
Bypass
Chain
Clock
Const
Dim
Do
End
Frequency
Function
If
Include
MsgBox
Load
Open
Print
Sample
Save
  Address: 13 Springfield Avenue, Sheffield, S7 2GA, United Kingdom
  Tel/Fax: +44 (0)114 221 8588
 Email: sales@atomicprogramming.com
 
 
 
 
 

Copyright © 2022 Atomic Programming Ltd . All Rights Reserved.

Powered By T3 Framework