ChipProg Device Programmers
User's Guide
ChipProg-481,
ChipProg-G41,
ChipProg-48,
ChipProg-40,
ChipProg-ISP
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Device Programmers
© 2015 Phyton, Inc. Microsystems and Development Tools
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.
Printed: May 2015 in (whereever you are located)
Contents
3
Table of Contents
Foreword
0
Part I Introduction
9
1 Terms ...................................................................................................................................
and Definitions
9
2 System
...................................................................................................................................
Requirements
11
Part II ChipProg Family Brief Description
12
1 ChipProg-481
................................................................................................................................... 14
Major features
.......................................................................................................................................................... 15
Hardw are characteristics
.......................................................................................................................................................... 15
Softw are features
.......................................................................................................................................................... 15
2 ChipProg-G41
................................................................................................................................... 16
Major features
.......................................................................................................................................................... 17
Hardw are characteristics
.......................................................................................................................................................... 18
Softw are features
.......................................................................................................................................................... 18
3 ChipProg-48
................................................................................................................................... 19
Major features
.......................................................................................................................................................... 20
Hardw are characteristics
.......................................................................................................................................................... 20
Softw are features
.......................................................................................................................................................... 20
4 ChipProg-40
................................................................................................................................... 21
Major features
.......................................................................................................................................................... 22
Hardw are characteristics
.......................................................................................................................................................... 23
Softw are features
.......................................................................................................................................................... 23
5 ChipProg-ISP
................................................................................................................................... 24
Major features
.......................................................................................................................................................... 26
Hardw are characteristics
.......................................................................................................................................................... 27
Softw are features
.......................................................................................................................................................... 27
Part III Quick Start
29
1 Installing
...................................................................................................................................
the ChipProgUSB Software
29
2 Installing
...................................................................................................................................
the USB Drivers
31
3 Hardware
...................................................................................................................................
installation
31
ChipProg-481 .......................................................................................................................................................... 32
ChipProg-G41.......................................................................................................................................................... 33
ChipProg-48 .......................................................................................................................................................... 33
ChipProg-40 .......................................................................................................................................................... 34
ChipProg-ISP .......................................................................................................................................................... 35
4 Getting
...................................................................................................................................
Assistance
36
On-line Help .......................................................................................................................................................... 36
Technical Support
.......................................................................................................................................................... 36
Contact Inform
..........................................................................................................................................................
ation
37
Part IV ChipProg Control Options
37
1 Graphical
...................................................................................................................................
User Interface
38
© 2015 Phyton, Inc. Microsystems and Development Tools
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
© 2015 Phyton, Inc. Microsystems and Development Tools
Contents
5
The 'Memory Blocks'
.........................................................................................................................................
dialog
78
The 'Load File' dialog
......................................................................................................................................... 80
File Formats
................................................................................................................................... 81
The 'Save File' dialog
......................................................................................................................................... 82
The Device.........................................................................................................................................................
Information w indow
83
Phyton programming
.........................................................................................................................................
adapters
83
Adapters for in-system
.........................................................................................................................................
programming
85
The Console
.........................................................................................................................................................
Window
86
Window s for
.........................................................................................................................................................
Scripts
86
Sim plified User
..........................................................................................................................................................
Interface
87
Settings of.........................................................................................................................................................
Simplified User Interface
88
Operations.........................................................................................................................................................
w ith Simplified User Interface
91
2 Operations
...................................................................................................................................
with Projects
91
3 Command
...................................................................................................................................
Line Control
92
Com m and line..........................................................................................................................................................
options
94
4 On-the-Fly
...................................................................................................................................
Control
97
On-the-Fly com
..........................................................................................................................................................
m and line options
98
On-the-Fly utility
..........................................................................................................................................................
return codes
102
On-the-Fly Control
..........................................................................................................................................................
exam ple
103
5 Script
...................................................................................................................................
Files
105
The Script Files
..........................................................................................................................................................
Dialog
105
How to create
..........................................................................................................................................................
and edit script files
107
The Editor.........................................................................................................................................................
Window
108
Text Edit ......................................................................................................................................................... 109
The Search for .........................................................................................................................................
Text Dialog
110
The Replace Text
.........................................................................................................................................
Dialog
111
The Confirm Replace
.........................................................................................................................................
Dialog
112
The Multi-File Search
.........................................................................................................................................
Results Dialog
113
Search for Regular
.........................................................................................................................................
Expressions
113
The Set/Retrieve.........................................................................................................................................
Bookmark Dialogs
114
Condensed Mode
......................................................................................................................................... 114
The Condensed.........................................................................................................................................
Mode Setup Dialog
114
Automatic Word.........................................................................................................................................
Completion
115
Syntax Highlighting
......................................................................................................................................... 115
The Display from
.........................................................................................................................................
Line Number Dialog
116
The Quick Watch
.........................................................................................................................................
Function
116
Block Operations
......................................................................................................................................... 116
How to start ..........................................................................................................................................................
and debug script files
117
The AutoWatches
.........................................................................................................................................................
Pane
119
The Watches
.........................................................................................................................................................
Window
119
The Display Watches
.........................................................................................................................................
Options Dialog
120
The Add Watch.........................................................................................................................................
Dialog
121
The User .........................................................................................................................................................
Window
121
The I/O Stream
.........................................................................................................................................................
Window
122
6 Programming
...................................................................................................................................
Automation via DLL
123
Application Control
..........................................................................................................................................................
Interface
123
ACI Functions
.......................................................................................................................................................... 125
ACI_Launch
......................................................................................................................................................... 128
ACI_Exit ......................................................................................................................................................... 128
ACI_LoadConfigFile
......................................................................................................................................................... 129
ACI_SaveConfigFile
......................................................................................................................................................... 129
ACI_SetDevice
......................................................................................................................................................... 129
© 2015 Phyton, Inc. Microsystems and Development Tools
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
Part V Operating with Programmers
166
1 Inserting
...................................................................................................................................
devices to a programming socket
166
2 Auto-detecting
...................................................................................................................................
the device
166
3 Basic
...................................................................................................................................
programming functions
167
How to check..........................................................................................................................................................
if a device is blank
167
© 2015 Phyton, Inc. Microsystems and Development Tools
Contents
7
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
Part VI References
187
1 Errors
...................................................................................................................................
Messages
187
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Load/ Save
..........................................................................................................................................................
File
187
Addresses
.......................................................................................................................................................... 187
sizes .......................................................................................................................................................... 188
com m and-line
..........................................................................................................................................................
option
188
Program
..........................................................................................................................................................
m ing option
188
DLL .......................................................................................................................................................... 189
USB .......................................................................................................................................................... 189
program
..........................................................................................................................................................
m er hardw are
189
internal.......................................................................................................................................................... 190
confiquration
.......................................................................................................................................................... 190
device .......................................................................................................................................................... 190
© 2015 Phyton, Inc. Microsystems and Development Tools
7
8
ChipProg Device Programmers
Error check box
.......................................................................................................................................................... 190
Error m ix
.......................................................................................................................................................... 190
Warning
.......................................................................................................................................................... 191
2 Expressions
................................................................................................................................... 191
Operations w..........................................................................................................................................................
ith Expressions
191
Num bers
.......................................................................................................................................................... 193
Exam ples of ..........................................................................................................................................................
Expressions
193
3 Script
...................................................................................................................................
Language
194
Sim ple exam..........................................................................................................................................................
ple
194
Description .......................................................................................................................................................... 195
Built-in Functions
.......................................................................................................................................................... 195
Built-in Variables
.......................................................................................................................................................... 196
Difference betw
..........................................................................................................................................................
een the Script and the C Languages
197
Script Language
..........................................................................................................................................................
Built-in Functions and Variables
198
4 In-System
...................................................................................................................................
Programming for different devices
206
Specific of program
..........................................................................................................................................................
m ing PICm icro
206
Specific of program
..........................................................................................................................................................
m ing AVR m icrocontrollers
206
Specific of program
..........................................................................................................................................................
m ing Atm el 8051 m icrocontrollers
207
Index
208
© 2015 Phyton, Inc. Microsystems and Development Tools
Introduction
1
9
Introduction
ChipProg Device Programmers
User's Guide
ChipP r og- 4 8 1
C h i p P r o g - G4 1
ChipP r og- 4 8
ChipP r og- 4 0
ChipP r og- IS P
Copyright © 2005-2014, Phyton, Inc. Microsystems and Development Tools, All rights reserved
1.1
Terms and Definitions
Terms used in the document
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
(of the Target device)
A range of the device physical memory for the programming operations
(Read, Write, Verify, etc.).
Device package or
Package
Mechanical characteristics of the target device; ChipProg programmers
enable operations on the devices packed in the DIP (DIL) packages with
no additional adapters as well as on most non-DIP packed devices,
including but not limited to the devices in the PLCC, SOIC, SSOP, TSOP,
SSOP, QFP, BGA, QNF and other packages.
Programming socket or
A socket installed on a programmer unit or on an adapter (see below) to
Programming ZIF socket accommodate the target device for programming. All ChipProg models use
or ZIF socket
ZIF (or Zero Insertion Force) programming sockets that allow for the
temporary installation of the target device in the programmer site and
easily removing it after completing the programming procedure.%CPN%>40, ChipProg-48 and ChipProg-G41 are equipped with 40- and 48-pin ZIF
© 2015 Phyton, Inc. Microsystems and Development Tools
10
ChipProg Device Programmers
sockets allowing operation on any DIP-packed devices with different
numbers of leads and different widths and also connecting additional
adapters for programming devices in other packages.
Adapter or Package
adapter
A small transition board with dual-in-line rows of pins pluggable into the
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
programming
Operations on a device being placed into the programmer’s ZIF socket or
into a programming adapter (opposite to the in-system programming
below).
ICP or in-circuit
programming
Programming devices mounted on the boards (in the user’s equipment) via
special adapter-cable connecting the programmer to the target.
ISP or in-system
programming
Same as above. Programming devices mounted on the boards (in the
user’s equipment) via special adapter-cable connecting the programmer
with the target.
© 2015 Phyton, Inc. Microsystems and Development Tools
Introduction
11
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 JTAG Mode
In-system programming via a JTAG interface.
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).
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.
Project
File - Buffer - Target structure
Buffers are intermediate layers between the data in files and the data in the target device. The
ChipProg enables no direct interaction between the files and target devices. All the file operations,
such as loading and saving files are applicable to the buffers only. All the physical manipulations with
the target device memory content pass through the buffers as well. This is a fundamental principle of
the programmer operations with data and devices.
Examples of the buffer's layer structures of different devices:
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.
1.2
System Requirements
To run ChipProgUSB and to control a ChipProg device programmers, you need an IBM PC-compatible
personal computer with the following components:
© 2015 Phyton, Inc. Microsystems and Development Tools
12
ChipProg Device Programmers
Pentium-V CPU or higher
At least one USB port
A hard drive with at least 200MB of free space
Microsoft Windows XP, Windows 7 and Windows 8 operating systems.
2
ChipProg Family Brief Description
ChipProg is a family of device programmers produced by Phyton, Inc. Microsystems and
Development Tools (hereafter Phyton). A current ChipProg portfolio includes several device
programmers that belong to the following functional groups:
Universal parallel programmers for engineering and small volume manufacturing
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.
Universal parallel gang programmers for manufacturing
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Family Brief Description
13
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.
Universal in-system device programmers for engineering and manufacturing
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.
How to choose a right device programmer?
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
14
2.1
ChipProg Device Programmers
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 ChipProg481 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.
Standard package contents:
One programmer unit
One power adapter 12V/1A+
One USB link cable
One CD with the ChipProgUSB-01 software
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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Family Brief Description
2.1.1
15
Major features
1. Equipped with a 48 pin ZIF socket that allows insertion of the DIP-packed devices with the package
width from 300 to 600 mil (7.62 to 15.24 mm) and the number of leads up to 48 without additional
adapters.
2. Links to a PC USB 2.0 compatible port, e.g. slower USB connection is also supported.
3. Provides fast programming; for example, completely writes a 1Gb NAND K9F1G08U0A in 22 sec!
(~640 sec by ChipProg-48)
4. Can program target devices in the programmer ZIF socket as well as the devices installed in the
equipment (ISP mode).
5. An unlimited number of ChipProg-481 tools can be driven from multiple USB ports of one computer (or
via a USB hub) to provide concurrent programming of multiple devices of the same type.
6. Has a button for fast manual launch of any single operation or a bunch of operations.
7. Has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”).
2.1.2
Hardware characteristics
1. The programmer has a 48-pin ZIF socket with a lever that enables the insertion and clamping of any
DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and with the
number of leads up to 48.
2. Adapters for programming devices in the SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP,
QFP, TQFP, VQFP, QFN, SON, BGA, CSP and other packages are available from Phyton and
selected third parties.
3. The programmer is built on the base of a very fast and productive 32-bit embedded microcontroller and
a FPGA. These resources allow adding new targets to the device list by a simple software update.
4. Most timing-critical parts of the programming algorithms are implemented in the FPGA devices.
5. Implementation in the FPGA devices logical drivers enables outputting logical signals of any level (low,
high, Pullup, Pulldown and external clock generator) to any pin of the programming ZIF socket.
6. The programmers's hardware features 10-bit digital-to-analog converters for accurate settings of the
analog signals.
7. The programmers's hardware enables accurate programming of the rising and falling edges of the
generated analog signals.
8. The programmers's hardware automatically adjusts the generated analog signals in accordance to the
target device programming specifications.
9. The generated analog signals for both the target supplying and programming can be outputted to any
pins of the device being programmed.
10.The programmers's can connect any pin of the device being programmed to the “Ground” level.
11.The programmers's hardware checks if every pin of the target device is reliably fixed by a ZIF socket’s
contacts (“bad contact” checking).
12.The programmers's hardware protects itself and the target device against incorrect insertions and
other issues that cause a sharp increase in the currents though the target device circuits. This “over
current” protection is very fast and reliable.
13.The target device's pins are protected against the electrostatic discharge.
14.The programmers's hardware has a programmable clock generator.
15.The self-testing procedure automatically executes at any time the programmer is powered on.
2.1.3
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
© 2015 Phyton, Inc. Microsystems and Development Tools
16
ChipProg Device Programmers
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.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 lowvolume manufacturing. It supports in-socket and in-system programming of thousand of devices and has
no valuable limitations for supporting future devices.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Family Brief Description
17
Standard package contents:
One programmer unit
One power cable
One USB link cable
One CD with the ChipProgUSB-01 software
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
2.2.1
Major features
1. Based on four ChipProg-481 programming modules enclosed in a metal case and connected to a PC
via an embedded USB hub.
2. Allows independent and concurrent programming of up to four devices of the same type.
3. A few ChipProg-G41 units can be cascaded to allow programming on 8-, 12-, 16- and more sites
concurrently.
4. 48 pin ZIF sockets allow insertion of any DIP-packed devices with the package width from 300 to 600
mil (7.62 to 15.24 mm) and the number of leads up to 48 without additional adapters.
5. Links to a PC USB 2.0 compatible port via one link cable.
6. Provides fast programming; for example, completely writes a 1Gb NAND K9F1G08U0A flash device in
22 sec!
7. Can program target devices in its socket as well as devices installed in the equipment (ISP mode).
8. Each programming site has a 'Start' button for fast manual launch of any single operation or a batch of
operations.
9. Each programming site has three LEDs for displaying the programming status (“Good”, “Busy”,
“Error”).
© 2015 Phyton, Inc. Microsystems and Development Tools
18
2.2.2
ChipProg Device Programmers
Hardware characteristics
1. Enclosed in a durable steel case to be used in an industrial environment.
2. The tool gets power from a standard outlet 110-240V, 50-60 Hz.
3. Each programming site based on a single ChipProg-481 programmer has a 48-pin ZIF socket with a
lever that enables the insertion and clamping of any DIP-packed devices with the package width from
300 to 600 mil (7.62 to 15.24 mm) and with the number of leads up to 48.
4. Adapters for programming devices in the SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP,
QFP, TQFP, VQFP, QFN, SON, BGA, CSP and other packages are available from Phyton and many
third parties.
5. Single ChipProg-481 programmers inside of the tool enclosure are connected to an embedded USB
2.0 hub
6. Each programming site is built on the base of a very fast and powerful 32-bit embedded
microcontroller and FPGA. These resources allow adding new targets to the device list by a simple
software update.
2.2.3
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Family Brief Description
2.3
19
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.
Standard package contents:
One programmer unit
One power adapter 12V/1A+
One USB link cable
One CD with the ChipProgUSB software
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
© 2015 Phyton, Inc. Microsystems and Development Tools
20
2.3.1
ChipProg Device Programmers
Major features
1. Equipped with a 48 pin ZIF socket that allows insertion of the DIP-packed devices with the package
width from 300 to 600 mil (7.62 to 15.24 mm) and the number of leads up to 48 without additional
adapters.
2. Links to a PC USB 2.0 compatible port, e.g. slower USB connection is also supported.
3. Provides fast programming; for example, completely writes a 64M bit NOR FLASH in less than 50
sec.
4. Can program target devices in the programmer ZIF socket as well as the devices installed in the
equipment (ISP mode).
5. An unlimited number of ChipProg-48 tools can be driven from multiple USB ports of one computer (or
via a USB hub) to provide concurrent programming of multiple devices of the same type.
6. Has a button for fast manual launch of any single operation or a bunch of operations.
7. Has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”).
2.3.2
Hardware characteristics
1. The programmer has a 48-pin ZIF socket with a lever that enables the insertion and clamping of any
DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and with the
number of leads up to 48.
2. Adapters for programming devices in the SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP,
QFP, TQFP, VQFP, QFN, SON, BGA, CSP and other packages are available from Phyton and
selected third parties.
3. The programmer is built on the base of a very fast and productive 32-bit embedded microcontroller and
a FPGA. These resources allow adding new targets to the device list by a simple software update.
4. Most timing-critical parts of the programming algorithms are implemented in the FPGA devices.
5. Implementation in the FPGA devices logical drivers enables outputting logical signals of any level (low,
high, Pullup, Pulldown and external clock generator) to any pin of the programming ZIF socket.
6. The programmers's hardware features 10-bit digital-to-analog converters for accurate settings of the
analog signals.
7. The programmers's hardware enables accurate programming of the rising and falling edges of the
generated analog signals.
8. The programmers's hardware automatically adjusts the generated analog signals in accordance to the
target device programming specifications.
9. The generated analog signals for both the target supplying and programming can be outputted to any
pins of the device being programmed.
10.The programmers's can connect any pin of the device being programmed to the “Ground” level.
11.The programmers's hardware checks if every pin of the target device is reliably fixed by a ZIF socket’s
contacts (“bad contact” checking).
12.The programmers's hardware protects itself and the target device against incorrect insertions and
other issues that cause a sharp increase in the currents though the target device circuits. This “over
current” protection is very fast and reliable.
13.The target device's pins are protected against the electrostatic discharge.
14.The programmers's hardware has a programmable clock generator.
15.The self-testing procedure automatically executes at any time the programmer is powered on.
2.3.3
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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Family Brief Description
21
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.
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
22
ChipProg Device Programmers
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.
Standard package contents:
One programmer unit
One power adapter 12V/1A+
One USB link cable
One CD with the ChipProgUSB software
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
2.4.1
Major features
1. Equipped with a 40 pin ZIF socket that allows insertion of any DIP-packed devices with the package
width from 300 to 600 mil (7.62 to 15.24 mm) and the number of leads up to 40 without additional
adapters.
2. Links to a PC USB 2.0 compatible port, e.g. slower USB connection is also supported.
3. Provides fast programming; for example, completely writes a 64M bit NOR FLASH in less than 50
sec.
4. Can program target devices in the programmer ZIF socket as well as the devices installed in the
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Family Brief Description
23
equipment (ISP mode).
5. An unlimited number of ChipProg-40 tools can be driven from multiple USB ports of one computer (or
via a USB hub) to provide concurrent programming of multiple devices of the same type.
6. Has a button for fast manual launch of any single operation or a batch of operations.
7. Has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”).
2.4.2
Hardware characteristics
1. The programmer has a 40-pin ZIF socket with a lever that enables the insertion and clamping of any
DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and with the
number of leads up to 40.
2. Adapters for programming devices in the SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP,
QFP, TQFP, VQFP, QFN, SON, BGA, CSP and other packages are available from Phyton and
selected third parties.
3. The programmer is built on the base of a very fast and productive 32-bit embedded microcontroller and
a FPGA. These resources allow adding new targets to the device list by a simple software update.
4. Most timing-critical parts of the programming algorithms are implemented in the FPGA devices.
5. Implementation in the FPGA devices logical drivers enables outputting logical signals of any level (low,
high, Pullup, Pulldown and external clock generator) to any pin of the programming ZIF socket.
6. The programmers's hardware features 10-bit digital-to-analog converters for accurate settings of the
analog signals.
7. The programmers's hardware enables accurate programming of the rising and falling edges of the
generated analog signals.
8. The programmers's hardware automatically adjusts the generated analog signals in accordance to the
target device programming specifications.
9. The generated analog signals for both the target supplying and programming can be outputted to any
pins of the device being programmed.
10.The programmers's can connect any pin of the device being programmed to the “Ground” level.
11.The programmers's hardware checks if every pin of the target device is reliably fixed by a ZIF socket’s
contacts (“bad contact” checking).
12.The programmers's hardware protects itself and the target device against incorrect insertions and
other issues that cause a sharp increase in the currents though the target device circuits. This “over
current” protection is very fast and reliable.
13.The target device's pins are protected against the electrostatic discharge.
14.The programmers's hardware has a programmable clock generator.
15.The self-testing procedure automatically executes at any time the programmer is powered on.
2.4.3
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
© 2015 Phyton, Inc. Microsystems and Development Tools
24
ChipProg Device Programmers
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.
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.
.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Family Brief Description
25
Connecting ChipProg-ISP to the target
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 BH14R 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 pin #9 must be connected to the target's ground.
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.:
/Error – the operation has failed;
/Good – the operation completed successfully;
/Busy – the programmer is in a process of executing some operation.
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:
© 2015 Phyton, Inc. Microsystems and Development Tools
26
ChipProg Device Programmers
Read also In-System Programming for different devices.
Standard package contents:
One programmer unit
One universal ribbon cable wired pin-to-pin
One USB link cable
One CD with the ChipProgUSB software
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
2.5.1
Major features
1.
2.
3.
4.
Has a 14 pin socket for connecting to the target equipment by means of several cable-adapters.
Protects itself and the target equipment against incorrect wiring.
Links to a PC USB 2.0 compatible port, e.g. slower USB connection is also supported.
An unlimited number of ChipProg-ISP tools can be driven from multiple USB ports of one computer (or
via a USB hub) to provide concurrent programming of multiple devices of the same type.
5. Has a button for fast manual launch of any single operation or a batch of operations.
6. Has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”).
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Family Brief Description
2.5.2
27
Hardware characteristics
1.
2.
3.
4.
Has a standard 14 pin connector.
By default is supplied with a flat ribbon cable with dual headers - 10- and 14 pins.
Optionally can be supplied with several cable adapters for programming specific device families.
The programmer is built on the base of a very fast and productive 32-bit embedded microcontroller and
a FPGA device.
5. Most timing-critical parts of the programming algorithms are implemented in the FPGA devices.
6. Implementation in the FPGA devices logical drivers enable outputting logical signals of any level (low,
high, Pullup, Pulldown and external clock generator) to any pin of the programming connector.
7. The programmers's hardware features 10-bit digital-to-analog converters for accurate settings of the
analog signals.
8. The programmers's hardware enables accurate programming of the rising and falling edges of the
generated analog signals.
9. The programmers's hardware automatically adjusts the generated analog signals.
10.The generated analog signals for both the target supplying and programming can be outputted to any
pins of the device being programmed.
11. The programmers's hardware protects itself and the target device against incorrect connection.
12. The target device pins are protected against the electrostatic discharge.
13. Can be started from the external signal.
14. Three status signals “Good”, “Busy”, “Error” are outputted to the programmer connector for driving
ATE equipment.
15. The self-testing procedure can be executes at any time by request.
2.5.3
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
© 2015 Phyton, Inc. Microsystems and Development Tools
28
ChipProg Device Programmers
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
Quick Start
3
29
Quick Start
This chapter includes the topics that describe:
How to install the ChipProgUSB software
How to install the ChipProg USB drivers
How to install the ChipProg hardware and to start up the ChipProg programmers of different type.
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.
3.1
Installing the ChipProgUSB Software
Insert the distributive ChipProgUSB disc into a CD drive of your PC, click the Install ChipProgUSB button,
accept the license agreement and then follow the series of prompts that will lead you through the installation
process.
© 2015 Phyton, Inc. Microsystems and Development Tools
30
ChipProg Device Programmers
Phyton ChipProgUSB folder
At the end the installer will create a folder with ChipProgUSB tools' and documents' shortcuts:
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
Quick Start
31
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.
3.2
Installing the USB Drivers
In a process of the ChipProgUSB software installation from a distributive disc the program installs the drivers
for the USB devices used in all types of the ChipProg programmers working under control of the Windows
XP, Windows 7 (both 32- and 64-bit versions) and Windows 8 Microsoft operating systems.
3.3
Hardware installation
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
32
ChipProg Device Programmers
The hardware installations for different programmer models vary. Select the topic to see:
The ChipProg-48 hardware installation
The ChipProg-40 hardware installation
The ChipProg-G41 hardware installation
The ChipProg-ISP hardware installation
3.3.1
ChipProg-481
For the programmer to be used in a single-programming mode:
Powering the
programmer
Plug the power adapter to the ~110/240V outlet. Connect a plug of the
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.
Starting up
Start the Phyton ChipProgUSB-01 program; if the programmer passes
the startup test successfully the ChipProgUSB-01 main window will open
and you will be able to work with the tool.
For the programmers to be used in a multi-programming mode, e.g. connected to one
computer:
Powering the
programmers
Plug the power adapters of each programmer to be connected in one
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
programmers to a
cluster
Connect the USB ports of your PCs to the USB connectors on the rear
panels of the programmers by means of the USB cables. It's
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.
Read about the Multi-Programming mode.
© 2015 Phyton, Inc. Microsystems and Development Tools
Quick Start
3.3.2
33
ChipProg-G41
Powering the
programmer
Plug the power cord to a power connector on the rear panel of the
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.
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 programming site. To
assign the number push an appropriate Start button on a top panel of the
programmer one by one. Then the ChipProgUSB-01 main window will open
and you will be able to work with the tool.
3.3.3
ChipProg-48
For the programmer to be used in a single-programming mode:
Powering the
programmer
Plug the power adapter to the ~110/240V outlet. Connect a plug of the
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.
For the programmers to be used in a multi-programming mode, e.g. connected to one
computer:
© 2015 Phyton, Inc. Microsystems and Development Tools
34
ChipProg Device Programmers
Powering the
programmers
Plug the power adapters of each programmer to be connected in one
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
programmers to a
cluster
Connect the USB ports of your PCs to the USB connectors on the rear
panels of the programmers by means of the USB cables. It's highly
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.
Read about the Multi-Programming mode.
3.3.4
ChipProg-40
For the programmer to be used in a single programming mode, e.g. alone:
Powering the
programmer
Plug the power adapter to the ~110/240V outlet. Connect a plug of the
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.
For the programmers to be used in a multi-programming mode, e.g. connected to one
computer:
© 2015 Phyton, Inc. Microsystems and Development Tools
Quick Start
35
Powering the
programmers
Plug the power adapters of each programmer to be connected in one
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
programmers to a
cluster
Connect USB ports of your PCs to USB connectors on the rear panels of
the programmers by means of the USB cables. It's highly recommended
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.
Read about the Multi-Programming mode.
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.
For the programmers to be used in a multi-programming mode, e.g. connected to one
computer:
© 2015 Phyton, Inc. Microsystems and Development Tools
36
ChipProg Device Programmers
Connecting the
programmers to a
cluster
Connect USB ports of your PCs to USB connectors on the rear panels of
the programmers by means of the USB cables. Make sure that the
"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.
Read about the Multi-Programming mode.
3.4
Getting Assistance
3.4.1
On-line Help
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.
3.4.2
Technical Support
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
Quick Start
37
Software version number taken from the About information box.
Basic parameters of your computer and operating system.
The device type, mechanical package and the type of the adapter if one is used.
Descriptions of detected errors, relevant bug reports and error screen shots.
Please send your requests or questions to support@phyton.com. This is the easiest way to get
professional and prompt help. Also, see Contact Information.
3.4.3
Contact Information
Phyton Inc., Microsystems and Development Tools
7206 Bay Parkway, 2nd floor
Brooklyn, New York 11204
USA
Web address: www.phyton.com
E-mail contacts:
General inquiry: info@phyton.com
Sales: sales@phyton.com
Technical Support: support@phyton.com
Tel: 1-718-259-3191
Fax: 1-718-259-1539
4
ChipProg Control Options
ChipProg device programmers can be controlled either from a personal computer or remotely from
Automatic Test Equipment (ATE) or any proprietary computerized environment connected to a PC
directly driving a single ChipProg device programmer a gang programmer or a programming cluster
comprised on multiple ChipProg units. Driving a ChipProg programmer (or multiple programmers) from a
PC can be provided via a friendly and intuitive Graphic User Interface, Command Line or by
launching Script Files. Driving a ChipProg programmer (or multiple programmers) remotely can be done
via the DLL supplied with the ChipProgUSB software.
© 2015 Phyton, Inc. Microsystems and Development Tools
38
4.1
ChipProg Device Programmers
Graphical User Interface
The ChipProgUSB and ChipProgUSB-01 graphical user interface (GUI) elements include:
Menus - global and local
Windows
Toolbars - global and local
Setting Dialogs
Hot Keys
Context-sensitive help prompts
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.
4.1.1
User Interface Overview
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+ 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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
4.1.2
39
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
40
4.1.3.1
ChipProg Device Programmers
The File Menu
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.
Button
Command
Description
Load ...
Opens the Load file dialog that specifies all the parameters of the
file to be loaded and the file destination.
Reload
Reloads the most recently loaded file.
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).
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
41
4.1.3.1.1 Configuration Files
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.
4.1.3.2
The View Menu
This menu controls access to the ChipProgUSB windows:
Button
Command
Program
Manager
Description
Opens the Program Manager dialog.
Device and
Algorithm
Parameters
Opens the Device and Algorithm Parameters dialog.
Buffer Dump
Opens the Buffer dialog.
Device
Information
Opens the Device Information dialog.
Console
Opens the Console dialog.
Local window menus
Each window has its own local (shortcut) menu. To open a local window menu, either click the right
mouse button within the window or press Ctrl+Enter or Ctrl+F10.
© 2015 Phyton, Inc. Microsystems and Development Tools
42
ChipProg Device Programmers
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.
4.1.3.3
The Project Menu
This menu contains commands for working with projects.
Button
Command
Description
New
Opens the Project Options dialog.
Open
Opens the Open Project dialog for loading an existing project file.
Close
Saves and closes a currently opened project.
Save
Saves a currently opened project with all its settings.
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.
4.1.3.3.1 The Project Options Dialog
This dialog is used for initial setting and editing the project options.
Element of dialog
Project File Name
Permissions...
Description
Specifies the project file name and path. The extension may be omitted.
when you close the dialog by clicking the OK button the program save the
project file with the extension .upp.
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
Project Description
(optional)
Desktop
43
Here you can enter your custom comments for the project.
Two radio buttons which allow you to choose if a current project has its
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.
Add file
Opens the Load File dialog for adding this file to the Files to Load to
Buffers.
Remove file
Remove the selected file from field Files to Load to Buffers.
Edit file options
Opens the Load File dialog for editing a file highlighted in the Files to Load
to Buffers list .
Script to execute before
loading files:
Here you can enter the script name to be executed before loading the
Script to execute after
loading files:
Here you can enter the script name to be executed after loading the files
files to the project.
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.
4.1.3.3.2 The Open Project Dialog
This dialog is used to open a previously created project.
Element of dialog
Project File Name
Description
Here you can type in a full path to the project file name or to browse for the
project file to be open. The ChipProgUSB project files have extensions .upp.
Project Open History
Lists previously opened projects. Double-clicking a line in the list opens a
corresponding project.
Remove from list
Deletes a selected project from the Project Open History list.
4.1.3.3.3 Project Repository
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
© 2015 Phyton, Inc. Microsystems and Development Tools
44
ChipProg Device Programmers
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).
Element of dialog
Description
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
Branch
Remove Project/Branch
Adds the currently opened project to the selected 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.
4.1.3.4
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.
Close
Closes the dialog. If the repository is changed, ChipProgUSB will
prompt to save it.
The Configure Menu
This menu gives access to all the ChipProgUSB configuration dialogs.
Button
Command
Description
Select device ...
Opens the Select Device dialog.
Device selection
history
Lists the previously selected devices.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
Buffers
Opens the Buffers dialog.
Serialization,
Checksum, Log
file
Opens the Serialization, Checksum, Log File
Preferences
Opens the Preferences dialog.
Environment
Opens the Environment dialog with tabs: the Fonts tab, the
Colors tab, the Key Mappings tab, the Toolbar tab and the
Misc tab.
45
4.1.3.4.1 The Select Device dialog
The dialog allows specification of the device to work with; it has a few groups of settings.
Element of dialog
Devices to list:
Description
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.
It is recommended to narrow down the searchable database and
speed up the search by specifying the device properties if possible.
Manufacturer
Search mask:
Devices
The box lists the device manufacturers in alphabetic order.
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'.
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.
4.1.3.4.2 The Buffers dialog
Element of dialog
Description
Buffer list:
Displays names, sizes and sub-layers of all currently open buffers
© 2015 Phyton, Inc. Microsystems and Development Tools
46
ChipProg Device Programmers
Add...
Opens the Buffer Configuration dialog to create a new buffer
Delete
Deletes the buffer highlighted in the 'Buffer list' box.
Edit...
Opens the Buffer Configuration dialog for editing.
View
Memory Allocation
Swap Files
Switches control to window displaying the buffer highlighted in the
'Buffer list' box. If this window is hidden under others it will be
brought to the foreground.
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.
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
free on each drive (GB):
Here you can limit the space on the drive which will be never
affected by the file swapping.
4.1.3.4.2.1 The Buffer Configuration dialog
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.
Element of dialog
Buffer Name
Size of sub-layer 'Code'
Fill sub-layer 'Code' with
data:
Description
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.
Here you can assign a size of the 'Code' layer from the drop-down
menu - from 128KB to 32MB.
The program fills the buffer sub-layers with some default information,
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
Data to fill sub-layer with:
Shrink buffer size when
device is selected
47
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.
The buffer size usually exceeds the target device 'Code' size. By
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 .
Element of dialog
Description
Fill sub-level 'ID location'
with data:
By checking these boxes you specify when the chosen sub-layer
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..
4.1.3.4.3 The Serialization, Checksum and Log dialog
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.
Concept of shadow areas
Shadow areas are special memory locations that do not belong to the buffer; they locate in a separate
part of the computer's RAM. The content of the shadow areas that may include: individual chip serial
numbers, the buffer checksums, special signatures, constancies, etc., is not specified in the source
file loaded to the buffer. It can be set either manually in the ChipProg user interface or remotely via the
Application Control Interface. There are several shadow areas for each buffer layer - three for dedicated
parameters: Serial Number, Checksum, and Signature String plus multiple Custom Shadow Areas can
be specified in this dialog. Tabs of the dialog below enable manually setting the parameters and
methods of their calculation:
© 2015 Phyton, Inc. Microsystems and Development Tools
48
ChipProg Device Programmers
General
Serial Number
Checksum
Signature String
Custom Shadow Areas
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.
4.1.3.4.3.1 General settings
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):
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
49
4.1.3.4.3.2 Device Serialization
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.
Element of dialog
Write S/N to address:
Description
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.
Display S/N as:
These radio buttons set the serial number display format - decimal or
hexadecimal.
Increment serial number
by:
By checking this radio button you set incrementing the serial
number by the fixed value specified here; for example: 1, 2, 10, etc.
Use script to increment
serial number:
By checking this radio button you specify the increment value as a
result of executing a chosen script file.
© 2015 Phyton, Inc. Microsystems and Development Tools
50
ChipProg Device Programmers
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.
Element of dialog
Description
address:
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
accordance to the parameters below.
Address range for
checksum calculation:
There are two options for setting the address range: Auto and Userdefined.
Write checksum to
Auto:
The address is defined as a full range of the selected device's
memory layer. It is set by default.
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
checksum:
Here you can pick one from the drop down menu of several
algorithms. By default it sets the "Summation, discard overflow".
Use script to calculate
checksum:
By checking this radio button you specify a method of the
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
result:
These radio buttons allow either to apply no operation on the
calculated checksum or to negate or to complement the result.
Byte Order:
Exclude the following areas
from checksum calculation:
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.
If the box is checked you can specify several memory ranges that
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
51
4.1.3.4.3.4 Signature string
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..
Element of dialog
Write Signature String to
address:
Description
If this box is checked the programmer will write a specified signature
into a specified address of a specified memory layer of a target
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
template:
One of two toggled radio buttons. If checked, the string pattern
visible in the Template String Specifiers drop down menu box will be
programmed into the target device.
Use script to create
Signature String:
This radio button sets an alternative method of composing the
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 '$'.
4.1.3.4.3.5 Custom Shadow Areas
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.
4.1.3.4.3.6 Overlaping data specified in shadow areas
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:
______________________
Custom shadow area N ?
Custom shadow area N-1 ?
Custom shadow area N-2 ?
....
....
Custom shadow area 2 ?
Custom shadow area 1 ?
_______________________
© 2015 Phyton, Inc. Microsystems and Development Tools
52
ChipProg Device Programmers
Signature string ?
_______________________
Checksum ?
_______________________
Serial Number ?
_______________________
Data in memory buffer
_______________________
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
The dialog allows set up of a log or logs of the device programming.
Element of dialog
Description
Enable log file
Checking this box enables logging the device programming sessions
and setting the log parameters below:
Separate log file for each
device
These two toggled radio buttons set if the logs will be separated by
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
Automatically)
Another two toggled radio buttons that set what specifier will be
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
types
By checking this radio button you select keeping one common log
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.
Log File Contents
Gang mode: Socket #
Date/Time
A set of the log file options.
If the device programming was conducted in the Gang
(multiprogramming) mode and if this box is checked the socket
number will be logged.
By checking this box you enable logging the date and time of the
device programming.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
53
Events (device type change,
file names, etc.)
By checking this box you enable logging of all the events associated
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
devices
By checking this box you enable logging a full number of the 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
Log File Overwrite Mode
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.
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
disk, no buffering
If this box is checked then the ChipProgUSB does not buffer the log
to the computer RAM but writes it straight to the drive.
4.1.3.4.4 The Preferences dialog
This dialog gathers settings for some miscellaneous options.
© 2015 Phyton, Inc. Microsystems and Development Tools
54
ChipProg Device Programmers
Element of dialog
Options
Description
Not all the dialog options are described here.
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
start-up
This box is checked by default. By un-checking this box you skip
executing the start-up ChipProg self-testing
Terminate device
operation...
By checking this box you stop the programmer operations operations on
any error and suppress displaying error messages in the user interface.
Log operations in the
Console window
By checking this box you enable dumping the programming session
trace to the Console window.
Deny computer power
suspension
While the programmer does not operate with the target device the
computer may switch to the sleep mode. By checking this box you
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
55
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.
Sounds
All programmable sounds can be picked from the preset
ChipProgUSBsounds
Device operation error:
Select the sound for error operations.
Device operation
complete:
Select the sound for successful completion of the programming
operations in a single programming mode (one ChipProg is in use).
Device operation complete
(Gang Mode):
Programming start
(AutoDetect Mode):
Select the sound for successful completion of the programming
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).
Select the sound for indicating the start of the device programming when
the ChipProg automatically detects the device insertion into the
programming socket.
4.1.3.4.5 The Environment dialog
The Environment dialog includes the following tabs:
Fonts tab,
Colors tab,
Mapping Hot Keys tab,
Toolbar tab,
Miscellaneous Settings 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
© 2015 Phyton, Inc. Microsystems and Development Tools
56
ChipProg Device Programmers
valid for all windows of the selected type, including the already opened windows.
Element of dialog
Description
Window Title Bar
Toggles the title bar for windows of the selected type. If the box is checked it
adds a toolbar at the position specified by the Windows Toolbar Location
option. To save screen space uncheck the box. Also, see notes below.
Window Toolbar
Location
Sets the toolbar location for the selected window.
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
Spacing
Provides additional line spacing, which will be added to the standard line
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
Windows
Notes
Applies the font of the chosen window type to all ChipProgUSB windows.
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+ 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
Color
When this box is checked, the selected color is taken from MS Windows. If
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/
Background Color
When this box is checked, the program inverts the selected window colors
(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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
57
variable will be highlighted with black background and white text.
Edit
Opens the Color dialog if the Inherit Windows Color and Use Inverted Text/
Background Color boxes are unchecked for this type of window.
The Color dialog also opens if you double-click a color in the Colors list.
Spread
Sets the selected color for all windows. This option is useful for text and
background colors. For example, if you choose blue background and yellow
text for the Source window and then click the Spread button, these colors will
be set as the text and background colors for all windows.
Font
For syntax highlighting in the Source window, you can specify additional font
attributes - Bold and Italic.
In some cases when synthesizing bold fonts, MS Windows increases the size
of characters and the font becomes unusable, because the bold and regular
characters should be of the same size. In these cases, the Bold attribute is
ignored.
Sometimes this effect occurs with the Fixedsys font. If you need to use Bold
fonts, choose the Courier New font.
4.1.3.4.5.3 Mapping Hot Keys
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.
Element of dialog
Description
Define Key 1
Define Key 2
Opens the Define Key dialog. In the dialog, press the key combination you
want to assign to the selected command, or press Cancel.
Alternatively, double-click the "cell" in the row of this command and the Key 1
(Key 2) column.
Erase Key 1
Erase Key 2
Deletes the assigned key combination from the selected command.
Alternatively, right click the "cell" in the row of this command and the Key 1
(Key 2) column.
4.1.3.4.5.4 Toolbar
The Toolbar tab of the Environment dialog controls the presence and contents of toolbars of the
windows.
© 2015 Phyton, Inc. Microsystems and Development Tools
58
ChipProg Device Programmers
Element of dialog
Description
Toolbar Bands
Lists the ChipProgUSB toolbars. To enable/disable a toolbar check its box.
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
Toolbars
Toggles between the "flat" and quasi-3D appearance of the local toolbar
buttons for the specialized windows.
Toolbar Settings are
the Same for Each
Project/Desktop File
Employs the current settings from this dialog for other projects or files
opened later.
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.
Element of dialog
Description
Main Window Status
Line
Controls presence and location of the window status line.
Quick Watch
Enabled
Turns the Quick Watch function on or off.
Highlight Active
Tabs
Turns highlighting on/off for the currently active tab (the MS Windows-style) in
windows that have tabs.
Double Click on
Check Box or Radio
Button in Dialogs
Sets the mouse’s double click function equal to a single click, plus pressing
the OK button in that dialog.
Show Hotkeys in
Pop-up Descriptions
Turns the Hotkeys display on/off in the short prompts for toolbar buttons.
Do not Display Box if
Console Window
Opened
If the Console window is open, messages will be displayed there. Otherwise,
the message box will display messages.
Always Display
Message Box
All issued messages will be displayed in the message box.
The Console window also displays these messages.
Automatically Place
Cursor at OK Button
The cursor will always be on the OK button when the message box opens
and this box is checked.
If you prefer you may press the Enter key instead of using the mouse to click
OK.
Audible Notification
If you select this option, there will be a beep along with the error message.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
59
for Error Messages
Information (as opposed to error) messages are always displayed without
the beep.
Log Messages to
File
Specifies the log file name. All messages will be written to this file. The
method of writing is controlled by the radio button with two options:
Overwrite Log File
After Each Start
Specifies erasing the previous log file, if it exists, and creates it afresh for
every session.
Append Messages
to Log File
Specifies appending messages to the end of an existing log file. In this case,
the log file size will grow endlessly.
4.1.3.4.6 Configurating Editor Dialog
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:
General Editor Settings tab,
Key Mapping tab.
4.1.3.4.6.1 General Editor Settings
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 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.
© 2015 Phyton, Inc. Microsystems and Development Tools
60
ChipProg Device Programmers
Highlight Multi-line
Comments
If the box is checked it enables highlighting of multi-line comments.
By default, the window highlights only single-line comments.
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
Copying
If the box is unchecked, then previously kept data remains
retrievable after copying to the clipboard.
Convert Keyboard Input to
OEM
If the box is checked, the Source window converts the characters
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, 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):
Backspace Unindent enabled
Backspace Unindent disabled
Insert mode
Any preceding blank spaces in the
line are deleted. The rest of the line
shifts left until its first character is in
the first column of the window.
One space to the left of the cursor is
deleted. The cursor and the rest of the
line to the right of the cursor shift one
position left.
Overwrite mode
The cursor moves to the first column
of the window. The text in the line
remains in place.
Only the cursor moves one position
left. The text in the line remains in
place.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
61
4.1.3.4.6.2 The Editor Key Mapping
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.
Element of dialog
Description
Command
Description
Enter the command description here (optional). Text placed in this box will be
displayed in the list of commands for easier identification of the command.
Script Name
The name of the script file that executes this command.
Define Key 1
Define Key 2
Opens the specialized dialog box where you can assign two key
combinations to a couple of hot keys.
© 2015 Phyton, Inc. Microsystems and Development Tools
62
ChipProg Device Programmers
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).
4.1.3.5
The Commands Menu
This menu invokes main commands (or functions) that control the programming process, as well as
some service commands.
Command
Description
Auto Programming
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 reprogramming. For such devices the Blank Check command is
blocked and it is shown grayed out on the screen.
This command invokes the procedure of programming the target
device, e.g. writes the contents of the buffer into the target device’s
cells.
This command invokes the procedure of comparing the information
taken from the target device with the corresponding information in the
buffer.
This command invokes the procedure of reading the content of the
target device’s cells into an active buffer.
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
This command invokes the procedure of AutoProgramming.
Local menu
Opens the local menu of active window.
Calculator
Opens the Calculator dialog, which performs calculator functions.
Blank Check
Program
Verify
Read
Erase
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
Element of dialog
Description
Expression
The text box for entering an expression or number.
Copy As
Specifies the format of results that will be copied to the clipboard.
Signed Values
If this box is checked the result of a calculation will be interpreted and
displayed as a signed value (for the decimal format only).
Display Leading
Zeroes
If this box is checked, binary and hexadecimal values retain leading zeroes.
Copy
Copies the result to the clipboard in the format set by the Copy As radio
button.
Clr
Clears the Expression text box.
Bs
Deletes one character (digit) to the left of the insertion point (Backspace).
0x
Inserts "0x".
>>
Shifts the expression result to the right by the specified number of bits.
tab Program Manager > the Edit Auto dialog - configure the Auto
Programming batch of functions;
Windows Program Manager > tab Options - set the programming options;
Windows Program Manager > tab Statistics - set a number of chips to be programmed and other
options
Working in the SUI mode disables counting down the programmed chips (this option can be set in the
tab Statistics), an operator can watch only numbers of successfully programmed and failed chips.
Other options set in this tab remain in force.
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
89
The General Settings Tab
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
© 2015 Phyton, Inc. Microsystems and Development Tools
90
ChipProg Device Programmers
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 ChipProgG41 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.
The Appearance Tab
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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
91
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.
4.1.5.2
Operations with Simplified User Interface
To launch the ChipProgUSB with the Simplified User Interface (or in the Simplified Mode) in the
Command line mode use the key /Y . The key /Y and the should not be separated by a space. If the includes spaces the name
should be quoted. For example:
C:\Program Files\ChipProgUSB\5_22_00\UprogNT2.exe /Y"DS89C430 - Release" ,
where the DS89C430 - Release is the configuration name.
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.
4.2
Operations with Projects
Usually, operating with a device programmer includes a lot of preparations, such as: choosing a target
device, loading a file to be programmed into the device, customizing the programming algorithm, preprogramming a batch of commands for the Auto Programming procedure, configuring the ChipProg user
interface, etc. These preparations involve opening tens of dialogs spread in several ChipProgUSB
windows, menus and sub-menus. The ChipProgUSB program enables storing all the settings in one file
known as a project. You can create and set up an unlimited number of projects for programming of
different devices, with different files and different parameters, and store them in the project repository
from where you can load them for execution by clicking your mouse, or by including the project name in
the command line. Operating with projects saves time and simplifies the programming job.
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.
The matrix below lists major project options.
Option group
Major properties
Project options
Project name; Description; Permissions
© 2015 Phyton, Inc. Microsystems and Development Tools
Where to set up...
Menu Project - Options - Dialog Project
Options
92
ChipProg Device Programmers
Option group
Device
Buffers
Serialization,
Check sum, Log
files
Actions on events
Project options
Where to set up...
(password, selected locking options); Files to
be programmed into the device, File format,
Start and end address for file loading,
Destination buffers; Scripts to be preloaded;
Desktop.
Device type; Auto Detect; Insert test; Check
device ID; What to do when the device
insertion is detected; Device parameters
(fuses, lock bits, special function registers,
etc.); Programming algorithm (applicable
chip sectors, voltages, oscillator frequency,
etc.)
Buffer name; Buffer size; Default fill value;
Swap file settings.
Algorithm for programming serial numbers;
Custom signature patterns; Algorithm of the
check sum calculation; Check sum formats;
Parameters and locations of log files to be
saved.
Actions on certain events, issuing error
messages and sounds, logging results.
Graphical User
Interface
Screen configuration, fonts and colors in
windows, key mappings, messages and
miscellaneous settings.
Statistics
Number of chips to be programmed and
associated settings.
Menu Configure - Dialog Select Device;
Check box AutoDetect;
Window Program Manager - tab Options
Windows Device and Algorithm
Parameters Editor
Menu Configure – sub menu Buffers;
Window Buffer – toolbar; Dialog Buffer
Configuration;
Window Buffer – toolbar; Dialog Memory
Dump Windows Setup
Menu Configure – tabs of the sub menu
Serialization, Check sum, Log files
Menu Configure – sub menu Preferences
Menu Configure – sub menu Environment
Window Program Manager - tab Statistics
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.
4.3
Command Line Control
The ChipProg programmers can be driven in the Command Line mode. A command line begins with the
registered application name UPROGNT2.EXE followed with a number of options that specify certain
ChipProg functions and settings. Sometimes these options may be also called keys. The command line
may also optionally include a name of the project file that controls the programmer operations.
Here is the command line format: UProgNT2.exe [option 1] [option 2]...[Name of the project file] [option
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
93
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 caseinsensitive, 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.
Here are a few command lines examples:
1) UProgNT2.exe -C"Atmel^AT89C51ED2 [ISP BL Mode]" -L"C:\Work\Output Files\Bin\Serial.bin" FB0x2000 -A -I2
Right after launching the ChipProgUSB application:
-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.
2) UProgNT2.exe "C:\Work\Programmer Projects\Nexus.upp" /A1
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
Launch the ChipProgUSB with no options.
© 2015 Phyton, Inc. Microsystems and Development Tools
94
4.3.1
ChipProg Device Programmers
Command line options
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
-GANG[:]
Description
This option launches the ChipProgUSB in the multi-programming (gang) mode.
In this mode the ChipProgUSB software drive multiple programmers, i.e. either
a ChipProg-G4 or ChipProg-G41 gang programmer or multiple single-site
ChipProg programmers connected to one computer. You must use this key to
control the ChipProg-G4 or ChipProg-G41 gang programmers. The -N, -P and -R
keys below may not be included in the same command line with the -GANG key.
The /GANG key can be supplemented by a parameter [:]
that specifies a number of programming modules in the controlled gang
machine or a programming cluster. For example, the /GANG[:] key says
that USB communication will be established only with two first programming
modules in the gang machine. This allows to expedite establishing USB
communication with the gang programmer. If the ChipProgUSB has been
launched with the -GANG key the program waits up to 16 sec or until all
multiple of 4 device programmers were detected, whichever happens earlier.
For example, the -GANG[:] key stops establishing USB communication
when first two programming modules were detected.
-
C""
-L
-F
This option opens the ChipProgUSB program with a device specified as a
combination of the device manufacturer and device part number separated by
the ^ character. The device specified in a previously loaded project will be
replaced by a device specified by the -C"" key. For
example: /C"Atmel^AT89C51".
This option loads the 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).
This key explicitly sets the format of the file specified by the option -L above. The is specified by one of the following
letters:
H - standard or extended Intel HEX format
B - binary format
M - Motorola S record format
P - POF (Portable Object Format)
J - JEDEC format
G - PRG format
O - Holtek OTP format
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
95
V - Angsrem SAV format
For example: the option -FH loads a file in the HEX format, which defines
the start destination address in the ChipProg buffer.
If the binary format (B) is specified by the option -F then it may be
accomplished by a hexadecimal value that specifies the destination start
address of the file to be loaded. For example: the option /FBFF04 loads a
binary file and places the data at the address FF04h in the buffer.
If a command line includes a key -F but does not include a
key -L; i.e., it specifies the file format but does not specify
the file name itself, the -F 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. .
-A[buffer number]
This option initiates the Auto Programming session in accordance with
other command line options immediately after launching the ChipProgUSB
application. It closes this application in case of successful completion. In
case of error the ChipProgUSB application remains suspended until it is
closed manually. If the [buffer number] is omitted then the data for Auto
Programming are taken from buffer #0; otherwise from the buffer number
that follows the -A. For example: the option -A2 specifies that data for the
Auto Programming session will be tak en from the buffer number 2..
It makes sense to use the -A option only when including in the command
line a project name or the -L 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.
© 2015 Phyton, Inc. Microsystems and Development Tools
96
ChipProg Device Programmers
-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.
Important! The three keys below - -N, P and -R - allow control of one single-site programming
module, either from a cluster of similar multiple programmers or
inside a gang device programmer, but only when the programmers
are not driven in the gang mode. These three keys may not be used
with a combination of the key -GANG.
Use of these keys may be convenient when, for example, it is
necessary to program two different files into two different device
types on two pairs of programming sites of the Phyton gang
machine. In this case each pair of programming modules specified
by the -R or -P keys can perform two different programming jobs
simultaneously.
-N
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 () 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
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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
97
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.
4.4
-S
This key replaces a default session configuration file UPROG.ses by a new
one with the name 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
This key replaces a default option configuration file UPROG.opt by a new
one with the name 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
This key replaces a default desktop configuration file UPROG.dsk by a new
one with the name 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
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.
On-the-Fly Control
The On-the-Fly Control feature was introduced in the ChipProgUSB software version 6.00.00 and does
not exist in older software versions.
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-theFly 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
© 2015 Phyton, Inc. Microsystems and Development Tools
98
ChipProg Device Programmers
does not modify its working directory..
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.
The On-the-Fly Control command line format:
OFControl.exe [Options] [@] [Options]
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 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[+][
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).
-C
Copy an error text to the Windows clipboard. If the On-the-Fly Control
utility completes and returns the code = 0, then an error has taken place
(with the exception of the reaction to the -T option, see below). If the
command line includes the -C option, the error description will be copied
to the clipboard; otherwise the clipboard contents remain unchanged.
© 2015 Phyton, Inc. Microsystems and Development Tools
100
ChipProg Device Programmers
If more than one operation on the target device specified in the On-theFly 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[=] 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.
If the -M option is specified without the [=]
parameter then the On-the-Fly Control utility will indefinitely wait for the
programmer readiness. In this case you can break the utility execution
and quit by pressing the Ctrl+C keys.
-B
Stop an operation with the device. If the ChipProg executes a
programming function (Read, Program, Verify, etc.), the operation will be
interrupted. This action takes place prior to all the actions specified by
the options -P, -S, -F, -X. It is possible, however, that the -B option
does not cause a break of an operation on the target device. This
happens when the utility issues an interactive operation error dialog that
requires an action of the operator. In this case, the On-the-Fly Control
utility exits with an error code.
-P
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.
Example: -P"C:\Prog\Projects\Antenna-01 Test.upp"
-S
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.
Example: -S"D:\Prog Scripts\Checksum.cmd"
-NWS
Do not wait for completion of the script specified by the -S option.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
-F
101
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.
By default the On-the-Fly Control utility waits for function completion.
To enable the utility to keep running while the function specified by the F option is also executing, add the -NWF option to the command line. In
this case you may include only one -F option in the command line.
If the -F option specifies a sub-function displayed in the drop-down
menus of the Program Manager function tree, then specify both the
menu name and the function itself, separated by the '^' character. For
example: -FProgram (for the Code Memory chip layer) but -FData
Memory^Program (for the Data Memory) .
Examples:
-F* - launch the Auto Programming function.
-FErase;Blank Check;Program;Verify - erase the device, check if it is
blank, write the file from the programmer buffer and compare the buffer
and device memory contents.
"-F*;Verify;Device Parameters^Program HSB and XAF" - execute the
Auto Programming function, then compare the buffer and device memory
contents, then launch the function Program HSB & XAF from the Device
Parameters sub-menu.
-NWF
Do not wait for completion of the function specified by the -F option. This
option is incompatible with the -X option.
-I
Ignore errors that occur during programming operations. By default the
On-the-Fly Control utility stops operations with the target device in
case of any error. The -I option enables the operations regardless of the
result that allows logging of all the errors that occurred.
-T[+][W=]
Get the programmer status ["Ready" or "Busy"]. The On-the-Fly
Control utility returns the code 0 (zero) if the ChipProg stops and is
ready for executing a programming operation, or 1 if the programmer is
in the process of operating with the target device ("Busy").
If the '+' sign is present in the -T option declaration then, if the
programmer operates on the target device, a current function name
(Read, Program, etc.) will be output to the Console window along with
the percentage of the function being executed. For example: Program,
87%.
© 2015 Phyton, Inc. Microsystems and Development Tools
102
ChipProg Device Programmers
The optionally specified [W=] parameter sets
a delay before getting the programmer status. Delays allow checking the
programmer status within a settable period of time.
Examples:
-T - get the programmer status "Ready" or "Busy"
-TW=1000 - wait for 1 sec, then get the programmer status "Ready" or
"Busy"
-T+ - get the programmer status "Ready" or "Busy". Then output to the
Console window the name of the currently executed function and the
percentage of its completion. An example of the function status string:
Read 56%.
-V=[0 | 1]
Hide (-V=0) or make it visible (-V=1) in the ChipProgUSB main window.
If the ChipProgUSB main window is hidden, the programmer will be
invisible among other open applications in the Applications tab of the
Windows Task Manager. So, in order to close the running
ChipProgUSB program you will have to open the Process tab of the
Task Manager, then locate and highlight the programmer executable
name (UprogNT2.exe) and click the End Process button.
4.4.2
-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.
-? or -H
Output a brief description of the On-the-Fly Control utility options and
quit.
On-the-Fly utility return codes
After completion, the On-the-Fly Control utility issues a return code of 0 (zero) in case of success.
Otherwise it issues one or more of the error codes listed below. It returns the codes to the application or
to a batch-file that called the utility. There is one exception that is associated with the option –T. Then
the utility returns 0 if the programmer was stopped and 1 if it is operating on the target device.
The utility prints errors on the Console and, optionally, writes them to the log file and/or Windows
clipboard.
Return codes:
0
Successful completion.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
1
The –T option was specified and the programmer is busy executing an operation on device.
2
Wrong option, parameter or parameter format in the command line.
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.
The timeout, which was set by the -M option for stopping the programmer, has expired.
5
6
7
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.
Cannot execute a required action because the programmer is busy with operation on the target
device.
8
Failed to load the project specified by the -P option.
9
Failed to launch the script specified by the -S option.
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
14
4.4.3
103
The programmer could not complete an operation and close the program after receiving the -X
option request.
More than one device programmers is running. This requires the -R option use.
On-the-Fly Control example
; Launch the programmer in the diagnostic mode unless it is already working
-L"C:\Program Files\ChipProgUSB\5_25_00\UProgNT2.exe /g1"
; Append records to the log
-G+
; If the programmer is busy wait for 30 seconds max
-M=30
; Load the project. The FuelPump-08.upp project file locates in the folder D:\Projects
-PD:\Projects\FuelPump-08.upp
; Execute the csm-16.cmd script located in the folder D:\Scripts
-SD:\Scripts\csm-16.cmd
© 2015 Phyton, Inc. Microsystems and Development Tools
104
ChipProg Device Programmers
; Execute auto programming using parameters defined by the FuelPump-08.upp project
-F*
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
4.5
105
Script Files
The ChipProgUSB program can execute so-called script files in a way similar to how the MS DOS
executes the batch files. The script file mechanism was implemented in the ChipProgUSB in order to
automate usage of the ChipProg programmers. By means of script files you can, for example,
automate loading files to the programmer buffers, calculating checksum, launching device
programming, pausing programming in case of an error, manipulating windows and performing many
other operations. It is also possible to display various messages in the Console window or other
special windows generated by the script itself, including displaying graphical data in special windows;
to create user's custom menus, etc. The script language is similar to C program language; almost all
C constructions are supported, except for structures, conjunctives and pointers. There are also many
built-in functions available, such as printf(), sin() and strcpy(). The extension of script source file is
.CMD.
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
Difference Between the Script Language and the C Language
Alphabetical List of Script Language Built-in Functions and Variables
4.5.1
The Script Files Dialog
This dialog is used for controlling the Script Files, it allows to start, stop and debug scripts.
© 2015 Phyton, Inc. Microsystems and Development Tools
106
ChipProg Device Programmers
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:
State of File
Description
Stopped
Execution of the script file is temporarily stopped.
Running
The script file is being executed.
Waiting
The script is waiting for an event. This state is initiated by calling certain
wait functions in the script file text (for example, Wait).
Cancelled
The script execution is terminated, but the script file is not yet unloaded
from the memory.
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
Restart
Restarts a highlighted script file.
Debug
Switches to the Debugger mode for the highlighted script file. This
command stops execution of the script and opens it in the source
window of the script for debugging. If the script is in the wait state, then
execution will immediately stop after the script returns from the Waiting
status.
107
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
Directories
Specifies the directories in which the script file will search for the files
specified in the #include directive(s). To specify more than
one directory, separate them by semicolons. The current directory is
scanned as well.
Debug (open Script
Source window)
If this box is unchecked, a script file automatically starts execution upon the
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
Sources
If this box is checked when you click the Start button ChipProgUSB
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.
4.5.2
How to create and edit script files
A script file is similar to a source program text written in programming language (C, for example), e.g. a
© 2015 Phyton, Inc. Microsystems and Development Tools
108
ChipProg Device Programmers
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.
Now you can compose your script right in the window.
Note that you should not use the punctuation characters (braces, dash, etc.) in the script file name.
When you complete the file composing click on the Save button on the window local toolbar or on the
Editor toolbar and the program will prompt you to name the script file and to specify its location.
4.5.2.1
The Editor Window
Commands of this menu refer to the currently active Edit window.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
Button
4.5.2.2
Command
Description
New
Opens the Editor window for a new script file.
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.
Save As...
Opens the Save file as... dialog.
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.
109
Text Edit
Commands of this menu refer to the currently active Edit window.
Button
Command
Description
Undo
Undoes the last text editing action executed in this window. For
example, if the last action deleted a line, then the deleted line will be
restored. The number of steps provided by the Undo function is set
in the of the Configure > Editor Options > General tab.
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.
Cut
Removes the marked block to the clipboard..
Paste
Copies the block from the clipboard, starting at the cursor position.
Clipboard History/
Repository
Opens the Clipboard History/Repository dialog.
Append to
Clipboard
Copies and appends the marked block of text to the block in the
clipboard.
Cut & Append to
Clipboard
Cuts the marked block of text and appends it to the block in the
clipboard.
Fast Copy
Copies a block to a specified position in the same window.
Fast Move
Moves a block from one position in the window to another position
in this window.
Block Off
Unmarks a marked text block.
Search
Opens the Search for Text dialog.
Next Search
Repeats search with the parameters used in the previous search.
© 2015 Phyton, Inc. Microsystems and Development Tools
110
ChipProg Device Programmers
Replace
Opens the Replace Text dialog.
Display Multi-file
Search Results
Re-opens the last multi–file search results in the Multi-File Search
Results dialog.
Display from line
number...
Opens the Display from Line Number dialog for you to specify a line
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.
Condensed mode
Toggles the Condensed display mode on and off.
Condensed mode
setup
Opens the Condensed Mode Setup dialog.
Line numbers on/off
Toggles the availability of the line numbers on and off.
Return to last
editing context
Activates the most recently edited Source window, and places the
cursor in its final position during the edit.
4.5.2.2.1 The Search for Text Dialog
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
Search
If this box is checked the editor will search in all 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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
111
Files in Project
the project.
Include Dependency
Files
If this box is checked the editor will search in all the source files included in
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
Subdirectories
If this box is checked the editor will search in subdirectories of all the
directories 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.
4.5.2.2.2 The Replace Text Dialog
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
Expressions
This box is unchecked by default. Checking of this box specifies that the
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
© 2015 Phyton, Inc. Microsystems and Development Tools
112
ChipProg Device Programmers
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
Search and Replace
This box is checked by default and if it is checked the editor will search in all
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
Files in Project
If this box is checked the editor will search in all the source files included in
the project.
Include Dependency
Files
If this box is checked the editor will search in all the source files included in
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
Subdirectories
If this box is checked the editor will search in subdirectories of all the
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.
4.5.2.2.3 The Confirm Replace Dialog
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© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
113
replace process will continue.
Non-Stop
From this moment, replace all found strings in this file without prompt.
Cancel
Cancel the search-and-replace process.
Skip this File
Stop search in this file and switch to the next one.
Replace in All Files
Replace all occurrences in all other files without confirmation.
Move cursor to the
Yes/No Buttons
When this box is checked the cursor will be automatically placed on the
Yes button on each inquiry for confirmation.
4.5.2.2.4 The Multi-File Search Results Dialog
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 Multifile 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.
4.5.2.2.5 Search for Regular Expressions
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
114
ChipProg Device Programmers
[~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."
4.5.2.2.6 The Set/Retrieve Bookmark Dialogs
Bookmarks help you to return to a marked cursor position in a source file.
You can set and retrieve up to 10 local bookmarks. Every local bookmark has an individual numbered
button assigned to it.
To open the Set Bookmark dialog, press Alt+[. To open the Retrieve Bookmark dialog, press Alt+]. To
set/retrieve a bookmark, press its numbered button. The number of the bookmarked line, the bookmark
position in the line (in brackets) and the text of the line are shown at the right of the button.
Local bookmarks are stored in the configuration file and you can work with them in the next session.
4.5.2.2.7 Condensed Mode
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.
4.5.2.2.8 The Condensed Mode Setup Dialog
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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
115
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.
4.5.2.2.9 Automatic Word Completion
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+) 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.
4.5.2.2.10 Syntax Highlighting
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
116
ChipProg Device Programmers
4.5.2.2.11 The Display from Line Number Dialog
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.
4.5.2.2.12 The Quick Watch Function
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.
4.5.2.2.13 Block Operations
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
char
char
char
Timer0 far ;
Timer1 far ;
Int0 far ;
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):
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
117
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.
4.5.3
How to start and debug script files
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
118
ChipProg Device Programmers
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:
Command
Window Toolbar
Description
Step
Step
Executes one operator of the script.
Run
Run
Starts continuous execution of the script in the
window. Then the script execution can be broken
either by hitting a set breakpoint or by the command
Stop.
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.
Stop
Stops the running script.
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
Toggle Breakpoint
Break
Sets up or clears the breakpoint at the address
corresponding to the line where the caret is
positioned. When you execute the Run or Run to
cursor command the program execution will be
stopped at the breakpoint.
Add to Watches
Window
+Watch
Opens the Watches window (if not yet opened) and
places the name at the caret position into it.
Restart
Restart
Restarts the highlighted script.
119
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.
4.5.3.1
The AutoWatches Pane
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.
4.5.3.2
The Watches Window
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
© 2015 Phyton, Inc. Microsystems and Development Tools
120
ChipProg Device Programmers
Configure menu > Environment > Fonts tab.
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.
Delete Watch
Deletes a selected object from the Watches window.
Delete All Watches
Deletes all watches from the window.
Modify
Opens the Modify dialog to set a new value for a selected variable.
Alternatively, just enter the new value.
Move Watch Up
Moves a selected watch up the list.
Move Watch Down
Moves a selected watch down the list.
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.
4.5.3.2.1 The Display Watches Options Dialog
Use this dialog to set the display options for the selected variable or expression in the Watches window.
Element of dialog
Description
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 popup 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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
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
Options
Opens the Debug Options dialog.
121
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.
4.5.3.2.2 The Add Watch Dialog
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.
4.5.3.3
Element of dialog
Description
Name or expression to
watch:
Enter into this box the symbol name or expression to be added. You
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
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
122
4.5.3.4
ChipProg Device Programmers
The I/O Stream Window
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
4.6
123
Programming Automation via DLL
Any ChipProg programmer can be controlled not only from the ChipProgUSB user interface but also from
an external computerized environment, which is appropriate for programming automation. This chapter
describes how to integrate a ChipProg programmer into an external environment by means of Phyton's
proprietary Application Control Interface (hereafter ACI). Remember that use of the Application
Control Interface requires the ChipProg to be driven from a PC under Windows XP, 7 or 8.
4.6.1
Application Control Interface
What is the Application Control Interface?
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.
32- and 64-bit Microsoft Windows OS - specific of use
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.
How does the Application Control Interface works?
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
124
ChipProg Device Programmers
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 64bit 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 Singleprogramming 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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
125
for example Automated Test Equipment (ATE)
4.6.2
ACI Functions
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:
© 2015 Phyton, Inc. Microsystems and Development Tools
126
ChipProg Device Programmers
Application Control
Interface function nam e
Brief description
Associated
w indow s
and dialogs
Associated Application
Control Interface
structures
1. ACI functions that start and stop programming sessions
ACI_Launch
Starts the ChipProgUSB program. This
function must alw ays be the very first in the
chain of other Application Control Interface
functions that form the programming session.
NA
ACI_Launch_Params
ACI_Exit
Closes the ChipProgUSB program. This
function must alw ays be the last one in the
chain of other Application Control Interface
functions. It completes the external control
session.
NA
NA
2. ACI functions that configure the programmer or get its current configuration
ACI_LoadConfigFile
ACI_SaveConfigFile
Loads the programmer configuration
parameters from the host computer to the
programmer.
Saves the programmer's current
configuration parameters to the host
computer.
NA
ACI_Config_Params
NA
ACI_Config_Params
3. ACI functions that get the target device properties or set them
ACI_GetDevice
ACI_SetDevice
Gets the manufacturer's name (brand) and
the part number of the device currently being
programmed from the programmer to the host Select Device ACI_Device_Params
computer.
Sets the manufacturer's name and the part
number of the device to be programmed in
the programmer.
Select Device ACI_Device_Params
4. ACI functions that get current parameters of the buffers and layers or configure them
ACI_GetLayer
Gets the parameters of a specified memory
buffer and layer from the programmer to the
host computer.
Buffer Dump
ACI_Layer_Params
ACI_CreateBuffer
Creates a memory buffer w ith specified
parameters in the programmer.
Buffer Dump
ACI_Buffer_Params
ACI_ReallocBuffer
Changes a size of the layer #0 in a specified
memory buffer in the programmer.
Buffer Dump
ACI_Buffer_Params
5. ACI functions that read the content of the buffer layer or write into it
ACI_ReadLayer
ACI_WriteLayer
Reads data from a specified memory buffer
in the programmer to the host computer.
Writes data into a specified memory buffer of
Buffer Dump
ACI_Memory_Params
Buffer Dump
ACI_Memory_Params
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
Application Control
Interface function nam e
Brief description
127
Associated
w indow s
and dialogs
Associated Application
Control Interface
structures
Buffer Dump
ACI_Memory_Params
the host computer to the programmer
memory buffer.
Fills a w hole selected layer of a specified
memory buffer w ith a specified data pattern.
ACI_FillLayer
6. ACI functions that get programming parameters from the programmer or set them in
the programmer
ACI_GetProgrammingParams
Gets current programming parameters from
the programmer to the host computer.
Program
Manager >
Options
ACI_Programming_Params
ACI_SetProgrammingParams
Sets programming parameters from the host
computer to the programmer.
Program
Manager >
Options
ACI_Programming_Params
7. ACI functions that get device-specific programming options from the programmer or
set them in the programmer
ACI_GetProgOption
Gets current programming options from the
programmer to the host computer.
Device and
Algorithm
Parameters
ACI_ProgOption_Params
ACI_SetProgOption
Sets programming options from the host
computer to the programmer.
Device and
Algorithm
Parameters
ACI_ProgOption_Params
Device and
Algorithm
Parameters
ACI_ProgOption_Params
ACI_AllProgOptionsDefault
Sets default programming options and
programming algorithms in the programmer.
8. ACI functions that control programming operations
Initiates a specified programming operation,
keeping under control its successful
completion or failure. It controls a single
programmer.
Program
Manager
ACI_Function_Params
Initiates a specified programming operation
and then does not check the operation result.
It controls a single programmer.
Program
Manager
ACI_Function_Params
Used to control multiple device
programmers. Initiates auto programming in
the gang (multi-programming) mode.
Program
Manager
ACI_GangStart_Params
ACI_GetStatus
Gets a current programmer status
information.
Program
Manager
ACI_PStatus_Params
ACI_TerminateFunction
Terminates a current programming operation.
Program
Manager
NA
ACI_GangTerminateFunction
Terminates a current programming operation
Program
ACI_GangTerminate_Para
ACI_ExecFunction
ACI_StartFunction
ACI_GangStart
© 2015 Phyton, Inc. Microsystems and Development Tools
128
ChipProg Device Programmers
Application Control
Interface function nam e
Brief description
Associated
w indow s
and dialogs
on a specified site of the gang programmer.
Manager
Associated Application
Control Interface
structures
ms
9. ACI functions that save files from the programmer and load files to the programmer
ACI_FileSave
Saves a specified file from a specified
buffer's layer of the programmer into the
instrumental computer.
Buffer Dump
ACI_File_Params
ACI_FileLoad
Loads a specified file from the instrumental
computer to a specified buffer's layer in the
programmer.
Buffer Dump
ACI_File_Params
10. ACI functions that display programmer's windows and dialogs for setting up and
debugging external programming sessions
4.6.2.1
ACI_SettingsDialog
Displays the programmer Preferences dialog.
Configure >
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
NA
ACI_Launch
ACI_FUNC ACI_Launch(ACI_Launch_Params * params);
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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
129
has completely stopped. This is an abnormal situation and, as a result, it will be impossible to reestablish 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
ACI_FUNC ACI_LoadConfigFile(ACI_Config_Params * params);
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.
See also: ACI_SetProgrammingParams, ACI_SetProgOption, ACI_GetProgrammingParams,
ACI_GetProgOption, ACI_SaveConfigFile
4.6.2.4
ACI_SaveConfigFile
ACI_FUNC ACI_SaveConfigFile(ACI_Config_Params * params);
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.
См . также: ACI_SetProgrammingParams, ACI_SetProgOption, ACI_GetProgrammingParams,
ACI_GetProgOption, ACI_LoadConfigFile
4.6.2.5
ACI_SetDevice
ACI_FUNC ACI_SetDevice(ACI_Device_Params * params);
© 2015 Phyton, Inc. Microsystems and Development Tools
130
ChipProg Device Programmers
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
ACI_FUNC ACI_GetDevice(ACI_Device_Params * params);
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
ACI_FUNC ACI_GetLayer(ACI_Layer_Params * params);
Description
This function gets the parameters of a specified memory buffer and buffer's layer.
See also the ACI_Layer_Params structure description.
4.6.2.8
ACI_CreateBuffer
ACI_FUNC ACI_CreateBuffer(ACI_Buffer_Params * params);
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.
See also the ACI_Buffer_Params structure description.
4.6.2.9
ACI_ReallocBuffer
ACI_FUNC ACI_ReallocBuffer(ACI_Buffer_Params * params);
Description
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
131
This function changes the size of the layer #0 in the memory buffer specified in the ACI_Buffer_Params
structure.
See also the ACI_Buffer_Params structure description.
4.6.2.10 ACI_ReadLayer
ACI_FUNC ACI_ReadLayer(ACI_Memory_Params * params);
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
ACI_FUNC ACI_WriteLayer(ACI_Memory_Params * params);
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
ACI_FUNC ACI_FillLayer(ACI_Memory_Params * params);
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
132
ChipProg Device Programmers
4.6.2.13 ACI_GetProgrammingParams
ACI_FUNC ACI_GetProgrammingParams(ACI_Programming_Params * params);
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.).
See the ACI_Programming_Params structure description.
4.6.2.14 ACI_SetProgrammingParams
ACI_FUNC ACI_SetProgrammingParams(ACI_Programming_Params * params);
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.).
See also the ACI_Programming_Params structure description.
4.6.2.15 ACI_GetProgOption
ACI_FUNC ACI_GetProgOption(ACI_ProgOption_Params * params);
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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
133
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.
See also the ACI_ProgOption_Params structure description.
4.6.2.16 ACI_SetProgOption
ACI_FUNC ACI_SetProgOption(ACI_ProgOption_Params * params);
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.
See also the ACI_ProgOption_Params structure description.
© 2015 Phyton, Inc. Microsystems and Development Tools
134
ChipProg Device Programmers
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
ACI_FUNC ACI_ExecFunction(ACI_Function_Params * params);
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
ACI_FUNC ACI_StartFunction(ACI_Function_Params * params);
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
135
4.6.2.20 ACI_GangStart
ACI_FUNC ACI_GangStart(ACI_GangStart_Params * params);
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
ACI_FUNC ACI_GetStatus(ACI_PStatus_Params * params);
Description
This function gets the programmer status that includes:
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
ACI_FUNC ACI_GangTerminateFunction(ACI_GangTerminate_Params * params);
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)
© 2015 Phyton, Inc. Microsystems and Development Tools
136
ChipProg Device Programmers
number is specified by the SiteNumber parameter from the ACI_GangTerminate_Params structure.
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
ACI_FUNC ACI_FileLoad(ACI_File_Params * params);
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
ACI_FUNC ACI_FileSave(ACI_File_Params * params);
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
137
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
138
ChipProg Device Programmers
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
139
4.6.2.31 ACI_SetConnection
ACI_FUNC ACI_SetConnection(ACI_Connection_Params * params);
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.
The ConnectionId can be always checked by executing the function ACI_GetConnection.
4.6.2.32 ACI_GetConnection
ACI_FUNC ACI_GetConnection(ACI_Connection_Params * params);
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
© 2015 Phyton, Inc. Microsystems and Development Tools
140
ChipProg Device Programmers
ACI_Launch function, then executing the ACI_GetConnection function returns a current ConnectionId
parameter as a part of theACI_Launch_Params structure.
See also ACI_SetConnection.
4.6.3
ACI Structures
This chapter describes the structures used by the ACI functions.
Structure
The ACI function that uses the structure
ACI_Launch_Params
ACI_Launch
ACI_Config_Params
ACI_LoadConfigFile, ACI_SaveConfigFile
ACI_Device_Params
ACI_GetDevice, ACI_SetDevice,
ACI_Layer_Params
ACI_GetLayer
ACI_Buffer_Params
ACI_CreateBuffer, ACI_ReallocBuffer
ACI_Memory_Params
ACI_ReadLayer, ACI_WriteLayer, ACI_FillLayer
ACI_Programming_Params
ACI_SetProgrammingParams,
ACI_GetProgrammingParams
ACI_ProgOption_Params
ACI_GetProgOption, ACI_SetProgOption
ACI_Function_Params
ACI_ExecFunction, ACI_StartFunction
ACI_PStatus_Params
ACI_GetStatus
ACI_File_Params
ACI_FileLoad, ACI_FileSave
ACI_GangStart_Params
ACI_GangStart, ACI_GetStatus
ACI_GangTerminate_Params
ACI_GangTerminateFunction
Here is an example of the structure syntax:
typedef struct tagACI_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;
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:
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
141
(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)
LPCSTR ProgrammerExe;
// (in)
LPCSTR CommandLine;
// (in)
BOOL
DebugMode;
// (in)
} ACI_Launch_Params;
Size of structure, in bytes
Programmer executable file name
Optional programmer command-line parameters
Debug mode. Programmer window is not hidden
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.
CommandLine
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
programmers then the only way to launch a certain programmer is to specify
the /N for the CommandLine structure member.
DebugMode
This key controls the ChipProgUSB main window visibility. Setting TRUE for
this structure member makes the ChipProgUSB main window visible. Then
you can manipulate with the programmer using its user interface - open
windows, set any programmer resources, execute programming operations,
etc..
See also: ACI_Launch
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;
FileName
This is the name of the file that configures the
programmer.
See also: ACI_LoadConfigFile, ACI_SaveConfigFile
© 2015 Phyton, Inc. Microsystems and Development Tools
142
4.6.3.3
ChipProg Device Programmers
ACI_Device_Params
typedef struct tagACI_Device_Params
{
UINT
Size;
// (in)
Size of structure, in bytes
CHAR
Manufacturer[64]; // (in || out) Device Manufacturer
CHAR
Name[64];
// (in || out) Device Name
} ACI_Device_Params;
Manufacturer
The manufacturer of the device being programmed
Name
The device part number as it is displayed in the
programmer's device list
See also: ACI_SetDevice, ACI_GetDevice
4.6.3.4
ACI_Layer_Params
typedef struct tagACI_Layer_Params
{
UINT
Size;
//
UINT
BufferNumber;
//
buffer number is 0
UINT
LayerNumber;
//
number is 0
DWORD LayerSizeLow;
//
DWORD LayerSizeHigh;
//
DWORD DeviceStartAddrLow;
//
layer
DWORD DeviceStartAddrHigh;
//
this layer
DWORD DeviceEndAddrLow;
//
layer
DWORD DeviceEndAddrHigh;
//
layer
DWORD DeviceBufStartAddrLow; //
in buffer for this layer
DWORD DeviceBufStartAddrHigh; //
in buffer for this layer
UINT
UnitSize;
//
BOOL
FixedSize;
//
ACI_ReallocBuffer()
CHAR
BufferName[64];
//
CHAR
LayerName[64];
//
UINT
NumBuffers;
//
UINT
NumLayers;
//
} ACI_Layer_Params;
(in)
(in)
Size of structure, in bytes
Number of buffer of interest, the first
(in)
Number of layer of interest, the first layer
(out) Low 32 bits of layer size, in bytes
(out) High 32 bits of layer size, in bytes
(out) Low 32 bits of device start address for this
(out) High 32 bits of device start address for
(out) Low 32 bits of device end address for this
(out) High 32 bits of device end address for this
(out) Low 32 bits of device memory start address
(out) High 32 bits of device memory start address
(out) Size of layer unit, in bits (8, 16 or 32)
(out) Size of layer cannot be changed with
(out)
(out)
(out)
(out)
Buffer name
Layer name, cannot be changed
Total number of currently allocated buffers
Total number of layers in a buffer
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
143
BufferNumber
The ordinal number of the memory buffer, content of which is required by
the ACI_GetLayer function. Numbers of ChipProg memory buffers begin
from #0.
LayerNumber
The ordinal number of the layer in the memory buffer, the content of which
is required by the ACI_GetLayer function. The layer numbers begins from
#0.
LayerSizeLow,
LayerSizeHigh
Here the function returns the range of the memory layer's addresses in
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.
DeviceEndAddrLow,
DeviceEndAddrHigh
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
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.
FixedSize
This flag, if TRUE, disables resizing the memory layer by the
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 predefined device-specific value that is the same for all memory buffers.
See also: ACI_GetLayer
4.6.3.5
ACI_Buffer_Params
typedef struct tagACI_Buffer_Params
© 2015 Phyton, Inc. Microsystems and Development Tools
144
ChipProg Device Programmers
{
UINT
DWORD
DWORD
Size;
Layer0SizeLow;
Layer0SizeHigh;
supported by programmer.
LPCSTR BufferName;
UINT
BufferNumber;
UINT
NumBuffers;
UINT
NumLayers;
} ACI_Buffer_Params;
// (in) Size of structure, in bytes
// (in/out) Low 32 bits of layer 0 size, in bytes
// (in/out) High 32 bits of layer 0 size, in bytes
//
Layer size is rounded up to a nearest value
//
//
//
//
//
(in) Buffer name
For ACI_CreateBuffer(): out: Created buffer number
For ACI_ReallocBuffer(): in: Buffer number to realloc
(out) Total number of currently allocated buffers
(out) Total number of layers in a buffer
Layer0SizeLow,
Layer0SizeHigh
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
fixed sizes only (see the list on the picture below). Any intermediate value
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.
BufferName
Since it is used with the ACI_CreateBuffer function this structure member
represents the name of the buffer that will be created. If used with the
ACI_ReallocBuffer function will be ignored.
BufferNumber
After calling the ACI_CreateBuffer function this structure member returns
the created buffer's number. After calling the ACI_ReallocBuffer function the number of the buffer, size of which should be changed (re-allocate).
NumBuffers
This structure member represents the current number of memory buffers
being opened.
NumLayers
This structure member represents the number of layers in memory
buffers. This value is the same for all opened buffers.
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
145
See also: ACI_CreateBuffer, ACI_ReallocBuffer
4.6.3.6
ACI_Memory_Params
typedef struct tagACI_Memory_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 AddressLow;
// (in) Low 32 bits of address, in layer units (natural to
device address)
DWORD AddressHigh;
// (in) High 32 bits of address, in layer units (natural
to device address)
PVOID Data;
// (in || out) Buffer to data to read to or write from
DWORD DataSize;
// (in) Size of data to read or write, in layer units,
max. 16 MB (0x1000000)
DWORD FillValue;
// (in) Value to fill buffer with, used by ACI_FillLayer()
only
} 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.
© 2015 Phyton, Inc. Microsystems and Development Tools
146
ChipProg Device Programmers
The layer numerical order begins from zero.
AddressLow,
AddressHigh
The start address in the memory layer to read from or to write into
represented in the units specified by the chosen device manufacturer - Bytes,
Words, Double Words. This structure member is ignored in case of use with
the ACI_FillLayer function.
Data
Since these are used with different ACI functions this structure member has
different meanings.In case of use with the ACI_ReadLayer function it
represents the pointer to the data read out from the ChipProg buffer's layer. In
case of use with the ACI_WriteLayer - the pointer to the data to be written to
the ChipProg buffer's layer. The Data is ignored if it is used with the
ACI_FillLayer function.
DataSize
This structure member represents the data format given in memory units
specified by the device manufacturer (Bytes, Words or Double Words). The
program ignores the DataSize if it is used with the ACI_FillLayer function.
FillValue
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
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.
See also: ACI_ReadLayer, ACI_WriteLayer, ACI_FillLayer
4.6.3.7
ACI_Programming_Params
typedef struct tagACI_Programming_Params
{
UINT
Size;
// (in)
BOOL
InsertTest;
// (in ||
BOOL
CheckDeviceId;
// (in ||
BOOL
ReverseBytesOrder;
// (in ||
BOOL
BlankCheckBeforeProgram; // (in ||
programming
BOOL
VerifyAfterProgram;
// (in ||
BOOL
VerifyAfterRead;
// (in ||
BOOL
SplitData;
// (in ||
BOOL
DeviceAutoDetect;
// (in ||
all of the programmers provide this feature)
BOOL
DialogBoxOnError;
// (in ||
UINT
AutoDetectAction;
// (in ||
autodetect or 'Start' button, see ACI_AD_xxx
DWORD DeviceStartAddrLow;
// (in ||
for programming operation
DWORD DeviceStartAddrHigh;
// (in ||
for programming operation
DWORD DeviceEndAddrLow;
// (in ||
for programming operation
out)
out)
out)
out)
Size of structure, in bytes
Test if device is attached
Check device identifier
Reverse bytes order in buffer
Perform blank check before
out)
out)
out)
out)
Verify after programming
Verify after read
Split data: see ACI_SP_xxx constants
Auto detect device in socket (not
out) On error, display dialog box
out) Action to perform on device
constants
out) Low 32 bits of device start address
out) High 32 bits of device start address
out) Low 32 bits of device end address
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
147
DWORD DeviceEndAddrHigh;
// (in || out) High 32 bits of device end address
for programming operation
DWORD DeviceBufStartAddrLow;
// (in || out) Low 32 bits of device memory start
address in buffer for programming operation
DWORD DeviceBufStartAddrHigh;
// (in || out) High 32 bits of device memory start
address in buffer for programming operation
} ACI_Programming_Params;
InsertTest
This is the command to check the device insertion before starting any
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.
ReverseBytesOrder
This is the command to reverse the byte order in 16-bit words when
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
Program command.
ram
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.
SplitData
This is the command to split data in accordance with the value of the constants
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.
DeviceAutoDetect
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
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.
DialogBoxOnError
If this structure member is TRUE then any error that occurs in any programming
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
value
AutoDetectAction
What to do (action)
ACI_AD_EXEC_FUNC Launch the programming operation (function) currently highlighted
TION
in the Program Manager tab.
ACI_AD_EXEC_AUT
O
Launch a batch of single operations programmed in the Auto
Programming dialog.
ACI_AD_EXEC_SCRI Perform the script specified in the Script File dialog.
PT
© 2015 Phyton, Inc. Microsystems and Development Tools
148
ChipProg Device Programmers
ACI_AD_DO_NOTHIN Do not act (ignore). Then it is possible to resume operations only by
G
executing either the ACI_ExecFunction or ACI_StartFunction.
DeviceStartAddrLow,
DeviceStartAddrHigh
DeviceEndAddrLow,
DeviceEndAddrHigh
This structure member defines a physical start address of the device to perform
a specified programming operation (function). For example: "...read the chip
content beginning at the address 7Fh". Not all the functions use this parameter.
This parameter defines a physical end address, beyond which a specified
programming operation (function) will not proceed. For example: "...program the
chip until the address 0FFh". Not all the programmer 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
programmer functions use this parameter.
gh
This is the bit definition from the aciprog.h header file:
* // ACI Data Split defines
#define ACI_SP_NONE
#define ACI_SP_EVEN_BYTE
#define ACI_SP_ODD_BYTE
#define ACI_SP_BYTE_0
#define ACI_SP_BYTE_1
#define ACI_SP_BYTE_2
#define ACI_SP_BYTE_3
** // ACI Device Auto-Detect or 'Start'
#define ACI_AD_EXEC_FUNCTION
#define ACI_AD_EXEC_AUTO
#define ACI_AD_EXEC_SCRIPT
dialog
#define ACI_AD_DO_NOTHING
0
1
2
3
4
5
6
button action
0 // Execute the function currently selected in the list
1 // Execute the Auto Programming command
2 // Execute the script chosen in the programmer Script File
3 // Do nothing
See also: ACI_SetProgrammingParams, ACI_GetProgrammingParams
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
© 2015 Phyton, Inc. Microsystems and Development Tools
ChipProg Control Options
UINT
OptionType;
BOOL
ReadOnly;
union
{
LONG
LongValue;
FLOAT FloatValue;
LPSTR String;
ULONG CheckBoxesValue;
UINT
StateIndex;
LPBYTE Bitstream;
ACI_PO_BITSTREAM option
} Value;
UINT
VSize;
149
// (out) Option type: see ACI_PO_xxx constants
// (out) Option is read-only
// (in || out) Option value
//
//
//
//
//
//
(in
(in
(in
(in
(in
(in
||
||
||
||
||
||
out)
out)
out)
out)
out)
out)
Value for ACI_PO_LONG option
Value for ACI_PO_FLOAT option
Pointer to string for ACI_PO_STRING option
Value for ACI_PO_CHECKBOXES option
State index for ACI_PO_LIST option
Pointer to bitstream data for
// For ACI_SetProgOption():
//
in: Size of Bitstream if OptionType ==
ACI_PO_BITSTREAM
// For ACI_GetProgOption():
//
in: Size of buffer pointed by Bitstream if
OptionType == ACI_PO_BITSTREAM
//
in: Size of buffer pointed by String if OptionType
== ACI_PO_STRING
//
out: Size of buffer needed for storing Bitstream
data if OptionType == ACI_PO_BITSTREAM.
//
Set Value.Bitstream to NULL to get buffer size
without setting the bitstream data
//
out: Size of buffer needed for storing String if
OptionType == ACI_PO_STRING, including the terminating NULL character.
//
Set Value.String to NULL to get buffer size
without setting the string
UINT Mode;
// (in) For ACI_SetProgOption(): SEE ACI_PP_MODE_...
constants
} ACI_ProgOption_Params;
OptionName
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
the list name and the option name in the following way: ^ (For example, Configuration_bits^Generator. There are no restrictions
on use of uppercase and lowercase characters in the option names.
Units
After executing the ACI_GetProgOption function this structure member returns
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.
ListString
After executing the ACI_GetProgOption function for the ACI_PO_LIST - type
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.
OptionType
After executing the ACI_GetProgOption function this structure member returns
the option's presentation format - for example: integer, floating point, list,
bitstream, etc.. See the ACI_PO_xxx* constant description in the aciprog.h
© 2015 Phyton, Inc. Microsystems and Development Tools
150
ChipProg Device Programmers
header file below.
ReadOnly
Setting ReadOnly=TRUE disables modification of the option specified by the
ACI_GetProgOption function.
Use of this union depends on the ACI_PO_LONG* option type as it is shown in
the matrix below:
Option type
Use of the Value union
ACI_PO_LONG
The option is in the Value.LongValue
ACI_PO_FLOAT
The option is in the Value.FloatValue
ACI_PO_STRING
The option is represented as a string, the pointer on w hich
is in the Value.String. See the note below .
ACI_PO_CHECKBOXES
The option represents a 32-bit integer w ord, in w hich you
can individually toggle each bit that represents a particular
flag in the option setting dialog. The option is in the
Value.CheckBoxesValue. See, for example, the Fuse
setting dialog for the ATtiny45 MCU implemented as an array
of check boxes.
ACI_PO_LIST
It represents a list of alternative choices. Only one of them
can be selected at a time, so the parameter changes its
value in a range 0, 1, 2 to N. The option is in the
Value.CheckStateIndex. See, for example, the Oscillators
setting dialog for the PIC12F509 MCU implemented as an
alternatively chosen radio buttons
ACI_PO_BITSTREAM
Stream of bits. This option type is not in use yet but can be
used for future applications.
Value
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 Configure > Select device.
2. Insert a device of the selected type into the programmer socket or into the adapter socket.
3. a) Click the Check button on the main toolbar or
b) Double click on the Blank check function line in the Function list of the Program Manager
window or
c) Select the Blank check function line in the Function list of the Program Manager window and
click the Execute button or
d) Select the Main menu > Commands and click on the Blank check line
then wait for the message Checking … OK in the Program Manager window, or for the warning
message if the device is not blank
5.3.2
How to erase a device
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).
2. If the device is electrically erasable:
a) Click the Erase button on the main toolbar or
b) Double click on the Erase function line in the Function list of the Program Manager window
or
c) Select the Erase function line in the Function list of the Program Manager window and click
the Execute button or
d) Select the Main menu > Commands and click on the Erase line
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.
5.3.3
How to program a device
In order to program a blank device you need to perform a few consecutive operations:
load the file, that you want to write to the device;
edit the file (if necessary);
configure the device to be programmed (if necessary);
write the prepared information into the device and verify the programming.
© 2015 Phyton, Inc. Microsystems and Development Tools
168
5.3.3.1
ChipProg Device Programmers
How to load a file into a buffer
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.
5.3.3.2
How to edit information before programming
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.
5.3.3.3
How to configure the chosen device
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.
5.3.3.4
How to write information into the device
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
169
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.
5.3.4
How to read a device
There are several ways for reading the device content to an active buffer:
a) Click the Read button on the main toolbar or
b) Double click on the Read function line in the Function list of the Program Manager window or
c) Select the Read function line in the Function list of the Program Manager window and click
the Execute button or
d) Select the Main menu > Commands and click on the Read line
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.
5.3.5
How to verify programming
There are several ways for checking if the device was programmed correctly:
a) Click the Verify button on the main toolbar or
b) Double click on the Verify function line in the Function list of the Program Manager window
or
c) Select the Verify function line in the Function list of the Program Manager window and click
the Execute button or
d) Select the Main menu > Commands and click on the Verify line
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.
5.3.6
How to save data on a disc
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
© 2015 Phyton, Inc. Microsystems and Development Tools
170
ChipProg Device Programmers
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.
5.3.7
How to duplicate a device
1.
2.
3.
4.
5.
5.4
Insert the master device to be copied (duplicated) into the programmer socket.
Read it to an active buffer
Wait for the message Reading… OK in the Operation Progress box of the Program
Manager tab in the Program Manager window. Make sure the master device content is in a
current buffer.
Remove the master device from the socket and replace it with a blank device to be
programmed. If necessary, check to see if it is blank.
Program the device. If you need to make more than one copy of the master device repeat the
operations #4 and #5 as may times as necessary.
Programming NAND Flash memory
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.
5.4.1
NAND Flash memory architectures
The NAND Flash memory array comprises of the blocks of pages. Each block usually includes 16, 32,
64 and more pages. Conditionally, the NAND Flash devices can be divided in two groups: the "small
page" and "large page" devices. The "small page" size is 512 bytes for the 8-bit devices and 256 bytes
for the 16-bit devices; the "small page" NAND Flash memory devices' capacity varies from 128K to 512K
bits. The picture below shows the "small page" NAND Flash memory architecture of the
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
171
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
172
ChipProg Device Programmers
Read also about bad blocks in the NAND Flash memory devices.
5.4.1.1
Invalid blocks
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:
Skip Block method
Reserved Block Area method
Error Checking and Correction
The ChipProg programmers support all the methods above.
5.4.1.1.1.1 Skipping invalid 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;
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
173
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.
The programming algorithm works in the following way:
1) it splits blocks of the device in three areas: User Block Area, Block Reservoir and Reserved
Block Area;
2) it reads the Spare Area and builds the RBA map table with the following structure of the data
fields:
Field: RBA Marker Count Field Invalid Block Replaced Invalid Block
Block
Size: 2 байт а
2 байт а
2 байта
2 байта
2 байта
Replaced
Block
2 байта
.......
Invalid Block
.......
2 байта
Replaced
Block
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.
5.4.1.1.1.3 Error Checking and Correction
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.
5.4.1.1.2 Invalid block map
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:
© 2015 Phyton, Inc. Microsystems and Development Tools
174
ChipProg Device Programmers
For example above:
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.
5.4.1.2
Marking invalid blocks
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.
Memory organization
The marker address
in the Spare Area
8-bit array, page size - 512 Byte.
5
16-bit (word) array, page size - 512 Words.
0
8-bit array, page size - 2048 Byte.
0 or 5
16-bit (word) array, page size - 1024 Words
0
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
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
175
block #8 is invalid.
5.4.2
Programming NAND Flash devices by ChipProg
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
176
5.4.2.1
ChipProg Device Programmers
Access Mode
The Access Mode line, normally collapsed, can be expanded to invoke setting dialogs for one of the
following modes:
Invalid Block Management
Spare Area Usage
Guard Solid Area
Tolerant Verify Feature
Invalid Block Indication Option
5.4.2.1.1 Invalid Block Management
Here you can specify the algorithm of managing invalid blocks. Clicking the Invalid Block
Management menu line opens the pop-up dialog:
Select one of four options:
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
Block
Skip invalid blocks, put the Invalid block map in the block #0.
RBA (Reserved Block
Area)
Use the RBA algorithm
5.4.2.1.2 Spare Area Usage
Here you can specify of how to use the Spare Area. Clicking the Spare Area Usage menu line opens
the pop-up dialog:
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
177
Select one of three options:
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.
5.4.2.1.3 Guard Solid Area
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
© 2015 Phyton, Inc. Microsystems and Development Tools
178
ChipProg Device Programmers
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.
5.4.2.1.5 Invalid Block Indication Option
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':
5.4.2.2
Access Mode Parameters
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
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
179
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:
© 2015 Phyton, Inc. Microsystems and Development Tools
180
ChipProg Device Programmers
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
5.5
181
Multi- and Gang-programming
NOTE: All the statements below refer only to the ChipProg device programmer control via the
ChipProgUSB user interface and not in the remote mode via the Application Control
Interface.
ChipProg programmers can be launched in two programming modes:
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 ChipProgISG 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):
© 2015 Phyton, Inc. Microsystems and Development Tools
182
ChipProg Device Programmers
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.
5.5.1
The Program Manager Window
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 tab
The Options tab
The Statistics tab
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
5.5.1.1
183
The Program Manager tab
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.
5.5.1.2
The Options tab
The tab serves for setting all programming parameters and options for multi-programming mode.
Element of dialog
Buffer:
Description
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 8bit 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
© 2015 Phyton, Inc. Microsystems and Development Tools
184
ChipProg Device Programmers
several smaller files.
Options:
Device-Auto-Detect
If this box is checked then AutoProgramming will start immediately
after the ChipProg programmer has detected that the device is in the
programming socket.
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.
5.5.1.3
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.
The Statistics tab
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).
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
Element of dialog
Description
Clear statistics
This button resets the statistics..
Device Programming
Countdown
Enable countdown
Display message when
countdown value reaches
zero
Reset counters when
countdown value reaches
zero
185
Normally the Total counter increments after each Auto
Programming; the, Good and Bad counters also count up. The
ChipProgUSB reverses the counters to decrement their content (to
count down).
If the box is checked the ChipProgUSB will count the number of the
programmed devices down.
If the box is checked the ChipProgUSB will issue a warning when
the counter Total is zeroed.
If the box is checked the ChipProgUSB will reset all the counters
when the counter Total is zeroed.
Count only successfully
programmed devices
If the box is checked the ChipProgUSB will count only the
successfully programmed (Good). All other statistics will be
ignored.
Set initial countdown
value
Clicking on the button opens the box for entering a new Total
number that then will be decremented after each Auto
Programming.
© 2015 Phyton, Inc. Microsystems and Development Tools
186
5.6
ChipProg Device Programmers
In-System Programming
The ChipProg programmers generate all the signals necessary for programming devices installed in
the user's equipment (in-system). In order to program devices in-system the programmers connect to
the target via special adapters. When a device to be programmed is chosen, the ChipProgUSB
software displays a part number of the appropriate cable-adapter in the Device Information window.
The adapters.chm file includes wiring diagrams for all cable-adapters, that allows use of the adapters
made by customers themselves.
General requirements for connecting ChipProg programmers to the target system
Connections
1. Connections must be done in accordance to the adapter's wiring
diagram published in the adapters.chm file.
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.
2. The target gets power from a built-in or external power supply.
In this case the power output from the ChipProg should not be
connected with the target. The target system should be tolerant to
applying logical signals with the voltage levels exceeding the voltages
on the target.
NOTE! It is strictly prohibited to power the target from both the
programmer and built-in or external power supply simultaneously.
Electrical
characteristics of the
ChipProg signals
Max current load for the logical signals - 5 mA.
Max current load for the Vcc line - 80 mA.
Max current load for the Vpp line - 80 mA.
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
Operating with Programmers
187
Most embedded microcontrollers have different algorithms for the ISP procedure. See the following
topics regarding the ISP for popular microcontrollers:
Specifics of the in-system programming of the Microchip PICmicro
Specifics of the in-system programming of the Atmel AVR microcontrollers
Specifics of the in-system programming of the Atmel 8051 microcontrollers
6
References
6.1
Errors Messages
6.1.1
Error Load/ Save File
5005 "Error reading file"
5004 "CRC mismatch, loading terminated"
5003 "Invalid .HEX file format"
5043 "Address out of range"
5078 "End address should be greater than start address"
5151 "Invalid file format"
5007 "Error writing file"
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."
6.1.2
Error Addresses
5189 "Device start address (0x%LX) is too large.\nMax. address is 0x%LX."
5190 "Device end address (0x%LX) is too large.\nMax. address is 0x%LX."
5191 "Buffer start address is too large"
4024 "Address %s is out of range (%s...%s)"
© 2015 Phyton, Inc. Microsystems and Development Tools
188
ChipProg Device Programmers
4106 "File format does not allow addresses larger than 0xFFFFFFFF"
4019 "Address in device: 0x%08X, Address in buffer: 0x%08X\n"
6626 "Buffer start address must be even"
6627 "Device start address must be even"
6628 "Buffer end address must be odd"
8002 "Buffer named '%s' already exists. Please choose another name for the buffer."
6.1.3
Error sizes
6372 "Buffer size is too small for selected split data option"
6495 "Requested buffer size (%lu) is too large"
6441 "Size of file is greater than buffer size:\nAddr = %08lX, length = %u"
6431 "Source block does not fit into destination sub-level"
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"
5192 "Invalid number: '%s'"
.
6.1.4
Error command-line option
5329 "/%s command-line option: Device name required"
5330 "/%s command-line option: Missing file name"
5331 "/%s command-line option: Missing file format tag"
5332 "/%s command-line option: Invalid file format tag"
5333 "Command line: unable to determine the file format"
5334 "/%s command-line option: Invalid address value"
4104 "Command-line option /I ignored because /A option is not specified"
6.1.5
Error Programming option
6409 "Invalid programming function or menu name:\n'%s'"
6410 "Invalid programming option name '%s'"
6902 "Invalid '%s' programming option value string: '%s'"
© 2015 Phyton, Inc. Microsystems and Development Tools
References
189
6411 "Programming option '%s' cannot be changed"
6412 "Programming option string is too long.\nMax. length is %u."
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."
6.1.6
Error DLL
6499 "Cannot find bit resource with id 0x%X in DLL:\n'%s'"
6500 "Error handling bit resource with id 0x%X in DLL:\n'%s'"
6502 "Unable to find device '%s' in DLL:\n'%s'"
6.1.7
Error USB
4015 "USB device driver error 0x%04X in '%s'.\n\nCannot recover from this error, exiting.\n\nPlease check if
the programmer power is on. If yes, disconnect the USB cable from computer and connect it again, then restart
the %s shell."
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."
6.1.8
Error programmer hardware
6546 "Source area does not fit into destination address space"
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"
4006 "Attached programmers have duplicate serial number '%s'"
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."
© 2015 Phyton, Inc. Microsystems and Development Tools
190
ChipProg Device Programmers
4014 "ExecFunction() does not work in Gang mode"
4020 "%s reported hardware error 0x%X, error group 0x%X. If problem persists, please contact Phyton."
4000 "The attached programmer with id = %u is not supported"
4102 "Device programming countdown value is zero%s"
6.1.9
Error internal
6527 "Internal error:\nCORE() for %s %s returned NULL.\nPlease contact your %s distributor."
4025 "Internal Error: Unable to allocate %u bytes for the buffer. Please contact Phyton."
6.1.10 Error confiquration
6503 "No programmer configuration files found (prog.ini)"
5325 "The device type '%s %s' stored in configuration "
"or choosen from script file function 'SetDevice()' is not supported by %s.\n"
"The device '%s %s' will be selected.\n"
"Use 'Configure / Select device' to choose the device "
"you need to operate on."
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')."
6.1.11 Error device
5326 "Device selection error"
4018 "Device '%s' is not supported by the %s. Please choose another device."
6.1.12 Error check box
6852 "Error in check box option specification string: '=' expected"
6853 "Cannot find check box option string '%s'"
6.1.13 Error mix
5195 " Number of repetitions cannot be zero"
5206 "The 'View only' option is on; editing disabled. Click the 'View' button on toolbar to enable editing."
6501 "No power-on tests defined in:\n'%s'"
6903 "'%s' is a sub-menu name, not a function name"
© 2015 Phyton, Inc. Microsystems and Development Tools
References
191
6401 "No more occurences"
6387 "Invalid fill string"
5172 "Checksum = %08lX"
5311 "No more mismatches"
6.1.14 Warning
5338 "Warning: JEDEC file has no file CRC"
5339 "Warning: JEDEC file has invalid CRC"
6933 "Warning: no 'file end' record in file"
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; 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.
6.2.1
Operations with Expressions
The program supports all arithmetic and logical operations valid for the C language, as well as pointer
© 2015 Phyton, Inc. Microsystems and Development Tools
192
ChipProg Device Programmers
and address operations:
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
Greater than
>=
Greater than or equal to
==
Equal to
!=
Not equal to
&
Bitwise AND
^
Bitwise XOR
|
Bitwise OR
© 2015 Phyton, Inc. Microsystems and Development Tools
References
&&
Logical AND
||
Logical OR
=
Assignment
193
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.
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'.'.
6.2.3
Examples of Expressions
Examples of expresions
#test#i + #test#j 200
© 2015 Phyton, Inc. Microsystems and Development Tools
194
ChipProg Device Programmers
main
i + j 200
(a == b && a '3'
sptr -> Member1 -> a[i]
*p
*((char *)ptr)
6.3
Script Language
The program ChipProgUSB can execute so-called script files in a way similar to how DOS executes the
batch files.
The main objective of script files is to automate usage of the emulator. Using script files makes it
possible to load programs, set up breakpoints, start program execution, manipulate windows and
perform any actions available to you in automatic (batch) mode. It is also possible to display various
messages in the Console window or other special windows, to create user's custom menus, etc. There
is the option of displaying any graphical data in special windows.
The script language is similar to C: almost all C constructions are supported, except for structures,
conjunctives and pointers. However, there are some differences. There are also many built-in functions
available, such as printf(), sin() and strcpy().
The extension of script source file is .CMD.
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
Difference Between the Script Language and the C Language
Alphabetical List of Script Language Built-in Functions and Variables
6.3.1
Simple example
This example shows how to load a file and automatically program it and display the result.
#include
#include
void main()
© 2015 Phyton, Inc. Microsystems and Development Tools
References
195
{
LoadProgram("test.hex", F_HEX, SubLevel(0, 0));
file
to buffer 0, sub-level 0
InsertTest = TRUE;
if (ExecFunction("Auto Programming") == EF_OK)
{
if (ExecFunction("Verify", SubLevel(0, 0), 10) != EF_OK)
{
printf("Verify failed: %s", LastErrorMessage);
return;
}
printf("Verify ok.");
}
else
printf("Programming failed: %s", LastErrorMessage);
}
6.3.2
// load file "test.hex" that is an Intel HEX
//
// set testing of chip presence to "on"
// perform an automatic programming
// verify 10 times
// display error message if verify failed
// terminate script
// display Ok result
// display error message
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
6.3.3
Built-in Functions
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
You can use these built-in functions in the same way you use any function that you have defined.
Buffer access functions
Device programming control functions
Mathematical Functions
© 2015 Phyton, Inc. Microsystems and Development Tools
196
ChipProg Device Programmers
String Operation Functions
Character Operation Functions
Functions for File and Directory Operation
Stream File Functions
Formatted Input-Output Functions
Script File Manipulation Functions
Text Editor Functions
Control Functions
Windows Operation Functions and Other System Functions
Graphical Output Functions
I/O Stream Window Operation Functions
Event Wait Functions
Other Various Functions
Note. To get help on a function or variable, while editing the script source with the built-in
editor, point that function/variable name with the cursor and hit Alt+F1.
6.3.4
Built-in Variables
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
Text editor built-in variables:
InsertMode
CaseSensitive
WholeWords
RegularExpressions
BlockCol1
BlockCol2
BlockLine1
BlockLine2
BlockStatus
CurLine
CurCol
LastFoundString
Miscellaneous variables:
© 2015 Phyton, Inc. Microsystems and Development Tools
References
197
WorkFieldWidth
WorkFieldHeight
ApplName[]
DesktopName[]
SystemDir[]
errno
_fmode
MainWindowHandle
NumWindows
WindowHandles[]
SelectedString[]
LastMessageInt
LastMessageLong
6.3.5
Difference between the Script and the C Languages
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
© 2015 Phyton, Inc. Microsystems and Development Tools
198
ChipProg Device Programmers
variable declaration is not supported. For example,
int i = 0, j = 1; is supported, but
for (i = 0, j = 1; ...) is not supported.
•
User functions with a variable amount of parameters are not supported. However, there are many
system functions, such as printf, with a variable number of parameters.
•
Declaration of user function parameters such as void array[] is not supported. The system
functions such as memcpy, have such parameters.
•
Logical expressions are always fully computed. It is very important to remember it, as a situation
like
char array[10];
if (i < 10 && array[i] != 0)
array[i] = 1;
will cause an error at the execution stage, if i is greater than 9, because the expression of array[i] will be
computed. In a standard compiler such an expression is not computed, because the condition of i > 10
would cancel any further processing of the expression.
•
Constant expressions are always computed during execution. For example, int i = 10 * 22 will be
computed not during compilation, but during execution.
•
The const key word is absent.
•
Static variables cannot be declared inside functions.
But
•
•
•
•
•
Variables can be declared anywhere, not just in front of the first executed operator. For example:
void main()
{
GlobalVar = 0;
int i = 1;
// will be OK as in C++
}
Nested comments are allowed.
Expressions like array = "1234" are allowed.
Default parameter values in declared functions, as in C++, are allowed. For example, void func
(char array[],int index = 0);. Expressions can also serve as default values, for example void func(char
array[], int index = func1() + 1);.
Expressions in global variable initializers are allowed. For example:
float table[] = { sin(0), sin(0.1) };
void main()
{
...
}
6.3.6
Script Language Built-in Functions and Variables
The list below includes all the names of the script language built-in functions and variables:
AllProgOptionsDefault
API
ActivateWindow
AddButton
AddWatch
ApplName[]
© 2015 Phyton, Inc. Microsystems and Development Tools
References
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
© 2015 Phyton, Inc. Microsystems and Development Tools
199
200
ChipProg Device Programmers
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
© 2015 Phyton, Inc. Microsystems and Development Tools
References
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
© 2015 Phyton, Inc. Microsystems and Development Tools
201
202
ChipProg Device Programmers
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
© 2015 Phyton, Inc. Microsystems and Development Tools
References
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
© 2015 Phyton, Inc. Microsystems and Development Tools
203
204
ChipProg Device Programmers
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
© 2015 Phyton, Inc. Microsystems and Development Tools
References
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
© 2015 Phyton, Inc. Microsystems and Development Tools
205
206
6.4
ChipProg Device Programmers
In-System Programming for different devices
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:
Specific of the in-system programming of the Microchip PICmicro
Specific of the in-system programming of the Atmel AVR microcontrollers
Specific of the in-system programming of the Atmel 8051 microcontrollers
6.4.1
Specific of programming PICmicro
1. Most of the PIC microcontrollers produced by Microchip Technology Corporation require a special
HV ISP Programming Mode (High-Voltage in-System Programming Mode). In this mode a relatively
high voltage of 13V is applied to the MCLR device pin. The user's equipment to be programmed
should be designed in the way tolerating a 13V signal to be applied to the MCLR device pin - in
particular this pin should not be connected to the Vcc pin of the device.
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).
6.4.2
Specific of programming AVR microcontrollers
Microcontrollers of the Atmel AVR series can be programmed in-system being under a normal Vcc
voltage. Practically all AVR microcontrollers require clocking while they are under in-system
programming. ChipProg programmers are capable to send clocks to the target microcontroller but
sometimes the systems based on AVR microcontrollers have their own built-in clock generators.
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.
© 2015 Phyton, Inc. Microsystems and Development Tools
References
207
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 cableadapter 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).
6.4.3
Specific of programming Atmel 8051 microcontrollers
Microcontrollers of the Atmel 8051 family (AT89 series) can be programmed in-system being under a
normal Vcc voltage. Practically all these microcontrollers require clocking while they are under insystem programming. ChipProg programmers are capable to send clocks to the target microcontroller
but sometimes the systems based on the Atmel 8051 microcontrollers have their own built-in clock
generators.
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 cableadapter should be connected to an appropriate clock input pin of the target device.
© 2015 Phyton, Inc. Microsystems and Development Tools
208
ChipProg Device Programmers
Index
-AAbout
software version
65
Acceptable number of errors
Tolerant Verify Feature
180
Access mode
Device and Algorithm Parameters
176
Device Parameters
176
Access Mode Parameters
178
ACI 160, 163
DLL
123
External application
123
External control
123
ACI examples
158
ACI functions
ACI structures
125
ACI structures
ACI functions
140
Adapters
83
Adapters attachment
list
85
Adapters Connections List
83
Add Watch
dialog
121
Algorithm Parameters
71
Alphabetical List of Script Language Built-in Functions
and Variables
198
Angstrem SAV
81
Application Control Interface
ACI 123
ACI functions
123
ACI header
123
ACI structures
123
DLL
123
External application
123
External control
123
Programming automation
123
Application Control Interface exaples
158
ASCII Hex
81
Auto Programming
67
Auto-detect
device in a socket
166
Auto-detect device in a socket
166
Automatic Word Completion
AutoWatches
pane
119
AutoWatches pane
119
AVR microcontroller
206
115
-BBackspace unindents
59
Bad Block Management
176
Bad block map
Bad blocks
173
Invalid blocks
173
Bad blocks
172, 174
Binary image
81
Block Operations
116
Blocks
copying / moving
116
line blocks
116
non-persistent blocks
116
persistent
59
persistent blocks
116
standard blocks
116
vertical
59
vertical blocks
116
Buffer
10
Buffer Configuration
dialog
46
Buffer Dump
window
74
Buffers
dialog
45
memory allocation
45
-CCalculator
dialog
62
Check Blank
167
Checksum
50
ChipProg
main menu
39
ChipProg programmers
12
ChipProg-40
34
brief characteristics
22
bundle
21
hardware characteristics
23
© 2015 Phyton, Inc. Microsystems and Development Tools
Index
ChipProg-40
34
software characteristics
23
ChipProg-48
33
brief characteristics
20
bundle
19
hardware characteristics
20
software characteristics
20
ChipProg-481
32
brief characteristics
15, 17
bundle
14
hardware characteristics
15
software characteristics
15
ChipProg-G4
hardware characteristics
18
ChipProg-G41
17, 33
bundle
16
software characteristics
18
ChipProg-ISP
35
brief characteristics
26
bundle
24
hardware characteristics
27
software characteristics
27
CLI 11
Colors
56
tab
56
Command line
11, 160
Command Line Interface
11
Command Line Keys
92, 94
Command Line Mode
11
Command Line Options
94
Command Line Parameters
94
Commands
menu
62
Commands Menu
62
Condensed Mode
114
Condensed Mode Setup
dialog
114
Configurating Editor
dialog
59
Configuration
44
buffer
46
editor Options
44
environment
44
Configuration Files
41
Configuration Menu
44
Configure the device to be programmed
Configuring a Buffer
dialog
75
Confirm Replace
dialog
112
Console
window
86
Window Console
Contact Information
209
86
37
-DDefine Font
55
Define key
57
Definitions
adapter
9
buffer
9
memory buffer
9
sub-level
9
Description of Script Language
195
Detect
device in a socket
166
Device
set into a socket
166
Device and Algorithm Parameters
window
71
Device Information
window
83
Device Parameters
71
Device programmer ChipProg-481
14
Device serialization
48
Difference Between the Script Language and the C
Language
197
Discard device
48
Discard serial numbers
48
Display from address
dialog
78
Display from Line Number
dialog
116
Display Watches Options
dialog
120
DLL
160, 163
Drivers
USB
31
Duplicate a device
170
-E168
© 2015 Phyton, Inc. Microsystems and Development Tools
ECC
173
ECC frame
180
210
ChipProg Device Programmers
Edit Information to be programmed
168
Edit Key Command
dialog
61
Editor Key Mapping
tab
61
Editor window
108
Environment
dialog
55
Erase
167
Error Checking and Correction
173, 180
Even byte
69
Examples of ACI use
158
Examples of Expressions
193
Expressions
191
-FFile format
81
File Menu
overview
40
Fonts
55
tab
55
-GGang
16
Gang machine
16
Gang programmer
16
General Editor
settings
59
Guard Solid Area
177
GUI 38
How to start a script file
How to write a script file
-II/O Stream
window
122
ICP
9
Insert DIP in socket
166
Install ChipProg
29
Install the ChipProg Software
29
Installing the USB Drivers
31
In-System programming
186, 206
Introduction
9
Invalid block
Array
172
Spare area
172
Invalid Block Indication
IB displaying
178
Invalid Block Management
176
Invalid block map
173
Invalid blocks
ECC
172
Error Checking and Correction
172
Reserved Block Area method
172
Skip Block method
172
ISP
ISP HV Mode
9
ISP Mode
9
-JJEDEC
-HHelp
menu
65
On-line
36
Highlight
multi-line Comments
59
Highlight Active Tabs
58
Highlighting
Syntax
59, 115
History file
41
Holtek OTR
81
Hot Keys
57
How to Get On-line Help
36
117
107
81
-LLabVIEW
160, 163
List
Adapters connections
Load file
dialog
80
Load session
41
Load the file into the buffer
Log file
52
83
168
© 2015 Phyton, Inc. Microsystems and Development Tools
Index
NAND Flash programming
Access mode
175
Device and Algorithm Parameters
Device Parameters
175
Numbers
193
-MMain menu
commands
39
Main menu bar
39
Mapping
hot keys
57
Marking bad blocks
174
MCS-51 microcontroller
207
Memory Dump Window Setup
dialog
76
Memory Blocks
operations
78
Menu
Project
42
View
41
Menu File
40
load file
40
save file
40
Menu Help
65
Menu Script
63
Message box
always display
58
Messages
tab
58
Microchip PICmicro microcontroller
Miscellaneous Settings
58
Modify Address
dialog
78
Modify Memory
dialog
78
Motorola S-record
81
Multi-File Search Results
dialog
113
Multi-programming mode
181
175
-O-
206
-NNAND
170
NAND Flash
170
Block
170
Large page
170
NAND Flash architecture
170
Small page
170
NAND Flash memory
Programming NAND devices
170
© 2015 Phyton, Inc. Microsystems and Development Tools
Odd byte
69
On-line Help
36
On-the-Fly
On-the-Fly Command Line Options
On-the-Fly Options
98
On-the-Fly Control
Example
103
On-the-Fly Control utility
97
On-the-Fly utility return codes
return codes
102
Open Project
43
dialog
43
Operations with Expressions
191
Operations with Memory Blocks
78
Options
dialog
53
Options&split
dialog
68, 183
Overview
User Interface
38
-PPackages/Adapters
45
POF
81
Preferances
53
PRG
81
Program a Device
167
Program Manager
66
Auto Programming
66, 183
dialog
66, 183
Operation Progress
66, 183
window
65, 182
Programmer
9
ChipProg-40
34
ChipProg-48
33
ChipProg-481
32
ChipProg-G41
33
ChipProg-ISP
35
98
211
212
ChipProg Device Programmers
Programmer
9
work with
166
Programmers
ChipProgUSB
12
Programmers ChipProg-40
21
Programmers ChipProg-48
19
Programmers ChipProg-481
14
Programmers ChipProg-G41
16
Programmers ChipProg-ISP
24
Programming
check blank
167
configure the device
168
duplicate a device
170
edit Information
168
erase
167
load the file
168
program a Device
167
program functions
167
read a device
169
save the data
169
verify
169
write Information into the Device
168
Programming adapters
83
Programming automation
123
Programming characteristics
AVR microcontroller
206
MCS-51 microcontroller
207
PICmicro microcontroller
206
Programming in target board
186, 206
Project
91
Project Menu
42
Project options
42, 91
dialog
42
Project Repository
dialog
43
Projects
91
-QQuick Start
29
Quick Watch
enabled
58
Quick Watch Function
-RRead a Device
169
116
Regular Expressions
search for
113
Remote control
92
Replace Text
dialog
111
Repository
43
Reserved Block Area
172
Reserved Block Area Parameters
RBA
180
RBA parameters
180
Reserved Block Area
180
Run ChipProg
11
-SSave file from buffer
dialog
82
Save session
41
Save the data read out from a device
169
Script
105, 194
menu
63
Script Files
105, 194
dialog
105
Script Language Built-in Functions
195
Script Language Built-in Variables
196
Script source window
open
105
Search for Regular Expressions
113
Search for Text
dialog
110
Search mask
45
Select color
56
Select device
45
dialog
45
Serial number
48
Serialization
49
Serialization, Checksum, Log file
dialog
47
Set device into a socket
166
Set/Retrieve Bookmark
dialog
114
Signature String
51
Simple example of a script file
194
Skip Block method
Bad blocks
172
Invalid blocks
172
Skipping invalid blocks
172
Solid Area
177
© 2015 Phyton, Inc. Microsystems and Development Tools
Index
overview
Solid Area Parameters
Number of Blocks
179
Start Block
179
Sounds
53
Spare Area Usage
SpareArea
176
Split data
69
Standard/Extended Intel HEX
Statistics
dialog
70, 184
Sub-layer
additional
47
main
46
Sub-Layer 'Code'
46
Sub-layer 'ID location'
47
Support
36
Syntax Highlighting
115
System Requirements
11
-V81
Verify programming
View
41
View Menu
41
169
-W-
-TTab Size
59
Technical Support
36
Terminology
9
Terminology and Definitions
Text Edit
109
Tolerant Verify Feature
Tolerant Verify
178
Toolbar
tab
57
38
9
-UUndo 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
© 2015 Phyton, Inc. Microsystems and Development Tools
Watches
window
119
Watches Window
add Watch
121
display Watches Options
120
Window
menu
64
Menu Window
64
Window Device Information
83
Window Dump Setup
dialog
76
Window Editor
108
Window I/O Stream
122
Window Program Manager
65, 182
Window User
121
Window Watches
119
Windows
65
Word Completion
115
Work with Programmer
166
Write Information into the Device
168
213
Back Cover