Infinity APEL JTAG Embedded-test Language allows quick and easy testing development of complex PCBs, including testing and programming of non-JTAG devices.
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.
The IEEE 1149.1 standard defines a set of instructions that must be available for a device to be considered compliant. These instructions are:
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.
APEL uses the Infinity Database. See Database for more information
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 | ![]() |