ChipProgUSB PDF
ChipProgUSB PDF
ChipProgUSB PDF
User's Guide
ChipProg-481,
ChipProg-G41,
ChipProg-48,
ChipProg-40,
ChipProg-ISP
All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or
mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the
written permission of the publisher.
Products that are referred to in this document may be either trademarks and/or registered trademarks of the
respective owners. The publisher and the author make no claim to these trademarks.
While every precaution has been taken in the preparation of this document, the publisher and the author assume no
responsibility for errors or omissions, or for damages resulting from the use of information contained in this
document or from the use of programs and source code that may accompany it. In no event shall the publisher and
the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused
directly or indirectly by this document.
Table of Contents
Foreword 0
Part I Introduction 9
1 Terms ...................................................................................................................................
and Definitions 9
2 System
...................................................................................................................................
Requirements 11
3
4 ChipProg Device Programmers
User Interface..........................................................................................................................................................
Overview 38
Toolbars .......................................................................................................................................................... 39
Menus .......................................................................................................................................................... 39
The File Menu
......................................................................................................................................................... 40
Configuration Files ......................................................................................................................................... 41
The View Menu
......................................................................................................................................................... 41
The Project.........................................................................................................................................................
Menu 42
The Project Options .........................................................................................................................................
Dialog 42
The Open Project.........................................................................................................................................
Dialog 43
Project Repository ......................................................................................................................................... 43
The Configure
.........................................................................................................................................................
Menu 44
The Select Device .........................................................................................................................................
dialog 45
The Buffers dialog ......................................................................................................................................... 45
The Buffer Configuration ...................................................................................................................................
dialog 46
Main Buffer Layer ................................................................................................................................... 46
Buffer Layers ................................................................................................................................... 47
The Serialization,.........................................................................................................................................
Checksum and Log dialog 47
General settings................................................................................................................................... 48
Device Serialization ................................................................................................................................... 49
Checksum ................................................................................................................................... 50
Signature string ................................................................................................................................... 51
Custom Shadow...................................................................................................................................
Areas 51
Overlaping data ...................................................................................................................................
specified in shadow areas 51
Log file ................................................................................................................................... 52
The Preferences .........................................................................................................................................
dialog 53
The Environment .........................................................................................................................................
dialog 55
Fonts ................................................................................................................................... 55
Colors ................................................................................................................................... 56
Mapping Hot Keys ................................................................................................................................... 57
Toolbar ................................................................................................................................... 57
Messages ................................................................................................................................... 58
Miscellaneous Settings ................................................................................................................................... 58
Configurating Editor .........................................................................................................................................
Dialog 59
General Editor Settings ................................................................................................................................... 59
The Editor Key Mapping ................................................................................................................................... 61
The Edit Key Command ...................................................................................................................................
Dialog 61
The Commands.........................................................................................................................................................
Menu 62
Calculator ......................................................................................................................................... 62
The Script .........................................................................................................................................................
Menu 63
The Window .........................................................................................................................................................
Menu 64
The Help Menu
......................................................................................................................................................... 65
Window s .......................................................................................................................................................... 65
The Program .........................................................................................................................................................
Manager Window 65
The Program Manager .........................................................................................................................................
tab 66
Auto Programming ................................................................................................................................... 67
The Options tab ......................................................................................................................................... 68
Split data ................................................................................................................................... 69
The Statistics tab......................................................................................................................................... 70
The Device.........................................................................................................................................................
and Algorithm Parameters w indow 71
Buffer Dump .........................................................................................................................................................
Window 74
The 'Configuring a .........................................................................................................................................
Buffer' dialog 75
The 'Buffer Setup' .........................................................................................................................................
dialog 76
The 'Display from.........................................................................................................................................
address' dialog 78
The 'Modify Data'.........................................................................................................................................
dialog 78
5
6 ChipProg Device Programmers
ACI_GetDevice
......................................................................................................................................................... 130
ACI_GetLayer
......................................................................................................................................................... 130
ACI_CreateBuffer
......................................................................................................................................................... 130
ACI_ReallocBuffer
......................................................................................................................................................... 130
ACI_ReadLayer
......................................................................................................................................................... 131
ACI_WriteLayer
......................................................................................................................................................... 131
ACI_FillLayer
......................................................................................................................................................... 131
ACI_GetProgrammingParams
......................................................................................................................................................... 132
ACI_SetProgrammingParams
......................................................................................................................................................... 132
ACI_GetProgOption
......................................................................................................................................................... 132
ACI_SetProgOption
......................................................................................................................................................... 133
ACI_AllProgOptionsDefault
......................................................................................................................................................... 134
ACI_ExecFunction
......................................................................................................................................................... 134
ACI_StartFunction
......................................................................................................................................................... 134
ACI_GangStart
......................................................................................................................................................... 135
ACI_GetStatus
......................................................................................................................................................... 135
ACI_TerminateFunction
......................................................................................................................................................... 135
ACI_GangTerminateFunction
......................................................................................................................................................... 135
ACI_FileLoad
......................................................................................................................................................... 136
ACI_FileSave
......................................................................................................................................................... 136
ACI_SettingsDialog
......................................................................................................................................................... 136
ACI_SelectDeviceDialog
......................................................................................................................................................... 136
ACI_BuffersDialog
......................................................................................................................................................... 137
ACI_LoadFileDialog
......................................................................................................................................................... 137
ACI_SaveFileDialog
......................................................................................................................................................... 138
ACI_SetConnection
......................................................................................................................................................... 139
ACI_GetConnection
......................................................................................................................................................... 139
ACI Structures
.......................................................................................................................................................... 140
ACI_Launch_Params
......................................................................................................................................................... 141
ACI_Config_Params
......................................................................................................................................................... 141
ACI_Device_Params
......................................................................................................................................................... 142
ACI_Layer_Params
......................................................................................................................................................... 142
ACI_Buffer_Params
......................................................................................................................................................... 143
ACI_Memory_Params
......................................................................................................................................................... 145
ACI_Programming_Params
......................................................................................................................................................... 146
ACI_ProgOption_Params
......................................................................................................................................................... 148
ACI_Function_Params
......................................................................................................................................................... 152
ACI_GangTerminate_Params
......................................................................................................................................................... 154
ACI_PStatus_Params
......................................................................................................................................................... 154
ACI_File_Params
......................................................................................................................................................... 156
ACI_GangStart_Params
......................................................................................................................................................... 157
ACI_Connection_Params
......................................................................................................................................................... 158
Exam ples of ..........................................................................................................................................................
use 158
7 Control
...................................................................................................................................
from NI LabVIEW 160
Com m and Line
..........................................................................................................................................................
Control from LabVIEW 160
Control from..........................................................................................................................................................
LabVIEW w ith DLL 163
How to erase..........................................................................................................................................................
a device 167
How to program
..........................................................................................................................................................
a device 167
How to load
.........................................................................................................................................................
a file into a buffer 168
How to edit
.........................................................................................................................................................
information before programming 168
How to configure
.........................................................................................................................................................
the chosen device 168
How to w.........................................................................................................................................................
rite information into the device 168
How to read ..........................................................................................................................................................
a device 169
How to verify..........................................................................................................................................................
program m ing 169
How to save ..........................................................................................................................................................
data on a disc 169
How to duplicate
..........................................................................................................................................................
a device 170
4 Programming
...................................................................................................................................
NAND Flash memory 170
NAND Flash m ..........................................................................................................................................................
em ory architectures 170
Invalid blocks
......................................................................................................................................................... 172
Managing invalid.........................................................................................................................................
blocks 172
Skipping invalid...................................................................................................................................
blocks 172
Reserved Block...................................................................................................................................
Area 172
Error Checking ...................................................................................................................................
and Correction 173
Invalid block map ......................................................................................................................................... 173
Marking invalid
.........................................................................................................................................................
blocks 174
Program m ing ..........................................................................................................................................................
NAND Flash devices by ChipProg 175
Access Mode ......................................................................................................................................................... 176
Invalid Block Management......................................................................................................................................... 176
Spare Area Usage ......................................................................................................................................... 176
Guard Solid Area ......................................................................................................................................... 177
Tolerant Verify Feature ......................................................................................................................................... 178
Invalid Block Indication.........................................................................................................................................
Option 178
Access Mode .........................................................................................................................................................
Parameters 178
User Area ......................................................................................................................................... 179
Solid Area ......................................................................................................................................... 179
Reserved Block.........................................................................................................................................
Area 180
ECC Frame size......................................................................................................................................... 180
Acceptable number .........................................................................................................................................
of errors 180
5 Multi-
...................................................................................................................................
and Gang-programming 181
The Program..........................................................................................................................................................
Manager Window 182
The Program
.........................................................................................................................................................
Manager tab 183
The Options
.........................................................................................................................................................
tab 183
The Statistics
.........................................................................................................................................................
tab 184
6 In-System
...................................................................................................................................
Programming 186
7
8 ChipProg Device Programmers
Index 208
1 Introduction
Copyright © 2005-2014, Phyton, Inc. Microsystems and Development Tools, All rights reserved
Target device or Target The device to be programmed by a programmer either in the programmer
socket or by an additional adapter or by a cable for in-system
programming.
Start and End Addresses A range of the device physical memory for the programming operations
(of the Target device) (Read, Write, Verify, etc.).
Adapter or Package A small transition board with dual-in-line rows of pins pluggable into the
adapter programmer ZIF socket on the bottom side and with a package-specific
ZIF socket (TSOP, PLCC, etc.) on the top. The adapters for in-system
programming by means of the parallel programmers are implemented as
ribbon cables that connect to the target board via a special header. The
adapter boards can carry passive components (ZIF sockets, pins and
cables) and active components (drivers, latches, transistors, etc.).
Hundreds of Phyton brand adapters as well as third party adapters are
available to support devices in most types of mechanical packages.
File In the ChipProg context the term file may represent: a) an image of
information on a PC hard drive or other media that is supposed to be
written into the target device’s physical memory or b) an image read out
from the target device and then stored on the disk or other media. Files in
a ChipProg can be loaded from and saved on a PC hard drive or CD.
Buffer or Memory buffer A memory segment, physically assigned from the computer operational
memory (RAM), for temporarily storing, editing and displaying the data to
be physically written to the target device’s memory or read out from the
device. The program allows opening an unlimited number of buffers of any
size while it is not restricted by the computer memory.
Buffer layer or sub-layer A buffer may have a few layers (in some topics also known as sub-layers)
that are defined by a particular architecture and memory model of the
target device. For example, for some microcontrollers one buffer can
include the code and data memory layers (see more details below).
Buffer size The buffers may have different sizes from 128KB to 32GB each.
Buffer start address The address to display the buffer contents from.
Checksum An arithmetic sum of the data located within a specified part of the buffer
calculated by the programmer to control the data integrity. The program
enables different algorithms for the checksum calculation and enables
writing the checksum into a specified location of the target device.
Parallel or In-socket Operations on a device being placed into the programmer’s ZIF socket or
programming into a programming adapter (opposite to the in-system programming
below).
ICP or in-circuit Programming devices mounted on the boards (in the user’s equipment) via
programming special adapter-cable connecting the programmer to the target.
ISP or in-system Same as above. Programming devices mounted on the boards (in the
programming user’s equipment) via special adapter-cable connecting the programmer
with the target.
ISP Mode Mode of the in-system programming that is usually defined by the
programming signals voltage or the ISP interface (JTAG, UART, SPI, etc.).
Distinct ISP modes are enabled for different target devices and more than
one mode may exist for one device.
ISP HV Mode In-system programming that requires applying a relatively high voltage to
the target device, (12V for example).
Command Line mode A method of the ChipProg control by means of interacting with a computer
program where the user issues commands to the program in the form of
successive lines of text (command lines).
Project An integrated set of information that completely describes the target
device, properties of the data buffers, programming options and settings,
list of the source and destination files with all their properties, etc.. Each
project, that has its own unique name, can be stored and promptly
reloaded for immediate execution. Usually a user creates a project to work
with one type of device. Working with projects saves a lot of time for the
initial configuration of the programmer every time you start working with a
new device.
1. In the Intel 87C51FA microcontroller each opened buffer includes two layers: Code and
Encryption table.
2. In the Microchip PIC16F84 microcontroller each opened buffer includes three layers: Code, Data
EEPROM and Identifier locations.
Each buffer layer can be opened for watching or editing by clicking its tab on the top of the buffer
window.
ChipProg-481, ChipProg-48 and ChipProg-40 single-site device programmers are intended for
engineering and small volume manufacturing. These models allow operating on the devices before they
are installed in the equipment (parallel programming or in-socket programming) as well as on the devices
already installed in the user's equipment (the method known as In-System Programming, that uses
serial data transmission into the programmable device). ChipProg-48 and ChipProg-40 device
programmers are controlled by the ChipProgUSB software, a newer ChipProg-481 - by the
ChipProgUSB-01 software pack. Since both ChipProgUSB and ChipProgUSB-01 models has the
same user interface, control tools, etc. this document operates with the ChipProgUSB term applicable
to both software packages.
ChipProg-G41 and ChipProg-G4 (, discontinued in 2010-2011) four-site gang device programmers are
intended for mass production. The , ChipProg-G41 gang machine is based on four concurrently and
independently running ChipProg-481 device programmers. The ChipProg-481 is controlled by the
ChipProgUSB-01 software pack.
The ChipProg-ISP is a low-cost device programmer for engineering, field service and manufacturing.
Unlimited number of these device programmers can be driven from one PC and can run concurrently to
program multiple devices at a time. This device programmer works under control of the ChipProgUSB
software pack.
ChipProg-40: the least expensive Phyton device programmer, intended for working with a limited
device list; it does not support PLDs.
ChipProg-48: truly universal yet inexpensive device programmer; may not be fast enough for NAND
programming.
ChipProg-481: truly universal device programmer: extremely fast, targeted to NAND memory
support.
ChipProg-G41: extremely fast 4-site device programmer for production; can be controlled remotely
from ATE.
ChipProg-ISP: inexpensive in-system programmer; multiple ChipProg-ISPs can be driven in the
gang mode.
See also.
2.1 ChipProg-481
The ChipProg-481 universal programmer can be effectively used for both engineering and low-volume
manufacturing. It supports in-socket and in-system programming of thousand of devices and has no
valuable limitations in supporting future devices. The unlimited future device support differs ChipProg-
481 from the simplified, much slower and less expensive ChipProg-40 model. The ChipProg-481 is
much faster than the ChipProg-48 model, especially on high density NAND and NOR flash memory
devices (~15-20 times faster).
The programmer has a 48-pin DIP ZIF socket that enables inserting any wide or narrow DIP-packed
devices with up to 48 leads without the necessity to use any additional adapters. Programming of other
devices requires the use of additional adapters available from Phyton and a few selected vendors. The
programmer has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”) and the
“Start” button for fast launch of the pre-programmed command chains. The palm-size programmer has a
wall-plugged power adapter that is not shown on the picture above.
Optionally the package may include one or more programming adapters (if ordered with the programmer)
and a “QuickStart” printed manual. See also for more details:
Major features
Hardware characteristics
Software features
1. The ChipProgUSB-01 software works under control of Windows XP, 7 (32- and 64-bit), 8.
2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command
Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are
2.2 ChipProg-G41
The ChipProg-G41 is a 4-site gang programmer based on four ChipProg-481 programming modules
enclosed in one case and driven from the ChipProgUSB-01 software. It is intended for middle- and low-
volume manufacturing. It supports in-socket and in-system programming of thousand of devices and has
no valuable limitations for supporting future devices.
Optionally the package may include one or more programming adapters (if ordered with the programmer)
and a “QuickStart” printed manual. See also for more details:
Major features
Hardware characteristics
Software features
1. The ChipProgUSB-01 software works under control of Windows XP, 7 (32- and 64-bit), 8.
2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command
Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are
included into the standard ChipProgUSB package.
3. Includes a set of basic commands: Blank Check, Erase, Read, Write, Verify, Lock, Set Configuration
Bits, Data Memory Support, etc., executed by a single mouse click.
4. Enables presetting a batch of the commands above executed one after one either by a manual start or
by a mouse click or automatically upon the device insertion into the programming socket.
5. Allows serialization of the programming devices with auto incrementing the device numbers and
storing a serialization log (in the Auto Programming mode only).
6. The program can calculate checksums of the selected data array and then write the checksum into a
specified memory location of the target device (in the Auto Programming mode only). Several
methods of the checksum calculation can be used.
7. The program allows writing a unique signature into a specified memory location of the target device for
the device identification (in the Auto Programming mode only).
8. The project support speeds up and simplifies switching between different programming tasks.
9. The software allows pre-programming a particular operation (or a chain of operations), which is
supposed to be automatically triggered when the programmer hardware detects insertion of the target
device into the programming socket.
10. An unlimited number of memory buffers can be opened in the main ChipProgUSB-01 window.
11. The software supports a multiple programming mode for concurrent programming of the same type of
target devices on the same type of programmers connected to one computer. A number of single
device programmers connected to the programming cluster does not slow down the programming
speed.
12. The software includes a full-scale binary editor allowing manual modification of the data in buffers as
well as such helpful functions as Search and Replace, Fill, Compare, Copy, Invert, Calculate
Checksum, and OR, AND, XOR logical operations on the blocks of data.
13. Loading and saving files in several standard and proprietary formats: Binary, Standard Extended Intel
HEX, Motorola S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem
SAV. Special non-standard formats can be added upon request.
14. The software is featured by a script language and a mechanism of handling the script scenarios for
automation of the routine operations and chip replications.
2.3 ChipProg-48
The ChipProg-48 universal programmer can be effectively used for both engineering and low-volume
manufacturing. It supports in-socket and in-system programming of thousand of devices and has no
valuable limitations in supporting future devices. The unlimited future device support differs ChipProg-48
from the simplified and less expensive ChipProg-40 model.
The programmer has a 48-pin DIP ZIF socket that enables inserting any wide or narrow DIP-packed
devices with up to 48 leads without the necessity to use any additional adapters. Programming of other
devices requires the use of additional adapters available from Phyton and a few selected vendors. The
programmer has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”) and the
“Start” button for fast launch of the pre-programmed command chains. The palm-size programmer has a
wall-plugged power adapter that is not shown on the picture above.
Optionally the package may include one or more programming adapters (if ordered with the programmer)
and a “QuickStart” printed manual. See also for more details:
Major features
Hardware characteristics
Software features
1. The ChipProgUSB software works under control of Windows XP, 7 (32- and 64-bit), 8.
2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command
Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are
2.4 ChipProg-40
The ChipProg-40 universal programmer can be effectively used for both engineering and low-volume
manufacturing. It supports in-socket and in-system programming of thousand of devices. The
programmer hardware has some limitations for supporting certain devices. It does not support any PLDs.
This is a difference between the cheaper ChipProg-40 and the enhanced ChipProg-48 model.
The programmer has a 40-pin DIP ZIF socket that enables inserting any wide or narrow DIP-packed
devices with up to 40 leads without the necessity to use any additional adapters. Programming of other
devices requires use of additional adapters available from Phyton and a few selected vendors. The
programmer has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”) and the
“Start” button for fast launch of the pre-programmed command chains. The palm-size programmer has a
wall-plugged power adapter that is not shown on the picture above.
Optionally the package may include one or more programming adapters (if ordered with the programmer)
and a “QuickStart” printed manual. See also for more details:
Major features
Hardware characteristics
Software features
1. The ChipProgUSB software works under control of Windows XP, 7 (32- and 64-bit), 8.
2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command
Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are
included into the standard ChipProgUSB package.
3. Includes a set of basic commands: Blank Check, Erase, Read, Write, Verify, Lock, Set Configuration
Bits, Data Memory Support, etc., executed by a single mouse click.
4. Enables presetting a batch of the commands above executed one after one either by a manual start or
by a mouse click or automatically upon the device insertion into the programming socket.
5. Allows serialization of the programming devices with auto incrementing the device numbers and
storing a serialization log (in the Auto Programming mode only).
6. The program can calculate checksums of the selected data array and then write the checksum into a
specified memory location of the target device (in the Auto Programming mode only). Several
2.5 ChipProg-ISP
The ChipProg-ISP is an inexpensive universal device programmer for programming devices installed in
the equipment. This type of programming is known as “in-system” or “in-circuit” programming. The
ChipProg-ISP supports serial EPROM and EEPROM flash memory devices and embedded
microcontrollers with the code and data memory programmable via different types of serial ports: UART,
JTAG, SWD, SPI and other types, including proprietary interfaces.
The programmer has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”) and the
“Start” button for fast launch of the pre-programmed command chains. The tool shown on the picture is
very small and requires no power adapter for the operations - it gets power from the USB computer port.
.
The programmer has a 14-pin output connector BH-14R. A variety of Phyton adapting cables allow
connecting to the target. A simple pin-to-pin ribbon cable AS-ISP-CABLE is supplied with the
programmer by default, and other cables (adapters) can be ordered on demand. The BH-14R connector
output information signals for the chip programming and some service signals that enable using the
programmer in the automated programming and testing equipment. See the BH-14R pinout:
ChipProg-ISP BH-
14R connector Logical signal
1 Target specific*
2 Target specific*
3 Target specific*
4 Target specific*
5 Target specific*
6 Target specific*
7 Target specific*
8 Target specific*
9 GND
10 Target specific*
11 /Start
12 /Error
13 /Good
14 /Busy
Signals on the pins #1 to #9 and on the pin #10 are used for transmitting and receiving information and
synchro impulses to and from the target device. These signals are target specific and depend on the
type of target device or a family in general (AVR, PIC, etc.) - see here. They also are shown in the
adapters wiring diagrams; see the file adapters.chm included in the ChipProgUSB set.
The signals on the output pins #12, #13 and #14 represent the programmer statuses - logical '0' means
an active status, logical '1' - passive. E.g.:
An active signal on the input pin #11 (log.'0') starts the preset operation, the device programming by
default. Activation of this signal, e.g. a falling edge, is equivalent to pushing the "Start" button on the
programmer. See the diagram below:
Optionally the package may include one or more programming cable-adapters (if ordered with the
programmer) and a “QuickStart” printed manual. See also for more details:
Major features
Hardware characteristics
Software features
1. The ChipProgUSB software works under control of Windows XP, 7 (32- and 64-bit), 8.
2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command
Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are
included into the standard ChipProgUSB package.
3. Includes a set of basic commands: Blank Check, Erase, Read, Write, Verify, Lock, Set Configuration
Bits, Data Memory Support, etc., executed by a single mouse click.
4. Enables presetting a batch of the commands above executed one after one either by a manual start or
by a mouse click or automatically upon the device insertion into the programming socket.
5. Allows serialization of the programming devices with auto incrementing the device numbers and
storing a serialization log (in the Auto Programming mode only).
6. The program can calculate checksums of the selected data array and then write the checksum into a
specified memory location of the target device (in the Auto Programming mode only). Several
methods of the checksum calculation can be used.
7. The program allows writing a unique signature into a specified memory location of the target device for
the device identification (in the Auto Programming mode only).
8. The project support speeds up and simplifies switching between different programming tasks.
9. The software allows pre-programming a particular operation (or a chain of operations), which is
supposed to be automatically triggered when the programmer hardware detects insertion of the target
device into the programming socket.
10. An unlimited number of memory buffers can be opened in the main ChipProgUSB window.
11. The software supports a multiple programming mode for concurrent programming of the same type of
target devices on the same type of programmers connected to one computer. A number of single
device programmers connected to the programming cluster does not slow down the programming
speed.
12. The software includes a full-scale binary editor allowing manual modification of the data in buffers as
well as such helpful functions as Search and Replace, Fill, Compare, Copy, Invert, Calculate
Checksum, and OR, AND, XOR logical operations on the blocks of data.
13. Loading and saving files in several standard and proprietary formats: Binary, Standard Extended Intel
HEX, Motorola S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem
SAV. Special non-standard formats can be added upon request.
14. The software is featured by a script language and a mechanism of handling the script scenarios for
automation of the routine operations and chip replications.
3 Quick Start
It is highly recommended to read all the manual basic topics included in the chapters Graphical User
Interface and Operating with ChipProg programmers before starting to use the tool.
It is assumed that you are an experienced user of MS Windows and basic Windows operations.
The folder Quick Start Manuals includes links to PDF manuals in the destination folder where the
products has been installed.
The ChipProgUSB On-Line Help icon opens the programmer on-line Help document (.CHM).
The ChipProgUSB User's Guide icon opens a complete programmer user's guide in the PDF format.
The FTDI USB Device Driver Installer icon launches the utility allowing installing and uninstalling USB
drivers.
The Phyton ChipProgUSB -- Gang Mode (Diagnostic Mode) icon invokes the ChipProgUSB
executable file and starts operations on multiple ChipProg programmers connected to one computer in
the diagnostic mode. In the diagnostic mode the programmer works considerably slower than it works in
the working mode – do not use this mode unless Phyton required special diagnostic files for the
troubleshooting.
The Phyton ChipProgUSB -- Gang Mode icon invokes the ChipProgUSB executable file and starts
operations for the ChipProg -G41 gang device programmer or the ChipProg-48, ChipProg-40 and
ChipProg-ISP programmers working in a multiprogramming mode.
The Phyton ChipProgUSB (Diagnostic Mode) icon invokes the ChipProgUSB executable file and
starts operations for a single ChipProg-ISP programmer working in a single programming mode, e.g.
when one programmer works on one target device. In the diagnostic mode the programmer works
considerably slower – do not use this mode unless Phyton did not require special diagnostic files for the
troubleshooting.
The Phyton ChipProgUSB icon invokes the ChipProgUSB executable file and starts operations for the
ChipProg-48, ChipProg-40 and ChipProg-ISP programmers working in a single programming mode.
The Phyton ChipProgUSB Demo icon invokes a demo version of the ChipProgUSB software that
allows evaluating the product without having the programmer's hardware.
The Phyton WEB site icon opens the www.phyton.com website in your favorite Internet browser.
The Programming Adapters icon opens the adapters.chm file that list all the Phyton programming
adapters with their short descriptions and wiring diagrams.
The Revision History icon opens the ChipProgUSB versions history file.
The Uninstall Phyton ChipProgUSB Programmer icon starts a process of removing the ChipProgUSB
program from your computer.
It is a mandatory for you to use the original power adapter 12V/1A received with the ChipProg-40 or
ChipProg -48 programmer and an original power cord for the ChipProg-G41 gang programmer. Any
substitutions should be agreed to with Phyton. It is also highly recommended to use the USB link
cables received with the programmers.
The hardware installations for different programmer models vary. Select the topic to see:
3.3.1 ChipProg-481
For the programmer to be used in a single-programming mode:
Powering the Plug the power adapter to the ~110/240V outlet. Connect a plug of the
programmer power adapters to the coaxial connector on the rear panel of the
programmers and make sure that the "Good" green LEDs on each of
them are on.
Connecting to a PC Connect the USB port of your PC to the USB connector on the rear panel
of the programmer by means of the USB cable. It is recommended to
connect the programmer to a USB slot on the computer main unit and do
not connect it through a USB hub, especially through a passive hub.
Powering the Plug the power adapters of each programmer to be connected in one
programmers programming cluster to the 110/240V outlets. Connect plugs of the power
adapters to the coaxial connectors on the rear panels of all the
programmers and make sure that the "Good" green LEDs on each of
them are on.
Connecting the Connect the USB ports of your PCs to the USB connectors on the rear
programmers to a panels of the programmers by means of the USB cables. It's
cluster recommended to connect the programmers to USB slots on the computer
main unit and do not connect them through a USB hub, especially
through a passive hub.
Starting up Start the Phyton ChipProgUSB-01 - Gang Mode program; if all the
programmers pass the startup test successfully the first dialog prompts
you to assign the number from one to N to each programmer included in
the cluster. To assign the number push a Start button on a top panel of
each programmer one by one. Then the ChipProgUSB-01 main window
will open and you will be able to work with the tool.
3.3.2 ChipProg-G41
Powering the Plug the power cord to a power connector on the rear panel of the
programmer programmer, then plug an opposite site to the ~110/240V outlet. Make
sure that all four "Good" green LEDs on the programmer are on.
Connecting to a PC Connect a USB port of your PC to a USB connector on the rear panel of
the programmer by means of the USB cable. It's highly recommended to
connect the programmer to a USB slot on the computer main unit and not
connect it through a USB hub, especially through a passive hub. Use of
the passive USB hubs for connecting the ChipProg-G41 programmer is
not allowed.
Starting up Important! When you start the programmer first time wait for about
20 seconds to allow the USB driver to be setup. Then, every time
when you start the programmer, wait for 5...10 sec before
launching the ChipProgUSB-01 software.
3.3.3 ChipProg-48
For the programmer to be used in a single-programming mode:
Powering the Plug the power adapter to the ~110/240V outlet. Connect a plug of the
programmer power adapters to the coaxial connector on the rear panel of the
programmers and make sure that the "Good" green LEDs on each of
them are on.
Connecting to a PC Connect the USB port of your PC to the USB connector on the rear panel
of the programmer by means of the USB cable. It is highly recommended
to connect the programmer to a USB slot on the computer main unit and
do not connect it through a USB hub, especially through a passive hub.
Starting up Start the Phyton ChipProgUSB program; if the programmer passes the
startup test successfully the first dialog prompts you to choose one of the
programmers to work with: ChipProg-48, ChipProg-40 or ChipProg-ISP.
Select the ChipProg-48 and continue. The ChipProgUSB main window
will open and you will be able to work with the tool.
Powering the Plug the power adapters of each programmer to be connected in one
programmers programming cluster to the 110/240V outlets. Connect plugs of the power
adapters to the coaxial connectors on the rear panels of all the
programmers and make sure that the "Good" green LEDs on each of
them are on.
Connecting the Connect the USB ports of your PCs to the USB connectors on the rear
programmers to a panels of the programmers by means of the USB cables. It's highly
cluster recommended to connect the programmers to USB slots on the computer
main unit and do not connect them through a USB hub, especially
through a passive hub.
Starting up Start the Phyton ChipProgUSB - Gang Mode program; if all the
programmers pass the startup test successfully the first dialog prompts
you to assign the number from one to N to each programmer included in
the cluster. To assign the number push a Start button on a top panel of
each programmer one by one. Then the ChipProgUSB main window will
open and you will be able to work with the tool.
3.3.4 ChipProg-40
Powering the Plug the power adapter to the ~110/240V outlet. Connect a plug of the
programmer power adapter to the coaxial connector on the rear panel of the
programmer and make sure that the "Good" green LED on the
programmer is on.
Connecting to a PC Connect a USB port of your PC to a USB connector on the rear panel of
the programmer by means of the USB cable. It's highly recommended to
connect the programmer to a USB slot on the computer main unit and not
connect it through a USB hub, especially through a passive hub.
Starting up Start the Phyton ChipProgUSB program; if the programmer passes the
startup test successfully the first dialog prompts you to choose one of the
programmers to work with: ChipProg-48, ChipProg-40 or ChipProg-ISP.
Select the ChipProg-40 and continue. The ChipProgUSB main window
will open and you will be able to work with the tool.
Powering the Plug the power adapters of each programmer to be connected in one
programmers programming cluster to the 110/240V outlets. Connect plugs of the power
adapter to the coaxial connectors on the rear panels of all the
programmers and make sure that the "Good" green LEDs on each of
them are on.
Connecting the Connect USB ports of your PCs to USB connectors on the rear panels of
programmers to a the programmers by means of the USB cables. It's highly recommended
cluster to connect the programmers to USB slots on the computer main unit and
not connect them through a USB hub, especially through a passive hub.
Starting up Start the Phyton ChipProgUSB - Gang Mode program; if all the
programmers pass the startup test successfully the first dialog prompts
you to assign the number from one to N to each programmer included in
the cluster. To assign the number push a Start button on a top panel of
each programmer one by one. Then the ChipProgUSB main window will
open and you will be able to work with the tool.
3.3.5 ChipProg-ISP
For the programmer to be used in a single programming mode, e.g. alone:
Connecting to a PC Connect a USB port of your PC to a USB connector on the rear panel of
the programmer by means of the USB cable. Make sure that the "Good"
green LED on the programmer is on. It's highly recommended to connect
the programmer to a USB slot on the computer main unit and not connect
it through a USB hub. Use of the passive USB hubs for connecting the
ISP programmers is not allowed.
Starting up Start the Phyton ChipProgUSB program; if the programmer passes the
startup test successfully the first dialog prompts you to choose one of the
programmers to work with: ChipProg-48, ChipProg-40 or ChipProg-ISP.
Select the ChipProg-ISP and continue. The ChipProgUSB main window
will open and you will be able to work with the tool.
Connecting the Connect USB ports of your PCs to USB connectors on the rear panels of
programmers to a the programmers by means of the USB cables. Make sure that the
cluster "Good" green LEDs on all the programmers are on. It's highly
recommended to connect the programmers to USB slots on the computer
main unit and not connect them through a USB hub. The ChipProg
programmers get power from the computer's USB port; that is why it's
important not to overload the ports. Use of the passive USB hubs for
clustering the ISP programmers is not allowed.
Starting up Start the Phyton ChipProgUSB - Gang Mode program; if all the
programmers pass the startup test successfully the first dialog prompts
you to assign the number from one to N to each programmer included in
the cluster. To assign the number push a Start button on a top panel of
each programmer one by one. Then the ChipProgUSB main window will
open and you will be able to work with the tool.
The ChipProgUSB software has a pretty comprehensive context-sensitive on-line Help. To access it press
the F1 key or use the Help menu. Almost every ChipProgUSB dialog, message box and menu has its own
context-sensitive help, which can be invoked for the active dialog or menu by pressing F1.
In most cases you can find the necessary topic by searching for a keyword. For example, if you type "Verify"
in the first box of the Find tab, the third box will list the topics related to the programming verification.
Choose an appropriate topic from this list and press Display.
During a product’s warranty period Phyton provides technical support free of charge. Though we have been
selling the ChipProg programmers for many years the product software may contain minor bugs and some
programming algorithms may not be stable on some of the supported devices. We kindly ask you to report
bugs when you get an error message or have a problem with programming a particular device or devices.
We commit to prompt checking of your information and fixing the detected bugs.
To minimize difficulties operating with ChipProgUSB it is highly recommended to get familiar with the
manual before using the programmer. The ChipProgUSB - user interface is quite standard and intuitive,
however it includes some specific functions and controls that the user should learn about.
Before contacting Phyton
Make sure that you use the latest ChipProgUSB version that is always available for free download from
the http://www.phyton.com.
Make sure the detected error can be reproduced in the same working environment and is not a casual
glitch.
When contacting us
Please, provide our technical support specialists with the following information:
Your name, the name of your company, your contact telephone number and your e-mail address.
Name of the ChipProg model and its serial number, if one exists.
Date of purchase, the Phyton invoice number, if available.
Please send your requests or questions to [email protected]. This is the easiest way to get
professional and prompt help. Also, see Contact Information.
Tel: 1-718-259-3191
Fax: 1-718-259-1539
The ChipProgUSB and ChipProgUSB-01 graphical user interface (GUI) elements include:
The GUI is featured with several useful additions specifically created for the ChipProg operations.
To make your operations with the ChipProgUSB and ChipProgUSB-01 programs easier we highly
recommend to learn the chapters Menus and Windows in full. You will be able to use the ChipProg device
programmers much more effectively.
ChipProgUSB features the standard Windows interface with several useful additions:
1. Each window has its own local menu (the shortcut menu). To open this menu, click the right mouse
button within the window area or press Ctrl+Enter or Ctrl+F10. Each command in the menu has a hot
key shortcut assigned to the Ctrl+<letter> keys. Pressing the hot key combination in the active window
executes the corresponding command.
2. Each window has its own local toolbar. The window’s toolbar buttons give access to most of the
window’s local menu commands. The specialized window toolbar buttons operate only within the
specialized window. The main ChipProgUSB window has several toolbars that can be turned on or off
(in the Environment dialog, the Toolbar tab).
3. Each toolbar button has a short prompt: when you place the cursor over a toolbar button for two
seconds, a small yellow box appears nearby with a short description of the button’s function.
4. To save screen space, you can hide any window’s title bar. To do this, use the Properties command of
the local menu. You can identify the ChipProgUSB windows by their contents and position on the
screen (and, if you wish, by color and font). When the title bar is hidden, you can move the window as if
the toolbar were the title bar: place the cursor on the free space of the toolbar, press the left mouse
button and drag the window to a new position.
5. You can open any number of windows of the same type. For example, you can open several Buffer
windows.
6. Every input text field of any dialog box has a history list. ChipProgUSB saves them when you close a
development session. Then a previously entered string can be picked from the history list.
7. All input text boxes in the dialogs feature automatic name completion.
8. All check boxes and radio buttons in the dialogs work in the following way: a double-click on the check
box or radio button is equivalent to a single click on the box or button, followed by a click on the OK
button. This is convenient when you need to change only one option in the dialog and then close it.
4.1.2 Toolbars
The ChipProgUSB program opens a few toolbars on top of the main window (see below).
The top line, shown right under the ChipProg main window title, includes the Main menu submenus. A
second line under the Main menu line displays icons and buttons of most frequently used commands on
files and target devices (Open project, Load file, Save file... Check, Program, Verify, etc.). There is an
indicator of the ChipProgUSB status (Ready, Wait, etc.). The third line displays a target device selector.
The fourth line, which is not displayed by default, includes an embedded editor options and commands
for scripts. The default toolbars can be customized. Read also the topics: The Configure Menu, The
Environment dialog, Toolbar.
Besides the toolbars positioned on a top of the main window, each particular window has its own local
toolbar with the buttons presenting the most popular commands associated with the window. See for
example the Buffer window's toolbar below.
4.1.3 Menus
The ChipProgUSB Main menu bar includes the following pull-down sub-menus:
File menu
View menu
Project menu
Configure menu
Commands menu
Scripts menu
Window menu
Help menu
To access these menus, use the mouse or press Alt+letter, where "letter" is the underlined character in
the name of the menu item.
The File menu's commands control the file operations. For those commands that have a toolbar button,
the button is shown in the first column of the table below. If there is a shortcut key for a command, the
shortcut key is shown at the right of the command in the menu.
Load ... Opens the Load file dialog that specifies all the parameters of the
file to be loaded and the file destination.
Save... Saves the file from the currently active window to a disk. Opens
the Save file from buffer dialog.
Configuration Files Gives access to operations with configuration files.
Exit Closes ChipProgUSB. Alternatively, use the standard ways to
close a Windows application (the Alt+F4 or Alt+X keys
combination).
On exit ChipProgUSB automatically saves its configuration data in several configuration files with the
name UPROG. On start, it restores its configuration from the last saved configuration files. In addition, you
can save and load any of these files at any time using the Configuration Files command of the File menu.
You can have several sets of configuration files for different purposes.
The Desktop file contains data about the display options and the screen configuration, and the
positions, dimensions, colors and fonts of all the opened windows. The extension of this file is .dsk.
The default file name is UPROG.dsk.
The Options file stores the target device type, file options, etc. The extension of this file is .opt. The
default file name is UPROG.opt.
The Session file, which stores session data and specifies the desktop and options; it can also be
saved and loaded by means of the Save session or Load session sub command of the Configuration
Files command. The extension of this file is .ses. The default file name is UPROG.ses.
The History file, which contains all the settings entered in the text boxes of all the ChipProgUSB
dialogs. This file is hidden from users, but the settings stored earlier are available for prompt pick up
from the History lists. The extension of this file is .hst. The default file name is UPROG.hst.
Command Description
Button
Most, but not all, of the local menu commands are duplicated by local toolbar buttons that are usually
displayed at the top of every window.
Open Opens the Open Project dialog for loading an existing project file.
Save As Opens the Save project dialog. Duplicating projects under different
names and/or in different folders is helpful for cloning similar
projects.
Repository Opens the Project Repository dialog for storing a current project in
a special data base for convenient handling.
Options Opens the Project Options dialog for the project options editing.
Note! The ChipProgUSB software does not automatically save changes of the project options upon
quitting the program. You must execute the Save or Save as command from the Project menu to
preserve project changed made in all user interface setting dialogs since opening this project.
This dialog is used for initial setting and editing the project options.
Specifies the project file name and path. The extension may be omitted.
Project File Name
when you close the dialog by clicking the OK button the program save the
project file with the extension .upp.
Permissions... Opens the Editing Permission Settings dialog. Here you can protect the
project file against unauthorized editing. By checking appropriate boxes in
this dialog you can lock major groups of project options.
Project Description Here you can enter your custom comments for the project.
(optional)
Two radio buttons which allow you to choose if a current project has its
Desktop
own desktop or if all ChipProgUSB projects will use the same desktop
settings.
Files to Load to Buffers File or list of files to be loaded into the buffers upon opening the
project.
Opens the Load File dialog for adding this file to the Files to Load to
Add file
Buffers.
Remove file Remove the selected file from field Files to Load to Buffers.
Opens the Load File dialog for editing a file highlighted in the Files to Load
Edit file options
to Buffers list .
Script to execute before Here you can enter the script name to be executed before loading the
loading files: files to the project.
Script to execute after Here you can enter the script name to be executed after loading the files
loading files: to the project.
The dialog should be completed by clicking the OK button. Then a specified project file with the extension
.upp will appear in a specified folder.
Here you can type in a full path to the project file name or to browse for the
Project File Name
project file to be open. The ChipProgUSB project files have extensions .upp.
Lists previously opened projects. Double-clicking a line in the list opens a
Project Open History
corresponding project.
Remove from list Deletes a selected project from the Project Open History list.
The Project Repository is a small database that stores records with links to the project files. Here
you can see the ChipProg projects in a tree form similar to the Windows File Explorer, to sort and
group the projects as needed for better presentation and convenient access. Operations with the
repository do not change the project files themselves - the repository works only with records about
the projects (links to the project files). A tree branch may show projects and other branches. Any
branch may contain different projects with the same names. Different branches may contain links to
the same project.
To open the Project Repository tree with associated commands call the Repository command of
the Project menu. Each tree branch displays the name of a particular project file (without a path) and
the project description shown in square brackets. The ChipProgUSB remembers the state of the tree
branches (expanded / collapsed) and restores it next time you open the dialog.
When you install a new version of the ChipProgUSB software and copy the working environment from
the previously installed version, the new version will inherit the existing project repository (the
repos.ini file).
Add New Branch Opens the Add New Branch dialog in which you can specify the name
of a new branch.
Add a Project to Branch Opens the Open Project dialog to select a project to be added. Clicking
the Open button adds the selected project to the selected branch.
Add Current Project to
Adds the currently opened project to the selected branch.
Branch
Remove Project/Branch Deletes the selected project or branch from the repository. All the child
branches will be also deleted.
When deleting a project from the repository, the ChipProgUSB deletes
only the repository record about the project, and does not delete the
project from the disc.
Edit Branch Name Opens the Edit Branch Name dialog for the selected branch.
Move Up Moves a selected project or branch up within the same level of
hierarchy. The branch moves together with all its child branches .
Move Down Moves the selected project or branch down within the same level of
hierarchy. The branch moves together with all its child branches .
Save Repository Writes or updates the repository to the disc file repos.ini in the
ChipProg working folder.
Browse Project Folder Opens MS Windows Explorer with the opened folder of the selected
project.
Open Project Writes the repository to the disk file and opens a selected project.
Environment Opens the Environment dialog with tabs: the Fonts tab, the
Colors tab, the Key Mappings tab, the Toolbar tab and the
Misc tab.
The dialog allows specification of the device to work with; it has a few groups of settings.
Devices to list: In this field you can check the box or boxes to specify the target
device type. All the devices are divided in three functional groups: a)
EPROM, EEPROM, FLASH; b) PLD, PAL, EPLD; c)
Microcontrollers - check one, two or all three boxes. Two check
boxes below specify a method of programming - in the programmer
socket or in the target system - some devices can be programmed
in either way, some only in one certain way.
Search mask: Here you can enter a mask to speed up the device search. The
character '*' masks any number of any characters in the device part
number. For example, the mask 'PIC18*64' will bring up all the
PIC18 devices ending with the '64'.
Devices The file displays all the devices for a chosen manufacturer that
match to the search criteria specified in the Devices to list, Search
mask and Packages/Adapters fields.
Packages/Adapters This field lists all types of the chosen device's mechanical packages
that can are supported by the the ChipProg and appropriate
adapters.
Buffer list: Displays names, sizes and sub-layers of all currently open buffers
Memory Allocation
This drop down menu allows limiting the memory size allocated from
the computer RAM to each buffer. The free memory currently
available for the allocation is shown here in this screen area.
Swap Files If the RAM space is limited the ChipProgUSB can use some space
on the PC drives by temporary writing the buffer image to the drive.
You can select the drive or allow the program to swap the files
automatically.
Use network drives Checking this box enables you to swap files on the network drives
connected to your computer.
Amount of space to leave Here you can limit the space on the drive which will be never
free on each drive (GB): affected by the file swapping.
The Buffer Configuration dialog allows the setup of sub-layers in the buffers and to make their
presentation easier to work with.
The dialog includes as many tabs as number of sub-layers exist for a particular device. Every buffer
has at least one main layer, so the tab 'Code' is always displayed on the dialog foreground. If a
chosen device has other address spaces ('Data', 'User', etc.) the buffer has additional sub-layers
available for setting up by clicking the appropriate tabs.
The tab opens the dialog for configuring the main buffer layer - the 'Code' layer.
Buffer Name Here you can type in a name for the buffer or pick it from the history
list. By default the first opened buffer gets the name "Buffer #0".
Then you can open the "Buffer #1", etc. or give the buffer any name
you wish.
Size of sub-layer 'Code' Here you can assign a size of the 'Code' layer from the drop-down
menu - from 128KB to 32MB.
Fill sub-layer 'Code' with The program fills the buffer sub-layers with some default information,
data: usually by the 'FF's or zeros. By checking these boxes you specify
when the layer 'Code' should be filled with the default information -
before loading the file or right after the device type has been chosen.
Data to fill sub-layer with: These two toggled radio buttons define if the sub-layer 'Code' will be
filled with some default information, specific for the selected device,
or by the custom bit pattern.
Shrink buffer size when The buffer size usually exceeds the target device 'Code' size. By
device is selected checking this box you downsize the buffer to match the target
device and to free some computer memory.
The tab opens the dialog for presetting the buffer sub-layers .
Fill sub-level 'ID location' By checking these boxes you specify when the chosen sub-layer
with data: should be filled with the default information - before loading the file or
right after the device type has been chosen..
Data to fill sub-level with: These two toggled radio buttons define if the chosen sub-layer will
be filled with some default information, specific for the selected
device, or by the custom bit pattern..
The dialog allows writing serial numbers, unique signatures, checksums and user-specified
information into the target device memory and logging a process of the mass production device
programming.
Important Notice!
All the functions available with these dialogs: Serialization, writing in Checksums,
Signatures, etc.
work ONLY when you use the Auto Programming mode for mass production.
General
Serial Number
Checksum
Signature String
Log File
When one launches the Program a command the ChipProgUSB merges: a) the data loaded to buffers
and b) special data set in the shadows areas and then writes the merged data array into the target
memory device. If some addresses of the merged data overlap each other then the data taken from the
shadow areas overwrite ones taken from the memory buffer and the merged data physically move to
the target device memory.
The tab opens the dialog allowing to handle serialization of the devices failed in a process of the device
programming. There are two options (see below in the picture below):
The Serial Number dialog tab specifies a procedure of assigning a unique number to each single
device belonging to a series of devices being programmed. By default serial numbers starts from 0,
increments by 1 and are displayed as a byte.
Write S/N to address: If this box is checked the programmer will write a serial number into
a specified address of a specified memory layer of a target device in
accordance to the parameters below.
Current serial number: Specify the current (start) serial number in this box. By default it is
0.
S/N size, in byte: Specify a size of the serial number in bytes; for example: 1, 2, 4,
etc. By default one byte is set here.
Byte Order These two toggled radio buttons define an order of bytes that
represent the serial number (if it occupies more than one byte) -
either the least significant byte (LSB) follows the most significant
byte (MSB) or vise versa.
These radio buttons set the serial number display format - decimal or
Display S/N as:
hexadecimal.
Increment serial number By checking this radio button you set incrementing the serial
by: number by the fixed value specified here; for example: 1, 2, 10, etc.
Use script to increment By checking this radio button you specify the increment value as a
serial number: result of executing a chosen script file.
4.1.3.4.3.3 Checksum
The Checksum dialog allows auto calculating checksums of the data in buffers and writing this
checksum into the target device's memory. The dialog enables you to specify either a "standard",
widely used algorithm or a custom, complex algorithms by using a script.
Write checksum to If this box is checked the programmer will write a checksum into a
specified address of a specified memory layer of a target device in
address: accordance to the parameters below.
Address range for There are two options for setting the address range: Auto and User-
checksum calculation: defined.
User-defined: Here you can specify the start and end addresses of the selected
device memory layer, for which the program calculates the
checksum.
Use algorithm to calculate Here you can pick one from the drop down menu of several
checksum: algorithms. By default it sets the "Summation, discard overflow".
Use script to calculate By checking this radio button you specify a method of the
checksum: checksum calculation as a result of executing a chosen script file.
Size of calculation result: These radio buttons allow to choose a size of the checksum
calculation: one, two or four bytes.
Size of data being summed: These radio buttons allow to choose a size of the data being
summed: one, two or four bytes.
Operation on summation These radio buttons allow either to apply no operation on the
result: calculated checksum or to negate or to complement the result.
Byte Order: These two toggled radio buttons define an order of bytes that
represent the checksum - either the least significant byte (LSB)
follows the most significant byte (MSB) or vice versa.
Exclude the following areas If the box is checked you can specify several memory ranges that
from checksum calculation: will be skipped by any algorithm that calculate the checksum. To
specify these ranges specify the start and end addresses and click
the 'Add' button.
The dialog specifies a procedure of writing a user-defined signature string into the target device. The
signature may include some generic data like the date when the device has been programmed and
some unique data like the project name, the operator name, etc..
Write Signature String to If this box is checked the programmer will write a specified signature
into a specified address of a specified memory layer of a target
address: device in accordance to the parameters below.
in sub-layer:
Max. size signature string: This field reserves a maximum length of the signature string in the
number of characters.
Use Signature String One of two toggled radio buttons. If checked, the string pattern
template: visible in the Template String Specifiers drop down menu box will be
programmed into the target device.
Use script to create This radio button sets an alternative method of composing the
Signature String: signature string by means of a custom made script.
Template String Specifiers: This window lists the parameters (specifiers) to be placed into the
Use Signature String template field above as you wish they would be
written into the device. Each parameter starts with the symbol '$'.
The dialog specifies a procedure of writing a user-defined data into the target device. A user can
specify an unlimited number of custom shadow areas. The data can be either entered manually or built
by a script.
Before programming a device the ChipProgUSB merges: a) the data loaded to buffers and b) special
data set in the shadows areas and then writes the merged data array into the target memory device. If
some addresses of the merged data overlap each other then the data taken from the shadow areas
overwrite ones taken from the memory buffer as it is shown below:
______________________
Signature string ?
_______________________
Checksum ?
_______________________
Serial Number ?
_______________________
Note! It is important to carefully check correctness of the addresses set in the the
Serialization, Checksum and Log File dialog to prevent spoiling data in the mistakenly
overlapped areas!
4.1.3.4.3.7 Log file
Enable log file Checking this box enables logging the device programming sessions
and setting the log parameters below:
Separate log file for each These two toggled radio buttons set if the logs will be separated by
device a manufacturer or by the target device type or a single log that will
be kept for all the devices being programmed.
File Name (Generated Another two toggled radio buttons that set what specifier will be
Automatically) included into the log file name: both the manufacturer and device
type (for example: Atmel AT89C51, Microchip PIC18F2525, etc.) or
just the device type (for example: AT89C51, PIC18F2525, etc.).
Folder for log file: This is a field for entering a full path to the folder where the log file
will be kept. There is also a button for the path browsing.
Single log file for all device By checking this radio button you select keeping one common log
types for all types of the devices being programmed.
File Name This is a field for entering a full path to the folder where the common
log file will be kept. There is also a button for the path browsing.
Gang mode: Socket # If the device programming was conducted in the Gang
(multiprogramming) mode and if this box is checked the socket
number will be logged.
Date/Time By checking this box you enable logging the date and time of the
device programming.
Events (device type change, By checking this box you enable logging of all the events associated
file names, etc.) with the device programming, e.g. the target device replacement,
loaded file names, etc.
Device operation By checking this box you enable logging of all the events associated
with the device manipulations.
Detailed Device operation By checking this box you enable more detailed logging of all the
events associated with the device manipulations.
Operation Result
By checking this box you enable logging the results of the
programming operations.
Device #/Good devices/Bad By checking this box you enable logging a full number of the devices
devices programmed, number of successfully programmed devices and
number of failed ones.
Serial Number By checking this box you enable logging the serial number read
from the device.
Signature string By checking this box you enable logging the signature string read
from the device.
Checksum By checking this box you enable logging the checksum value read
from the device.
Buffer name By checking this box you enable logging the buffer name.
Programming address By checking this box you enable logging the ranges of the device
locations which have been programmed.
Programming options By checking this box you enable logging all the programming
options.
Log File Format A pair of toggled radio buttons: one sets the plain text format of the
log file, the second sets the tabulated text to be viewed in the
Microsoft Excel format.
Log File Overwrite Mode A pair of toggled radio buttons, checking the top one sets the mode
of appending new records to a specified log file and checking the
second overwrites the old log every time the ChipProg re-starts.
Warn if size exceeds If this box is checked then every time when the log size exceeds a
user-specified value the ChipProgUSB issues a warning.
Immediately write log file to If this box is checked then the ChipProgUSB does not buffer the log
disk, no buffering to the computer RAM but writes it straight to the drive.
Reload last file on start-up By checking this box you enable re-loading to the open buffer(s) the last
loaded file every time when you start the ChipProg.
Execute Power-On test on This box is checked by default. By un-checking this box you skip
start-up executing the start-up ChipProg self-testing
Terminate device By checking this box you stop the programmer operations operations on
operation... any error and suppress displaying error messages in the user interface.
Log operations in the By checking this box you enable dumping the programming session
Console window trace to the Console window.
Deny computer power While the programmer does not operate with the target device the
suspension computer may switch to the sleep mode. By checking this box you
disable Windows to enter the sleep mode. This does not protect a PC
against falling asleep when an operator intentionally closes a notebook
lid or intentionally shut down the computer by pressing the button Start >
Shut down. This option neither blocks a screen saver nor disable
switching off the monitor power.
While the ChipProg executes any command on the target device falling
PC asleep is disabled regardless of the check box status because
switching power of the USB port may cause destroying a target device.
If this check box is unchecked then waking up the computer will cause
the ChipProgUSB software crashes. If the crash happens it is necessary
to cycle the ChipProg power and to launch the ChipProgUSB application.
Device operation Select the sound for successful completion of the programming
complete: operations in a single programming mode (one ChipProg is in use).
Device operation complete Select the sound for successful completion of the programming
(Gang Mode): operations in a gang programming mode (either a few single site
programmers are connected to one PC for multi-device programming or
when the ChipProg gang programmer is in use).
Programming start Select the sound for indicating the start of the device programming when
(AutoDetect Mode): the ChipProg automatically detects the device insertion into the
programming socket.
Fonts tab,
Colors tab,
Toolbar tab,
4.1.3.4.5.1 Fonts
The Fonts tab of the Environment dialog opens a sub dialog for setting fonts and some appearance
elements in the ChipProgUSB windows. Only mono-spaced (non-proportional) fonts (default is
Fixedsys) are used to display information in windows. To improve appearance of the windows, you can
set up either another font for all windows, or individual fonts for each particular window.
The Windows area lists the types of windows. Select a type to set up its options. The set options are
valid for all windows of the selected type, including the already opened windows.
Grid Turns on/off the display of the vertical and horizontal grids in some window
types, and permits adjusting the column width (when the vertical grid is
allowed).
Additional Line Provides additional line spacing, which will be added to the standard line
Spacing spacing. Supply a new value or choose from the list of most recently used
values.
Define Font Opens the Font dialog. The selected font is valid for all windows of the
selected type.
Use This Font for All Applies the font of the chosen window type to all ChipProgUSB windows.
Windows
Notes
1. To move a window without the title bar, place the cursor on its toolbar, where there are no buttons, and
then operate as if the toolbar were the window title bar. Also, you can access the window control
functions through its system menu by pressing the Alt+<grey minus> keys.
2. Each window has the Properties item in its local menu, which can be invoked by a right click. The Title
and Toolbar items of the Properties sub-menu toggle the title bar and toolbar on/off for the individual
active window.
4.1.3.4.5.2 Colors
The Colors tab of the Environment dialog opens a sub dialog for setting colors of such window elements
as window background, font, etc.. By default, most colors are inherited from MS Windows; however you
can set other colors if you prefer them.
Element of dialog Description
Color Scheme Specifies the color scheme name. Your can type in a name or choose a
recently used one from the list.
The Save button saves the current scheme to the disc; later you can restore
color settings by just a mouse click. The Remove button removes the current
scheme.
Colors Lists the names of color groups. Each group consists of several elements.
Inherit Windows When this box is checked, the selected color is taken from MS Windows. If
Color later you change the MS Windows colors through the Windows Control Panel,
this color will change accordingly. This option is available only for the
background and text colors.
Use Inverted Text/ When this box is checked, the program inverts the selected window colors
Background Color (for text and background). For example, if the Watches window background
color is white and the text color is black, then the line with the selected
The Key Mapping tab of the Environment dialog opens a sub dialog for assigning hot keys for all
commands in the ChipProgUSB. The Menu Commands Tree column displays a tree-like expandable
diagram of all commands. The Key 1 (Key 2) columns contain the corresponding hot–key combinations for
the commands. The actions apply to the currently selected command.
4.1.3.4.5.4 Toolbar
The Toolbar tab of the Environment dialog controls the presence and contents of toolbars of the
windows.
Buttons/Commands Lists the buttons for the toolbar selected in the Toolbar Bands list. To enable/
disable a button on the toolbar check its box.
"Flat" Local Window Toggles between the "flat" and quasi-3D appearance of the local toolbar
Toolbars buttons for the specialized windows.
Toolbar Settings are Employs the current settings from this dialog for other projects or files
the Same for Each opened later.
Project/Desktop File
4.1.3.4.5.5 Messages
Check messages that program should display, uncheck messages that you do not want to be
displayed.
4.1.3.4.5.6 Miscellaneous Settings
The Miscellaneous tab of the Environment dialog allows the setting of miscellaneous parameters of the
ChipProgUSB windows and messages.
for Error Messages Information (as opposed to error) messages are always displayed without
the beep.
Log Messages to Specifies the log file name. All messages will be written to this file. The
File method of writing is controlled by the radio button with two options:
Overwrite Log File Specifies erasing the previous log file, if it exists, and creates it afresh for
After Each Start every session.
Append Messages Specifies appending messages to the end of an existing log file. In this case,
to Log File the log file size will grow endlessly.
The ChipProgUSB software includes a built-in editor that is used for editing one type of the objects of the
ChipProgUSB - Scripts Files. The Editor Options dialog includes the following tabs:
The General tab of the Editor Options dialog sets up all common options applicable to every Source
window opened.
Element of dialog Description
Backspace Unindents Checking/clearing this box toggles the Backspace Unindent mode.
See below for explanations.
Keep Trailing Spaces When this box is checked, the editor does not remove trailing
spaces in lines when copying text to the buffer or saving it to a disk.
Spaces are removed when the box is unchecked.
Vertical Blocks If the box is checked, the Vertical Blocks mode is enabled for block
operations.
Persistent Blocks If the box is checked, the Persistent Blocks mode is enabled for
block operations.
Create Backup File If the box is checked then <%CM%> creates a *.BAK file each time a
file is saved in the Source window.
Horizontal Cursor If the box is checked it sets the cursor as a horizontal line, like the
DOS command prompt.
CR/LF at End-of-file If the box is checked, it adds an empty line to the file end when
saving the file to disk (if there is no one yet).
Syntax Highlighting If the box is checked, it forces syntax highlighting of language
constructions.
Auto Word/AutoWatch Pane If the box is checked, any new Source window will open with the
Auto Word/AutoWatch pane at its right and the automatic word
completion function will be enabled.
Full Path in Window Title If the box is checked, the Source window caption bar displays the
full path to the opened file.
Empty Clipboard Before If the box is unchecked, then previously kept data remains
Copying retrievable after copying to the clipboard.
Convert Keyboard Input to If the box is checked, the Source window converts the characters
OEM that you input in the window from the MS Windows character set to
the OEM (national) character set corresponding to your national
version of the Windows operating system. Also, see note below.
AutoSave Files Each … min If the box is checked, <%CM%> will save the file being edited every
‘X’ minutes, where ‘X’ is a settable constant chosen by the user.
Tab Size Sets the tabulation size for the text display. The allowable value
ranges from 1 to 32. If the file being edited contains ASCII tabulation
characters, they will be replaced with a number of spaces equivalent
to the tabulation size.
Undo Count Sets the maximum number of available undo steps (512 by default).
If this does not suffice, you can set a value of up to 10000 steps.
However, larger values increase the editor’s memory requirement.
Automatic Word Completion If the Enable box is checked, it allows the automatic word completion
function. The Scan Range drop-down list sets the number of text
lines to be scanned by the automatic word completion system.
Indenting Toggles automatic indenting on/off for a new line that is created
when you press Enter.
Note. You should check the Convert Keyboard Input to OEM box only if you are going to type something
in the Source window when working with a file coded in the OEM character set. If you need only to display
such a file, specify the Terminal font for the Source window in the Fonts tab of the Environment dialog:
select Editor in the Windows list and press the Define Font button.
The Backspace Unindent mode establishes the editing result from pressing the Backspace key in the
following four cases, when the cursor is positioned at the first non-space character in the line (there are
several spaces between the first column of the window and the first non-space character):
You can manage the list of available editor commands with the Key Mappings tab of the Editor Options
dialog. You can add and delete editor commands, assign (or reassign) hot keys for new commands and
for built-in ones.
The left column of the list contains command descriptions. Command types, corresponding to the
command descriptions, are in the second column. (Command means a built-in ChipProgUSB
command; Script ‘XXX’ means an added user-defined command). Two columns on the right specify the
hot key combinations to invoke the command, if any.
Element of dialog Description
Add Opens the Edit Command dialog for adding a new command to the list and
setting up the command parameters.
Delete Removes a selected user-defined command from the list. Any attempt to
remove a built-in command is ignored.
Edit Opens the Edit Command dialog to change the command parameters. For
built-in commands, you can only reassign the hot keys (the Command
Description and Script Name boxes are not available).
Edit Script File Opens the script source file of this command in the Script Source window.
Creating new commands
To create a new command, you should develop a script for it. In fact, you add this script to the editor, not
the command. This means that your command is able to perform much more complex, multi-step
actions than a usual editor command. Moreover, you can tailor this action for your convenience, or for a
specific work task or other need. Your scripts may employ the capabilities of the script language with its
entire set of built-in functions and variables, text editor functions and existing script examples.
A script source file is an ASCII file. To execute your command, the editor compiles the script source file.
Note that before you can switch to using the script which you have been editing, you must first save it to
the disk so that ChipProgUSB can compile it.
Script source files for new commands will reside only in the KEYCMD subdirectory of the ChipProgUSB
system folder. Several script example files are available in KEY CMD. For more information about
developing scripts, see Script Files.
This dialog Edit command sets parameters for a new command or for existing ones.
The script source files for commands will reside only in the KEYCMD subdirectory of the ChipProgUSB
system folder. Enter the file name only, without the path or extension.
Notes
1. You should not specify the combinations reserved by Windows (like Alt+– or Alt+Tab).
2. We do not recommend assigning the combinations already employed by commands in the Source
window or ChipProgUSB, because then you’ll have fewer ways to access these commands. Some
examples are Alt+F, Shift+F1, Ctrl+F7, which are commands that open the application menus.
Others are the local menu hot keys of the editor window.
3. You can use more than one control key in the keystroke combinations. For example, you can use Ctrl
+Shift+F or Ctrl+Alt+Shift+F as well as the Ctrl+F combination.
4. For some built-in commands, the hot keys cannot be reassigned (for example, the keys for moving the
cursor).
This menu invokes main commands (or functions) that control the programming process, as well as
some service commands.
Command Description
Blank Check This command invokes the procedure of checking the target device
before programming to make sure that it is really blank. Programming
of some memory devices does not require erasing them before re-
programming. For such devices the Blank Check command is
blocked and it is shown grayed out on the screen.
Program
This command invokes the procedure of programming the target
device, e.g. writes the contents of the buffer into the target device’s
cells.
Verify This command invokes the procedure of comparing the information
taken from the target device with the corresponding information in the
buffer.
Read This command invokes the procedure of reading the content of the
target device’s cells into an active buffer.
Erase This command invokes the procedure of erasing the target device.
Some memory devices cannot be electrically erased. In this case the
Erase command is blocked and is grayed out on the screen
Auto Programming This command invokes the procedure of AutoProgramming.
4.1.3.5.1 Calculator
A prime purpose of the embedded calculator is to evaluate expressions and to convert values from one
radix to another. You can copy the calculated value to the clipboard.
The ChipProgUSB is featured with the tools known as an embedded script language. This mechanism is
intended for automation of the programming operation, mastering complex operations that include both the
programmer itself and the programmer operator's actions. The ChipProgUSB enables composing scripts
Editor window Opens a list of the commands to Compose a new, Open, Save,
Save as, Print a script file. of the Editor window.
Text Edit Edit a list of the commands for editing a selected Script File
This menu lets you control how the windows are arranged within the computer screen. The list of currently
opened windows is shown in the lower part of the menu. By choosing a particular window name in this list
you immediately activate it and bring it to the foreground of the computer screen.
Command Description
Tile Arranges all windows without overlap. Makes the window sizes
approximately equal.
Tile Horizontally Arranges the windows horizontally without overlap. Makes the window
size as close to each other as possible.
Cascade Cascades the windows.
Arrange Icons Arranges the icons of the minimized windows.
Close All Closes all windows.
This menu gives access to the help system. See also, How to Get On-line Help.
Command Description
Phyton Adapters Opens the HTML file, which includes adapters' part numbers, their
short descriptions and wiring diagrams.
Visit Phyton website Open the www.phyton.com site in your default Internet browser.
Check for updates Opens the Update Checking dialog that directly links your computer to
the Phyton download webpage.
Send e-mail message to Opens the default email client to compose a message to Phyton.
Phyton
About ChipProg The box displays: the ChipProgUSB and the ChipProg Windows shell
software version numbers; the selected target device type and the
device manufacturer.
4.1.4 Windows
The ChipProgUSB enables opening the following types of windows by means of the View menu:
Program manager
Device and Algorithm Parameters' Editor
Buffer
Device Information
Console
Plus it can operate with two types of windows associated with the ChipProgUSB script files:
Editor
Watches
The Program Manager window is the major control object on the screen from which an operator
controls the ChipProg . While some windows can be closed in a process of programming this one is
supposed to be always open and visible.
The window includes three tabs opening three group of settings and status indicators:
The Project Manager and Options tabs look different and enable different settings for the ChipProg
programmers working in single-programming and multi-programming modes. These tabs are identical
for the ChipProg-G41 gang programmer and for the ChipProg-48, ChipProg-40 and ChipProg-ISP
programmers when they are configured to work in the multi-programming mode.
The tab serves for setting major programming parameters, executing the programming operations and
displaying the ChipProg statuses.
Buffer: The field Buffer displays the active buffer to which the programming
operations (functions) will be applied. A full list of open buffers is
available here via the drop-down menu.
Functions This field lists the tree of the functions relevant to the selected
target device. Some functions represent the ChipProg commands
while others integrate a few sub-functions and can be expand or
collapsed. Double clicking on the function invokes the command
and is equivalent to single clicking the Execute button (see
below).
Program Programs the target device (writes the information from an active buffer
to the target device).
Read Reads out the content of the target device to an active buffer.
Verify Compares the content of the target device and an active buffer
Addresses Here you can set the addresses for the buffer and the target device
to which the programming functions will be applied.
Device start: The very first address in the target device's physical memory which will
be programmed or read.
Device end: The very last address in the target device's physical memory which will
be programmed or read.
Buffer start: The very first address in the buffer memory from which the data will be
written to the target device or to which the data will be read from the
device.
Execute There are three alternative ways to activate a highlighted function: a)
to click the Execute button; b) to double click on the function line; c) to
push the Enter button on the PC keyboard.
Edit Auto Clicking on this button opens the Auto Programming dialog.
Operation Progress In this field the ChipProgUSB displays the current operation
progress bar and the operation status (OK, failed, etc.).
Besides the generic functions (Blank Check, Read, Verify, Program, Auto Programming) the window
Functions often includes collapsed submenu for the functions specific for a selected target device. Beings
expanded these functions list commands for the parameters settable in the Device and Algorithm
Parameters editor window.
IMPORTANT NOTE!
Any changes made in the ‘Device and Algorithm Parameters’ window do not
immediately cause corresponding changes in the target device. Parameter settings
made within this window just prepare a configuration of the device to be programmed.
Physically, the programmer makes all these changes only upon executing an
appropriate command from the ‘Program Manager’ window.
Each device has its own routine set of programming operations that usually includes: Erasing, Blank
Checking, Programming, Verifying and often Protecting against unauthorized reading. The ChipProgUSB
stores default batches of these programming operations for each single supported device and allows the
invocation of the batch of operations just by a mouse click or pressing the Start button on the programmer
panel. It also enables the customization of a sequence of elementary functions (operations) via the Auto
Programming dialog. To open this dialog click on the Edit Auto button.
The tree including all the functions available for the chosen target device is shown in the right pane
Available functions. To include a function to the batch highlight it in the right pane and click the Add
button - the function will appear in the left pane Selected functions. The functions will be then
executed in the order in which they are positioned in the Selected functions pane, from the top to the
bottom. To correct the function batch highlight the command to be removed and click the Remove
button.
The tab serves for setting additional programming parameters and options :
Split data The group of radio buttons in the Split data field allows the
programming of 8-bit memory devices to be used in the
microprocessor systems with the 16- and 32-bit address and data
buses. To do this the buffer content should be properly prepared to
split one memory file into several smaller file.
Options
Insert test If this box is checked the ChipProgUSB will test whether each of
the device leads is reliably squeezed by the programming socket
contact. If some contact is bad a current operation will be
blocked.
Check device ID By default this option is always on and the ChipProg always
verifies the target device identifier given by the device
Verify after program If this box is checked the ChipProgUSB will always verify the device
content right after it was programmed.
Verify after read If this box is checked the ChipProgUSB will always verify the device
content right after it was read out.
Auto-Detect presence of If this box is checked the ChipProgUSB will test whether each of
device in the socket the device leads is reliably squeezed by the programming socket
contact. If so a preset programming function (operation) or Auto
Programming will start. Otherwise, if some contact is bad a
current operation will be blocked.
On Device Auto-Detect or The group of radio buttons. The checked radio button defines what
'Start' Button: the ChipProg will do upon the the drive auto-detect or pushing the
'Start' button.
The group of radio buttons in the Option tab in the Split data field allows programming 8-bit memory
devices to be used in the microprocessor systems with the 16- and 32-bit address and data buses. To
do so the buffer content should be properly prepared to split one memory file iinto several smaller files.
The data splitting enable the conversion of the data read from 16- or 32-bit devices to make file images
for writing them to memory devices with the byte organization.
No split This is a default option. A whole buffer is not split and is considered
as a whole one byte data array.
Even byte The data in the buffer are considered as an array of 16-bit words.
The buffer-device operations are conducted with even bytes only.
For example, if the programmer reads the device from the
address=0, the byte with this address will be placed to the buffer
location also with the address=0, the byte from the device with the
address=1 will be placed to the buffer location with the address=2,
etc.
Odd byte The data in the buffer are considered as an array of 16-bit words.
The buffer-device operations are conducted with odd bytes only.
For example, if the programmer reads the device from the
address=0, the byte with this address will be placed to the buffer
location also with the address=1, the byte from the device with the
address=1 will be placed to the buffer location with the address=3,
etc.
Byte 0 The data in the buffer are considered as an array of 32-bit words.
The buffer-device operations are conducted with the byte #0 only.
For example, if the programmer reads the device from the
address=0, the byte with this address will be placed to the buffer
location also with the address=0, the byte from the device with the
address=1 will be placed to the buffer location with the address=4,
etc.
Byte 1 The data in the buffer are considered as an array of 32-bit words.
The buffer-device operations are conducted with the byte #1 only.
For example, if the programmer reads the device from the
address=0, the byte with this address will be placed to the buffer
location with the address=1, the byte from the device with the
address=1 will be placed to the buffer location with the address=5,
etc.
Byte 2 The data in the buffer are considered as an array of 32-bit words.
The buffer-device operations are conducted with the byte #2 only.
For example, if the programmer reads the device from the
address=0, the byte with this address will be placed to the buffer
location with the address=2, the byte from the device with the
address=1 will be placed to the buffer location with the address=6,
etc.
Byte 3 The data in the buffer are considered as an array of 32-bit words.
The buffer-device operations are conducted with the byte #3 only.
For example, if the programmer reads the device from the
address=0, the byte with this address will be placed to the buffer
location with the address=3, the byte from the device with the
address=1 will be placed to the buffer location with the address=7,
etc.
This tab opens the fild displaying the programming session statistical results - Total number of
devices that were programmed during the session, what was the yield (Good) and how many devices
have failed (Bad). Getting such statistics is quite helpful when you need to program a series of same
type devices. It is important to remember that the statistical counters are affected by executing the
Auto Programming only, as execution of other functions makes no effect on the statistics.
Enable countdown
If the box is checked the ChipProgUSB will count the number of the
programmed devices down.
Display message when If the box is checked the ChipProgUSB will issue a warning when
countdown value reaches the counter Total is zeroed.
zero
Reset counters when If the box is checked the ChipProgUSB will reset all the counters
countdown value reaches when the counter Total is zeroed.
zero
Count only successfully If the box is checked the ChipProgUSB will count only the
programmed devices successfully programmed (Good). All other statistics will be
ignored.
Set initial countdown Clicking on the button opens the box for entering a new Total
value number that then will be decremented after each Auto
Programming.
The Device and Algorithm Parameters Editor window is intended for displaying and editing (where
possible) the device’s internal parameters and settings, which after editing should be programmed into a
target device by executing the Program command in the Program Manager window.
The parameters displayed into this window are split in two groups: Device Parameters and Algorithm
Parameters. The groups are separated by a light blue stripe
Device This group includes parameters that are specific for each selected device, such as:
Parameters sectors for flash memory devices, lock and fuse bits, configuration bits, boot
blocks, start addresses and other controls for microcontrollers. Usually these
parameters represent certain bits in a microcontroller’s Special Function Registers
(SFRs). Some of these SFRs can be set in the ChipProg buffers in accordance with
device manufacturers’ data sheets. But setting the parameters in the Device and
Algorithms Parameters window is much easier and more intuitive. It is impossible to
specify absolutely all features that may appear in future devices, and, therefore, new
parameters for these new devices.
Algorithm This group includes parameters of the programming algorithm for the selected device
Parameters – including the algorithm type and editable programming voltages.
.
The window is separated into three columns: 1) the parameter's name, 2) its value or setting, 3) a short
description. Names of the editable parameters are shown in blue; other names are shown in black.
Default values in the column Value are shown in black; after changing a parameter the new value will be
shown in red. If the value is too long to display the window represents it as three dot signs (‘…’). If these
dots are red it means that the parameter has been edited.
In order to edit a parameter, double click its name. Some editable parameters are represented by a set
of check boxes, some require to be typed in prompt boxes.
The local Device and Algorithm Parameters Editor window's toolbar includes a few buttons
positioned on the top of the window:
Edit Clicking on this button opens the editing dialog to modify the
highlighted parameter in the format, most convenient for this
parameter. A double click on the highlighted parameter also opens
the editing dialog.
Default Click on this button returns the default value to the highlighted
parameter.
All Default Click on this button returns the default values to all the parameters
displayed in the window.
Depending of the parameter's type ChipProgUSB offers the most convenient format for the parameter
editing:
Drop-down menu When the parameter value may be picked from a few preset values
the dialog offers a drop-down list with these values. Highlight a new
value in the list and click OK to complete the editing. For example,
some microcontrollers can be programmed to work with different
types of the clock generators, so the menu prompts to select one of
them.
Check Box dialog When some options can be set or reset the dialog appears in a
form of several boxes indicating the default or lately set option
statuses. To toggle the option check or uncheck the box. For
example, some microcontrollers allow the locking of a particular
part of the memory by setting several lock bits, so the menu
Customizing the When the parameter value may be set freely in an allowed range the
parameter dialog offers a box for entering a new value and a history list
displaying a few recently set values. The dialog prompts with the
min and max values that can be set for each parameter and restricts
to enter the value out of the allowed range. This type of editing is in
use for setting custom values for Vcc and Vpp voltages.
The Buffer Dump window displays the contents of the memory buffer.
You can create an unlimited number of buffers. The number of buffers that you can open is
limited only by the available computer RAM.
Every buffer has a certain number of sub-levels depending on the type of target device.
Each sub-level is associated with a specific section of a target device's address space. For
example, for the Microchip PIC16F84 microcontroller every buffer has three sub-levels: 1)
code memory; 2) EEPROM data memory; 3) user's identification sub-level.
This flexible structure allows for easy manipulation of several data arrays that are mapped to different
buffers. To open a Buffer Dump window, click on the command Main Menu > View > Buffer Dump.
The picture above displays three Buffer Dump windows representing three parts of the same buffer:
format;
#3 window shows the data beginning at address 200h.
The left-most column in the windows above shows absolute addresses of the first cell in a row. The
addresses always increment by one byte: 0, 1, 2…. Each address is followed by a semicolon (:).
When you resize the window it automatically changes the addresses shown in the address column
in accordance with the number of codes or data that go in one line. Some windows may be split into
two panes – left pane for data in a selected format and right pane showing the same data in ASCII
format. The window has a toolbar for invoking setting dialogs and commands. Right under the toolbar
the program displays a full path to a loaded file and a checksum of the dump.
Local menu and Toolbar
The local menu, which can be opened by the right mouse click, includes the Buffer Dump window
context commands and dialog calls. Most, but not all, of the local menu lines are duplicated by the local
toolbar buttons displayed at the top of the window. Here are the local menu and toolbar items:
The dialog allows configuring the buffer dumps in the most convenient format and name/rename open
buffers. By default the first opened buffer is named ‘Buffer #0’. The next buffer gets the name ‘Buffer
#1’, and so on. You can, however, rename the buffer as you wish.
By default each buffer has a minimal size of 128K RAM in a PC and by default the ChipProgUSB
program fills the buffer with a predefined value (usually 0FFh). You can customize these buffer settings
- check the Custom radio button and type in the pattern to fill the buffer.
The dialog allows controlling the data presentation in the Buffer Dump window. You can open the dialog
using the windows local menu (the Windows Setup command) or by clicking the Setup button on the
window toolbar.
Buffer: The field displays a list of all open buffers. The programming
functions will be applied to the active one.
Display Format Is represented by three radio buttons. Here you can select one of
the formats for the data displayed: binary, decimal or hexadecimal.
Display Data As: Is represented by four radio buttons. Here you can select the data
presentation format in the buffer: 1, 2, 3 or 4 Byte.
ASCII pane If the box is checked the right pane will display ASCII characters
corresponding to the data in the buffer dump.
Display checksum If the box is checked the calculated checksum will be displayed in
the blue strip over the data dump, right under the window local
toolbar.
Limit dump to sub-layer If the box is checked the window dump will display a part of
size memory equal to the active sub-layer's size.
Signed decimal and hex If the box is checked the most significant bit (MSB) in the data
values shown in the binary or hexadecimal formats will be treated as a
sign. If MSB=1 the data is negative, if MSB=0 they are positive.
Always display '+' or '-' This is a sub-setting for the Signed decimal and hex values option. If
both boxes are checked then the signs '+' and '-' will be displayed.
Leading zeroes for decimal If the box is checked then each decimal data will be shown with a
numbers number of zeros before the first significant digit - for example the
value of 256 will be presented as 00000256.
Reverse bytes in words If the box is checked then the order of bytes in words will be
( LSB first) reversed, e.g. the MSB will follow the LSB.
Reverse words in dwords If the box is checked then the order of 16-bit words in 32-bit words
will be reversed.
Reverse dwords in qwords If the box is checked then the order of 32-bit words in 64-bit words
will be reversed.
Non-printable ASCII The characters from the ranges 0х00...0х20 and 0х80...0хFF are non-
characters printable. The options here customize presentations of non-printable
ASCII characters in the ASCII pane of the buffer dump window.
Replace characters If the box is checked then all the characters belonging to the range
0х00...0х20 0х00...0х20 will be replaced with the character dot ('.') or space (' '). The
pair of toggling radio buttons Replace with: sets the replacement
character - dot ('.') or space (' ').
Replace characters If the box is checked then all the characters belonging to the range
0х80...0хFF 0х80...0хFF will be replaced with the character dot ('.') or space (' '). The
pair of toggling radio buttons Replace with: sets the replacement
character - dot ('.') or space (' ').
The dialog enables setting a new address that will become the first address of the visible part of the
Buffer Dump window.
Type new address to Here you may enter any address within the allowed range.
display from:
History Displays the list of previously set addresses. Here you can pick one for
displaying the buffer dump.
The dialog enables editting the data in the Buffer Dump window. The dialog can be invoked only when the
View button on the window's toolbar if off, otherwise the editing is blocked. To modify particular data in the
buffer appoint the location by a cursor and click the Modify button on the window's toolbar. Then enter
a new data value in the pop-up box or pick one from the history list. Or, alternatively, appoint the
location by a cursor and type over the new data on the PC keyboard.
The ChipProgUSB program allows complex operations with memory blocks. This dialog controls
operations with blocks of data within one selected buffer or between different buffers.
The dialog box splits in three columns. The Source parameters, shown in the left column, specify the
source memory area for the operations shown in the middle column. The operation’s result will be
placed in the area specified by the Destination shown in the right column. By default the destination is
equal to the source space. Two operations – Fill and Search - do not require a destination address so
the dialog disables the Destination radio button if these two operations are chosen.
End Address The memory area’s end address. It can be set only for the Source. After
(of the Source) the source address range is defined, the program automatically
calculates the destination area’s end address.
Full Range Sets the start and end addresses equal to the entire address space of
(of the Source) the selected target device.
Start Address The start address of the memory area in the Destination buffer where
(of the Destination) the result of the chosen Operation will be placed to.
The following operations are available through this dialog. Each operation starts when you click OK in the
dialog box. (see notes below).
Operation Description
Fill with Value Fills the source buffer with a value (or a sequence of values) specified in
the text box at the right.
Search for Data Searches the source memory area for a particular value (or a sequence
Notes
1. The source and destination memory areas may overlap. But, since operations with memory blocks are
carried out using a temporary intermediate buffer, the overlap does not corrupt the results.
2. The Copy and Compare commands use the blocks specified in the Source address space and the
Destination address space.
3. The checksum is calculated as a 32-bit value by simple addition. If a memory space has byte
organization, then 8-bit values will be added. If it has word organization then 16-bit values will be
added.
4. Logical operations (AND, OR, XOR) are performed with the contents of the Source address space,
while the operation result will be written to the Destination address space. The program takes care
of converting the operands to the appropriate memory size for a selected type of memory (16-bit for
the Prog, Data16, Reg and Stack memory, 8-bit for the Data8 memory).
File Name: Enter a full path to the file in this box, pick the file name from a drop-
down menu list or browse for the file on your computer or network.
File Format: The format of the file to be loaded can be selected here by checking
one of the radio buttons in the File Format field of the dialog.
Buffer to load file to: Select the buffer in which the file will be loaded by checking one of the
Buffer# radio buttons. There may be just one such button.
Start address for binary Files in Binary file format do not carry any address information and
image: are required to define the start address for the loading. If the file to be
loaded is a binary image enter the start address in the box here.
Offset for loading Files in any formats, except the Binary file format, can carry the
address: information about the start address for the loading. If the file to be
loaded is not a binary image enter the offset for the file addresses in
the box here. The offset can be positive or negative.
The ChipProgUSB program supports a variety of file formats that can be loaded to the ChipProg
buffers.
Standard/Extended Intel The Intel HEX file is a text file, each string of which includes the
HEX (*.hex) beginning address to load the data to the buffer, the data to load,
checksums for the string and some additional information. The
ChipProgUSB loader supports both Standard and Extended Intel
HEX format.
Binary image (*.bin) The binary image includes the data to be loaded only. These data
will be loaded to the buffer beginning from a specified start address.
The Altera POF-file is a text file, each string of which includes the
Altera POF (*.pof)
beginning address to load the data to the buffer, the data to load,
checksums for the string and some additional information. The
format is mostly used for programming PALs and PLDs.
JEDEC (*.jed) This format is used for programming PALs and PLDs. The JEDEC-
file includes the beginning address to load the data to the buffer, the
data to load, test-vectors and some additional information.
Xilinx PRG (*.prg) The Xilinx PRG-file is a text file, each string of which includes the
beginning address to load the data to the buffer, the data to load,
checksums for the string and some additional information. The
format is used for programming the Xilinx PLDs.
Holtek OTR (*.otp) This format is presented by Holtek company. The OTP-file includes
the beginning address to load the data to the buffer, the data to load,
checksums for the string and some additional information.
Angstrem SAV (*.sav) This format is presented by Angstrem company (Russia). The SAV-
file includes the beginning address to load the data to the buffer, the
data to load, checksums for the string and some additional
information.
ASCII Hex (*.txt) The ASCII TXT-file includes the beginning address to load the data to
the buffer, the data to load, checksums for the string and some
additional information.
The dialog defines parameters of the file to be saved from the buffer.
File Name: Enter a full path to the file in this box, pick the file name from a drop-
down menu list or browse for the file on your computer or network.
Addresses Start and End Addresses define the buffer data space that will be
saved in the File. For saving an entire buffer click the All button.
File Format: The format of the file to be saved can be selected here by checking
one of the radio buttons in the File Format field of the dialog.
Buffer to save file from: Select the source buffer from which the file will be saved by checking
one of the Buffer# radio buttons. There may be just a single button
available for choosing.
Sub-level to save file The Buffer to save file from can have more than one memory layer.
from: Select the source layer by checking one of the radio buttons. There may
be just a single button available for choosing.
This window displays the type of selected target device and a list of programming adapters that fit all
available packages for the selected device. For example the picture below shows all Phyton adapters
available for the selected PIC microcontroller. The Socket scheme pictograms below show the correct
positions of a DIP-packaged 40-pin PIC chip and the adapter board into a 48-pin ZIF socket (for the
ChipProg -48 programmer).
The adapter part numbers are linkable and the links being clicked opens the adapters.chm file with a
description and wiring diagram of the chosen adapter. The cable adapters for in-system programming
are also included into the adapters.chm file. There are some peculiarities that such ISP adapters use
depending on the target device type.
The adapters.chm file includes short descriptions of the Phyton programming adapters and their wiring
diagrams. Having the adapter diagram a ChipProg user can master it is own adapter or to find the
adaptor available from a third party, which can be used as a replacement for the Phyton brand adapter.
The adapters diagram are presented in a table form, where the rows show connections of the elements
installed on the adapter transition board and the columns (from the left to right) represent:
1st column - Pin numbers of the dual-row pins pluggable to the programmer ZIF socket
2nd column - Pin numbers of the ZIF socket installed on the adapter top
3rd, 4th, 5th, etc. - Pin numbers of the passive and active components installed on the adapter
board.
Pin# of the dual-row 40- Pin# of the PLCC 40- 74HC14 C1 (.1uF) C2 (.1uF)
pin plug pin adapter socket latch
(ChipProg ZIF socket)
1 2
2 4
3 6
4 28
5 29
6 9
7 10
8 11
9 12
10 40
11 7
12 13
13 14
14 16
15 17
16 18
17 19
18 20
19 21
20 22,30,42 7 1 1
21 24
22 25
23 26
24 27
25 8
26 31
27 32
28 33
29 34
30 5
31 36
32 35,3,15,23 14 2
33 37
34 38
35 39
36 40
37 41
38 11
- 43 12
39 44 2
40 1
10,13
The adapters.chm file includes short descriptions of the Phyton programming adapters for in-system
programming (e.g. the programming in the user's equipment) and their wiring diagrams the schematic of
connecting the adapter cables to the target. The cable adapters may have 10 to 20 pin headers to be
connected to the pins or complimentary connectors installed in the user's equipment. The pin
connection is specific for certain target devices. The connection diagrams are presented in a table form,
where the columns (from the left to right) represent:
1st column - Pin numbers of the cable adapter header inputs and outputs
2nd column - Signals of the target device to be connected
As an example see below a schematic of connecting a 10-pin header BH-10 of the Phyton AE-ISP-U1
cable adapter to the Zilog Z8Fxxx microcontroller for in-system programming.
BH10 Z8Fxxxx
1 Vcc
2 RESET
3 GND
4 DBG
5 GND
6
7
8
9
10
As you can see here not all the BH10 lines should be necessarily used. Only five signals are required for
programming this device and only two of them are used for sending the the programming signals into the
chip - RESET and DBG. The diagrams in the adapters.chm file use the mnemonic of signal from the
device manufacturers' data sheets.
The Console window displays messages generated by the ChipProgUSB program that can be divided
into two groups: the ChipProg error messages and what-to-do prompts. The window stores messages
even if it is closed. You can open it at any time to view the last 256 messages, and get help for any of
them. The error messages are shown in red color, others in black.
The window should be large enough to watch several messages. To save screen space you can close
the Console redirecting all messages to the popping-up message boxes. To do this, go to the
Configure menu > Environment > Misc tab and select the Always Display Message Box option.
Alternatively you can select the Do not open box if Console window opened option, redirecting all
the messages to the Console window.
Click the Help button in the box or to invoke the ChipProg context-sensitive Help topic associated
with the error, or click the Close button and continue after correcting a parameter error.
The local menu, which can be opened by the right mouse click, includes the Console window context
commands and dialog calls. Most, but not all, of the local menu lines are duplicated by the local toolbar
buttons displayed at the top of the window. Here are the local menu and toolbar items:
Clear Window Clear Deletes all the messages from the window
ChipProgUSB is featured with the windows specifically supporting operations with scripts. That includes:
These windows cannot be open from the View menu; they can be opened only when you work with
scripts. Operations with these windows are described in the chapter Scripts Files.
The SUI mode is allowed only for use of ChipProg with one type of executing command: Auto
Programming.
1. Setting. An engineer or a technician (hereafter a supervisor) sets the programming session using the
default ChipProg graphical user interface and stores the session project; then the supervisor switches the
user interface to the SUI mode and transfers control of the ChipProg to an unqualified operator;
2. Use. The operator then replaces the chips and presses the Start button (unless the programmer is
set to detect the device insertion automatically; in this case he/she just replaces the chips).
The project file can be stored on a PC hard drive with no restrictions for the project file location.
The session project includes the device type, file name, serialization parameters, check sum, list of the
functions included in the Auto Programming batch and other options, including the SUI windows and
controls configurations, and the AutoDetect setting. The SUI interface settings include a list of pre-
configured projects, so an operator can launch a project from the list.
For launching the ChipProg with the SUI a supervisor can create an icon on the PC's desktop and
specify the project and configuration files.
Note! The ChipProgUSB does not protect the SUI project files and window configurations against
unauthorized modifications by an operator or any third party.
First, make the following preparations for making a project that will control the programming session with
the SUI. Start from the following steps:
Second, create the project. Select the menu Project > New. In the Project Options dialog specify the
project name, file name and format and other options; then click the OK button to store the project. It is
absolutely crucial to store the project. Then follow to setting the SUI options.
Under the Configuration menu click the command Simplified mode editor. This will open the
Simplified Mode Setup window with the SUI window docked to the first window at left (see below). Any
changes made in the Simplified Mode Setup window immediately become visible in the SUI window.
Clicking the OK button in the Simplified Mode Setup window completes the SUI setup, the window
closes and the button Return to editing appears in the SUI window. This allows quick switching back
and forth from SUI session editing to programming chips.
The Current configuration field displays the name of the currently chosen SUI configuration. The
configuration files with the extension .smc are located in the folder SMConfig; this folder is located in
the working ChipProgUSB folder. The Save button allows saving the configuration under the name
entered in the field Current configuration; the Save as... button allows saving it under another name. If
the Auto-save configuration on 'OK' button box is checked then clicking the OK button at the bottom
of this tab will automatically save the current configuration and close the dialog.
The Projects pane lists all the projects associated with the current configuration. When you open the
Simplified Mode Setup window for the first time, the Projects list is blank. To add a project use the +
Add button. One configuration may include more than one project if it is necessary to enable an operator
to change projects without restarting the programmer. If Allow operator to select project from the list
box is checked, then the SUI window displays all the projects associated with the current configuration;
otherwise, it displays only one project selected from the Use project list. To remove a project from the
Use project list, highlight it and click the x Remove from list button. This will remove the project from
the list but not from the disc. The Open project button loads a selected project and does not close the
editor.
The Start Programming pane gathers appropriate settings. By checking the When the device has
been automatically detected in the socket radio button you allow immediate launching of the
programming operation upon detecting the chip in the ChipProg socket. If this option is checked, the
Start button (or buttons in the gang mode) in the SUI window will be replaced with the auto detect
acknowledgment indicator.
Alternatively, the programming operation can be initiated by operator manipulation. Check the Explicitly
by the 'Start' button radio button and, if you use the gang programming mode, check one of two radio
buttons: Its own 'Start' button for each socket or Single 'Start' button for all sockets. Checking the
Its own Start button for each socket option radio button allows an operator to replace a chip in a
socket and immediately press the 'Start' button so the chips are programmed asynchronously.
Checking the Single 'Start' button for all sockets option radio button allows an operator to insert as
many chips as desired in programming sockets at once (for example, 4 chips when using the ChipProg-
G41 gang programmer) and then to press any 'Start' button to initiate concurrent chip programming on
all programming sites. In this mode, replacing the target chips is possible only upon completing the
programming procedures on all sites.
The only Auto Programming command batch can be initiated by pressing the Start button. This
command can be executed either by pressing the mechanical button on the ChipProg unit or by clicking
the 'Start' virtual button in the SUI window.
If the box Allow programming termination by operator is checked, an operator is able to stop the
programming by clicking the Exit button in the SUI window, otherwise the operator can only initiate
device programming.
Here you can individually choose the type, size and color of the Default Font for each element that can
be displayed in the SUI window: Project name, Device part number, Statistics, Device operation
status, and "Start" button. Move up and Move down allow customization of the element position in
the SUI window. By checking appropriate boxes under the Display elements titles you can enable
displaying them in the SUI window.
Then, by highlighting an element enabled for display in the SUI window, you can individually set an
appearance of each element if you wish its appearance to differ from the default and from other
elements. Checking the Frame box causes a thin blue frame to appear around the element's field. Radio
buttons Font, Font color at left and Font color at right enable the creation of appearances that
distinguish the elements displayed in the SUI windows.
When the Statistics element is highlighted, the box Allow operator to reset statistics appears.
Checking this box enables an operator to clear the current programming statistics.
When the Device operation status element is highlighted, two extra boxes: Serial number and
Checksum appear. Checking these boxes enables the serial number and the check sum written into the
last programmed device to be displayed below the status line.
To launch the ChipProgUSB with the Simplified User Interface (or in the Simplified Mode) in the
Command line mode use the key /Y <configuration name>. The key /Y and the <configuration
name> should not be separated by a space. If the <configuration name> includes spaces the name
should be quoted. For example:
When launched in the Simplified Mode the ChipProgUSB displays only the SUI window. The main
ChipProgUSB window remains invisible until an error occurs. When a programming operation fails, the
programmer behaves in accordance with the settings that control errors. These settings are available
through the menu Configure > Preferences. If the box Terminate device operation on error and do
not display error message... in the Preference dialog is unchecked (default setting) the
ChipProgUSB will issue an error message and prompt to either ignore the error and resume operation or
to terminate it. If this box is checked, any error will cause the programming session to come to a
complete stopp., The error message will not be issued.
Use of projects is especially beneficial for production programming when a typical scenario includes
replication of a lot of chips programmed with the same data but different serial numbers. In this case it is
very convenient to create and lock a project that completely defines the programming session and then
allow a programming operation to a worker who will simply replace the chips being programmed and
watch the programming progress and results.
You can create, edit and save projects within the ChipProg Graphical User Interface - read about the
Project Menu and associated dialogs. The project files have the extension .upp.
Note! The ChipProgUSB software does not automatically save changes of the project options upon
quitting the program. You must execute the Save or Save as command from the Project menu to
preserve project changed made in all user interface setting dialogs since opening this project.
3] [option 4]… , where the command line elements in square brackets (options and project name) are
optional and may follow in any order separated by spaces. The square brackets characters are not parts of
the option or project name.
Each option begins with one of two characters: either ‘/’ (slash) or ‘-‘ (hyphen) followed by the reserved
names listed in the Command line options table. The ‘/’ (slash) and ‘-‘ (hyphen) characters in command
line options are absolutely equivalent. For example: ‘/L’, is the same as ‘-L’.
Characters in the command line options, project names and the application executable name are case-
insensitive, so there is no difference between the ‘/A’ and ‘/a’ options. If the file name includes spaces the
file name should be quoted. For example: -L”Data file 5.hex”.
Some options in the Command line options table require additional parameters; these are shown in this
table in angle brackets (< >). These parameters specify file names, devices, text strings, serial numbers, etc.
that should follow options without a space. For example: "/LData file 5.HEX" (load the Data file 5.HEX to the
b uffer right after launching the programmer) or ”/FH” (the file format is hexadecimal).
Upon executing a command line the ChipProgUSB checks whether a project loaded before the program has
been closed at the previous programming session. If it has, the program automatically reloads this old
project unless a new project name is specified in the command line.
There is no difference between loading a project by executing a command line, or loading it manually by
means of the ChipProgUSB user interface menus.
-C"Atmel^AT89C51ED2 [ISP BL Mode]" - select the Atmel AT89C51ED2 [ISP BL Mode] device;
-L"C:\Work\Output Files\Bin\Serial.bin" - then load the file C:\Work\Output Files\Bin\Serial.bin into the buffer
#0;
-FB0x2000 - specify the binary format for the Serial.bin file with the start address 0x2000 in the buffer;
-A - then begin the Auto Programming session using the default set of commands programmed in the Auto
Programming menu;
-I2 - make the ChipProgUSB main window invisible, when the Auto Programming session completes. if an
error occurs, copy the error message to the clipboard and close the ChipProgUSB application.
Right after launching the ChipProgUSB application load the project file ‘Nexus.upp’ from the folder C:\Work
\Programmer Projects\ and launch the Auto Programming session from buffer #1. If the programming was
successful, close the ChipProgUSB application. The ChipProg main window remains visible.
3) UProgNT2.exe
An option name begins with one of two characters: either ‘/’ (slash) or ‘-‘ (hyphen), followed by the
reserved names listed below. The ‘/’ (slash) and ‘-‘ (hyphen) have the same effect; there is no difference
whatever. For example, ‘/F’, ’-L’.
Options Description
-L<file name> This option loads the <file name> file into the ChipProg buffer
immediately after launching the ChipProgUSB program. If other files were
previously loaded with some project then a new one will be loaded in
accordance with the file format and start address. The loader automatically
recognizes the file format in accordance with the file extension. If an actual
file format differs from one listed in the file format list, use the option -F;
this option enables you to explicitly specify the file format (see below).
-F<file format> This key explicitly sets the format of the file specified by the option -L<file
name> above. The <file format> is specified by one of the following
letters:
For example: the option -FH loads a file in the HEX format, which defines
the start destination address in the ChipProg buffer.
If a command line includes a key -F<file format> but does not include a
key -L<file name>; i.e., it specifies the file format but does not specify
the file name itself, the -F<file format> option will be ignored.
Note that use of the -C, -L, -F command line keys is less beneficial
than use of projects, which allows much more flexible and effective
control of device programming. It is highly recommended, and
especially for mass production, to open, configure and store as
many projects as you need and launch them from a command line. .
It makes sense to use the -A option only when including in the command
line a project name or the -L<file name> option.
-I This key makes the ChipProgUSB application main window invisible until
a programming error occurs. In case of error the window appears on the
PC screen along with the error message. Use of this option makes sense
only if the option -A (Auto Programming) is included in the same
command line. Otherwise the -I option will be ignored.
-I1 This key is similar to the -I key but use of the -I1 holds the ChipProgUSB
application main window invisible even if a programming error occurs. The
first occurrence of a programming error returns the error code 1 and closes
the ChipProgUSB program. (A successful Auto Programming session ends
with returning the code 0). These return codes can be conveniently used by
an external application that controls the ChipProg remotely; for example,
LabVIEW, similar programs or batch files.
-I2 This key is similar to the -I key, but use of -I2 holds the ChipProgUSB
application main window invisible, suppresses displaying error messages,
but copies them to the Windows clipboard.
-M Including this key in the command line launches the ChipProgUSB software
in the demo mode, which does not require use of the ChipProg hardware
and real data exchange between a computer and the programmer hardware.
Use of this mode is convenient for product evaluation without the ChipProg
hardware.
-N<serial number> This key enables operations with a particular single-site ChipProg
programmer from a cluster of multiple programmers driven from one PC but
only when these programmers are not controlled in the gang mode (with
the key -GANG). Each single programmer has its own unique serial
number (<serial number>) enabling you to address it by this serial
number. A serial number can be found on the bottom of the programmer
case or, better, by opening the menu Help > About... . Serial numbers of
all single programmers connected to one PC are also available in the
"Choose programmer" dialog that the ChipProgUSB program opens if the
command line does not include the options -N or -P. For example, the
option -NPHP10012A apecifies that all other command line options are
applicab le to the programmer with a serial numb er PHP10012A only.
-P<identifier> This key is similar to the -N above but it defines a single module in the gang
machine or in a programming cluster by setting the site number following a
reserved text identifier "Phyton Gang Programmer" for the programmers
driven by the ChipProgUSB software and "Phyton Fast Gang Programmer"
for the programmers driven by ChipProgUSB-01. For example, the option -
P"Phyton Gang Programmer #2" defines that all other command line options are
applicab le exclusively to the programming module #2.
-R This key is applicable only for operations with Phyton gang programmers
(ChipProg-G41 and ChipProg-G4) but only when it is necessary to operate
with a particular programming module inside of these gang machines;
i.e., not in the gang mode. Since all single programming modules belonging
to each ChipProg gang programmer have the same serial number it is
impossible to address the programming site by a serial number (key -N).
When one of the mentioned gang programmers is launched from the
command line, including the -R option, this opens the dialog prompting a
user to specify a particular number of the programming module inside of the
gang machine. It is possible to use the key -P for choosing a programming
module with a specified socket number.
-S<file> This key replaces a default session configuration file UPROG.ses by a new
one with the name <file> and the extension .ses. The session
configuration file stores major ChipProg settings, and includes a name of
the last working project; it resides in the ChipProgUSB folder. The new
session settings will be used by the ChipProgUSB right after the command
line execution.
-O<file> This key replaces a default option configuration file UPROG.opt by a new
one with the name <file> and the extension .opt. The option configuration
file stores the target device type, file options, etc.; it resides in the
ChipProgUSB folder. The new options will be used by the ChipProgUSB
right after the command line execution.
-D<file> This key replaces a default desktop configuration file UPROG.dsk by a new
one with the name <file> and the extension .dsk. The desktop
configuration file stores the computer screen configuration, i.e., positions,
dimensions, colors and fonts of all opened windows; it resides in the
ChipProgUSB folder. The new ChipProgUSB desktop configuration will be in
force right after the command line execution.
-ES<file> This key executes a script file, whose name follows the key -ES, right after
launching the ChipProgUSB application. If the command line does not
include the -ES key, the ChipProgUSB application searches for the script
file named ‘Start.cmd’ in the programmers’s working folder and, if such a
script file exists, it executes this script.
Use of the On-the-Fly Control is very similar to command line control but this utility enables controlling
a ChipProg programmer that is already launched and running, without stopping and restarting it. On-the-
Fly Control can issue commands allowing any operation that can be executed on the target the device,
including Read, Program, load a project, launch a script, etc. With the On-the-Fly Control utility you
can control a working ChipProg from the Windows batch files of third-party graphical packages such as
LabVIEW.
The On-the-Fly Control utility is an alternative to the more advanced Application Control Interface (DLL
control); use of the latter requires some programming skills.
The OFControl.exe executable file resides in the folder where the ChipProgUSB is installed. It is
recommended that you keep it in this folder and launch it from this folder. Once launched, the utility
After completion, the On-the-Fly Control utility issues return codes. The code will be 0 (zero) in case
of success. Specific error codes are listed in the UPControl return codes section. The program dumps
error descriptions to the Console window and, optionally, to the log file and/or Windows clipboard.
Upon completing the On-the-Fly Control job the ChipProg keeps working unless the utility has not been
launched with the key -X. You may re-launch the On-the-Fly Control utility to control the same device
programmer but remember that only one On-the-Fly Control utility can feed each working device
programmer at a time. So, if you launch a second copy of the OFControl.exe file while the ChipProg
device programmer is under control of a previously launched copy of the utility, the second copy will not
"find" the device programmer.
An option begins with one of two characters: either ‘/’ (slash) or ‘-‘ (hyphen), followed by the reserved
names listed below. The ‘/’ (slash) and ‘-‘ (hyphen) have the same effect; there is no difference whatever.
For example, ‘/L’, ’-P’. Though the options in the command line may follow each other in any order, the
utility will execute them in a certain logical order. For example, operations with a target device will be
executed only after loading a project and launching a script, regardless of the option order in the
command line. There is one exception for the -F<device operation list> and -A options. These options
define an order of operations with the target device and so they must be executed in accordance with
their order in the command line.
Note: In the descriptions of the command line option formats, optional parameters are shown in square
brackets []; in the actual option notation these brackets should be omitted. The angle brackets below
<> serves for a clearer presentation only and should be omitted in the option notation. For example,
instead of -G[+] use -G+; instead of -G[+][<C:\Temp\UPC.log] use -G+C:\Temp\UPC.log.Enter topic text
here.
If a file name in the option includes spaces, the full name with the path should be used. Any additional
information belonging to the option should follow it with no spaces. For example, -L"H:\Program Files
\ChipProgUSB\6_00_00\UprogNT2.exe /g". Here the file name and path is framed with the quotation
characters ("") and there is no space between the /L and the option's ending.
The @<Option File> construction refers to the text file from which the On-the-Fly Control utility
should fetch a number of options. Each option in such a file can be listed as a separate string. For
example: :
Lines in the option file beginning with the semicolon sign (;) are treated as comments and ignored. A
commented example of the file response.txt is listed in the topic Option File example.
The command line format is: OFControl.exe [Options] [@<Option File>] [Options]
Note: In the descriptions of the command line option formats optional parameters are shown in square
brackets [], in real option notation these brackets should be omitted. The angle brackets below <>
serves for a clearer presentation only and should be omitted in the option notation. For example, instead
of the -G[+] use the -G+; instead of -G[+][<C:\Temp\UPC.log] use the -G+C:\Temp\UPC.log.
Option Description
-D Include extended information to the Console dump and in the log file if it
is specified. This option if helpful for On-the-Fly Control utility
debugging.
-G[+][<log file name and Duplicate records outputting to the ChipProgUSB Console window to a
path>] log file. If the + sign follows the -G option name the information will be
appended to the end of the log file, if it exists. Absence of the + sign will
force creation of a new log file. The default name of the log file is
OFControl.log and it resides in the ChipProgUSB working folder but
you can specify a new file name and location.
Examples:
-G - create a new log file, named OFControl.log, in the
OFControl.exe working folder.
-G+ - append records to the OFControl.log file if it exists. If it doesn’t
exist, create it and append records to the file.
-G+C:\Temp\OFC.log - append records to the C:\Temp\OFC.log file if it
exists. If it doesn’t exist, create it and append records to this file.
-WK Keep the On-the-Fly Control running until any key on the keyboard is
pressed. This allows looking up the utility output in the Console window
before it exits.
-L< ChipProgUSB Launch the ChipProg device programmer if it is not running. If it was
executable file name and already launched the option will be ignored. The On-the-Fly Control
command line options> utility executes the -L option before any others specified in the
command line: before loading a project, launching scripts, or any
operations with the device. The -L option is incompatible with use of
the -R option (see below).
-R<device programmer's If more than one ChipProg device programmers are working under
serial number> control of the PC in the gang mode, connect and drive the unit whose
serial number is specified by this option. This option is incompatible with
use of the -L option. If more than one programmer is working under
control of the PC and the On-the-Fly Control utility does not include
the -R option, the utility returns an error (#14).
If more than one operation on the target device specified in the On-the-
Fly Control command line returns errors, then, if the command line also
includes the -I option (ignore errors), descriptions of all the errors will be
copied to the Windows clipboard.
-M[=<timeout in seconds>] Specify a timeout in seconds of waiting for readiness of the device
programmer before certain events: loading the project, launching scripts
and a chain of the programming operations and quitting triggered by the
-X option. If the -M option is not specified, the On-the-Fly Control utility
does not check whether the ChipProgUSB is in the stop mode so an
attempt to launch a programming function will cause quitting the utility
with an error.
-P<project file> Load a specified project file. Project files with .UPP extensions include
all the information and settings for a programming session (device type,
file(s) to be written to the device, customized device and algorithm
parameters, interface settings, device serialization options, scripts,
etc.).
Before loading the project the On-the-Fly Control utility waits until the
programmer stops the operations on the device (see the -M option). If
the -P option is specified in the On-the-Fly Control command line
along with the -S and/or -F options, then the project loads before
launching scripts and any operations with the target device.
-S<script file> Launch a specified script. Before starting a script the On-the-Fly
Control utility waits until the programmer stops the operations on the
device (see the -M option). By default the On-the-Fly Control utility
waits for the the script completion. To allow the On-the-Fly Control
utility to continue working while the script is running, add the -NWS
option to the option list.
-NWS Do not wait for completion of the script specified by the -S option.
-F<function list> Execute listed operations (functions) with the target device. Names of
the functions in the list should be separated by semicolons (;). In order
to execute the Auto Programming function the -F option should be
followed by an asterisk character (*).
If the command line includes more than one -F option they will be
executed in the order in which they are specified in the command line.
If the -F option(s) is (are) specified in the command line along with the
options -P (load project) and/or -S (launch script) then all the functions
specified by the -F option(s) will start after loading the project and/or
launching the script.
Examples:
-NWF Do not wait for completion of the function specified by the -F option. This
option is incompatible with the -X option.
Examples:
-V=[0 | 1] Hide (-V=0) or make it visible (-V=1) in the ChipProgUSB main window.
-X Stop the programmer and quit the program. To quit the ChipProgUSB
program, the programmer must complete all the previously launched
operations on the device. So the On-the-Fly Control utility waits for
completing the current programming operation for a timeout period
specified by the -M option. If this option is omitted or the timeout period
expired the On-the-Fly Control returns an error code.
The utility prints errors on the Console and, optionally, writes them to the log file and/or Windows
clipboard.
Return codes:
0 Successful completion.
1 The –T option was specified and the programmer is busy executing an operation on device.
3 Error calling a Windows API function; it could be caused by an abnormal exit of the programmer
software.
4 The programmer application was closed while the On-the-Fly Control utility has been waiting for
a response. Possibly a user has forced closing the program.
5 The timeout, which was set by the -M option for stopping the programmer, has expired.
6 The programmer was launched in the gang mode but an option in the On-the-Fly Control utility
tried launching a function not applicable for gang programmers.
7 Cannot execute a required action because the programmer is busy with operation on the target
device.
10 General error.
11 The programming function specified in the -F option does not exist for the selected device.
12 An error occurred while the programmer operated with the target device.
13 The programmer could not complete an operation and close the program after receiving the -X
option request.
14 More than one device programmers is running. This requires the -R option use.
; Load the project. The FuelPump-08.upp project file locates in the folder D:\Projects
-PD:\Projects\FuelPump-08.upp
When the ChipProgUSB program starts, it searches for the script with the reserved name START.CMD. So, if
you wish the ChipProgUSB program would automatically perform some operations immediately after you
launch the program, you can create a special script. The ChipProgUSB program begins searching for the
START.CMD in the current directory on the disc, then it searches for this script in the directory where the
ChipProgUSB.exe file resides. If the START.CMD is not located then a default ChipProg shell will open.
The scrips controls and associated dialogs and windows are concentrated under the Script menu.
The major dialog that controls scripts is the Script Files dialog.
See also:
Simple example of a script file
How to write a script file
How to start a script file
How to debug a script file
Description of Script Language
Script Language Built-in Functions
Script Language Built-in Variables
This dialog is used for controlling the Script Files, it allows to start, stop and debug scripts.
In the upper window of this dialog you see the list of loaded script files with the current state of each file.
Any script can be in one of the following states:
To select a script file, highlight its name in the window. The four buttons on the right of the list control the
highlighted script:
Button Description
Terminate Unloads the selected script file if it can be unloaded. Otherwise, it sets up
the Unload Request flag for the selected script that then goes to the
Canceled state.
Terminate All Unloads all script files visible in the window.
When you use several script files simultaneously and unload or restart some of them, remember that
script files can share global data and functions. If one script accesses data or the functions belonging to
another one that is already unloaded, then the script interpreter will issue error messages and the active
script file will be also be unloaded (terminated).
The buttons and fields in the lower part of the dialog box control the script files starting:
Element of dialog Description
Script File Name Specifies a name of the script file to be loaded. You can either typed in the
file name with a full path to the box or to take it from the drop-down history
list or browse it from a computer disc.
Browse Opens the Load/Execute Script File dialog for locating and loading script
files into the Script File Name box.
Defines Defines the processor text variables for compilation. For more information,
see below the Processor text variables.
#include-file Specifies the directories in which the script file will search for the files
Directories specified in the #include <file_name> directive(s). To specify more than
one directory, separate them by semicolons. The current directory is
scanned as well.
Debug (open Script If this box is unchecked, a script file automatically starts execution upon the
Source window) file loading. If the box is checked, then upon loading a script file, the
program immediately opens the window for debugging the script. See also
How to Debug a Script File.
Auto-save Script File If this box is checked when you click the Start button ChipProgUSB
Sources automatically saves the source texts of all script files visible in the Script
Source windows.
Start Starts the script file specified in the Script File Name box.
Processor text variables
The content of the Defines text box is equivalent to the #define directive in the C language. For example, if
you type DEBUG in this text box, the result will be as if the #define DEBUG directive is placed in the first
line of the script source text.
You can specify values for variables. For example, DEBUG=3 is equivalent to #define DEBUG 3.
You can list several variables in a line and separate them with semicolons. For example:
DEBUG;Passes=3;Abort=No
Also, see Predefined Symbols at the Script File Compilation.
A script file is similar to a source program text written in programming language (C, for example), e.g. a
script file can be created and edited either in the Editor window by the ChipProgUSB built-in editor or by
any other editor. You can allocate script files in your work directory or in the directory where the
ChipProgUSB program is installed.
Normally the Editor toolbar that collects all the edit function buttons is hidden. To create a customized
editor toolbar right click on the blank area of the main toolbar, select the Customize line in the drop-down
menu and check the boxes of the editor functions which you would like to make visible.
To open a new script file for editing open the Script menu > Editor window > New. This will open a blank
window below. Right clicking within the window pops up the Editor command menu that includes the
buttons which you can bring up to the local Editor toolbar. Here the toolbar is shown above the window.
Open... Opens the Open file dialog to load a script file for editing. The file
name and path can be either entered or browsed here.
Save Saves the file from the currently active window to a disc.
Print Opens the standard Print dialog for the default printer. You can
print an entire file or a selected text block.
Properties.. The common properties for open files.
Copy Copies the marked block to the clipboard. The text format in the
clipboard is standard and the copied block is accessible to other
programs.
Paste Copies the block from the clipboard, starting at the cursor position.
Next Search Repeats search with the parameters used in the previous search.
Display Multi-file Re-opens the last multi–file search results in the Multi-File Search
Search Results Results dialog.
Display from line Opens the Display from Line Number dialog for you to specify a line
number... number. Source text will be displayed from this line.
Set bookmark... Opens the Set Bookmark dialog to set a local bookmark.
Retrieve bookmark Opens the Retrieve Bookmark dialog to retrieve a local bookmark.
Return to last Activates the most recently edited Source window, and places the
editing context cursor in its final position during the edit.
This dialog sets complex criteria and parameters for searching text in files. This dialog and the Replace
Text dialog have a number of common parameters, which function in the same way in both dialogs. To
specify file names, you can use one or several wildcards. Also, the names may contain paths. You can
search in more than one file at once by using parameters of the Multi-File Search area.
Element of dialog Description
String to Search for Specifies the text string to search for.
Case Sensitive This box is unchecked by default. Checking this box specifies that the case of
the string is to be matched.
Whole Words Only This box is unchecked by default. If checked, the editor will search only for
whole words: the string will be found only if it is enclosed between
punctuation or separation characters (spaces, tabulation symbols, commas,
quotation marks, etc.).
Regular Expressions This box is unchecked by default. Checking of this box specifies that the
search string is a regular expression.
Global Search the entire file for the string. Enabled by default.
Selected Text Search the string in the selected block.
From Cursor Search from the current cursor position.
Entire Scope Search from the beginning or end of the file (depending on the search
direction). Enabled by default.
Perform Multi-File If this box is checked the editor will search in all project files (see the notes
Search below). If the box is unchecked, then the search will be performed in the
current Source window only.
Search All Source If this box is checked the editor will search in all the source files included in
This dialog sets the parameters for the search-and-replace operation. This dialog and the Search for Text
dialog have a number of common parameters, which function in the same way in both dialogs. To specify
file names, you can use one or several wildcards. Also, the names may contain paths. You can search in
more than one file at once by using parameters of the Multi-File Search area.
Element of dialog Description
Text to Search for Specifies the text string to look for (search string).
Replace with Specifies the text string to replace the found one.
Case Sensitive This box is unchecked by default. Checking this box specifies that the case of
the string is to be matched.
Whole Words Only This box is unchecked by default. If checked the editor will search only for
whole words: the string will be found only if it is enclosed between
punctuation or separation characters (spaces, tabulation symbols, commas,
quotation marks, etc.).
Regular This box is unchecked by default. Checking of this box specifies that the
Expressions search string is a regular expression.
Prompt at Replace This box is checked by default and if it is checked the editor will always pop
up the Confirm Replace dialog requiring your permission to replace the
found text. If unchecked the editor will automatically replace the searched-and
found text.
Global Search the entire file for the string. Enabled by default.
Selected Text Search the string in the selected block.
From Cursor Search from the current cursor position.
Entire Scope Search from the beginning or end of the file (depending on the search
direction). Enabled by default.
Perform Multi-File This box is checked by default and if it is checked the editor will search in all
Search and Replace project files (see the notes below). If the box is unchecked, then the search
will be performed in the current Source window only.
Search All Source If this box is checked the editor will search in all the source files included in
Files in Project the project.
Include Dependency If this box is checked the editor will search in all the source files included in
Files the project and all files on which the source files depend, whether explicitly or
implicitly. For C language, these are the header files (*.h).
Search Wildcard(s) Check this box to search for one or several wildcards specifying the files to be
searched. Separate wildcards with semicolons. No quotes are required to
denote Windows-style long names. Example: *.txt;*.c;c:\prog\*.h.
This option and the Search All Source Files in Project option act
independently of each other: you can search in all files of the project AND in
other files that comply with the specified wildcard(s).
Search If this box is checked the editor will search in subdirectories of all the
Subdirectories directories, which are specified by the Search All Source Files in Project
option and by wildcards.
Starting Path Begin search from the directory specified in this text box. This directory serves
as the common path and is useful when there are several wildcards such as
the following ones:
c:\prog\text\source\*.txt;c:\prog\text\source\*.doc
In this case, make use of wildcards (*.txt;*.doc) and common path
(c:\prog\text\source).
Notes
1. When you search in the file opened in the Source window, then only the window buffer will be searched,
not the file on disk.
2. Multi-file search is performed in all source files of the project. Upon finishing, the Multi-File Search
Results dialog remains open.
This dialog requires your permission to replace a found string. You can turn the prompt on/off by checking/
clearing the Prompt at Replace box in the Replace Text dialog.
Button Function
Yes Replace the found string.
No Cancel this replacement. If the procedure is started with the Change All
button for all occurrences in the search area, then the search-and-
This dialog displays the multi-file search results. To learn about the multi-file search, see the Search for
Text dialog.
The List of Matched Files shows the files where the search string is found. The file name is on the left and
its directory is on the right. The line with green text right under this box displays information about the file
selected in the box. "File in memory" means that the file is opened in the Source window. General
information from FAT means the file is on disk, not loaded. The Preview area shows the source line with
the found text string.
The Sort Files by area includes a radio button with four file sorting options. When the Consider Directory
box is checked, the files are sorted with respect to their directories.
The Edit button opens the selected file in the new Source window and places the cursor on the line with
the found string. The found string is marked with the background color. To check if there are other
occurrences of the sought string in this file, press Ctrl+R or use the Next Search command of the Edit
menu.
The Close button closes the dialog but the results are not lost. To reopen the dialog use the Display Multi-
file Search Results button. You can also use the same command of the Edit menu or press Shift+F5. The
files in the List of Matched Files box, which are opened in the Source window, will be marked with
asterisks on the left.
The text editor supports "regular expressions," which can be used to search for special cases of text
strings. Regular expressions contain the control characters in the search argument string:
? Means any one character in this place. Example: if you specify ?ell as the search string,
then "bell," "tell," "cell," etc. will be found.
% Means the beginning of line. The characters following '%' must begin from column 1.
Example: %Counter - find the word "Counter," which begins at the first column.
$ The end of line. The characters preceding the '$' should be at the last positions of the
line. Example: Counter$ - find the word "Counter" at the line end.
@ Match the next character literally; '@' lets you specify the control characters as usual
letters. Example: @? - search for the question mark character.
\xNN The hexadecimal value of the character. Example: \xA7 - find the character with the
hexadecimal code of A7.
+ Indefinite number of repetitions of the previous character. For example, if you specify 1T
+2, then the editor will find the lines containing "1" followed by "2", which are separated
with any number of repetitions of the letter T.
[c1-c2] Match any character in the interval from c1 to c2. Example: [A-Z] means any letter from A to
Z.
[~c1-c2] Match any character whose value is outside the interval from c1 to c2. Example: [~A-Z]
means any character except for the uppercase letters.
text1|text2 The "|" character is the logical "OR" and the editor will look for either text1 or text2.
Example: LPT|COM|CON means search for "LPT" or "COM" or "CON."
In the Condensed mode, only lines that satisfy a specified criterion are displayed in the window. There are
two available criteria:
the line must contain a given sub-string;
the first non-space character in a line must be at a specified position (column).
Examples: (a) with the sub-string criterion and the sub-string set to "counter," only the lines containing the
word "counter" will be displayed; (b) with the second criterion and the position set to four, only the lines in
which text begins at column 4 will be displayed.
The Condensed mode brings the lines having some common feature to "one place." If you attentively follow
a rule to begin the declaration of data at position 2, procedures at position 3, and interrupt handlers at
position 4, then the Condensed mode will help you to find a necessary declaration. If you comment certain
lines with the same or similar comments and use the Condensed mode with sub-string, you will be able to
benefit from your composing style. In the Condensed mode, you can move the cursor just as in the normal
mode.
How to control
The criterion for display is set in the Main menu > Script > Text Edit > Condensed Mode Setup dialog. To
toggle the Condensed mode on/off, use the Edit menu command, the Condensed Mode command of the
local menu or the F12 hotkey. To exit the Condensed mode, press Esc. When you exit, the cursor returns to
the position at which it was before the mode was turned on. To exit the mode and remain in the line from
which you moved the cursor while in the mode, press Enter or begin editing the line.
This dialog sets up the parameters for the Condensed mode of the Source window.
The Display Lines of Text area has radio buttons for switching between two alternative criteria for
condensing text in the Source window: Containing String and Where First Non-blank Column Is:
1. If you check the Containing String radio button the Source window will display only the lines with text that
match the sub-string specified in the text box at the right. Additionally, you can specify that the case should
be matched the case, that whole words only should be used, and that the sub-string is a regular
expression.
2. If you check the Where First Non-blank Column Is radio button, the Source window will display the lines
where text begins from the position specified in the Column box. Then you should select one of four
options by checking an appropriate radio button:
Equal to - the first non-space character should be exactly in the specified column. For example, if you
specify position number 2, the window will display only the lines whose text begins in column 2.
Not Equal to - the first non-space character should be in any column except the position specified here.
For example, if you specify position number 2, the window will not display all the lines beginning in this
column. All other lines will be displayed.
Less than - display only the lines in which text begins at a position less than the specified one.
Greater than - display only the lines in which text begins at a position greater than the specified one.
When you have completed setup click OK to switch the Source window to the Condensed mode.
It is normal for words (labels, names of variables) to be repeated within a limited part of a file. In such
cases, the Source window helps you finish typing the whole word.
If the cursor is at the end of line that is being composed, then upon typing a letter, the editor scans the
text above and below the current line. If a word beginning with the letters that you have just typed is found
in these lines, then the editor will "complete" this word for you by writing the remaining part of the word
from the current cursor position. If this word suits you, press Alt+Right (Alt+<right arrow>) and the editor
will append the remaining part of the word to the text as if you have typed it yourself. If the word doesn’t
suit you, just continue typing and the editor will accept whatever you type. At any point during the typing,
you may press Alt+Right to accept the editor’s completion suggestion.
You can press Alt+Right at any time and not only when the editor offers you to complete a word. In this
case, the editor will open a list of words that begin with the typed letters. If the list does not include an
applicable word, just ignore the prompt. The right pane of the Source window, if it is open, also displays
the word completion list.
How to control
To disable automatic word completion, uncheck the Automatic Word Completion box in the Main menu
> Configure>Editor Options> General tab. When the box is checked, a number placed in the Scan
Range box defines the number of lines for the editor to scan. The default is 24 lines below and 24 lines
above the current line. When this parameter is greater than the total number of lines in the file (for
example, 65535), then program composing will become slower because the whole file will be scanned.
When the Source window displays the source text, it marks different C language constructions with
different colors. This feature improves readability. The following constructions are highlighted separately:
Punctuation and special characters: ( ) [ ] { } . , : ; and so on.
Comments that begin with // are highlighted. Comments enclosed in the /* */ character pairs are
highlighted, if the opening and closing pairs are placed in the same line.
Strings enclosed in double or single quotation marks.
Keywords of the C language (for, while, and so on).
Type names of the C language (char, float, and so on).
Library function names of the C language (printf, strcpy, and so on).
How to control
You can disable syntax highlighting through the Main menu > Configure>Editor Options> General
tab>Syntax Highlighting flag In addition, you can change the color for each construction. To do the latter,
use any of the following items: Main menu > Configure> Environment > Colors tab.
Use this dialog to display the source file in the active Source window starting with a specified line. Enter
the line number or select any previous number from the History list. The number of the first line is 1.
The Quick Watch function works as follows: if you roll the mouse pointer over a variable name in the
Source window or the Script Source window, a small box containing the value of the variable will be
opened. This box disappears upon moving the mouse off the object.
Block operations apply an editing action to more than one character at once. The Source window
supports persistent blocks and performs a full range of operations with standard (stream), vertical
(column) and line blocks of text.
Non-persistent blocks In this mode, once a block is marked, you have to immediately carry out an
operation with it (delete, copy, etc.), because any movement of cursor takes the marking off the block. If a
block is marked, then any entered text will replace the block with the typed text.
Persistent blocks In this mode, the block remains marked until the marking is explicitly removed (hot
key Shift+F3) or the block is deleted (Ctrl+X). The Paste operation for persistent blocks has specifics.
Two additional block operations are available for persistent blocks: fast copy and fast move. These
operations do not use the clipboard and require fewer manipulations of the keyboard.
To enable the persistent block mode check the namesake box on the Main menu > Configure>Editor
Options> General tab.
Standard blocks The standard (stream) block contains a "text stream" that begins from the initial line
and column of the block and ends at the final line and column.
The Standard blocks is enabled by default.
Line blocks The line block contains whole lines of text. To mark a line block, put the cursor anywhere in
the first line and press Alt+Z; then put the cursor anywhere in the last line of the block and press Alt+Z
once more (the latter is not necessary if the block is to be immediately deleted or copied to the clipboard).
Line blocks are always available.
Vertical blocks The vertical block contains a rectangular text fragment. Characters within the block,
which goes beyond the end of the line, are considered to be spaces. Vertical blocks are convenient in
cases like the following example of source text:
char Timer0 far ;
char Timer1 far ;
char Int0 far ;
char Int1 far ;
Assume the word "far" is to be moved to the place right after the word "char" in each line. The stream
blocks are of little help here. However the task can be easily done with one vertical block. Mark the
persistent vertical block containing the word "far" in each line, place the cursor on the first letter of word
"Timer0" and press Shift+F2 (fast move the block):
Checking/Clearing the Vertical Blocks box toggles between the vertical block and the stream block
modes in the the Main menu > Configure>Editor Options> General tab. The standard blocks are
enabled by default; i.e. the Vertical Blocks box in the Editor Options dialog is unchecked by default. The
line blocks are always accessible, irrespective of the status of the Vertical Blocks box.
To mark a block, either move the mouse while pressing its left button or use the arrow keys of the
keyboard while pressing the Shift key. To unmark the block, press Shift+F3.
Copying / moving blocks
A marked block can be copied or moved within the same Source window in two ways: directly (fast
copying, fast moving) and through the clipboard (Copy/Cut-n-Paste). Copying and moving blocks
between the Source windows, or to another application should always be made through the clipboard.
Note. The result of copying the stream or vertical non-persistent block depends on the INSERT mode. If
the mode is enabled, then the block is inserted into the text, starting at the cursor position; otherwise the
copied block overwrites the text on an area of equivalent size.
Fast copying / moving
Fast copying (moving) the blocks in the same window directly (without the clipboard) is convenient
because it requires pressing of keys only once per operation. Mark a persistent block, then place the
cursor at the destination position and press Shift+F1 to copy, or Shift+F2 to move.
Starting scripts
Scripts can be started and restarted in several ways. The easiest one uses the commands of the Script
Files dialog:
to start a new script enter the file name into Start new script file box and click the Start button in the
bottom part of the dialog box;
to restart a stopped script highlight its name in the dialog window that displays all the loaded scripts
and click the Restart button.
A script can be also started by means of the StartCommandFile() function executed by another running
script.
Debugging scripts
A script can be started for an immediate execution (read above) and can be launched in the Debug mode
that usually is necessary while you master the script and need to check if it properly works and make
necessary corrections in it. To start the script debugging highlight its name in the Script Files dialog window
and click the Debug button - the program opens the window with the script file's editable text. The window is
split in two panes: the left pane displays the script text, the right one is the AutoWatches pane. If you check
the Debug box then every time when you start a script it will automatically switch to the Debug mode, stop the
script execution and open the window with the script file.
Syntax constructions and the lines, which correspond to the current PC value (blue strip) and the
breakpoints (red strips), are highlighted in the script file text (for more information, see Syntax
Highlighting).
Local menu and toolbar
The local menu window contains the following commands, most of which are duplicated by the
corresponding buttons on the window toolbar:
Run to Cursor Executes the script up to the line where the caret is
positioned (the corresponding address).
Alternatively, you can double-click the line to carry
out this command.
Origin Origin Displays the source text from the line whose
address corresponds to the script file Program
Counter. This operation is not available when
source text lines do not exist for the program
addresses.
New PC New PC Sets the script file’s Program Counter value to the
address corresponding to the line where the caret is
positioned.
Add to Watches +Watch Opens the Watches window (if not yet opened) and
Window places the name at the caret position into it.
Note. To get help on a function or variable, point to the function or variable with the cursor and click. For
more information, see How to Debug a Script File and Script Files.
For customizing the ChipProg user interface and debugging purposes scripts themselves can open two
types of additional windows: the User window and the I/O Stream window.
The ChipProgUSB program displays a visible portion of the script in the Script window. The names of
variables, called AutoWatches, which belong to the visible script lines, are listed together with their
current values in the right pane of the window. When you scroll through the Script window the contents of
the AutoWatches pane automatically refreshes.
The AutoWatches can be presented in the pane in the binary, hexadecimal, decimal or ASCII formats. To
set the format you need to click the Setup button on the pane local toolbar or right click on the pane space
to open the local menu.
While the AutoWatches pane of the Script window displays values of the script variables visible in the
current window scope you may want to monitor changing other explicitly specified script variables and
expressions. To do so the ChipProgUSB allows opening the Watches windows. For each variable, the
window displays its name, value, type and address, if any.
A newly opened Watches window has one Main tab. You can add custom tabs (with the Display Options
command of the local menu) or rename any existing tabs. The tabs operate independently of each other;
each tab is functionally equivalent to a separate Watches window. However, if needed, you can open
several Watches windows.
Each of the above windows has the +Watch button on its toolbar. Clicking this button opens a dialog for
adding a selected object to the Watches window.
Grids in the Watches window
For better readability the Watches window can be divided in cells by vertical and horizontal grid lines.
Enable the grids to be visible within the Watches window by checking the corresponding boxes in the
Local menu
The window local menu contains the following commands, most of which are duplicated by corresponding
buttons on the window toolbar.
Command Description
Add Watch Adds one or more objects to the window. Opens the Add Watch dialog to
choose an object by name. Also, you can enter an expression as a name.
Modify Opens the Modify dialog to set a new value for a selected variable.
Alternatively, just enter the new value.
Display Options Opens the Display Options dialog to change the display settings for a
selected object and also to add/delete tabs to/from the window.
Use this dialog to set the display options for the selected variable or expression in the Watches window.
Watch Expression Contains a selected expression. The drop–down list contains the
previously used expressions.
Display Format Specifies the format for displaying a selected expression (binary,
hexadecimal, decimal or ASCII).
Pop-up Description Contains check boxes that let you choose formats for displaying pop-
up SFR descriptions.
Display Bit Layout If this box is checked the SFR bits will be displayed in the pop-up layout
descriptions.
Display Bit Descriptions Checking this box enables displaying the pop-up descriptions for the
SFR bits, if any.
Auto-size Name Field When this box is checked and when the vertical grid is visible (see note
below), the window automatically adjusts the Name column width to fit
the longest record in the column.
Tabs Lists all the tabs present in the window.
Add Tab Opens the Add New Tab to Watches Window dialog for entering a
new tab’s name. The window adds this new tab upon pressing OK.
Remove Tab Removes the tab selected in the Tabs list.
Edit Tab Name Opens the Edit Watch Window Tab Name dialog for editing the tab
name.
Global Debug/ Display Opens the Debug Options dialog.
Options
Note. To make grids visible in the Watches window open the Configure menu, the Environment dialog,
the Fonts tab and check corresponding boxes in the Grid field.
Use this dialog box to add symbol names (for example, a variable name or an expression) to the Watches
window. The dialog contains a list of the symbol names defined in or known to the program.
Name or expression to Enter into this box the symbol name or expression to be added. You
watch: can specify several names and expressions either manually
(separated with semicolons) or by selecting in the list with the Ctrl key
pressed.
History The list of previous names and expressions.
The User window is a window that can be created by means of the built-in OpenUserWindow function
executed from the script itself. The User windows enable:
drawing graphical objects (indicators, LEDs, buttons, arrows, etc. by means of the built-in graphical
output functions;
displaying texts in the window;
responding to the events displaying in the User windows (see WaitWindowEvent).
With this capability, you can organize window operations in the interactive mode. For more information,
see Script Files.
All functions working with windows (including the User window) obtain the window identifier (handle) as
a parameter. Therefore, you can have several windows of this type opened at the same time.
The User windows do not have a local menu. They only have toolbars with 16 buttons (0...F), and each
button can be programmed to perform a certain function. Pressing a button generates the
WE_TOOLBARBUTTON event.
The I/O Stream window is a window that can be created by means of the built-in OpenUserWindow
function executed from the script itself. Script files use windows of this type to display I/O streams in the
form of text. The most usual examples of I/O streams are displaying the characters inputted from the PC
keyboard and text messages outputting by the scripts. Also, you can reassign I/O streams to files and
input data from files.
The functions, which operate with windows (including the I/O Stream window), receive the window
identifier (handle) as a parameter. Therefore, several windows of this type can be open at the same time.
When the text display function sends text to this window, the window displays the text from the current
cursor position. To begin the next line, this function outputs '\n' (the line feed character).
The window features two text display modes: with the automatic line advance (Wrap) and without it. In the
automatic line feed mode, every text line that does not fit in the window is wrapped to the next line. In the
other mode, if the line does not fit in the window, its end will lie beyond the window border and will be
invisible. The Wrap button in the toolbar toggles the window between these modes. The Clear button
clears the window contents.
Windows of this type do not have a local menu.
The ACI is a set of proprietary Phyton software elements that allows integration of the ChipProg
programmers into an external computerized environment, for example Automated Test Equipment (ATE).
The ChipProgUSB software includes three Application Control Interface components:
1) The ACI.DLL file that specifies a set of ACI functions, which can be invoked from external
applications to perform programming operations. This DLL conforms completely to Microsoft's
dynamically-linked shared library concept.
2) The aciprog.h header file written in the C/C++ language that lists all the ACI functions exported
to the ACI.DLL.DLL and the structures associated with these functions.
3) A few program examples that control ChipProg programmers from external applications
Requirements
1) The ChipProgUSB software must be installed on the computer that controls the ChipProg
operations (hereafter the instrumental or host computer). The latest ChipProgUSB software version is
available for free download from the http://www.phyton.com/htdocs/support/update.shtml webpage.
2) The ACI.DLL.DLL requires the Windows XP, Windows 7, or Windows 8 operating system.
3) It is necessary to position the windows.h file before the aciprog.h file in the application
program.
There is the difference in Application Control Interface use under control of the 32- and 64-bit Windows.
32-bit applications should use the ACI.DLL dll and the ACI.lib export library; 64-bit - ACI64.DLL and
ACI64.lib respectfully. 32-bit applications can be used for working with Application Control Interface
under control of either Windows versions: 32- and 64-bit.
The ACI.DLL launches the programmer’s executable file by means of the ACI_Launch() function and
then controls the ChipProgUSB software by calling other ACI functions. The ChipProgUSB executable,
universal for all Phyton USB-hosted programmers, is UProgNT2.exe.
Each ACI function, being called by an external application, sends back to this application a unique
function return code. The return code constants - ACI_ERR_xxx - are defined into the aciprog.h file
included in the ACI software set.
The ACI.DLL launches the programmer executable file by means of the ACI_Launch() function and then
controls the ChipProgUSB software by calling other ACI functions. The ChipProg executable, universal
for all USB-hosted programmers, is the UProgNT2.exe.
Each ACI function, being called by an external application, sends back to this application a function
return code. The return code constants - ACI_ERR_xxx - are defined into the aciprog.h file included into
the ACI software set.
An external application can call either an ACI function without any parameter (just by the function name)
or by the function name with an added pointer to the parameter structure. The very first member of any
structure is always the 'UINT size' parameter that defines the structure size. This insures compatibility of
different ACI.DLL versions. The only exception is the ACI_IDECommand() function. Here we sacrificed
uniformity of the structure format in behalf of simplicity of the pseudo-function declaration.
Names of all the ACI objects (functions and structures) always begin with the prefix ACI. Names of the
structure patterns complete with the suffix _Params.
Numbers of the memory buffers and layers in memory buffers begin from zero. All addresses have a 64-
bit format and consist of two 32-bit halves (low and high), in order to be compiler-independent. For
example, if the compiler recognizes the uint64 type of data, then the function call for the function that
assigns a 64-bit memory buffer address in the structure ACI_Memory_Params, can be presented as:
ACI_Memory_Params params;
*((uint64 *)params.AddressLow) = 0x123456789ABC;
Note! All addresses in the structures are shown in the format specified by the device manufacturer, i.e.
in Bytes, Words, etc. For example, for any 16-bit microcontroller the address format is always a Word,
not a Byte.
In most cases, in a process in which the programming is under control of an external application, it is
not necessary to make visible the ChipProgUSB graphical user interface (GUI). The ACI allows you to
hide the ChipProgUSB GUI. However, it may be necessary to unhide the programmer GUI, or just some
windows and dialogs, for setting up the programming environment and for debugging purposes (for
example, for selecting the target device, loading the file, etc.). When the programming environment is set
up, the ChipProgUSB user interface can be hidden to free more display space for the controlling
application.
How to control multiple device programmers by means of the Application Control Interface?
It is possible to remotely launch an unlimited number of ChipProg programmers and to drive each of
them individually via ACI. After launching a programmer, the ACI creates in the ACI.DLL a special unique
object - "a connection". A particular connection is defined by the ConnectionID parameter that defines
a particular device programmer running under ACI control. The ACI_SetConnection function allows for
selection of a particular device programmer among others. Then, after the programmer is selected, all
the ACI functions will serve only one of these connections; i.e. they all will affect one selected device
programmer. If only one programmer is under control, the connection will be set automatically.
It is important to remember that more than one ChipProgUSB can be launched in either the Single-
programming or the Multi-programming or Gang-programming mode. If, for example, a cluster of
six ChipProg programmers was launched in the gang mode, then a whole cluster driven by the ACI will
represent a single connection, not six connections. So, in terms of the ACI, this cluster will have one
ConnectionID.
In order to set up and control a ChipProg tool, the program running on the instrumental computer calls
the Application Control Interface functions listed in the matrix below. Most of these functions are grouped
in "bidirectional couples" (In-Out or Get-Set). Calling some Application Control Interface functions
requires structures that specify memory locations, pointers and other objects affiliated with the called
function, while other functions do not require any structures. Here is the list of the ChipProg Application
Control Interface functions:
2. ACI functions that configure the programmer or get its current configuration
Loads the programmer configuration
parameters from the host computer to the
ACI_LoadConfigFile NA ACI_Config_Params
programmer.
3. ACI functions that get the target device properties or set them
Gets the manufacturer's name (brand) and
the part number of the device currently being
ACI_GetDevice programmed from the programmer to the host Select Device ACI_Device_Params
computer.
4. ACI functions that get current parameters of the buffers and layers or configure them
Gets the parameters of a specified memory
ACI_GetLayer buffer and layer from the programmer to the Buffer Dump ACI_Layer_Params
host computer.
Creates a memory buffer w ith specified
ACI_CreateBuffer Buffer Dump ACI_Buffer_Params
parameters in the programmer.
Changes a size of the layer #0 in a specified
ACI_ReallocBuffer Buffer Dump ACI_Buffer_Params
memory buffer in the programmer.
5. ACI functions that read the content of the buffer layer or write into it
Reads data from a specified memory buffer
ACI_ReadLayer in the programmer to the host computer. Buffer Dump ACI_Memory_Params
6. ACI functions that get programming parameters from the programmer or set them in
the programmer
Program
Gets current programming parameters from
ACI_GetProgrammingParams Manager > ACI_Programming_Params
the programmer to the host computer.
Options
Program
Sets programming parameters from the host
ACI_SetProgrammingParams Manager > ACI_Programming_Params
computer to the programmer.
Options
7. ACI functions that get device-specific programming options from the programmer or
set them in the programmer
Gets current programming options from the Device and
ACI_GetProgOption programmer to the host computer. Algorithm ACI_ProgOption_Params
Parameters
Device and
Sets default programming options and
ACI_AllProgOptionsDefault Algorithm ACI_ProgOption_Params
programming algorithms in the programmer.
Parameters
9. ACI functions that save files from the programmer and load files to the programmer
Saves a specified file from a specified
ACI_FileSave buffer's layer of the programmer into the Buffer Dump ACI_File_Params
instrumental computer.
Loads a specified file from the instrumental
ACI_FileLoad computer to a specified buffer's layer in the Buffer Dump ACI_File_Params
programmer.
10. ACI functions that display programmer's windows and dialogs for setting up and
debugging external programming sessions
Configure >
ACI_SettingsDialog Displays the programmer Preferences dialog. NA
Preferences
ACI_SelectDeviceDialog Displays the Select Device dialog. Select Device NA
ACI_BuffersDialog Displays the memory buffers setting dialog. Buffer Dump NA
ACI_LoadFileDialog Displays the file loading dialog. Buffer Dump NA
ACI_SaveFileDialog Displays the file saving dialog. Buffer Dump NA
4.6.2.1 ACI_Launch
Description
This function launches the ChipProgUSB software. Optionally this ACI function can launch the
programmer with a specified command line key and load the file that will configure the ChipProg
hardware.
Note! This ACI function must always be called before any other ACI function !
4.6.2.2 ACI_Exit
ACI_FUNC ACI_Exit();
Description
Call of this function stops the ChipProgUSB software. In most cases the programmer practically
immediately stops running. Sometimes, after calling the ACI_Exit function, it continues working for a
while to correctly complete an earlier launched process. After all, the ChipProg will stop and quit itself
after finding that the controlling process has ended.
It is possible, however, that the ChipProgUSB software will keep running even after the control process
has completely stopped. This is an abnormal situation and, as a result, it will be impossible to re-
establish communication with the programmer hardware by launching the ACI_Launch function. In this
case you should manually close the ChipProgUSB program via the Windows Task Manager.
4.6.2.3 ACI_LoadConfigFile
Description
This function loads the ChipProg configuration parameters that include all the settings available via the
ChipProgUSB dialogs (memory buffer configurations, programming options, test of the device insertion,
etc.).
The ChipProgUSB program automatically saves some programming options and settings, including the
type of selected device, the device parameters, the start and end addresses of the device being
programmed, the buffer start address, and a set of the Auto Programming commands. Then it
automatically restores these parameters when the user changes the device type.
4.6.2.4 ACI_SaveConfigFile
Description
This function saves the ChipProg options specified in the tab Option of the Program Manager window
(memory buffer configurations, programming options, test of the device insertion, etc.).
The ChipProgUSB program automatically saves some programming options and settings including a
type of the selected device, the device parameters, the start and end addresses of the device being
programmed, the buffer start address, and a set of the Auto Programming commands and then
automatically restores these parameters when the user changes the device type.
4.6.2.5 ACI_SetDevice
Description
This function chooses the device to be programmed. Along with the device type, the function
automatically loads the device parameters, start and end addresses and the buffer start address. Also, it
restores the Auto Programming command list if the selected device type has ever been selected
earlier, but the parameters listed above were changed during the programming session.
4.6.2.6 ACI_GetDevice
Description
This function gets the device's part number (name) and the name of the manufacturer of the device being
programmed now (for example: AT89C51, Atmel; 28F128J3C, Numonyx, etc.).
4.6.2.7 ACI_GetLayer
Description
This function gets the parameters of a specified memory buffer and buffer's layer.
4.6.2.8 ACI_CreateBuffer
Description
This function creates a buffer with the parameters specified by the ACI_Buffer_Params structure. The
ChipProgUSB program automatically assigns the buffer #0 so it is not necessary to create this buffer by
a separate command.
4.6.2.9 ACI_ReallocBuffer
Description
This function changes the size of the layer #0 in the memory buffer specified in the ACI_Buffer_Params
structure.
4.6.2.10 ACI_ReadLayer
Description
This function reads data from a specified memory buffer. The data size is limited by 16M Bytes.
Note! This function reads the data from the programmer's memory buffer but does not physically
read out the content of the selected target device. In order to physically read out the device
memory content, execute the programmer command (function) Read by means of the
ACI_ExecFunction or ACI_StartFunction with appropriate attributes.
4.6.2.11 ACI_WriteLayer
Description
This function writes data to a specified memory buffer. The data size is limited by 16M Bytes.
Note! This function writes the data to the programmer's memory buffer but does not physically
program the device. In order to physically write data from the buffer to the device's memory, execute
the programmer command (function) Program by means of the ACI_ExecFunction or
ACI_StartFunction with appropriate attributes.
4.6.2.12 ACI_FillLayer
Description
This function fills a whole active layer of a specified memory buffer with a specified data pattern. This
function works much faster than the ACI_WriteLayer function which writes data to the buffer layer.
Note! This function fills the programmer's memory buffer with a specified data pattern but does not
physically write them to the device being programmed. In order to physically write data from the
buffer to the device execute the programmer command (function) Program by means of the
ACI_ExecFunction or ACI_StartFunction with appropriate attributes.
4.6.2.13 ACI_GetProgrammingParams
Description
This function gets current programming parameters specified in the tab Option of the Program Manager
window (memory buffer configurations, programming options, test of the device insertion, etc.).
4.6.2.14 ACI_SetProgrammingParams
Description
This function sets programming parameters specified in the tab Option of the Program Manager window
(memory buffer configurations, programming options, test of the device insertion, etc.).
4.6.2.15 ACI_GetProgOption
Description
This function gets current settings from the Device and Algorithm Parameters Editor window. As an
example see this window for one of the microcontrollers below.
Note! This function does not physically read the specified information from the device being
programmed. It reads from some virtual memory locations in the host PC's RAM, associated with
physical locations in the target device's memory and registers. If the option that you would like to
check is a property of the device's memory or registers, then first you have to execute the programmer
command (function) Read in the command group Device Parameters by means of the
ACI_ExecFunction or ACI_StartFunction with appropriate attributes. Then you can read the execute
the ACI_GetProgOption function.
4.6.2.16 ACI_SetProgOption
Description
This function sets device-specific options and parameters, which are specified in the Device and
Algorithm Parameters Editor window. As an example see this window for one of the microcontrollers
below.
Note! This function does not physically write the specified information into the device being
programmed. It actually writes to some virtual memory locations in the host PC's RAM, associated
with physical locations in the target device's memory and registers. In order to complete programming
the device parameters and to physically program them into the device's memory you should execute
an appropriate Program command (function) in the command group Device Parameters, by means
of the ACI_ExecFunction or ACI_StartFunction with appropriate attributes.
4.6.2.17 ACI_AllProgOptionsDefault
ACI_FUNC ACI_AllProgOptionsDefault();
Description
This function sets default device-specific options and parameters specified in the Device and
Algorithm Parameters Editor window. These default parameter sets vary. They are defined by the
device manufacturers in the device data sheets.
Note! This function does not physically restore the default settings into the device being
programmed. It actually writes to some virtual memory locations in the host PC's RAM, associated
with physical locations in the target device's memory and registers. In order to complete programming
the device parameters and to physically fix them in the device's memory you should execute an
appropriate Program command (function) in the Device Parameters command group by means of
the ACI_ExecFunction or ACI_StartFunction with appropriate attributes.
4.6.2.18 ACI_ExecFunction
Description
This function launches one of the programming operation (Read, Erase, Verify, etc.) specified by the
ACI_Function_Params. During execution the ACI_ExecFunction does not allow calling any other ACI
function until the programming operation, initiated by the ACI_ExecFunction function, completes the
job. The ACI_ExecFunction from the ACI_StartFunction that returns control immediately after it was
called.
4.6.2.19 ACI_StartFunction
Description
This function launches one of the programming operation (Read, Erase, Verify, etc.) specified by the
ACI_Function_Params and immediately returns control to the external application no matter whether the
programming operation, initiated by the ACI_StartFunction, has or has not completed. The
ACI_StartFunction is different from the ACI_ExecFunction. It is possible to check if the operation has
completed by the ACI_GetStatus function call. This allows monitoring the execution of programming
operations if they last for a long time.
4.6.2.20 ACI_GangStart
Description
This function is used to control multiple device programmers only when the ChipProgUSB program was
launched from the command line with the /gang key to drive a ChipProg gang programmer or a cluster of
multiple programmers connected to one PC! See also the ACI_Launch function. For controlling a single
ChipProg device programmer use ACI_StartFunction or ACI_ExecFunction.
The ACI_GangStart function launches Auto Programming on multiple ChipProg device programmers for
the programming socket specified in the SiteNumber parameter of the ACI_PStatus_Params structure.
The function returns control immediately. In order to detect the ending time of the ACI_GangStart
execution, use the ACI_GetStatus function.
4.6.2.21 ACI_GetStatus
Description
1) The status of the programming operation initiated by the ACI_StartFunction call (whether it has
completed or it is still in progress);
2) The device insertion status (certainly if this option is enabled in the tab Option of the Program
Manager window).
4.6.2.22 ACI_TerminateFunction
ACI_FUNC ACI_TerminateFunction();
Description
This function terminates a current programming operation initiated by the ACI_StartFunction call.
4.6.2.23 ACI_GangTerminateFunction
Description
This function, similar to the ACI_TerminateFunction which is applicable for stopping a single device
programmer, is intended for terminating a current programming operation on one programming site
belonging to the multiprogramming cluster or a gang programmer. The programming site (or socket)
This function can be used only for the ChipProg programmers launched in the gang mode (see the /
gang parameter among other command line keys for the ACI_Launch function). In order to terminate an
operation for a running single-site ChipProg programmer use the ACI_TerminateFunction.
When the ACI_GangTerminateFunction initiates stopping a current operation it returns the control either
when the operation was successfully stopped or with a delay defined by the Timeout parameter.
4.6.2.24 ACI_FileLoad
Description
This function loads a specified file into a specified buffer's layer. The control program running on the host
PC should not worry about the file's format settings - the ChipProgUSB software takes care of this.
4.6.2.25 ACI_FileSave
Description
This function saves a specified file from a specified buffer's layer. The ChipProgUSB software enables
saving files in all popular formats: HEX, Binary, etc..
4.6.2.26 ACI_SettingsDialog
ACI_SettingsDialog();
Description
This macro opens the Configure > Preferences setting dialog. The dialog will be visible irrespective of
the ChipProgUSB main window status; the main window can remain closed but the Configure >
Preferences setting dialog will appear on the computer screen, thus allowing manipulations in the
dialog.
4.6.2.27 ACI_SelectDeviceDialog
ACI_SelectDeviceDialog();
Description
This macro sends a command that opens the Select Device dialog. The dialog will appear on the
screen irrespective of the ChipProgUSB main window status; the main window can remain closed but
the Select Device dialog will appear on the computer screen.
4.6.2.28 ACI_BuffersDialog
ACI_BuffersDialog();
Description
This macro opens the Memory Dump Window Setup dialog. The dialog will be visible irrespective of
the ChipProgUSB main window status; the main window can remain closed but the Memory Dump
Window Setup dialog will appear on the computer screen to allow the buffer setup. See the dialog
example below.
4.6.2.29 ACI_LoadFileDialog
ACI_LoadFileDialog();
Description
This macro opens the Load File dialog. The dialog will be visible irrespective of the ChipProgUSB main
window status; the main window can remain closed but the Load File dialog will appear on the
computer screen. See the dialog example below.
4.6.2.30 ACI_SaveFileDialog
ACI_SaveFileDialog();
Description
This macro sends a command that opens the Save File dialog. The dialog will be visible irrespective of
the ChipProgUSB main window status; the main window can remain closed but the Save File dialog will
appear on the computer screen. See the dialog example below.
4.6.2.31 ACI_SetConnection
Description
This function identifies a current device programmer connection. Use this function when you control a
number of device programmers by means of multiple calls of the ACI_Launch function. Each connection
gets its own unique identifier. Executing of the ACI_Launch function returns the ConnectionId as part of
the ACI_Launch_Params structure.
After establishing the connection, all the ACI functions following the ACI_SetConnection function will
work exclusively with the established connection.
When ACI controls only one ChipProg programmer it is not necessary to execute the
ACI_SetConnection function; the ACI_Launch function automatically assigns a ConnectionId that is the
next one in order.
4.6.2.32 ACI_GetConnection
Description
This function allows getting the identifier of a current device programmer connection. If a number of
single ChipProg programmers were launched, one after another, by multiple executions of the
ACI_Launch function, then executing the ACI_GetConnection function returns a current ConnectionId
parameter as a part of theACI_Launch_Params structure.
Each structure includes a number of parameters (here Size, Layer0SizeLow, NumBuffers, etc.). The
parameter's name follows its format (UINT, DWORD, LPCSTR, CHAR, BOOL, etc.). The comment on
the parameter begins from a bracketed symbol showing the sending direction of this parameter:
(in) - the parameter is sent from the instrumental computer to the programmer;
(out) - the parameter is sent from the programmer to the instrumental computer;
(in || out) - the parameter can be sent in either direction, depending on the ACI function
context.
4.6.3.1 ACI_Launch_Params
typedef struct tagACI_Launch_Params
{
UINT Size; // (in) Size of structure, in bytes
LPCSTR ProgrammerExe; // (in) Programmer executable file name
LPCSTR CommandLine; // (in) Optional programmer command-line parameters
BOOL DebugMode; // (in) Debug mode. Programmer window is not hidden
} ACI_Launch_Params;
This is the name of the programmer executable file. If the parameter does not
include a full path then the program will search for the UprogNT2.EXE file into
the folder where the ACI.DLL resides.
ProgrammerExe
The target folder name, where the the UprogNT2.EXE file resides, is defined
by the parameter "Folder" of the ""HKLM\SOFTWARE\Phyton\Phyton
ChipProgUSB Programmer\x.yy.zz" key. It is supposed that multiple
ChipProgUSB versions can be installed on the host computer.
This structure member specifies the command line options. One of the option
is NULL (no keys). If the host computer drives a cluster of multiple
CommandLine
programmers then the only way to launch a certain programmer is to specify
the /N<serial number> for the CommandLine structure member.
This key controls the ChipProgUSB main window visibility. Setting TRUE for
this structure member makes the ChipProgUSB main window visible. Then
DebugMode you can manipulate with the programmer using its user interface - open
windows, set any programmer resources, execute programming operations,
etc..
4.6.3.2 ACI_Config_Params
typedef struct tagACI_Config_Params
{
UINT Size; // (in) Size of structure, in bytes
LPCSTR FileName; // (in) Options file name to load/save configuration
} ACI_Config_Params;
4.6.3.3 ACI_Device_Params
4.6.3.4 ACI_Layer_Params
typedef struct tagACI_Layer_Params
{
UINT Size; // (in) Size of structure, in bytes
UINT BufferNumber; // (in) Number of buffer of interest, the first
buffer number is 0
UINT LayerNumber; // (in) Number of layer of interest, the first layer
number is 0
DWORD LayerSizeLow; // (out) Low 32 bits of layer size, in bytes
DWORD LayerSizeHigh; // (out) High 32 bits of layer size, in bytes
DWORD DeviceStartAddrLow; // (out) Low 32 bits of device start address for this
layer
DWORD DeviceStartAddrHigh; // (out) High 32 bits of device start address for
this layer
DWORD DeviceEndAddrLow; // (out) Low 32 bits of device end address for this
layer
DWORD DeviceEndAddrHigh; // (out) High 32 bits of device end address for this
layer
DWORD DeviceBufStartAddrLow; // (out) Low 32 bits of device memory start address
in buffer for this layer
DWORD DeviceBufStartAddrHigh; // (out) High 32 bits of device memory start address
in buffer for this layer
UINT UnitSize; // (out) Size of layer unit, in bits (8, 16 or 32)
BOOL FixedSize; // (out) Size of layer cannot be changed with
ACI_ReallocBuffer()
CHAR BufferName[64]; // (out) Buffer name
CHAR LayerName[64]; // (out) Layer name, cannot be changed
UINT NumBuffers; // (out) Total number of currently allocated buffers
UINT NumLayers; // (out) Total number of layers in a buffer
} ACI_Layer_Params;
LayerSizeLow, Here the function returns the range of the memory layer's addresses in
LayerSizeHigh bytes.
Here the function returns the device's start address for the selected
memory layer. This address is the device's property and strictly depends
DeviceStartAddrLow, on the device type; usually this value is zero. Do not mix it up with the
DeviceStartAddrHigh start address of a programming operation that can be shifted by a certain
offset value.
Here the function returns the device's end address for the selected memory
layer. This address is the device's property and strictly depends on the
device type. Do not mix it up with the end address of a programming
DeviceEndAddrLow,
DeviceEndAddrHigh operation editable in the setup dialog. The selected layer's address range
can be defined as a difference between the end address and the start
address plus 1.
DeviceBufStartAddrL Here the function returns the start address for the selected memory buffer -
ow, usually this value is zero.
DeviceBufStartAddrH
igh
UnitSize This structure member specifies formats of the data in a memory layer: 8
for the 8-bit devices, 16 - for 16-bit devices and 32 for 32-bit devices.
This flag, if TRUE, disables resizing the memory layer by the
FixedSize ACI_ReallocBuffer function. There is one restriction on use of this flag:
since the layer #0 is always resizeable the FixedSize is always FALSE
for the layer #0.
BufferName The name of the memory buffer as it was defined in the ChipProg interface
or by the ACI_CreateBuffer function call.
LayerName Reserved name of the memory buffer's layer. It cannot be changed by the
ACI.DLL user.
NumBuffers The number of the assigned memory buffers.
NumLayers The number of layers in the programmer's memory buffers. This is a pre-
defined device-specific value that is the same for all memory buffers.
4.6.3.5 ACI_Buffer_Params
{
UINT Size; // (in) Size of structure, in bytes
DWORD Layer0SizeLow; // (in/out) Low 32 bits of layer 0 size, in bytes
DWORD Layer0SizeHigh; // (in/out) High 32 bits of layer 0 size, in bytes
// Layer size is rounded up to a nearest value
supported by programmer.
LPCSTR BufferName; // (in) Buffer name
UINT BufferNumber; // For ACI_CreateBuffer(): out: Created buffer number
// For ACI_ReallocBuffer(): in: Buffer number to realloc
UINT NumBuffers; // (out) Total number of currently allocated buffers
UINT NumLayers; // (out) Total number of layers in a buffer
} ACI_Buffer_Params;
This structure member represents buffer layer #0's size in Bytes. This
size lies in the range between 128K Bytes and 32G Bytes (may be
changed in the future). The ChipProgUSB allows assigning buffers with
Layer0SizeLow, fixed sizes only (see the list on the picture below). Any intermediate value
Layer0SizeHigh will be automatically rounded up to one of the reserved buffer sizes. For
example, if you enter '160000' the programmer will assign a 1MB buffer
layer.
4.6.3.6 ACI_Memory_Params
BufferNumber The ordinal number of the buffer to read from or to write into. The buffer
numerical order begins from zero.
LayerNumber The ordinal number of the memory buffer's layer to read from or to write into.
This structure member represents the data format given in memory units
DataSize specified by the device manufacturer (Bytes, Words or Double Words). The
program ignores the DataSize if it is used with the ACI_FillLayer function.
This is the data pattern that fills an active ChipProg buffer's layer by means of
the ACI_FillLayer function. If, for example, the FillValue is presented in the
FillValue DWORD format then the 8-bit memory layers will be filled with the lower byte
of the FillValue pattern, the 16-bit layers - with the lower 16-bit word and the
32-bit layers - with a whole FillValue pattern.
4.6.3.7 ACI_Programming_Params
typedef struct tagACI_Programming_Params
{
UINT Size; // (in) Size of structure, in bytes
BOOL InsertTest; // (in || out) Test if device is attached
BOOL CheckDeviceId; // (in || out) Check device identifier
BOOL ReverseBytesOrder; // (in || out) Reverse bytes order in buffer
BOOL BlankCheckBeforeProgram; // (in || out) Perform blank check before
programming
BOOL VerifyAfterProgram; // (in || out) Verify after programming
BOOL VerifyAfterRead; // (in || out) Verify after read
BOOL SplitData; // (in || out) Split data: see ACI_SP_xxx constants
BOOL DeviceAutoDetect; // (in || out) Auto detect device in socket (not
all of the programmers provide this feature)
BOOL DialogBoxOnError; // (in || out) On error, display dialog box
UINT AutoDetectAction; // (in || out) Action to perform on device
autodetect or 'Start' button, see ACI_AD_xxx constants
DWORD DeviceStartAddrLow; // (in || out) Low 32 bits of device start address
for programming operation
DWORD DeviceStartAddrHigh; // (in || out) High 32 bits of device start address
for programming operation
DWORD DeviceEndAddrLow; // (in || out) Low 32 bits of device end address
for programming operation
This is the command to check the device insertion before starting any
InsertTest programming operations on the device. The procedure will check if every chip
leads have good contact in the programming socket.
CheckDeviceId This is the command to check a unique internal device identifier before the
device programming.
This is the command to reverse the byte order in 16-bit words when
ReverseBytesOrder programming the device, reading it or verifying the data. This structure member
does not effect the data value in the ChipProg memory buffers - these data
remain the same as they were loaded.
BlankCheckBeforeProg This is the command to check whether the device is blank before executing the
ram Program command.
VerifyAfterProgram This is the command to verify the data written into the device every time after
executing the Program command.
VerifyAfterRead This is the command to verify the data written into the device every time after
executing the Read command.
This is the command to split data in accordance with the value of the constants
SplitData ACI_SP_xxx* in the aciprog.h file (see below). This allows 8-bit memory devices
to be cascaded in multiple memory chips to be used in the systems with 16- and
32-bit address and data buses.
This is the command to scan all the device's leads in a process of the device
insertion into the programming socket. If the DeviceAutoDetect is TRUE the
programmer will check whether all of the device's leads are reliably gripped by
DeviceAutoDetect the programmer socket's sprung contacts. Only when the reliable device
insertion is acknowledged, the program launches a chosen programming
operation, script or a batch of single operations programmed in the Auto
Programming dialog.
If this structure member is TRUE then any error that occurs in any programming
DialogBoxOnError operation will generate error messages and will open associated dialogs. If this
attribute is FALSE the error messages will not be issued.
If the DeviceAutoDetect is TRUE then values of the ACI_AD_xxx** constants in
the aciprog.h file define a particular action triggered either on manual pushing
the Start button or upon auto detection of reliable insertion of the device into the
programmer's socket (see below).
AutoDetectAction What to do (action)
value
AutoDetectAction ACI_AD_EXEC_FUNC Launch the programming operation (function) currently highlighted
TION in the Program Manager tab.
ACI_AD_EXEC_AUT Launch a batch of single operations programmed in the Auto
O Programming dialog.
ACI_AD_EXEC_SCRI Perform the script specified in the Script File dialog.
PT
This structure member defines a physical start address of the device to perform
DeviceStartAddrLow, a specified programming operation (function). For example: "...read the chip
DeviceStartAddrHigh content beginning at the address 7Fh". Not all the functions use this parameter.
This structure member defines the buffers layer's start address from which to
DeviceBufStartAddrLo
perform a specified programming operation (function). For example: "...read the
w,
DeviceBufStartAddrHi chip and move the data to the buffer beginning at the address 10h". Not all the
gh programmer functions use this parameter.
4.6.3.8 ACI_ProgOption_Params
typedef struct tagACI_ProgOption_Params
{
UINT Size; // (in) Size of structure, in bytes
LPCSTR OptionName; // (in) Name of the option. For lists, it should be in
the form "List array name^List Name", e.g. "Configuration Bits^Oscillator"
CHAR Units[32]; // (out) Option measurement units ("kHz", "V", etc.)
CHAR OptionDescription[64]; // (out) Description of the option
CHAR ListString[64]; // (out) For ACI_PO_LIST option: Option string for
Value.ListIndex
The name of the programming option - for example "Vcc". For the ACI_PO_LIST
- type options, where the options are grouped into a list, you should specify both
OptionName the list name and the option name in the following way: <List name>^<Option
name> (For example, Configuration_bits^Generator. There are no restrictions
on use of uppercase and lowercase characters in the option names.
After executing the ACI_GetProgOption function this structure member returns
Units an abbreviation of the units, in which the programmer represents or measures
the OptionName. For example, for the Vcc structure member, Units = "V".
OptionDescription After executing the ACI_GetProgOption function this structure member returns
the option description.
After executing the ACI_GetProgOption function for the ACI_PO_LIST - type
ListString options this structure member returns a string that describes the current
option's value or status. For example, XT - Standard Crystal for the option
Configuration bits^Generator.
After executing the ACI_GetProgOption function this structure member returns
OptionType the option's presentation format - for example: integer, floating point, list,
bitstream, etc.. See the ACI_PO_xxx* constant description in the aciprog.h
VSize Size of the buffer assigned for storing the string if the option type is the
ACI_PO_STRING. See the note below.
Mode of using of the structure member Value (See the description of the
ACI_PP_xxx** constants in the aciprog.h<) header file:
The Mode setting Use of the param eter Value
(value)
ACI_PP_MODE_VALUE 1) For measuring (getting): use the Value in order to get an
actual Option value;
2) For setting: use the Value to set a particular Option
value.
ACI_PP_MODE_DEFAULT 1) If used w ith the ACI_GetProgOption function it issues a
_VALUE command to put the default Option value into the Value.
2) If used w ith the ACI_SetProgOption function, the Value
w ill be ignored; the Option w ill be set to the default level
Mode
defined in the ChipProg hardw are.
4.6.3.9 ACI_Function_Params
} ACI_Function_Params;
The name of the ChipProg function is one of those listed in the window Functions
of the ChipProgUSB Program Manager tab. They are divided in two group (see the
picture below): (1) the main functions applicable to a majority of the target devices
(Blank Check, Erase, Read, Program, Verify) and (2) the device-specific lower
level functions accessible through expandable sub-menus (for example, Program
Device Parameters, Erase Sectors, Lock Bits > Program Lock Bit 1,
EEPROM > Read, etc.). For such device-specific functions the FunctionName
FunctionName should be specified in the following way: <List name>^<Function name> (for
example, Device Parameters^Program).
4.6.3.10 ACI_GangTerminate_Params
typedef struct tagACI_GangTerminate_Params
{
UINT Size; // (in) Size of structure, in bytes
INT SiteNumber; // (in) Site number to terminate operation (-1 == all
sites)
INT Timeout; // (in) Timeout in milliseconds (-1 == infinite) to
wait for operation break
BOOL SiteStopped; // (out) TRUE if operation was stopped, FALSE if timeout
occurred
} ACI_GangTerminate_Params;
The site (socket) number you want terminating a current operation on. Socket
numbers begin from 0 (zero). If you specify SiteNumber = -1 (minus one) this will
SiteNumber
terminate operations on all sites of the gang machine.
4.6.3.11 ACI_PStatus_Params
If the ChipProgUSB was launched in the Gang mode (with the command line key /
gang) and controls either the gang programmer or a cluster of single programming
SiteNumber machines, then before starting the ACI_GetStatus function the SiteNumber
parameter must contain the ordinal number of the programming site (socket) for
which the status is required. The site numbers begin from #0.
Executing This parameter is TRUE while the ChipProg operation, launched by the
ACI_StartFunction, is in progress.
PercentCompl While the Executing == TRUE this parameter represents a percentage of the
ete function completion - from 0 to 100.
This structure member defines insertion of the device into the programmer ZIF
socket if the device insertion auto detection function is enabled. See the description
of the ACI_DS_XXX* constants in the aciprog.h file. See the matrix below:
Status Description
ACI_DS_OK The device is in the socket and the device's leads are reliably gripped
by the programmer's ZIF socket's sprung contacts.
ACI_DS_OUT_OF_SOCKE There is no device in the programmer's ZIF socket.
T
ACI_DS_SHIFTED The device's leads are reliably inserted into the socket but the device
is incorrectly positioned in the socket (shifted or inserted upside
DeviceStatus dow n). The same status may indicate that the device type selected in
the Select Device does not correspond to the type of chip in the
programmer's socket.
ACI_DS_BAD_CONTACT The device's leads are not reliably gripped by the socket's sprung
contacts. In most cases this is an intermediate situation w hile an
operator is inserting the chip to the socket or is removing it.
ACI_DS_UNKNOWN It is impossible to detect the status because the device insertion auto
detection feature is disabled or this feature is not supported by this
programmer at all.
This is an indicator of the function execution's result. It is set to FALSE when the
ACI_StartFunction launches a programming operation and remains FALSE while
FunctionFail
ed the operation is in progress. If the programming operation fails and the parameter
Executing becomes FALSE the FunctionFailed flag toggles to TRUE.
This is either the name of the programming operation (function) being currently
FunctionName executed or the name of the failed function, if the FunctionFalied == TRUE.
ErrorMessage The destination of the error message if the function fails, i.e. the FunctionFalied
== TRUE.
4.6.3.12 ACI_File_Params
from zero.
Format The loadable file's format. See the description of the ACI_PLF_XXX*
constants in the aciprog.h header file (see below).
1) If used with the ACI_FileSave function this parameter specifies the first
(start) address in the source memory layer, from which the file will be saved.
StartAddressLow, 2) If used with the ACI_FileLoad function, but only when it loads a file in the
StartAddressHigh binary format (Format == ACI_PLF_BINARY), this parameter specifies the
first (start) address of the destination memory layer, in which the file will be
loaded. Binary images do not carry any addresses for the file loading.
If used with the ACI_FileSave function this parameter defines the last (end)
EndAddressLow,
EndAddressHigh address of the source memory layer, from which the file will be saved.
OffsetLow, The address offset that shifts the file position in the destination memory layer.
OffsetHigh The offset can be negative as well as positive.
4.6.3.13 ACI_GangStart_Params
BufferNumber The ordinal number of the memory buffer, content of which is required by the
ACI_GangStart function. Numbers of ChipProg memory buffers begin from #0.
If this parameter is TRUE, then the error message dialog will be suppressed,
Silent the function execution will be terminated and the
ACI_ERR_FUNCTION_FAILED code will be returned.. Use the
ACI_GetStatus function to receive the error message.
4.6.3.14 ACI_Connection_Params
typedef struct tagACI_Connection_Params
{
UINT Size; // (in) Size of structure, in bytes
LPVOID ConnectionId; // ACI_SetConnection(): (in),
ACI_GetConnection(): (out)
// Connection identifier
} ACI_Connection_Params;
The ChipProgUSB software includes a few examples of use the Application Control Interface
functions and structures. The examples reside in the subdirectory ACI\Programmer ACI Examples in
the directory where the ChipProg program is installed.
The examples are written in the C language. They represent the projects that can be compiled by
Microsoft Visual Studio® 2008. The project sources can also be compiled by other C/C++ compilers,
sometimes with minor adjustments. After building the project you get the Windows consol application
executable file.
In order to adjust the example project (or a part of it) for use in your application you have to set correct
paths to the ACI functions called by the main() function. This includes paths to the ChipProg executable
file, to the file that is supposed to be loaded to the programmer's memory buffer or to be saved from the
buffer. You also have to specify your target device. See an example of the main() function's fragment
below.
....
All examples uses the ACI.DLL file that must be either in the same folder where the example executable
file resides or in the folder specified in the variable PATH. In the supplied examples the ACI.DLL file is
already copied into the folders where the MS Visual Studio creates executable files.
Example Descriptions
Each example has a comment header briefly describing the program purposes. Additionally, some
comments are inserted in the code texts. All examples begin from executing the ACI_Launch() function
that activates the programmer.
AutoProgramming.c
This is the simplest and most frequently used example of the ChipProg external control. The program
launches the programmer, selects the PIC18F242 target device, loads the test.hex file into the
programmer buffer, sets default programming options and then executes a preset Auto Programming
batch of functions: Erase, Blank Check, Program, Verify.
LongProgramming.c
This example shows how to monitor a process of the AutoProgramming procedure if it may last quite a
long time. The program acts as the example above. The programming launches by the
ACI_StartFunction. Then it keeps checking the percentage of the operation completion by means of the
ACI_GetStatus function. If the operation fails, the programmer issues an error message; otherwise it
allows operation to continue.
ProgrammingOptions.c
This example shows how to get, print out and change options settable in the Device and Algorithm
Parameters Editor window. First, the program checks the device insertion into the programmer's socket
by calling the ACI_GetStatus(&Status) function. Then, after detecting correct and reliable insertion of the
device into the programmer's socket, the program reads the current set of options by using the
ACI_GetProgOption function, and prints them out. Then it changes the Vpp value from the default to
10.5V and disables the device Brown-out Reset feature.
SaveMemory.c
This example shows how to save a binary image of the device in a file. First, the program checks the
device insertion into the programmer's socket by calling the ACI_GetStatus(&Status) function. Then,
after detecting correct and reliable insertion, the program reads data from a specified range of the
SST89V564RD device's memory and saves them in the file test.bin.
Checksum.c
This example shows how to calculate a checksum of the data read out from a device. First, the program
checks the device insertion into the programmer's socket by calling the ACI_GetStatus(&Status)
function. After detecting correct and reliable insertion, the program figures out the real size of the
SST89V564RD device's flash memory by executing the ACI_ExecFunction function. Then it assigns the
buffer 'buf' in the host computer's memory in order to accommodate the data read out from the device,
moves the data to this buffer and calculates the checksum of the buffer's content.
1) Create a special folder for driving the ChipProgUSB software from the LabVIEW user interface - for
example C:\LabView\1.
2) On the computer desktop, make a copy of the ChipProgUSB icon. Rename it for use exclusively for
the LabVIEW control. Normally the path to this icon is "C:\Program Files\ChipProgUSB\x_xx_xx
\UprogNT2.exe", where the 'x_xx_xx' means a current version of the ChipProgUSB software. Right
click on the created icon, select Properties, tab Shortcut and in the field Start in change the path to
the C:\LabView\1 (see below):
3) Power the ChipProg device programmer, connect it to a USB port of your PC and launch the
ChipProgUSB program by clicking the icon in the folder C:\LabView\1. When the programmer's user
interface opens, begin setting the programming session options by choosing the target device (for
example by pressing the F3 hot key). Then, after choosing the device, it is necessary to set up the
programming options and parameters within the ChipProgUSB windows, menus and dialogs below if
these options differ from the default ones. The following options are settable within the ChipProgUSB
GUI:
- Settings in the Program Manager window ,such as selecting functions to be included into the Auto
Programming batch (button Edit Auto...); these include Split data, Insert test, Auto Detect and other
settings in the Options tab; the number of chips to be programmed during the programming session and
other options in the Statistics tab.
- Settings in the Device and Algorithm Parameters Editor window that are device-specific, such as
boot vectors, fuses, lock bits, Vcc voltage, oscillator frequencies, etc.
- Settings in the sub dialogs accessible through the Serialization, Checksum, Log file... menu, such
as setting algorithms for writing serial numbers and custom signatures into the devices being
programmed, a buffer checksum calculation, programming custom shadow areas, dumping data to log
files, etc.
- Miscellaneous settings in the sub dialogs accessible through the Preferences and Environment
menus, such as color, fonts, sounds, etc.
Then complete the programming session by means of including an appropriate command line keys into
the command line pattern:
4) To launch a ChipProg in the command line mode use a standard LabVIEW module SystemExec. The
picture below show a screen shot of the LabVIEW GUI front panel with the cp48_01.vi module loaded:
Notes:
- The device specified in the command line by the key /C must be the same as chosen in the
ChipProgUSB user interface.
- Including the /I2 key in the command line makes the ChipProgUSB application main window invisible,
suppresses display of error messages but copies them to the Windows clipboard. If the session
completes successfully the ChipProgUSB application returns the error code 0; in case of errors, 1 is
returned.
If, for example, you want to program a HEX file myfw1020.hex located in the folder Program Files
(x86)\ChipProgUSB\5_21_00 into the flash memory of a lot of Texas Instruments CC2540F256
devices, then the command line should have the following format:
4) To launch a ChipProg in the command line mode use the standard LabVIEW SystemExec module.
The picture below shows a screen shot of the LabVIEW GUI front panel with the cp48_01.vi module
loaded:
The <ChipProg launches in the hidden mode; its GUI remains invisible during the programming session.
If no errors occur the ChipProg Exit box returns the code 0, otherwise 1 is returned. The error is
displayed in the ChipProg Error box report.
examples of these virtual instruments. The library files reside in the LabVIEW folder located in the
ChipProgUSB installation directory. The library was created with the 2013 SP1 version of LabVIEW.
The DLL control is based on use of the Application Control Interface. Each VI is a wrapper over the
appropriate function exported by the ACI.DLL software module. You should be quite familiar with the
Application Control Interface functions and aspects of use in order to use the Virtual Instruments library.
Because of limitations imposed by LabVIEW on passing parameters to functions exported from DLLs,
the virtual instruments do not call the ACI.DLL functions directly. Instead, they call functions exported
from the intermediate DLL - the ACI_LV.DLL. This DLL packs parameters into structures required by
ACI.DLL and then calls its functions. The declarations of functions exported by ACI_LV.DLL are placed
in the C/C++ header file named ACIProgLabVIEW.h.
Each virtual instrument has its own front panel. It allows calling an appropriate Application Control
Interface function. In order to do this, before launching this function, you should launch the ChipProg by
means of the VI with the name ACI Launch. Each virtual instrument has input and output terminals for
inputting and outputting parameters of the ACI function served by the virtual instrument.
The VI folder includes a sub-folder Examples that contains two use examples for virtual instruments. The
"Device Programming Example" demonstrates use of all major ACI functions, namely:
To evaluate the example start up a ChipProg and launch the Device Programming Example by the
Run continuously button in the LabVIEW GUI. Then click the Launch Programmer button on the VI’s
front panel. This will open a front panel of the virtual instrument ACI Launch. Enter a full path to the
ChipProgUSB executable file, for example: "C:\Program Files\ChipProgUSB\6_00_00\UprogNT2.exe"
and (optionally) specify the command line parameters. In order to avoid confirming the programmer
restart, you can specify the path to the UprogNT2.exe in the constant string in the virtual instrument
diagram and uncheck the Prompt for programmer name, switches, etc... box on the front panel (see
the diagram below).
Then, after launching the programmer, its current status will become visible in the virtual instrument's
front panel. Clicking the Start button launches the operation with the name that you can enter into the
Function Name field, for example: Blank Check. If the Function Name field is left blank then the
programmer will execute the Auto Programming function. See the pictures below:
The ChipProg-40, ChipProg-48 and ChipProg-G41 programmers are equipped with 40- or 48-pin ZIF
sockets allowing operating on any DIP-packed devices without additional adapters. They can
accommodate DIP-packed devices with different number of leads (from 4 to 48) and different widths of
the package up to 600 mil. Just a few old DIP-packed devices require special adapters to be
programmed by ChipProgs. The Device Information window prompts if some adapter is required for
the selected device and, if so, it displays the adapter type. The pictogram showing a correct insertion
position of the device is on the programmer at the left of the socket as well as in the Device
Information window. Practically all DIP-packed devices can be inserted in the way shown on the
pictogram. However, there are a few old devices with a non-standard insertion positioning. If such a
device is chosen the Device Information window displays how to insert the device.
Programming of the devices in SOIC, PLCC, QFP, BGA and other non-DIP packages requires special
adapters. The adapters design allows plugging them into the programmer ZIF sockets. The Device
Information window prompts the adapter type for a selected device.
Any adapter is implemented as a small transition board with two rows of dual-in-line pins pluggable
into the programmer ZIF socket on a bottom side and a ZIF socket of a particular type (SOIC, PLCC,
QFP, BGA, etc.) on a top. The adapter transition board is labeled with a "#1 pin" key mark that helps
to properly position the adapter into the programmer socket. The Device Information window
displays the adapter position into the programmer ZIF socket.
The AutoDetect signal can be used for triggering a programming operation by checking the Auto-
Detect presence of device in the socket box in the Options tab of the Program Manager
window. One of the following options can be set here:
Execute the function selected in the 'Function' list (the Program Manager tab);
AutoProgramming;
Execute script.
At this point the AutoDetect trigger replaces the programmer command executed by a mouse click or
pressing the Start button. This significantly speeds up and simplifies programming of the device
series.
1. Select the target device type, pressed the button Select Device in the Main toolbar or select the
command Main menu > Configure > Select device.
2. Insert a device of the selected type into the programmer socket or into the adapter socket.
then wait for the message Checking … OK in the Program Manager window, or for the warning
message if the device is not blank
1. Make sure the device is electrically erasable. Some devices are not erasable; these may be
programmable once, UV erasable, or over-writable – in this case the Erase button is blocked (grey
out).
then wait for the message Erasing … OK in the Program Manager window or for the warning
message if the device is not blank after erasing.
1. Select the Main menu > File > Load or click the Load button on the local toolbar of the Buffer
window.
2. In the pop-up dialog box enter the source file name, select the file format, addresses, buffer and
sub-level to load the file to.
3. Wait for the message File loaded: "......" in the Program Manager window or for a warning
message if the file cannot be loaded for some reason.
1. If you need to modify source data before writing into the target device, then open the Buffer Damp
window. Never forget that the View button should be released to enable editing.
2. Make necessary changes in the window via the Modify dialog or appoint the data to be modified
and type the new data over the old data.
1. If any parameters displayed in the Device and Algorithm Parameters window can be changed by
editing, their names are shown in blue.
2. Click on the name of the parameters to be changed to open an appropriate dialog. Set a new value for
the parameter or check/uncheck appropriate boxes and click OK. The parameter value will change its
color to red.
3. Continue for other parameters that should be changed. All preset changes will become effective in the
target device only upon programming via the Program Manager programming function.
1. Click the Options tab in the Program Manager window. Check the options you need. We
recommend that you always check the Blank check before programming and the Verify after
programming check-boxes to make programming more reliable.
2. Click the Program Manager tab. Select the Program line in the Function box, and double click
it to start programming of the primary memory layer (Code) or click the Execute button to do so.
Alternatively, you can do the same by clicking the big Program button or selecting the command
Menu > Commands > Program.
3. Wait for the message Programming … OK in the Operation Progress box of the Program
Manager tab. If an error has occurred the ChipProgUSB issues an error message.
4. Execution of the main Program function (always shown in the beginning of the Function list) writes
a specified buffer layer content to the Code device memory. However, other buffer layers may exist
for the selected device (Data, User, etc.). If more than one buffer layer exists for the selected device
go down to the list of functions, expand those that are collapsed and execute the Program
functions for as many types of memory as the device has (Data, User, etc.). Skip this if just one
memory layer Code exists for the device.
5. IMPORTANT! After programming of all the memory layers (Code, Data, User, etc.) you need to
program the options preset in the Device and Algorithm Parameters Editor window, if they have
been modified. Go down to the Device parameters & ID line, expand it if collapsed, select the
Program function and double click it. Continue until every parameter that was changed in the
Device and Algorithm Parameters window is successfully programmed.
6. Some microcontrollers can be protected against unauthorized reading of the written code by setting
a set of Lock bits. Go down to the Lock bits line, expand it if collapsed and double click the lock
bit# lines one by one. You can optionally lock only certain parts of the device memory. Continue
until every lock bit is set.
7. After every operation above make sure that you watch the Ok [xxxxx... Ok] message in the
Operation Progress box of the Program Manager tab. In case you get an error message stop the
programming and troubleshoot the issue.
There are several ways for reading the device content to an active buffer:
then wait for the message Reading … OK in the Program Manager window or for the warning
message if the device could not be read out.
There are several ways for checking if the device was programmed correctly:
then wait after that which wait for the message Verifying … OK in the Program Manager window
or for the warning message if the device failed during the verification process.
1. After you have read out the device content into the Buffer or a specified Buffer layer you may need
to save the read data on a PC disc. To save the data:
a) Click the Save button on the local toolbar of the Buffer window or
b) Select the Main menu > File > Save
2. In the pop-up dialog specify the destination file name, format, start and end addresses of the source
(the buffer), and the source sub-level, and click OK.
This chapter describes some peculiarities of the NAND Flash memory devices programming. The
NAND Flash and NOR Flash memory architectures and physical implementations are very different
and, therefore, operations with NOR and NAND Flash devices have their own peculiarities. In terms of
the programmer setup and operations, working with the NAND Flash devices is more complex and the
programming results are very sensitive to the accuracy of the programming options setup. Inaccurate
setup causes wrong device programming.
The "large page" size is 2048 bytes for the 8-bit devices and 1024 bytes for the 16-bit devices; the "large
page" NAND Flash memory devices' capacity varies from 256K to 32G bit capacity and higher. The
NAND devices. The latest "large page" NAND Flash devices have as large as 4096 byte page size.
Read also about bad blocks in the NAND Flash memory devices.
NAND Flash memory devices have invalid memory blocks that cannot be used for storing data because
some memory cells inside of the device have physical defects - either inherent in a process of the device
manufacturing or acquired in a process of the device exploitation and reprogramming in the user's
equipment. Since a percentage of invalid blocks is pretty small inside of the chip (usually less than 1%)
it is possible to use the device for data storing. In order to use NAND devices with bad blocks these
blocks should be marked in a certain way to prevent fetching data from these blocks or writing in it. This
document equally uses both known terms for such blocks: invalid and bad.
Locations of the invalid blocks or the invalid blocks map should be accessible by the application for
skipping the bad blocks or handling them in other way. To keep the invalid block map every NAND Flash
device has a special cell array, known as the Spare Area, for storing addresses of invalid blocks. See
the Spare Area location in the NAND Flash memory architecture diagrams.
The Spare Area in "small page" 8-bit devices is 16 large, 16-bit devices - 8 Words. The Spare Area in
"large page" devices - 64 Bytes and 32 Words respectfully. Though the Spare Area is dedicated for
marking bad blocks it can be also used as a general purpose memory for storing the user's data. To
avoid accidental losing of the bad block map it is recommended to assign a whole entire Spare Area for
storing the invalid block map and do not write in this area anything else.
5.4.1.1.1 Managing invalid blocks
There are three mostly used methods of handling invalid memory blocks:
This is the simplest method of managing invalid blocks. The programming algorithm first reads the entire
Spare Area to collect the addresses of invalid memory blocks. Then, the programming equipment
writes data to the device page by page with checking the block addresses. If the current block's number
is marked as bad the programmer skips this block and write into the next valid one.
5.4.1.1.1.2 Reserved Block Area
This method is based on the idea of replacing invalid blocks with good blocks by re-directing reading
and writing operations to these good blocks. To implement this method the programming equipment
splits the entire memory in three linear memory areas following each other from the start address of
the memory device. Each of these areas may include both good and bad blocks:
The User Block Area (UBA) - a linear memory array for storing the user's data;
The Block Reservoir - a linear memory array that follows right after the User Block Area; good
blocks from the Block Reservoir replaces invalid blocks from the User Block Area;
The Reserved Block Area (RBA) - this part of the device's memory stores the information about
bad blocks in the User Block Area replaced by good blocks from the Block Reservoir. This map is
represented by pair of addresses of the invalid UBA's blocks and corresponding good blocks from
the data reservoir. The first good block in the RBA stores the the RBA map table, the second a
duplicate of it in case of the RBA table corruption.
Field: RBA Marker Count Field Invalid Block Replaced Invalid Block Replaced ....... Invalid Block Replaced
Block Block Block
Size: 2 байт а 2 байт а 2 байта 2 байта 2 байта 2 байта ....... 2 байта 2 байта
where:
RBA Marker - is 0FDFEh (there is an equivalent term for this parameter used in some NAND Flash
device data sheets: Transition Field).
Count Field - starts from 1 and increments by one for each page of the map table.
Invalid Block - Number of the invalid block in the UBA being replaced.
Replaced Block - Number of the valid block in the Block Reservoir that replaces the invalid block
above.
The Invalid Block - Replaced Block pairs follow each other till the page break.
When the programming equipment detects an invalid block in the User Block Area it appoints the first
available valid block in the Block Reservoir and updates the RBA table to keep track of relation
between invalid blocks in the User Block Area and replaced good ones in the Block Reservoir.
To maintain the stored code integrity it is recommended to use known Error Checking and
Correction (ECC) algorithms. Most NAND Flash device manufacturers publish application notes that
describe the ECC algorithms suitable for using their devices in different applications. To implement a
particular ECC algorithm please check the manufacturer's website. All the ECC-related information are
written into the Spare Area.
ChipProg programmers create the invalid block map into the buffer layer Invalid Block Map as a
continues bit array. Valid (good) blocks are represented by zeros (0), invalid (bad) - by ones (1). See
the tab Invalid Block Map in the memory buffer:
the value 02h (or 00000010B) at the address 0 means that the blocks #0, 2, 3, 4, 5, 6, 7 are valid
while the block #1is invalid;
the value 01h (or 00000001B) at the address 1 means that all the blocks in the range #9 to #15 are
valid while the block #8 is invalid.
After the device final testing the device manufacturer' programming equipment fills the working memory
cells with the FFh value. Blocks that are considered to be invalid are marked by writing a non FFh
value (usually 00h) at a certain address in first page (page #0). This address in the NAND Flash Spare
Area is the device dependant; it is specified in the manufacturer data sheet.
Take in account that the device itself has no special protection against occasional erasing of the Spare
Area cells when you intentionally erase a whole memory array. However, these Spare Area cells may
store the bad blocks markers written ether by the chip manufacturer or by the chip user after
reprogramming. Being lost the bad block map cannot be restored unless you keep the invalid block
map as a file, etc. It is important to keep track of the invalid block map changes by storing the markers
before the memory erasing and restoring them after the chip erasing. The ChipProg programmers
automatically restore the invalid block map unless the Invalid Block Management is not the Do Not
Use.
The ChipProg creates the invalid block map into the buffer layer Invalid Block Map as a continues bit
array. Valid (good) blocks are represented by zeros (0), invalid (bad) - by ones (1). For example:
the value 02h at the address 0 means that the blocks #0, 2, 3, 4, 5, 6, 7 are valid while the block #1is
invalid;
the value 01h at the address 1 means that all the blocks in the range #9 to #15 are valid while the
block #8 is invalid.
Programming NAND Flash memory devices by a Phyton ChipProg programmer begins from accurate
setting of the programming options and parameters in the Device and Algorithm Parameters window.
The screen capture below shows the window for the NAND04GW3B2BN device. The Device
Parameters are divided in two setting groups: Access Mode and Access Mode Parameters.
IMPORTANT NOTE!
Any changes made in the ‘Device and Algorithm Parameters’ window do not
immediately cause corresponding changes in the target device. Parameter settings
made within this window just prepare a configuration of the device to be programmed.
Physically, the programmer makes all these changes only upon executing an
appropriate command from the ‘Program Manager’ window.
The Access Mode line, normally collapsed, can be expanded to invoke setting dialogs for one of the
following modes:
Here you can specify the algorithm of managing invalid blocks. Clicking the Invalid Block
Management menu line opens the pop-up dialog:
Do Not Use Ignore information about invalid blocks and do not care of the invalid block
management. Writing into invalid blocks is enabled.
Skip IB Skip invalid blocks
Skip IB with Map in 0-th Skip invalid blocks, put the Invalid block map in the block #0.
Block
RBA (Reserved Block Use the RBA algorithm
Area)
Here you can specify of how to use the Spare Area. Clicking the Spare Area Usage menu line opens
the pop-up dialog:
Do Not Use This default option means: "in no case do not use Spare Area for storing user's
data". Choosing this default option prevents overwriting invalid block markers in the
Spare Area by the user's data. After erasing the device Flash memory markers of the
invalid blocks will be restored in the Spare Area.
User Data The Spare Area can be used for storing the user's data; the invalid block markers
written into the Spare Area will not be protected against overwriting by user's data.
If this option is chosen the programmer writes the data from its buffer into the major
device memory and when this memory is completely full the programmer begins
writing into the Spare Area. The programmer buffer displays merged memory pages,
including the Spare Area.
User Data with The Spare Area can be used for storing the user's data but the invalid block markers
IB Info Forced written into the Spare Area will be protected against overwriting by user's data.
Even if the programmer had overwritten the invalid block markers in the Spare Area it
will restore these markers after completion of the programming operation.
Some applications require fetching the information with strictly linear address range, e.g. the memory
must be free of invalid blocks in this range. In particular, initialization of a microcontroller is possible only
if the loading code is fetching from the memory device with continiously linear address space, so the
source memory must not have invalid blocks. By default the ChipProgUSB disables guarding the
memory area. Clicking the Guard Solid Area menu line opens the pop-up dialog where you can toggle
the options:
When you select Enable in the dialog above you should specify this area by setting two parameters in
the Solid Area setting dialog:
Start Block - the address of the first memory block that does not include invalid blocks
Number of Blocks - the number of valid blocks in the specified memory area
If in a process of the programming verification the ChipProg locates an invalid block within the specified
Solid Area it will issue an error message and stop the current programming operation.
5.4.2.1.4 Tolerant Verify Feature
Here you can enable working with the memory having a certain number of errors within a specified
memory range or disable this feature. By default is is disabled. Clicking the Tolerant Verify Feature
menu line opens the pop-up dialog where you can toggle the options:
Usually this option is applicable in case of use the Error Checking and Correction (ECC) method of
managing invalid blocks when you can tolerate with some errors in the data fetched from the memory
device. When you select Enable in the dialog above you should specify two parameters in the
Acceptable number of errors dialog:
ECC Frame size (Bytes) - Size of the memory array where you allow to have errors, in Bytes.
Acceptable number of errors - Acceptable number of single bit errors.
Here you can choose the invalid block presentation in the ChipProgUSB memory buffer. Clicking the
Invalid Block Indication Options menu line opens the pop-up dialog where you can select either the
'00h' value (default) or the '0F0h':
This Access Mode Parameters submenu of the Device Parameters menu allows to invoke setting
dialogs for the following parameters:
User Area
Solid Area
RBA Area
ECC Frame size
Acceptable number of errors
Some of the parameters above are associated with appropriate Access Modes.
5.4.2.2.1 User Area
Some basis programming operations, including Program, Read, and Verify can be set applicable not
to an entire NAND Flash memory device but to a specified part of the device memory - the User Area.
The Erase and Blank Check operations are applicable only to the entire device. The User Area's
boundaries are set by individual setting of a pair of the following parameters:
User Area - Start Block - the first memory block of the User Area.
User Area - Number of Blocks - the number of blocks in the User Area.
To set the User Area first click the User Area - Start Block submenu line. The setting dialog will pop
up:
Type the value and click OK. Then click the User Area - Number of Blocks submenu line and enter the
number of blocks into the pop-up dialog; then click OK to complete the User Area settings.
5.4.2.2.2 Solid Area
The Solid Area's boundaries are set by individual setting a pair of the following parameters:
Solid Area - Start Block - the first memory block of the memory area free of invalid blocks.
Solid Area - Number of Blocks - the number of blocks in the Solid Area.
To set the Solid Area first click the Solid Area - Start Block submenu line. The setting dialog will pop
up:
Type the value and click OK. Then click the Solid Area - Number of Blocks submenu line and enter
the number of blocks into the pop-up dialog; then click OK to complete the Solid Area settings.
5.4.2.2.3 Reserved Block Area
The Reserved Block Area (RBA) boundaries are set by individual setting a pair of the following
parameters:
RBA Area - Start Block - the first memory block of the RBA.
RBA Area - Number of Blocks - the number of blocks in the RBA.
To set the RBA first click the RBA - Start Block submenu line. The setting dialog will pop up:
Type the offset value and click OK. Then click the RBA Area - Number of Blocks submenu line and
enter the number of blocks into the pop-up dialog; then click OK to complete the RBA settings.
5.4.2.2.4 ECC Frame size
This parameter of the Tolerant Verify Feature mode defines a size of the memory array where you
allow to have errors. To set a parameter click the ECC Frame size submenu line. Then specify the
parameter in bytes and click OK to complete the setting.
5.4.2.2.5 Acceptable number of errors
This parameter, associated with the Tolerant Verify Feature mode, defines an acceptable number of
single bit errors in the the memory array defined by the ECC frame size. To set the parameter click the
Acceptable number of errors submenu line. Then enter the number and click OK to complete the
setting.
Single-programming mode, than means programming one device at a time by means of one
ChipProg programmer.
Multi-programming or Gang-programming mode that means concurrent programming of multiple
devices at a time by:
-- either a multiple single site programmers of one type connected in one programming cluster driven
from one computer;
-- or a special 4-site ChipProg-G41 gang programmer.
The Multi-programming mode differs from the Single-programming mode in the following items:
1. Only the same type of programmers can be used in this mode - either ChipProg-40 or ChipProg-48
or ChipProg-481 or ChipProg-ISP programmers;
2. Only the same type of the device may be selected for every single programmer connected in one
programming cluster;
3. Only the same set of buffers can be opened for every single programmer connected in one
programming cluster;
4. Only the AutoProgramming function can be executed by the ChipProgUSB in this mode. There is
however one exception - ChipProg-G41 gang programmers can be combined with ChipProg-481
tools;
5. The Program Manager tabs and dialogs are very different.
The Multi-programming mode is intended for small- and middle-volume manufacturing. The
programmers in the Multi-programming mode work concurrently, e.g. you can start programming on
one site, insert a new device into a second socket, start the programming, insert a new device into a
third socket, start the programming, remove the first programmed device, etc.. An ability to linearly
increase the programming system productivity by adding a new ChipProg programmer gives you
flexibility and save money.
In terms of the control there is no difference whether the ChipProgUSB controls a ChipProg-G41 gang
programmer or the program drives a cluster of multiple single ChipProg-40 or ChipProg-48 or ChipProg-
ISG programmers connected to one PC. To launch ChipProgUSB program in the Multi-programming
mode it should be invoked either by using the ChipProgUSB-GANG shortcut in the ChipProgUSB
folder or from the command line with the key /GANG.
The first dialog that appears when you started the ChipProgUSB-GANG shortcut (for the case when
only two programmers forms a two-site programming cluster):
Now you should press the Start button on the programmer to which you would like to assign the site #1.
Then the ChipProgUSB will prompt to assign the site #2 to another programmer (in case there are more
than two programmers in the programming cluster), etc. After assigning numbers to the programmers
you will get the Program Manager window that differs from the same window that you get when you
work with one programmer.
The Program Manager window is the major control object on the screen from which an operator
controls the ChipProg . While some windows can be closed in a process of programming this one is
supposed to be always open and visible. The window appearance differs from the same Program
Manager window that you get when you work with one programmer.
The window includes three tabs, opening three groups of settings and status indicators:
The Project Manager and Options tabs look differently and enable different settings for the ChipProg
programmers working in the single-programming and multi-programming modes. These tabs are
identical for the ChipProg-G41 gang programmer and for the ChipProg-481, ChipProg-48, ChipProg-40
and ChipProg-ISP programmers when they are configured to work in the multi-programming mode.
Since the only AutoProgramming is available in the multi-programming mode this tab serves for manual
AutoProgramming initiation, displaying the site statisticsand information messages generated by the
ChipProgUSB program.
The tab serves for setting all programming parameters and options for multi-programming mode.
Buffer: The field Buffer displays the active buffer to which the programming
operations (functions) will be applied. A full list of open buffers is
available here via the drop-down menu.
Addresses Here you can set the addresses for the buffer and the target device
to which the programming functions will be applied.
Device start: The very first address in the target device's physical memory which will
be programmed.
Device end: The very last address in the target device's physical memory which will
be programmed.
Buffer start: The very first address in the buffer memory from which the data will be
written to the target device.
Split Data The group of radio buttons in the Split data field allows to program 8-
bit memory devices to be used in the microprocessor systems with
the 16- and 32-bit address and data buses. To do this the buffer
content should be properly prepared to split one memory file into
Options:
Check device ID By default this option is always on and the ChipProg always verifies
the target device identifier given by the device manufacturer. If the box
is unchecked the program will skip the device ID checking.
Insert test If this box is checked the ChipProgUSB will test whether each of the
device leads is reliably squeezed by the programming socket contact.
If some contact is bad a current operation will be blocked.
Reverse bytes order If this box is checked the ChipProgUSB will sweep the byte order in
the 16-bit word while it executes the Read, Program and Verify
operations. This option does not affect the data in the ChipProg
buffers, they remain the same after the file loading.
Blank check before program If this box is checked the ChipProgUSB will always check if the target
device is blank before programming it.
Verify after program If this box is checked the ChipProgUSB will always verify the device
content right after it has been programmed.
Verify after read If this box is checked the ChipProgUSB will always verify the device
content right after it has been read out.
This tab opens the field displaying the programming session statistical results for each programming site
- Total number of devices that were programmed during the session, what was the yield (Good) and
how many devices have failed (Bad).
Device Programming Normally the Total counter increments after each Auto
Countdown Programming; the, Good and Bad counters also count up. The
ChipProgUSB reverses the counters to decrement their content (to
count down).
Enable countdown If the box is checked the ChipProgUSB will count the number of the
programmed devices down.
Display message when If the box is checked the ChipProgUSB will issue a warning when
countdown value reaches the counter Total is zeroed.
zero
Reset counters when If the box is checked the ChipProgUSB will reset all the counters
countdown value reaches when the counter Total is zeroed.
zero
Count only successfully If the box is checked the ChipProgUSB will count only the
programmed devices successfully programmed (Good). All other statistics will be
ignored.
Set initial countdown Clicking on the button opens the box for entering a new Total
value number that then will be decremented after each Auto
Programming.
2. The target system should not shunt or overload the logical signals
generated by the programmer.
3. Some IPS algorithms require generating logical signals with the voltage
levels of 10 to 15V exceeding normal voltages used in electronic
systems (3 to 5V). The target system should be tolerant to applying
such "high voltages".
Powering There are two alternative options for powering the targets:
1. The target gets power from the ChipProg. This is possible only if
the target does not consume too much energy. The current supplied
from the programmer may not exceed 80 mA, a capacity of the target
power circuitry should not exceed 50 uF.
NOTE! Always carefully check connecting your ChipProg programmer to the target. Wrong
connecting may, and probably will cause destruction of the programmer's and/or the target
system's hardware.
Most embedded microcontrollers have different algorithms for the ISP procedure. See the following
topics regarding the ISP for popular microcontrollers:
6 References
6899 "Cannot load file '%s': buffer #%u does not exist"
6900 "Cannot load file '%s': sub-level #%u does not exist"
7019 "Unable to open project file: '%s'.\n\nAfter start, the programmer attempts to load the most recent project.
This error means that the project file does not exist on disk."
4106 "File format does not allow addresses larger than 0xFFFFFFFF"
8002 "Buffer named '%s' already exists. Please choose another name for the buffer."
6441 "Size of file is greater than buffer size:\nAddr = %08lX, length = %u"
6859 "File size is %u bytes that is less than header size (%u bytes), loading terminated. Probably, you have
specified an invalid file format."
4107 "Cannot allocate %Lu MBytes for the buffer, maximal buffer size is %Lu MBytes"
6854 "Programming option '%s' has type of '%s'. Use '%s()' script function to get the value of this option."
5188 "Value %.2f is out of range of %.2f...%.2f for programming option '%s'"
6561 "Value %ld is out of range of %ld...%ld for programming option '%s'"
4001 "Not all of the saved auto-programming functions were restored. Check the auto-programming functions
list."
4016 "All sites reported USB device driver error.\n\nCannot recover from this error, exiting.\n\nPlease check if
the programmer(s) power is on. If yes, disconnect the USB cable from computer and connect it again, then
restart the %s shell."
4017 "The following site(s):\n\n%s\n\nreported USB device driver error.\n\nThese site(s) will be removed from
the gang programming process.\n\nPlease check if the programmer(s) power is on. If yes, disconnect the USB
cable from computer and connect it again, then restart the %s shell."
4005 "Attempt to read memory beyond buffer end: Addr = %s, len = %u bytes"
6988 "Unable to establish connection with programmer hardware. Please check if:\n\n"
4010 "This programmer with serial number '%s' has been already assigned the site number = %u"
4011 "This gang programmer with serial number '%s' has been already assigned the site numbers = %u..%
u"
4013 "The programmers attached are of different types and cannot be used for gang mode.\n\nExiting."
4020 "%s reported hardware error 0x%X, error group 0x%X. If problem persists, please contact Phyton."
4025 "Internal Error: Unable to allocate %u bytes for the buffer. Please contact Phyton."
4002 "The '%s' configuration option has been set to an illegal state due to the data read from file. Setting this
option to its default state ('%s')."
4018 "Device '%s' is not supported by the %s. Please choose another device."
5206 "The 'View only' option is on; editing disabled. Click the 'View' button on toolbar to enable editing."
6.1.14 Warning
5338 "Warning: JEDEC file has no file CRC"
6845 "Attention! The %s %s device must be inserted into the programmer's socket shifted by %d row(s)
relative to the standard position as shown in the Device Information window."
6846 "Attention! Insert device into socket shifted by %d row(s) as shown on the picture."
6.2 Expressions
Expressions in the program are the mathematical constructions for calculating results with the use of one
or more operands. It supports various operations on expressions. The following operands are used:
numbers
example of expressions
When a number is required, you may use an expression; <%CM%> will accept the value of the expression.
For example, when using the Modify command in the Buffer window, you can enter the new value in the
form of a number or arithmetic expression.
Interpreting the expression result
The expression result is interpreted in accordance with the context in which it is used.
In the dialog box, when an address is required, the program tries to interpret the expression’s value as the
address. If you enter a variable name, the result of the expression will be the variable’s address but not the
value of the variable.
If the dialog expects a number to be entered, the expression’s value will be interpreted as a number (for
example, the Modify Memory dialog box of the Buffer Dump window). If you enter a variable name there,
then the result will be the value of the variable, but not its address.
Nonetheless, you can follow the default rules:
If you need to use the variable’s value, where an address is expected, then you can write something like
var + 0. In this case, the variable’s value will be used in the expression.
If you need to use the variable address, apply the & (address) operation, that is, &var.
The program supports all arithmetic and logical operations valid for the C language, as well as pointer
Designation Description
( ) Brackets (higher priority)
[ ] Array component selector
. Structure component or union selector
-> Selection of a structure component or a union addressed with a pointer
Logical negation
!
~ Bitwise inversion
- Bitwise sign change
& Returns address
* Access by address
(type) Explicit type conversion
(sizeof) (returns size of operand, in bytes)
Multiplication
*
/ Division
% Modulus operator (produces the remainder of an integer division)
+ Addition
- Subtraction
Left shift
<<
>> Right shift
Less than
<
<= Less than or equal to
> Greater than
>= Greater than or equal to
== Equal to
!= Not equal to
Bitwise AND
&
^ Bitwise XOR
| Bitwise OR
|| Logical OR
= Assignment
The types of operands are converted in accordance with the ANSI standard.
The results of logical operations are 0 (false) or 1 (true).
Allowed type conversions:
Operands can be converted to simple types (char, int, ... float).
Pointers can be converted to simple types (char *, int *, ... float *) and to structures or unions.
The word "struct" is not necessarily (MyStruct *).
6.2.2 Numbers
By default, numbers are treated as decimals. Integers should fit into 32 bits; floating point numbers should
fit into the single precision format (32 bits).
The following formats are supported:
1) Decimal integer.
Example: 126889
2) Decimal floating point.
Examples: 365.678; 2.12e-9
3) Hexadecimal.
<%CM%> understands numbers in C format and assembly format.
Examples: 0xF6D7; 0F6D7H; 0xFFFF1111
4) Binary.
Binary numbers must end with 'B'.
Examples: 011101B; 111111111111111000011B
5) Symbol (ASCII).
Examples: 'a'; 'ab'; '$B%8'.'.
Examples of expresions
main
i + j << 2 / :CW0x1200
(unsigned char)i + 2
sizeof(array) > 200
(a == b && a <= 4) || a > '3'
sptr -> Member1 -> a[i]
*p
*((char *)ptr)
#include <system.h>
#include <mprog.h>
void main()
LoadProgram("test.hex", F_HEX, SubLevel(0, 0)); // load file "test.hex" that is an Intel HEX
file //
to buffer 0, sub-level 0
InsertTest = TRUE; // set testing of chip presence to "on"
if (ExecFunction("Auto Programming") == EF_OK) // perform an automatic programming
{
if (ExecFunction("Verify", SubLevel(0, 0), 10) != EF_OK) // verify 10 times
{
printf("Verify failed: %s", LastErrorMessage); // display error message if verify failed
return; // terminate script
}
printf("Verify ok."); // display Ok result
}
else
printf("Programming failed: %s", LastErrorMessage); // display error message
}
6.3.2 Description
The language used for writing the script files is similar to the C language. If you are familiar with the C
language, you can skip this chapter and switch to reading about the differences between the script
language and the C language.
This manual contains just a few examples of programming in the script language. To find more
examples, refer to books on the C language.
General Syntax of Script Language
Basic Data Types
Data byte order
Operations and Expressions
Operators
Functions
Descriptions
Directives of the Script File Language Preprocessor
Predefined Symbols in the Script File Compilation
The script file system provides you with a large set of built-in functions intended for work with lines, files,
for mathematical calculations, and access to the processor resources. The system.h file contains
descriptions of these built-in functions. You should include the system.h file in the script file source text
with the #include directive:
#include <system.h>
You can use these built-in functions in the same way you use any function that you have defined.
You can access script language built-in variables in the same way as regular global variables. However,
some built-in variables are accessible only for reading, and in case of attempt to write to such variable.
The built-in variables are declared in the system.h header file.
Programming variables:
InsertTest
ReverseBytesOrder
BlankCheck
VerifyAfterProgram
VerifyAfterRead
ChipStartAddr
ChipEndAddr
BufferStartAddr
LastErrorMessage
DialogOnError
Miscellaneous variables:
WorkFieldWidth
WorkFieldHeight
ApplName[]
DesktopName[]
SystemDir[]
errno
_fmode
MainWindowHandle
NumWindows
WindowHandles[]
SelectedString[]
LastMessageInt
LastMessageLong
The script files are written in a C-type language and you should not expect it to meet standards. Many
features are not supported because they are not necessary and complication of the language can cause
compiler errors (the script file language compiler is not a simple thing).
• Pointers are not directly supported. But arrays are supported, therefore a pointer can always be
built from an array and element number. Note that, for example, string operation functions, such as
strcpy, receive a string and a byte number (index) as parameters, which form the pointer. In function
declarations, index is equal to zero by default.
• Pointers to functions are not supported. If necessary, a table call can always be replaced with the
switch operator.
• Multidimensional arrays are not supported. If it is necessary, you can write a couple of functions,
such as:
int GetElement(int array[], int index1, int index2);
void SetElement(int array[], int index1, int index2, int value);
• Structures (and unions) are not supported. In fact, you can always do without structures. Structures
may be required for API Windows and user DLLs operations, but as a rule only experienced
programmers should do it, such as those who know how to reach structure elements. As a tip, there are
functions, such as memcpy, which receive a void "pointer").
• Enumerated types (enum) are not supported #define.
• Preprocessor macros, such as #define half(x) (x / 2), are not supported. The same operations can
be done with functions.
• Conditional operators such as x = y == 2? 3 : 4;, are not supported; the operator "comma" outside
The list below includes all the names of the script language built-in functions and variables:
AllProgOptionsDefault
API
ActivateWindow
AddButton
AddWatch
ApplName[]
BackSpace
BlankCheck
BlockBegin
BlockCol1
BlockCol2
BlockCopy
BlockDelete
BlockEnd
BlockFastCopy
BlockLine1
BlockLine2
BlockMove
BlockOff
BlockPaste
BlockStatus
BufferStartAddr
CaseSensitive
CheckSum
ChipEndAddr
ChipStartAddr
ClearWindow
CloseProject
CloseWindow
Cr
CurChar
CurCol
CurLine
Curcuit
DelChar
DelLine
DesktopName[]
DialogOnError
DisplayText
DisplayTextF
Down
Ellipse
Eof
Eol
ExecFunction
ExecMenu
ExecScript
ExitProgram
Expr
FileChanged
FillRect
FindWindow
FirstWord
FloatExpr
ForwardTill
ForwardTillNot
FrameRect
FreeLibrary
GetByte
GetDword
GetFileName
GetLine
GetMark
GetMemory
GetProgOptionBits
GetProgOptionFloat
GetProgOptionList
GetProgOptionLong
GetProgOptionString
GetScriptFileName
GetWindowHeight
GetWindowWidth
GetWord
GotoXY
InsertMode
InsertTest
Inspect
InvertRect
LastChar
LastErrorMessage
LastEvent
LastEventInt{1...4}
LastFoundString
LastMessageInt
LastMessageLong
LastString
Left
LineTo
LoadDesktop
LoadLibrary
LoadOptions
LoadProgram
LoadProject
MainWindowHandle
MaxAddr
MessageBox
MessageBoxEx
MinAddr
MoveTo
MoveWindow
NumWindows
OpenEditorWindow
OpenStreamWindow
OpenUserWindow
OpenWindow
Polyline
ProgOptionDefault
Rectangle
RedrawScreen
RegularExpressions
ReloadProgram
RemoveButtons
ReverseBytesOrder
Right
SaveData
SaveDesktop
SaveFile
SaveOptions
Search
SearchReplace
SelectBrush
SelectFont
SelectPen
SelectedString[]
SetBkColor
SetBkMode
SetByte
SetCaption
SetDevice
SetDWord
SetFileName
SetMark
SetMemory
SetPixel
SetProgOption
SetTextColor
SetToolbar
SetUpdateMode
SetWindowFont
SetWindowSize
SetWindowSizeT
SetWord
SystemDir[]
TerminateAllScripts
TerminateScript
Text
Tof
Up
UpdateWindow
VerifyAfterProgram
VerifyAfterRead
WaitEprTrue
WaitGetMessage
WaitSendMessage
WaitWindowEvent
WholeWords
WindowHandles[]
WindowHotkey
WordLeft
WordRight
WorkFieldHeight
WorkFieldWidth
_GetWord
_ff_attrib
_ff_date
_ff_name
_ff_size
_ff_time
_fmode
_fullpath
_printf
abs
acos
asin
atan
atof
atoi
ceil
chdir
chsize
clearerr
close
cos
creat
creatnew
creattemp
delay
difftime
dup
dup2
eof
errno
exec
exit
exp
fabs
fclose
fdopen
feof
ferror
fflush
fgetc
fgets
filelength
fileno
findfirst
findnext
floor
fmod
fnmerge
fnsplit
fopen
fprintf
fputc
fputs
fread
freopen
frexp
fscanf
fseek
ftell
fwrite
getc
getcurdir
getcwd
getdate
getdfree
getdisk()
getenv
getftime
gettime
getw
inport
inportb
isalnum
isalpha
isascii
isatty
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
itoa
lock
locking
log
log10
lseek
ltoa
memccpy
memchr
memcmp
memcpy
memicmp
memmove
memset
mkdir
movmem
mprintf
open
outport
outportb
peek
peekb
poke
pokeb
pow
pow10
printf
pscanf
putc
putenv
putw
rand
random
randomize
read
rename
rewind
rmdir
scanf
searchpath
setdisk
setftime
setmem
setmode
sin
sprintf
sqrt
srand
sscanf
stpcpy
strcat
strchr
strcmp
strcmpi
strcpy
strcspn
stricmp
strlen
strlwr
strncat
strncmp
strncmpi
strncpy
strnicmp
strnset
strpbrk
strrchr
strrev
strset
strspn
strstr
strtol
strtoul
strupr
tan
tanh
tell
toascii
tolower
toupper
ultoa
unlink
unlock
wgetchar
wgethex
wgetstring
wprintf
write
NOTE! Always carefully check connecting your ChipProg programmer to the target. Wrong
connecting may and probably will cause destruction of the programmer's and/or the target
system's hardware.
Most embedded microcontrollers have different algorithms for the ISP procedure. See the following
topics regarding the ISP for popular microcontrollers:
2. Though the PIC microcontrollers are capable to work in a certain range on the Vcc voltage (the
range varies from 2 to 5V for some PICmicro derivatives) the device being under programming must
have the 5V voltage level applied to the Vcc device pin. If in the working mode the target
microcontroller works under the Vcc lower than 5V and the target cannot tolerate applying the 5V
voltage to the Vcc pin, then, if the user needs to program the PICmicro device in-system, it is
necessary to change the schematic to have an ability to connect 5V to the Vcc pin while the target
is under the programming. However, verification of the correct programming can be conducted under
the voltages allowed by the manufacturer (Vcc min - Vcc max).
1. If the system has its own built-in clock generator then make sure that the clock line of the
ChipProg cable adapter is not connected to the clock input pin of the target microcontroller,
otherwise it may destroy either the target or programmer hardware. What you need in this case is
just to enter a value of the generator clock frequency in the Algorithm Parameters > Oscillator
Frequency field in the Device and Algorithm Parameters Editor window (see on the picture
below). By default the Oscillator Frequency value is 2.5 MHz. To change it double click the
Oscillator Frequency line displayed in blue color and enter the Fclk value into the popped up
dialog. If the actual clock frequency differs from the value set in the window the correct programming
will be impossible.
2. If the target system does not have its own built-in clock generator then, the target AVR device
needs to get clocks from the ChipProg built-in generator; thus the clock output wire of the cable-
adapter should be connected to an appropriate clock input pin of the target device. By default the
Fclk= 2.5 MHz. It can be set in the range of the Fclk allowed for a particular selected target AVR
device in the Algorithm Parameters > Oscillator Frequency field in the Device and Algorithm
Parameters Editor window (see the picture above).
1. If the system has its own built-in clock generator then make sure that the clock line of the
ChipProg cable adapter is not connected to the clock input pin of the target microcontroller,
otherwise it may destroy either the target or programmer hardware.
2. If the target system does not have its own built-in clock generator then, the target device
needs to get clocks from the ChipProg built-in generator; thus the clock output wire of the cable-
adapter should be connected to an appropriate clock input pin of the target device.
Index AutoWatches
pane 119
AutoWatches pane 119
AVR microcontroller 206
-A-
About
software version 65
-B-
Acceptable number of errors Backspace unindents 59
Tolerant Verify Feature 180 Bad Block Management 176
Access mode Bad block map
Device and Algorithm Parameters 176 Bad blocks 173
Device Parameters 176 Invalid blocks 173
Access Mode Parameters 178 Bad blocks 172, 174
ACI 160, 163 Binary image 81
DLL 123 Block Operations 116
External application 123 Blocks
External control 123 copying / moving 116
ACI examples 158 line blocks 116
ACI functions non-persistent blocks 116
ACI structures 125 persistent 59
ACI structures persistent blocks 116
ACI functions 140 standard blocks 116
Adapters 83 vertical 59
Adapters attachment vertical blocks 116
list 85 Buffer 10
Adapters Connections List 83 Buffer Configuration
Add Watch dialog 46
dialog 121 Buffer Dump
Algorithm Parameters 71 window 74
Alphabetical List of Script Language Built-in Functions Buffers
and Variables 198 dialog 45
Angstrem SAV 81 memory allocation 45
Application Control Interface
ACI 123
ACI functions 123 -C-
ACI header 123
Calculator
ACI structures 123
dialog 62
DLL 123
Check Blank 167
External application 123
Checksum 50
External control 123
ChipProg
Programming automation 123
main menu 39
Application Control Interface exaples 158
ChipProg programmers 12
ASCII Hex 81
ChipProg-40 34
Auto Programming 67
brief characteristics 22
Auto-detect
bundle 21
device in a socket 166
hardware characteristics 23
Auto-detect device in a socket 166
-H-
Help
-L-
menu 65 LabVIEW 160, 163
On-line 36 List
Highlight Adapters connections 83
multi-line Comments 59 Load file
Highlight Active Tabs 58 dialog 80
Highlighting Load session 41
Syntax 59, 115 Load the file into the buffer 168
History file 41 Log file 52
Holtek OTR 81
Hot Keys 57
How to Get On-line Help 36
-U-
Undo Count 59
USB Drivers 31
User
window 121
User area
Number of blocks 179
Start block 179
User Block Area
Bad blocks 172
Block reservoir 172
Invalid blocks 172
RBA 172
UBA 172
User Interface 38