Presto en
Presto en
Reference Manual
ASIX s.r.o.
Na Popelce 38/17
150 00 Prague
Czech Republic
www.asix.net
ASIX s.r.o. reserves the right to make changes to this document, the
latest version of which can be found on the Internet.
ASIX s.r.o. renounces responsibility for any damage caused by the use
of ASIX s.r.o. products.
2.3 Quick Start 11 MSP430 with TEST pin without SBW interface 20
12 HPR1V2 96
12.1 Usage 96
12.2 HPR1V2 schematics 97
12.3 Technical specification 97
13 HPRAVR 98
13.1 Usage 98
14 Document history 99
Abbreviations & Terms Used
1 HVP (High Voltage Programming) is a
programming mode in which a higher
voltage than the power-supply voltage is
Introduction applied to pin P in the initial phase.
Page 10
• GO button for quick function selection
2 • more than one simultaneously running programmer
per PC, command line support, support for Windows
messages and for DLL
Page 11
• Cypress – PSoC microcontrollers.
2.4 Use • Serial EEPROM and Flash memory chips - I2C
(24LCxx), Microwire (93LCxx) and SPI (25Cxx).
PRESTO is a fast USB programmer suitable for
programming of a range of devices such as • Devices with JTAG interface, for which an SVF or an
microcontrollers, EEPROM or Flash serial memory chips, XSVF file can be created. These include CPLD (such as
CPLD, FPGA and many others. It is equipped with Xilinx XC95xx and CoolRunner), configuration memory
overcurrent protection at the VDD and VPP sources and for FPGA (such as Xilinx XC18Vxx and XCFxxS),
with overvoltage protection at the VDD pin. microcontrollers (such as ATmega128) and others.
This, however, is not an exhausting list of possibilities.
The programmer is powered via USB. It can feed the
Additional types are regularly supplemented in response
application to be programmed with a voltage of 5 V or it
to customers’ interest. New software versions are
can utilize an external application’s voltage of 2.7 V to
downloadable from the Internet for free.
5.5 V during programming.
The programmer may run under Windows XP or later or
under Linux in Wine.
2.4.2 USB Connection
PRESTO is controlled and powered through a USB port. It
2.4.1 Numerous Supported communicates in the Full-Speed mode and works with a
USB 2.0 port or a USB 1.1 port. This means that
Devices connecting the programmer is fast and easy, requiring
only a single cable.
The list of supported devices includes:
Page 12
2.4.5 Programming 2.4.8 Software
Interface The UP program is a basic software tool for working with
PRESTO, also compatible with the FORTE programmer.
Devices to be programmed are connected through a 8-pin
ISP connector, which is backward compatible with the Apart from standard commands, UP provides numerous
ICSP connector for PIC microcontrollers. above-standard functions, which broaden the
programmer’s applications and simplify its operation.
2.4.6 Power Supply From These include the possibility to define projects, existence
of adjustable parameters when running from the
Application command line providing for unattended programmer
operation in routine programming, environment
The VDD output can serve as an input using the power personalization incl. keyboard shortcuts, automatic
from the application for feeding the output buffers with a generation of serial numbers, etc.
voltage from 2.7 V to 5.5 V or it can become an output
and as such to provide voltage for the application. UP has been developed for Windows XP or later. It also
PRESTO can power applications with 5 V voltage. works under Linux (through Wine).
PRESTO detects three levels of external power supply Modified drivers developed by FTDI are used for
voltage: 3 V, 5 V and overvoltage. communication through USB.
PRESTO includes an overcurrent protection at pins P and Devices with the JTAG interface, for which an SVF or an
VDD. XSVF file can be created, can be programmed by means
of the JTAG SVF Player software.
The voltage range can be extend by two optional
adapters (HPR3V3, HPR1V2). The voltage at the VDD pin is permanently displayed in
UP for greater comfort and for monitoring of the
HPR3V3 is an optional accessory for PRESTO by which operation. The reset signal is conveniently controlled by a
PRESTO can power applications with 3.3 V voltage. single button.
HPR1V2 is an optional accessory for PRESTO which
extends input voltage of VDD pin in power from 2.4.9 Debugging
application mode from 1.2 V to 3.3 V.
PRESTO provides user with support for debugging ARM
microcontrollers through OpenOCD which is an open
2.4.7 User Interface source debugging system originally developed by
Dominic Rath. OpenOCD uses GDB for access to debug
The programmer status is clearly indicated by two LEDs.
functions. User can communicate with OpenOCD via a
ON-LINE (green LED) informs of connecting to USB while
command line and telnet.
ACTIVE (yellow LED) signals an activity of the
programming interface. The revision 717 of OpenOCD, which can be found on our
website in a program package together with the ARMINE
The GO button significantly increases the operator’s
program, is supported officially.
comfort in repeated programming. It starts programming
or other user-defined commands.
Page 13
2.5 Controls and
Connectors
Page 14
2.5.3 LED Indicators 2.6 Connecting to
ON-LINE Application
The programmer should be connected to an application to
The green LED informs you that PRESTO is connected to a be programmed with an ICSPCAB8 which is designed for
computer and that the computer and the programmer 2.54 mm spacing.
“understand each other”, i.e. drivers are installed and
work correctly.
In Linux, the green LED turns on upon connecting the
programmer to a PC even before the driver is correctly
installed.
ACTIVE
The yellow LED informs you that there is ongoing
communication between the programmer and a device.
Page 15
FCI marking Description which can also provide voltage for feeding the program
circuitry.
65039-036LF housing, 1 pin
65039-029LF housing, 1 x 8 pins
47217-000LF pin
2.6.3 Connecting
Table 2: ICSP cable - material list Procedure
The correct procedure for connecting the programmer:
A cable with a cross-section between 0.1 and 0.3 mm2 first connect PRESTO to the target application, then
may be used for making the custom connecting cable. connect PRESTO to the USB and finally turn on the
application’s power supply.
2.6.2 Programming in ZIF Please make sure that the GND of the application, the
programmer and the USB are interconnected before
Socket signals and the power are applied.
If programming of autonomous device is required, i.e.
those that are only later connected to an application, it is Important warning
possible by means of our optional ISP2ZIF accessory. If an application is powered by a switched
power source or is not grounded, a significant
voltage difference may appear between the
programmer’s ground and the application’s
ground. This could damage the programmer.
Fig. 5: ISP2ZIF
Page 16
Pin AVR AVR TPI 8051 JTAG Pin PSoC I2C SPI Microwire
P1 RESET RESET RESET USR P1 XRST CS CS
P2 P2
P3 VCC VCC VCC VDD P3 VDD VDD VDD VDD
P4 GND GND GND GND P4 VSS GND GND GND
P5 MOSI TPIDATA MOSI TDI P5 ISSP-data SDA SI DI
P6 SCK TPICLK SCK TCK P6 ISSP-SCLK SCL SCK CLK
P7 MISO MISO TDO P7 SO DO
P8 SS TMS P8 ORG (PRE)
Page 17
2) The whole device must be erased before 11) Programming of some new PIC microcontrollers in the
programming if code/main memory protection (CP) or HVP mode can cause that a warning message
data memory protection (CPD) is active. indicating overcurrent on VPP appears. If that
message does not indicate a real fault it could be
3) Some PIC devices cannot be erased with CP or CPD caused by different technology which has been used
active being powered by voltage less than 5 V. by Microchip for producing new devices, although
4) If a microcontroller has more than one power-supply they are from pristine families. These devices have
VDD or VSS pin, all of them must be connected slightly different parameters. It could be solved by
including the AVDD and AVSS pins. connecting capacitor of 1 nF between the VPP pin
and GND and resistor of 10 Ω in serial with VPP signal
5) PIC microcontrollers which require 3 V or lower power if the fault persists.
supply must be fed from external power supply
because PRESTO can only provide 5 V voltage. 12) When the MCU debug mode is enabled using a fuse,
the programmer cannot communicate with it.
6) Some PIC microcontrollers require voltage less than
13 V on the MCLR pin while the programmer can only
set 13 V voltage level on VPP. If such device has been
selected in UP, a warning message is displayed. It is
AVR Microcontrollers
recommended to limit voltage on the MCLR pin by an
external circuit (a potential divider or a Zener diode
and a resistor).
VPP Resistor
9 V 390 Ω
11 V 200 Ω
Page 18
4) After the device fuses are correctly set up, right-click
(i.e. using the right mouse button) inside the
Configuration window and choose Learn fuses.
AVR with TPI Interface (e.g.
This saves the fuses in the up.ini file or in the project
if used. This is necessary due to the fact that .hex
ATtiny10)
files for AVR microcontrollers themselves do not
contain configuration fuses. If a device is
programmed from the command line, a .ppr project
file containing saved fuses needs to be used.
5) Ticking the Open file with data memory
automatically option in the File menu loads data
for the data memory simultaneously with the code/
main memory data.
6) Use the EESAVE fuse if preservation of data memory
is required. If the EESAVE is active, choose Program
all except data memory for programming, Fig. 8: AVR microcontroller, TPI interface
otherwise a warning appears at this place (blank
1) These microcontrollers require voltage 12 V on the
check of data memory).
RESET pin during programming in the HVP mode
7) HPR3V3 is an optional accessory for programming while the programmer can only set 13 V voltage level
AVR microcontrollers which reguire 3.3 V voltage with on VPP. Therefore it is necessary to limit voltage on
PRESTO internal 5 V power supply. the RESET pin by an external circuit. There is no need
of any external circuit for the LVP mode which is
8) HPRAVR is an optional accessory for programming preferred.
AVR microcontrollers in applications with the
ISP10PIN standard connector on the device's side.
9) Some AVR devices have their ISP interface provided Atmel 8051
at different pins than the SPI interface. Further
information can be found in the device data sheet (in
the Serial Downloading section).
Page 19
1) The SS pin must be connected only for AT89LP2052 / 1) The way of entering in the programming mode
4052 / 213 / 214 / 216 / 428 / 828 / 6440 / 51RD2 / should be set in the PRESTO programmer settings
51ED2 / 51ID2 / 51RB2 / 51RC2 / 51IC2. window. Devices without an XRST pin can only use
initialization through the power-on reset (by power
2) AT89LP213, AT89LP214 and AT89LP216 have the supply). Devices with an XRST pin may use both
inverse reset logic. Thus an appropriate resistor must methods, but the method using the reset signal for
be pulled-up to VCC. initialization is better as it can be used in
3) PRESTO can not program devices containing the combination with an external power supply.
letter “C” in their name, however, it supports devices 2) Algorithm programming in the PRESTO
with “S” in their name, of which some are compatible programmer settings window should be set in
with the “C” types. For example, AT89C2051 is not accordance with the power supply cable used.
supported, but AT89S2051 is.
4) The software assumes that while programming
AT89LP52, the device’s POL pin is in logical 1. If POL MSP430 with TEST pin without
is in logical 0, the Inverse RESET option should be
activated in the program. For AT89LP51RD2, SBW interface
AT89LP51ED2, AT89LP51ID2, AT89LP51RB2,
AT89LP51RC2 and AT89LP51IC2 the software
assumes the POL pin in logical 0.
Cypress PSoC
Page 20
4) The safety fuse on the JTAG interface cannot be 5) The PRESTO programmer also erases the Segment A
blown by the PRESTO programmer. of the information memory with the
Erase Segment A option selected.
5) The HPR3V3 adapter should be used for feeding
these microcontrollers (without the SBW interface)
from PRESTO internal 5 V power supply.
TI (Chipcon) CCxxxx
<<( ti_chipcon.jpg | 10cm | TI (Chipcon) Ccxxxx
MSP430 / CC430 with SBW microcontroller )
interface
I2C Memory Chips
Page 21
SPI Memory Chips Microwire Memory Chips
1) Some devices have WP, HOLD or RESET pins. All of 1) Pin L determines the memory organization as either
them must be connected to the required logic level in 8-bits or 16-bits per word. The user selects the
such a way as not to block the communication or required organization in the UP program and PRESTO
device programming. then sets this pin to the corresponding logic level. If
this memory pin is firmly connected to the correct
2) Different manufacturers mark the memory chips' SPI logic level inside the application, pin L in the
pins with different names. Some of them are listed in programmer remains disconnected.
the following table:
2) If used in combination with the M93Sx6 memory chip,
Name on figure Atmel, SST ST the programmer's L pin must be connected to the
DI SI D device's PRE pin to serve for selecting the protection
DO SO Q register.
CLK SCK C
#CS CS, CE S JTAG Interface
3) The HPR3V3 adapter should be used for feeding SPI
memory chips from PRESTO internal 5 V power
supply.
Page 22
1) Pin P is configurable in the JTAG Player utility. It can
be set to keep the device in reset during
programming. This is needed for Atmega devices, for
2.7 Built-in Protection
example.
The PRESTO programmer provides internal overcurrent
2) The programmer always uses an external protection on the VPP and VDD pins and overvoltage
power-supply voltage for SVF or XSVF file protection on the VDD pin.
programming by means of the JTAG Player
utility. PRESTO is able to detect overcurrent on the VPP or VDD
pin and consequently to disable these pins but only when
3) ARM microcontrollers can be programmed and PRESTO is connected to a PC and the UP program has
debugged through JTAG interface. The ARMINE been launched. If overvoltage on VDD pin is detected a
program, which can be found on our website, serves warning message is displayed.
ARM microcontrollers programming. For more
information on ARM microcontrollers programming All I/Os have their 27 Ω resistors for better shortage
see the ARMINE program help. endurance. Inputs, where it is technically possible, are
equipped with Zener diodes for better overvoltage
4) PRESTO provides user with support for debugging endurance.
ARM microcontrollers through OpenOCD which is an
open source debugging system originally developed Any voltage peak higher than 7.5 V or any current higher
by Dominic Rath. OpenOCD uses GDB for access to than 20 mA on any I/O can cause damage of the
debug functions. User can communicate with programmer.
OpenOCD via a command line and telnet.
5) The revision 717 of OpenOCD, which can be found on Important warning
our website in a program package together with the PRESTO must be connected to a PC and the
ARMINE program, is supported officially. UP program must be launched for correct
function of internal protection.
6) The HPR1V2 adapter should be used if power supply
voltage lower than 2.7 V
7) AVR32 microcontrollers are to be programmed from
the UP software through the JTAG interface. The
device must not be reset during programming.
8) ATxmega microcontrollers with the JTAG interface
can be programmed from the UP software through
this interface. Pin P is not needed for programming.
The HPR3V3 adapter should be used for feeding
these devices from PRESTO internal 5 V power
supply.
Page 23
Maximum current drawn from I/ 4 mA
2.8 Technical Specifications O pin
Allowed input voltage on pins 0 to 5.5 V
Page 24
PRESTO complies with the RoHS directive.
2.8.3 Declaration of
Conformity
Page 25
3 Older supported Windows
versions
DRIVERS The driver contained in the UP installer is intended for
Windows 7 and later. For older Windows operating system
versions the driver has to be downloaded from
www.asix.net, from download section of the programmer
This chapter deals with driver installation and updates. and unpacked somewhere. After the programmer has
been connected, the operating system asks for the driver.
3.1 Driver Installation In "Found New Hardware" dialog the path to the
unpacked driver has to be set.
Page 26
3.1.2 Linux
The programmer can be operated under Wine in Linux.
Please find detailed installation instructions at separate
chapter.
Page 27
• Check your access rights to the corresponding files in /
4 dev/bus/usb (command ls -la /dev/bus/usb/).
Probably you will not have as a user the r+w access
rights for these files.
Usage under Linux • If you have not access rights and you are using udev:
Page 28
Note:
Library libftd2xx requires also access rights during
opening of the programmer or logic analyzer to all FTDI
serial devices to check that this is not the device it wants
to open.
Page 29
shortcut(s).
5 A previous program version (if it exists) does not have to
be removed before installing a newer version. Use of the
latest available version is recommended.
UP SOFTWARE Device Programming
5.3
UP is a name for control software designed for
The following sections describe the ways of programming
programmers made by ASIX. The program offers many
devices and things to pay special attention to.
advanced functions and enables an operator to control
the programming process either from the software
interface or remotely from the command line utilizing 5.3.1 Programmer
Windows messages and the DLL library. The program runs
under Windows or Linux (in Wine). Selection
Before a device can be programmed, the programmer
5.1 Abbreviations Used which will be used needs to be selected. Currently either
FORTE or PRESTO can be chosen.
Menu ➙ item bold italics followed by the arrow sign ➙ make Select the programmer by going to Options ➙ Select
references to particular items in menus, names of programmer or by double-clicking the programmer
tabs (cards) in a particular window. name displayed in the top right corner of the program
window. The following dialog window opens:
5.2 Installation
Installation is very easy. The installation program can be
downloaded from www.asix.tech/prg_up_en.html. Run the
installer (UP_xxx_EN.EXE, where xxx represents the
version number). There is no need to close other running
applications. The installation process takes only a few
seconds and requires you to press the Enter key a few
times. No modifications to the operating system take
place during installation, i.e. no computer restart is
needed and the program can be used immediately after
completion (by clicking its icon, for example). After the
first start, the program asks which language it should use
(English or Czech), which programmer to work with (e.g.
FORTE) and which port the programmer is connected to.
Page 30
If the programmer is connected to a computer and no
other program communicates with it, its serial number
gets displayed. You can test communication with the
selected programmer by pressing the Test... button.
5.3.2 Projects
It is recommended to use projects for device programing
Fig. 19: Device selection
in UP.
A filter is available for sorting devices by families and
Projects save all settings directly associated with
another one for Quick search. Just start typing an
particular device programming such as device type,
important part of the device's name in its field. This
required voltage, verification method, name of file
radically reduces the list of devices and speeds up the
containing the programming data and many other
whole selection process.
important pieces of information.
The Quick search filter allows use of the question mark as
A new project can be created by choosing File ➙ New
a wild-card for a part of the name, for example
proj ect.
PIC18?20.
This is followed by selecting a device type, a file with
There is also a list of 10 Recently used devices where it
programming data, settings of the device's configuration
is possible to select one.
word, applied voltage and other important parameters.
configuration word, applied voltage and other important
parameters.
5.3.4 Program settings
It is advisable to fine-tune the program behavior by
Once all required selections are made, save the project by adjusting the settings to suit your particular needs. This
choosing File ➙ Save proj ect... can be done by choosing Options ➙ Program settings.
An existing project can be opened by choosing File ➙ There is a great number of possible settings. If you are
Open proj ect.... not sure that all the settings are correct, use the Load
defaults button, which returns all the setting to the
5.3.3 Device Type original (default) state.
Page 31
Delay for VDD switching on/off
when supplied from
programmer
If you supply power to your application from the
programmer during programming and UP announces
overcurrent on VDD pin due to charging capacitors in the
application, it may be advisable to enlarge the switch on
time in Program settings... ➙ Programming ➙ Delay
for VDD switching on/off when supplied from
programmer. This might be necessary to give the
programmer enough time to charge the large capacitors
in the application.
At the same place it si possible to set the discharge time,
when the program announces, that the VDD was not fully
discharged.
Page 32
programming and verification of the whole memory
content. The function of this button is programmable and
Production Programming can be set up under the Options ➙ Key shortcuts menu
Settings in the GO button section.
If you want to perfectly verify your production to make The use of the GO button for programming should be
sure that the device is correctly programmed, you can accompanied by Options ➙ Program settings ➙
use the Program settings ➙ Programming ➙ Verify Programming ➙ Reload file before every
with two supply voltages option and to apply the programming option.
lowest and the highest voltage allowed for the device as
the limits. Some manufacturers recommend this option Options ➙ Program settings ➙ Programming ➙ Keep
for the production programming. However, it is only manually modified data causes that manually modified
available if the application is supplied with power from data are not rewritten using the automatical file reload
FORTE. before programming.
Program settings ➙ Panels ➙ Show mass production Options ➙ Program settings ➙ Programming ➙ Warn
counter in status bar could be a useful tool visibly before file load, when data in some editor have
monitoring numbers of successfully and unsuccessfully been changed causes that a warning appears if data
programmed devices. The counter can be reset in Device have been changed in any editors and automatic file
➙ Program ➙ Mass production ➙ Counter reset. reloading option is set.
Program settings ➙ Serial numbers ➙ Log to file can Options ➙ Program settings ➙ Programming ➙
be used as another convenient assistant. With this option Warn, when the loaded file has not changed causes
selected, information on the programming progress of that a warning appears if the file loaded before
individual devices gets recorded (logged) in a selected programming has not changed.
file.
The following option can also be useful: Program
If you wish to automatically include the serial number settings ➙ Programming ➙ After programming:
during production programming, you have a great range Close status window if there is no error.
of possibilities concerning what the number should look
There are special cases when developers do not have the
like and where it should be positioned in the memory. All
device's voltage supply pin available in an application
serial number settings can be found on the Serial
powered by an external source. In order to feed the
numbers tab.
programmer's output circuits, power supply from the
For further information on serial numbers see Serial programmer must be switched on in such a case and its
Numbers. voltage set at the same value as used in the application.
Yet as some voltage still “sneaks” into the programmer
from the application through the programming pins, the
Settings for Programming programmer “sees” that there is some voltage present
and refuses to activate its own output voltage. For such a
During Development case the following option is available: Program settings
➙ Others ➙ Allow internal and external supply
If you are frequently changing the content of the voltages collision.
programming data such as during application
development, for example, you can simplify your work by WARNING: Activating this option in other situations
using the GO button, which typically serves for could damage the programmer!
Page 33
Programmer Settings Fuses and Working with Them
Each time a particular programmer is selected (FORTE or Characteristics of the device (fuse) to be programmed
PRESTO), the programmer settings window is displayed can be set in the Configuration window. Changes in
allowing the user to set the voltage used and some other fuses can be saved by choosing File ➙ Save or File ➙
important programming options. Save proj ect....
If you are using an external power source for feeding the If the given .hex file of device includes definitions of its
application, the During programming option must not fuses, fuses are saved in it.
be checked.
Fuses are saved together with a project in the case of
Atmel microcontrollers and memory chips. If you are
working with these, right-click the Configuration window
once you have set the fuses and use the Learn fuses
option.
Page 34
want to save such a modification, choose File ➙ Save, programmed.
File ➙ Save as... or File ➙ Export data memory to
file.... Differential programming is useful for development during
which content of the programming data changes very
often, but the changes are tiny. As only changed cells are
Important warning overwritten, the differential programming is advisable for
It is recommended to check the programmer devices with a low number of writing cycles. It can also be
settings and fuse settings before starting the faster than the conventional re-writing of the whole
actual programming as an error in these memory content.
parameters could damage the device or even
the programmer.
Page 35
When the "Open this form after start" setting is enabled,
the form opens after program start or after project file
open, if it is used.
Page 36
one device memories (the serial number itself directly to
the program, the equipment address to the data memory,
and the serial number again to ID positions in order to be
able to read it from a locked device, for example).
Page 37
The numbers themselves are logged in case of calculated For example, b'10101010' means the same as h'AA',
serial numbers while their labels are logged in case of d'170' or just AA. 'A' means d'65' (ASCII character itself).
serial numbers taken from a file - see Format of Files with
Serial Numbers. Example record for PIC16F628A:
Except for the serial numbers also the date, time and the 2100 05 55 54 means to save data 05h, 55h, 54h in
result of the programming are writen to the file. For the addresses 00 to 02 of a data memory.
devices for which the revision reading is supported, the
revision number is also written to the file. The code/main memory which stores the serial number
can also be specified by the word “CODE.” or “PROG.” or
just “P.”.
Format of Files with Serial The data memory should be specified by the word
Numbers “DATA.” or “EE.” or just “E.”.
Files containing definitions of serial numbers are text files “ID” or just “I” is used for the memory of ID positions.
that can easily be created in third-party programs. *.SN or
These words are always followed by an address inside the
*.TXT are recommended file extensions.
specified memory.
A serial number record has the following form:
Example:
[comment] label: data record, data record, ...,
data record; EE.00 05 55 54 means to save data 05h, 55h, 54h in
addresses 00 to 02 of a data memory.
Semicolons are obligatory at the end of records.
Notes
• Comment is any string containing no colon ':'.
Comments are optional. If a colon cannot be found in • * There is no specifier for the configuration memory, it
the whole serial number record, the record is ignored would make no sense.
(understood as a comment).
dsPIC – addresses of 24-bit words are to be written in for
This is just a comment; all addresses (i.e. an internal dsPIC address of 24h is 12h
here). For a data (EEPROM) memory addresses of 16-bit
• White character is a space, tabulator or end of line words are to be written in, i.e. as they go one by one
(CR+LF). through the microcontroller.
• Label is a string identifying the serial number. This • Autonomous memory chips (I2C, SPI) have only the
string is compulsory. The label must not contain white code memory. If a non-existent memory is specified,
characters, colons or semicolons. an error is reported.
Data Record Example of File with Serial Numbers
A data record consists of an address and data items in a Comment at the beginning;
chain following this address. sn1: 0000 34 45 56 67,
2100 01 02 03 04; serial number 1
Each item can be written in hexadecimal form (e.g. 2100)
sn2: 0000 45 56 67 78, 2100 02 02 03 04;
or a numeral base in which the number is written in can
sn3: 0000 56 67 78 89, 2100 03 02 03 04;
be explicitly defined.
Page 38
note
Support Advice
Some devices contain a calibration memory containing New Flash devices with a calibration memory (such as
factory-preset device calibration. The loss of its content PIC12F629) contain so called 'bandgap bits', which form
can cause a fault in the device functionality. For this part of the device calibration. These bits can be found in
reason we have tools allowing users to work with the the configuration word and are erased too if the
calibration memory. command Device ➙ Erase ➙ Erase all(including
calibration) is executed!
Page 39
3) Toolbar underlined letter in the menu.
4) Currently selected programmer The menu bar consists of the following menus
(categories):
5) Currently selected device
6) Programmer settings window • File Menu
The status bar is a panel in the bottom part of the window File ➙ Open...
(see Program Controls). It presents information on the Keyboard shortcut: Ctrl+O
programmer, the device, changes to the file since the last
saving, etc. The program opens the Windows standard dialog listing
the files saved on the disc. The supported file formats are
Individual parts of the status bar react to double-clicking described in Appendix C: Intel-HEX File Format. Files with
and to the context menu that opens after right-clicking. extensions .hex or .a43 are loaded as Intel-HEX, others as
If you want to hide or re-display the status bar, choose binary. There are also filters available making it possible
Program settings ➙ Panels ➙ Display the status bar to open all files as .hex or as .bin.
in the lower part of the window.
File ➙ Open next file...
5.5.3 Menus The program imports another .hex or .bin file with an
optional offset. This function is useful if the user needs to
The following texts describe in detail individual items in load another file into device's memory. Files with
the UP software menus. extensions .hex or .a43 are loaded as Intel-HEX, others as
.bin.
Menu commands can be triggered with mouse by clicking
on a particular menu item or from the keyboard by For example, this command provides for merging of
pressing the key together with the shortcut, i.e. the several .hex files (e.g. bootloader + program).
Page 40
When in Open next file dialog the user selects See Program settings for details.
Autoload next time, the file will be loading after the
main data file automatically. Then the file is listed in the File ➙ Import data memory from
File ➙ Open next: menu. Using this menu item the
autoload can be disabled again. file...
Using the Windows standard dialog, the program reads
This way it is possible to autoload one file. and imports the content of a data (EEPROM) memory
saved in a different file. This allows the user to load a
File ➙ Open next: data memory if this has not been saved in the same file
When this menu item is enabled, it shows that the as the code/main memory (this concerns ATmega8
automatic load of next file is enabled. By clicking this microcontrollers, for example).
menu item it is possible to disable the automatic file
load. Important warning
Such a file, regardless of its content, is read from the zero
File ➙ Reload actual file address as if it contained only the data (EEPROM)
Keyboard shortcut: Ctrl+R memory. This means that a file generated normally by a
compiler cannot be correctly read using this command.
The program re-opens (i.e. re-reads from the disc) the
currently open file. This command is useful if you know File ➙ Open file with data memory
that the file on the disc has changed and you want to load
these changes into the program. automatically
With this option selected, the program automatically
If you are using Program settings ➙ Files ➙ Do
loads the file for the data memory alongside with loading
automatic check for newer versions of actual file,
the file for the code/main memory. This option is active
the program automatically notifies the user of a change in
only if a separate file is loaded for the data memory.
the currently open file and offers its reloading.
Page 41
such a file opens as well.
File ➙ Export to bin...
File ➙ Save project... This command saves binary data from the code/main
memory, from the data memory or from ID positions in a
Keyboard shortcut: Shift+Ctrl+S selected file.
Using the Windows standard dialog, the program saves 16 or 8 bits word width can be selected for the data to be
the current project under a new name. Saving of the saved.
project under the same name is done automatically as
well as saving the program settings, for example.
File ➙ Exit
In the Save project dialog using Load project Standard Windows keyboard shortcut: Alt+F4
unlocked option it is possible to set that the project will Keyboard shortcut: Alt+X
not be locked after load.
Warning
File ➙ Close project If closing of the program is forced by the Turn
Keyboard shortcut: Shift+Ctrl+W Computer Off command and the program
does not receive the user's confirmation, the
The program terminates the work with the currently open system closes it forcibly after some time
project, saves the project file on the disc and returns to without saving the open file or settings.
the state in which it was before the new project was
opened. If the program is currently working with the
hardware, it refuses all system's requests to
File ➙ Recent projects turn off and can be seen as “not responding”
This function remembers the last 10 opened projects. by the system.
Clicking the name of one of them opens the project.
This command closes the program. If the open file has
changed, the program prompts the user to save the
File ➙ Read calibration data... changes.
Using the Windows standard dialog, the program opens a
file with the calibration data and loads the data in the
memory. Edit Menu
File ➙ Save calibration data... Edit ➙ Fill with value...
Using the Windows standard dialog, the program creates
The program fills a memory location with a specified
a file with the device's calibration data previously read
value. This command is used especially for erasing (filling
from the device connected to the programmer. This
with ones) or zeroing (filling with zeros) a particular
calibration data can be reloaded using Read calibration
location. Yet it can be filled with any value or with random
data if the device gets erased in the meantime.
data.
For further information on the program's support of work
When the Fill with value... command is called, the
with the calibration memory see Calibration Memory
program presets the selected memory according to the
Support.
active window. If a memory location was highlighted
before calling this command, the program presets the
Page 42
marked location for filling in.
View ➙ Code/main memory
A memory location can be selected by holding the Shift This command opens or closes the code/main memory
key and clicking by mouse or moving by means of the HEX editor window. For more on HEX editors see HEX
cursor keys (arrows). For further information on Editor Windows.
highlighting a location see HEX Editor Windows.
View ➙ Data memory
Edit ➙ Text insert... This command opens or closes the data memory HEX
This command saves a text in ASCII or in hexadecimal editor window. For more on HEX editors see HEX Editor
format into a selected memory location. Ends of lines can Windows.
be coded as NULL, CR, LF or CR+LF characters.
View Menu This command displays the data memory HEX editor. If it
is already displayed, it moves it to the front (the editor
gets focus). For more on HEX editors see HEX Editor
Windows.
Page 43
View ➙ Display configuration
memory Device Menu
Keyboard shortcut: Alt+F12
Device ➙ Program
This command displays the configuration memory HEX Keyboard shortcut: Shift+F5
editor. If it is already displayed, it moves it to the front
(the editor gets focus). For more on HEX editors see HEX This command opens a sub-menu with programming
Editor Windows. options. Some items may be inaccessible for certain
device types.
View ➙ Display programmer form ▸ Program all
Keyboard shortcut: Ctrl+P
Keyboard shortcut: F5
The programmer form is always visible. This function
moves the programmer form to the front (the editor gets This command erases the device, checks the erasure,
focus). programs it and verifies the programming result in the
whole device. The Device ID check and the Code/Data
Protection check are performed prior to this operation.
The behavior of this command is influenced by the
program settings - see Program settings.
Page 44
▸ Program data memory performs complete programming instead, including
device erasure.
A keyboard shortcut can be assigned in Options ➙ Key
shortcuts Differential programming of a data memory should be
used for AVR microcontrollers if the user needs to
This command erases the data memory, checks the reprogram the data memory only without previously
erasure, programs and checks the programming result. erasing the device.
Page 45
▸ Read data memory ▸ Verify code/main memory
A keyboard shortcut can be assigned in Options ➙ Key A keyboard shortcut can be assigned in Options ➙ Key
shortcuts shortcuts
This command reads the data (EEPROM) memory. This command compares the content of the code/main
memory with the current content of code/main memory's
▸ Read configuration memory HEX editor.
A keyboard shortcut can be assigned in Options ➙ Key
shortcuts ▸ Verify data memory
A keyboard shortcut can be assigned in Options ➙ Key
This command reads the configuration memory and ID shortcuts
positions (if device contains them).
This command compares the content of the data memory
▸ Read address with the current content of data memory's HEX editor.
This function enables reading of data from user filled
address, it supports MCUs ARM via SWD interface. ▸ Verify configuration memory
A keyboard shortcut can be assigned in Options ➙ Key
Device ➙ Verify shortcuts
Keyboard shortcut: Shift+F7 This command compares the content of device's
configuration memory and ID positions (if device contains
This command opens a sub-menu with device memory
them) with settings in the Configuration window.
content verification options. Some of them may be not
available for certain device types
Device ➙ Erase
▸ Verify all Keyboard shortcut: Shift+F8
Keyboard shortcut: F7 This command opens a sub-menu with device memory
erasing options.
This command compares the content of all device
memories with the current content of HEX editors. Erasure verification (blank check) is automatically
performed after each erasing. This verification can be
▸ Verify all except data memory skipped by choosing Options ➙ Program settings ➙
A keyboard shortcut can be assigned in Options ➙ Key Programming ➙ Do not perform blank check after
shortcuts erasing. This can save time with some devices.
Page 46
▸ Erase code/main memory ▸ Blank check of data memory
A keyboard shortcut can be assigned in Options ➙ Key A keyboard shortcut can be assigned in Options ➙ Key
shortcuts shortcuts
This command erases the code/main memory. It cannot This command verifies whether the data memory is
be used if Code/Data Protection is active. correctly erased.
This command erases the data memory and verifies it. It This command verifies whether the configuration memory
cannot be used if Code/Data Protection is active. and ID positions (if device contains them) are correctly
erased.
Device ➙ Blank check
Keyboard shortcut: Shift+F9 Device ➙ Select device
Keyboard shortcut: F4
This command opens a sub-menu with device erasure
verification options. Some of them may be not available This dialog allows you to select a device type to be
for certain device types. programmed. Some memory types need to have their
data organization selected after the device type
▸ Blank check all selection.
Keyboard shortcut: F9 Only devices supported by the currently selected
programmer are displayed in the dialog window. If you
This command verifies whether the device is correctly
want to select a device not supported by the current
and completely erased.
programmer, select a different programmer type first.
▸ Blank check all except data memory For further information on selecting a device see Device
A keyboard shortcut can be assigned in Options ➙ Key Type Selection.
shortcuts
Device ➙ Device info
This command verifies whether the device except the
data memory has been correctly erased. Shows a window with information about connecting the
selected device to the programmer.
▸ Blank check of code/main memory
A keyboard shortcut can be assigned in Options ➙ Key
shortcuts
Page 47
▸ Keep manually modified data
Options Menu When this choice is active, the file load before
programming does not rewrite manually changed data.
Keyboard shortcut: Shift+F10 This choice affects only behavior of the file reload before
The Options menu holds all the possible settings of the programming.
UP program. There is a great number of setting
parameters. If you are not sure that all settings are ▸ Warn before file load, when data in
correct, you may use the Load defaults button, which some editor have been changed
returns all the settings to the initial (factory) state. When before load of the file before programming it is
found that data in some editor have been changed, the
Advice program shows a warning.
Program settings ➙ Load defaults button renews the state of
all settings on all tabs, i.e. even the color settings, for example. ▸ Warn, when the loaded file has not
changed
Options ➙ Program settings ➙ Program shows a warning, when the content of the
Programming loaded file has not changed from the previous
programming.
Keyboard shortcut: Shift+F10
This tab provides for setting all the general programming ▸ Program file locations only
parameters. The programming changes only the positions contained in
the file. First it reads the programmed device content,
Settings concerning the programmer and the then it reads the file content which replaces the data read
communication port are described in Programmer from the device. The addresses which are not contained
Selection. in the file hold the value read from the device. Finally the
A special Device ➙ Select device window is available for memory is programmed.
setting the device type.
▸ Ask before erasing
▸ Reload file before every programming With this option checked, the program asks for user
The program reads the current file with programming confirmation before erasing a device.
data from the disc before each and every request to
program a device if this option is checked. ▸ Ask before programming of OTP / Flash
If the use of serial numbers is also activated requesting
/ Code/Data Protection / differential
reading the current file prior to programming, then the A set of options determining which user confirmation
file is read first and only then is the current serial number dialogs will or will not be displayed by the program.
written. The program asks just once except the Code/Data
Protection programming. If the program needs to ask
the user for additional information before actual
programming (such as Device has Code or Data
Protection. Do you want to erase it entirely?), it
Page 48
does not ask for further programming confirmation after Both PRESTO and FORTE feature an overcurrent
answering the first dialog. protection. This means that a test for excessive current of
approximately 100 mA in power supply voltage is
▸ Display fuse warning messages performed after connecting power to the device and
expiration of the delay time set in Switch on.
The user can choose if warning messages should be
displayed for some fuses. It is recommended to leave this Similarly the delay time set in Discharge specifies how
option on. late after switching the power supply off a check should
be performed if no voltage is present any longer at the
▸ Except for programming: Close status pin.
window If a blocking capacitor is connected to the device's power
This option closes the status window if no error occurs supply pins (recommended), the voltage at the pin
during erasing, blank check, programming verification changes more slowly. This could cause problems during
and reading. programming, but they can be eliminated by prolonging
the charging and discharging time.
▸ After programming: Close status
Too long a time increases the risk of damaging the device
window if connected incorrectly while too short a time could
This option closes the status window if no error occurs cause programmer's circuits to still detect excessive
during programming and the subsequent verification. current flowing to the application's capacitors. A formula
for an approximate determination of the necessary time
▸ Beep after successful finishing can be found in Appendix B: Use of ICSP.
With this option active, the program calls up the standard
Windows system beep if the operation (such as erasing, ▸ Do not perform Device ID check before
programming, etc.) went smoothly. programming
This option switches off the Device ID check before
▸ Beep after unsuccessful finishing programming.
With this option active, the program calls up the standard
Windows system beep if an error or warning occurs during ▸ Do not perform blank check before cfg
the operation (such as erasing, programming, etc.).
word programming
▸ Turn off all sound for UP Most rewritable devices can overwrite the configuration
word without erasing the whole device content. Skipping
With this option on, the program does not produce any the blank check of the configuration word utilizes this
sounds. possibility, i.e. the program ignores the not erased word.
▸ Delay for VDD switching on/off when This option does not apply to the whole-device
programming in which the device is erased completely. It
supplied from programmer concerns only the configuration word and its overwriting.
This option is important for programming PCB-placed
devices via an ICSP cable. It determines the length of the
delay after voltage is connected to or disconnected from
a device.
Page 49
▸ Do not perform blank check after ▸ Verify with two supply voltages
erasing This option is available only for FORTE and only for the
This option speeds up the programming process and is internal power supply from the programmer. It allows you
useful especially for debugging. The danger is that an to perform the verification at two different power supply
incorrectly erased device is subsequently incorrectly voltages defined by the user.
programmed and the fault only gets detected later. On
Some device manufacturers recommend to verify the
the other hand, a device is erased incorrectly only once in
content after production programming at two different
several hundred attempts.
voltages corresponding with the approved range of the
device's power supply voltages.
▸ Do not erase device before
programming Options ➙ Program settings ➙
The device is not erased before programming.
Panels
▸ Do not erase data memory before its Keyboard shortcut: Shift+F10
programming This part of the Options menu allows you to alter the
This option only concerns programming of Atmel AVR application's appearance. The user can set where and
devices e.g. ATmega8. Data memory of this family how some control components are to be displayed.
devices does not require to be erased before
programming. If this option is not activated, whole device ▸ Display selected device on toolbar
will be erased before programming. In addition to the status bar, the selected device is also
displayed in the toolbar.
▸ Do not verify unprogrammed words at
the end of the memory ▸ Display selected programmer on
If there is a location at the end of the code/main memory toolbar
containing only default values, it is not verified. In addition to the status bar, the selected programmer is
also displayed in the toolbar.
This option speeds up the verification of the programmed
memory as the content of the “empty” memory at its end
usually does not matter. ▸ Display the status bar in the lower part
of the window
▸ Do not verify This option determines whether the status bar is to be
This option completely switches off the verification of a displayed or not.
programmed device. Such off-switching can radically
speed up the programming process during development. ▸ Display icons on toolbar buttons
This option must not be activated for production as Icons of individual tools are displayed in the toolbar.
correctness of the programmed content would not be
guaranteed.
Page 50
▸ Display descriptions on toolbar buttons ▸ File save style
Tool names are displayed next to individual tools in the The File save style panel offers the possibility not to
toolbar. always save all areas of all editors in the file, but rather
only some. UP then asks questions based on the saving
If the Descriptions on toolbar buttons to the right style settings before saving different project editors.
option is used, the total toolbar height is reduced to a
half. ▸ Automatically check for newer versions
▸ Show mass production counter in of actual file
This option helps especially in debugging a program. The
status bar program re-loads the file if it detects a change in the file
This option displays the mass production counter in the modification date.
status bar. The counter shows the number of devices
programmed and the number of devices programmed ▸ Check device type when loading .hex
successfully.
file
If you use the Count all actions option, the counter If the device type has been saved in the corresponding
includes all actions performed with the device (such as Intel-HEX file and it does not agree with the currently
reading, erasing, data memory programming, etc.). selected device type, the program points out this
Show values description displays explanatory notes to discrepancy.
individual counter items for easier understanding.
▸ Save device type into .hex file
If you want to exclude operations that triggered a The program adds one more line below the end of file
warning from the correct operations, use the If action command specifying the type of device for which the file
ends with warning assume as erroneous option. is being saved.
The choice Reset counters on proj ect open causes, Such a modified file does not comply with the Intel-HEX
that the counters are reset on any project file load, format, but most programs working with the Intel-HEX
including automatic project load during program start. format ignore this line.
Counter style allows you to choose whether the counter For further information about the Intel-HEX format see
should display the good/bad or good/total figures. Appendix C: Intel-HEX File Format.
The Counter reset, button can be used for zeroing the
counters while their initial values can be set in the Preset ▸ Warn when loaded HEX does not
counter values fields. contain CFG memory data
If the file does not contain configuration memory data
Options ➙ Program settings ➙ Files and the data are expected for the chosen device, a
Keyboard shortcut: Shift+F10 warning message is displayed.
This tab holds all the settings for reading data from and
saving data to files.
Page 51
▸ Warn when loaded HEX is not aligned ▸ Erase configuration memory before file
to word size. reading
If the file is not aligned to the word size of the memory of With this option activated, the configuration memory is
the device, a warning message is displayed. initialized before a file for code/main memory is loaded.
▸ Binary file loading and saving style If no fuses are saved in the file, it is recommended to
deactivate this option. At the beginning of the work, the
This panel provides for the setting of how .bin files are to user can set the content of the configuration memory and
be loaded and saved if a device with more than one byte then the fuses do not have to be set again if the file is
per word is selected. repeatedly loaded.
Available options are: the program always asks before
loading or saving a .bin file (Ask if to load/save .bin as ▸ Read data memory not from the file but
Big or Little Endian), or without asking, the program from the device
always loads files as Little Endian (Never ask, load/save If you want to make sure that the content of the data
as Little Endian) or as Big Endian (Never ask, load/ memory does not get overwritten, use the ▸ Program all
save as Big Endian). except data memory option. If, however the ▸ Program all
option is selected by accident (by unintended pressing of
▸ Save unused locations to .hex file the GO button, for example), the content of the data
If not all positions are saved, the final file is smaller, but it memory would be erased.
can cause difficulties as a cell is considered an “empty
For such cases, this option of Read data memory not
position” if it contains only ones (e.i. FFFh, 3FFFh, etc.).
from the file but from the device is available. The
Yet this could be a meaningful instruction (3FFFh is
program fills in the given location with the memory
Microchip PIC addlw -1 instruction, for example).
content of the device connected to the programmer.
As UP always saves files by larger blocks, (by eight or
sixteen bytes), the danger of losing an instruction by such Advice
saving is rather small in reality. This option could cause unexpected actions during work
with the programmer such as switching the application on
If you use memory initialization prior to loading a .hex file
or starting the UP program.
(which is recommended), even a program loaded from a
reduced .hex file will be correctly programmed as the
missing instructions are created “automatically”. ▸ Read ID positions not from the file but
from the device
▸ Clear code/main / data memory / ID If you want to preserve the content of the ID positions,
positions before file reading use the Read ID positions not from the file but from
This location is filled with ones and only then a file is the device option. The program fills in the given location
loaded. This way all positions that are not saved in the with the memory content of the device connected to the
.hex file get erased. programmer before starting the programming itself.
Page 52
Advice ▸ Code/main memory editor: show words
This option could cause unexpected actions during work as bytes
with the programmer such as switching the application on Individual words can be displayed by bytes in case of
or starting the UP program. devices with 16-bit-long words.
Page 53
▸ Configuration memory editor: show cfg ▸ Prepare S/N after programming
word instead of fuses This option causes that a serial number is prepared in the
This option is recommended for advanced users only. It is selected memory location after the device programming.
not saved in the UP configuration file for safety reasons.
▸ Serial number interval
Direct editing of fuses is understood as direct writing of a
This defines by what value the following serial number
configuration word value in the hexadecimal form.
will be larger or smaller.
When a “non-translatable” configuration word is entered,
the program leaves the unrecognized items unchanged ▸ Log to file
unless the user changes them him/herself. This typically By activating this option and by selecting a log file in the
concerns CP fuses having several bits but only two field, information about correctly and incorrectly
values. programmed devices as well as the programming time is
saved in the selected file.
Options ➙ Program settings ➙ Serial
numbers ▸ After project load set actual SN
Keyboard shortcut: Shift+F10 according to the last in the log
When this option is enabled, the last programmed SN is
For further information on working with serial numbers read from the log file and when the programming is
see Serial Numbers. logged as errorless the next SN is computed from the
read value else the last SN is set again.
▸ Serial numbers
The log file has to exist and the last record has to contain
This tab allows you to choose whether serial numbers are a SN.
to be used and if so then whether they should be read
from a file or computed and whether they should be This function can be useful when the serial numbers are
automatically written to the corresponding location. enabled and saving of UP project files is disabled, in such
a case the actual SN will not update in the project file on
▸ Prepare S/N before programming program close.
This option prepares a serial number in the selected
memory location before the actual device programming. ▸ Serial number length (the number of
characters)
▸ Find successor after programming This field determines how many characters the serial
Once one programming procedure is successfully number can hold. For example, 4 characters provide for
completed, the system proceeds to the following serial the serial numbers 0001 to 9999 in base 10 (i.e. in
number. If this option is not activated, it is still possible to decimal form).
proceed to the following number manually by clicking the
Next button on the Serial numbers tab – see Serial ▸ Number base
Numbers. This option defines the base of the serial number
characters. Base 10 and base 16 are available (i.e. the
decimal and hexadecimal forms).
Page 54
▸ Code as ASCII ▸ Fill with RETLW instruction
With this option activated, serial numbers are legible as Individual words of the serial number can be filled with
ASCII characters. RETLW instruction in Microchip microcontrollers. This
option is available only if the serial number is located in
▸ Initial serial number the code/main memory.
This field defines the initial value from which serial
numbers are to be computed. ▸ Characters per word
This panel determines how many serial number
▸ Next S/N characters form one word. Options of 1 to 4 characters
per word are available.
This field defines how the following serial number is to be
generated.
▸ Sequence
If The same is selected, the serial number does not This panel sets how individual serial number characters
change. If One interval higher is selected, the following and words are to be ordered.
number will be larger by the value of ▸ Serial number
interval while if One interval lower is selected, it will For example, if you have a base 10 serial number
reduce by that value. consisting of four characters organized as 2 characters
per word and you are working let's say with 1234 as the
The Generated LSFR option generates the numbers in a serial number, it will be saved in the following ways:
pseudo-random sequence. This means that the sequence
will always be the same if the same Initial serial HiLo hilo: 12 34
number and the same Serial numbers step is used. hilo HiLo: 34 12
LoHi lohi: 21 43
The Manual option shows a field, in the serial numbers lohi LoHi: 43 21
window, where the serial number in the hexadecimal form
can be entered before programming. When this option is
selected, the serial number can be entered using the /sn
Options ➙ Program settings ➙
commandline parameter as well. Checksum
▸ Destination ▸ Show checksum in status bar
After enabling of this setting the checksum of the code
This panel determines the memory location in which the
memory will be shown on the status bar.
serial numbers are to be stored. Code/main memory,
data memory and ID positions are available as Note: Doubleclick on the checksum value in the status bar
options. will cause the value recalculation.
Page 55
▸ Checksum algorithm ▸ Do not show warning if internal 5 V is
Using this choice the checksum calculation algorithm can switched on with 3.3 V device
be chosen.
Warning
Options ➙ Program settings ➙ High a voltage at the device can damage the
programmer or the application being
Others programmed.
Keyboard shortcut: Shift+F10
This option can be used to suppress the warning if a
▸ Update check settings higher voltage is switched on at the VDD output than the
value allowed for the particular device.
Here you can set if the program should ask for your
permission to connect to the Internet and check for If there is a voltage convertor integrated in the
updates upon each start or not. application between the device being programmed and
the programming interface, it might be useful to use this
For further information see Updating UP. option of programing at a higher voltage than what the
device has been designed for.
▸ Allow internal and external supply
This option is available only for PRESTO.
voltages collision
Warning ▸ Allow to change supply voltage level
A collision of power supply voltages can when it is on
damage the programmer or the application! In order to protect the application connected to FORTE
from damage, it is typically forbidden to change the
If you approve the collision of supply voltages, it allows output voltage level if the voltage is currently connected
the programmer to connect its internal voltage to pin to the application. After activating this option, the output
VDD at times when it can already see a voltage present voltage can be changed at any time within the range that
there. This could damage both the programmer and/or the device being programmed can cope with.
the application being programmed.
This option has been included for very specific cases. One
▸ Allow external supply voltage for
of them can be a request to program an application, devices requiring VPP before VCC.
which does not have any VDD pin. Then the application For some devices their manufacturer requires the
must be powered from its own source but the programming voltage to be connected before the supply
programmer's output buffers must be powered from the voltage of the device. When the external supply voltage is
USB. Yet as the voltage at the application's data signals used, it does not comply with the specification. In this
“sneaks” through the protective diodes into the output case a warning is displayed, which can be permanently
section of the programmer, the programmer can see a disabled using this setting.
certain small voltage present at VDD and refuses to
connect its own internal voltage to it. Disabling of this warning should be well considered. This
warning is displayed for devices for which the external
supply voltage violates the device manufacturer
specification.
Page 56
▸ When using Windows Messages Options ➙ Keyboard shortcuts...
disable other warnings Keyboard shortcut: Ctrl+K
When controlled via Windows Messages the UP software
Using this dialog window you can define or change
does not show any warnings, similarly like in quiet mode
keyboard shortcuts for most commands the programmer
on the commandline.
is capable of performing.
▸ Pin T during programming This window also provides for setting the required
With this setting it is possible to set a logical level during behavior of the GO button.
programming on the T pin. The selected logical level will
be visible on the pin only when the supply voltage is Options ➙ Lock project
available at the VDD pin of the programmer. After a project file has been opened, it is locked against
unintentional changes. To unlock or lock it again this
In case that the T pin is used for programming, this
function can be used.
function will not be available.
When in project save dialog it was selected to Load
This option is available only for FORTE.
project unlocked, after load it will not be locked.
▸ Pin T after programming
With this setting it is possible to set a logical level, which
will appear on the T pin after programming. The selected
Help Menu
logical level will be visible on the pin only when the
supply voltage is available at the VDD pin of the Help ➙ Help on program
programmer. Keyboard shortcut: F1
In case that the T pin is used for programming, this This command opens the help that you are are just
function will not be available. reading.
This option is available only for FORTE.
Help ➙ List of supported devices
Options ➙ Select programmer This command displays a list of devices currently
supported by the latest version of UP.
Settings concerning the programmer and the
communication port are described in Programmer
Selection.
Help ➙ Check Internet for updates
The program connects to the Internet and checks if you
Options ➙ Language selection... are using the latest version.
Keyboard shortcut: Ctrl+L
Help ➙ ASIX website
A file with a different language localization can be This command opens www.asix.cz, the website of ASIX
selected using the Windows standard dialog. This means s.r.o. where you can find the latest drivers and manuals
that one program installation can easily switch between for ASIX products.
different user-interface languages.
Page 57
Help ➙ About Settings Associated with RX600
Basic information on the program and a contact to Microcontrollers
technical support.
▸ Protect with ID
5.5.4 Programmer Settings If this option is active, it programs also the OSIS(ID) value
during Configuration memory programming, this way it is
Window possible to lock the device bootloader access.
All important settings concerning the programmer and
the applications to be programmed are displayed in the
▸ Allow using Configuration Clearing
programmer settings window. (erases TM, ID)
The Configuration Clearing erases a TM (Trusted Memory)
The window appearance changes in accordance with the
space. When the TM is in use, the use of this option
selected programmer and device.
should be well considered.
The use of this option is the only possibility how to erase
FORTE Programmer Settings OSIS(ID).
Page 58
Boot memory programming the device will be written back to the fuse.
Page 59
During programming Boot memory programming
If this option is checked, voltage from the programmer This allows to select the boot memory region to be
will be used during programming. programmed or checked.
Page 60
RESET signal switched off.
▸ End address
Data Memory (EEPROM) Editor
Sets the address range for work with the memory. End
address is the last address, where the selected operation Menu: View ➙ Display data memory
is executed.
Keyboard shortcut to open the window: F11
Keyboard shortcut to close the window: Esc
5.5.5 HEX Editor Windows
The data memory editor is used for displaying the content
HEX editors are used for displaying the content of a of the additional memory in some devices (typically
memory chip to be programmed. EEPROM).
Different colors are used in HEX editors to differentiate Not all devices have an additional memory. This means
between states of different cells to make it easy to see the editor may not be available for some devices.
which cells have been read from a file, which have been
successfully programmed, etc.
Colors may be user-assigned. This is especially Configuration Memory Editor
recommended for workstations with displays/screens
displaying only a limited number of colors. Menu: View ➙ Display configuration memory
Page 61
The configuration memory editor displays settings that
are to be programmed in a device, but are not part of any
of the above memory types.
5.6 Running UP from
The configuration memory editor content depends on the Command Line
selected device type. It is necessary to get acquainted
The UP program can alternatively be controlled from the
with the device's data sheet in order to get a closer
command line.
explanation of individual options in this window.
The program itself makes sure that it always runs in one
Not all devices need configuration data. This means the
instance only (with one class name). Should a second
editor may not be available for some devices.
instance (with the same class name) be started,
parameters from the command line are transferred to the
Tips for Advanced Users first instance for execution. Only the /p, /pdiff, /blank, /
Even though the configuration memory may be presented verify, /erase, /read, /noe, /eeonly, /noboot, /boot, /code, /
as a set of settings, in reality it is nothing more than a cfg parameters are transfered to the running instance. UP
memory that can be approached cell by cell. Due to this, can be started in more instances using different class
it is possible to display the memory in this way. name, see /wnd in List of Parameters.
This can be achieved by activating Options ➙ Program On the commandline it is recommended to use project
settings ➙ Editors ➙ Configuration memory editor: file, it contains important settings for programming. Some
show cfg word instead of fuses option or by double- project settings can be modified using commandline
clicking the configuration memory window. parameters. Commandline parameters have higher
priority than the settings from the project defined on the
The device's ID positions (do not mistake for Device ID) commandline.
can also be found in the configuration memory window. ID
positions can be programmed with values identifying the
device, such as the serial number, for example. ID 5.6.1 List of Parameters
positions can always be read - even if the device is locked UP.EXE [{/ask | /q | /q1}]
against reading. [{/e File_with_eepromm.hex | [/noe]}] [{/p |[/pdiff]| [/
According to the recommendation of the Microchip, ID o]} File.hex | File.ppr] [/df File.hex] [/part
positions should not be programmed with any value; only device_name] [/eeonly] [/erase][/w[nd]
a certain number of bits (typically 4) should carry data for up_window_class] [/cfg] [/devid] [/blank] [/verify File]
identification while other bits should be programmed with [/read File] [/s SN_programmer's][/progname name] [/
the default value. noboot] [/boot] [/code] [/getpartrev] [/sn
serial_number] [/conf file]
This can be achieved by activating Options ➙ Program
settings ➙ Editors ➙ Mask ID positions.... Legend
• Text presented here in bold is to be keyed in in the
command line exactly as printed here.
Page 62
• Text presented here in italics is to be replaced by the /p file To “program”. The keyed in file will be
corresponding parameter. For example, file_name programmed. The file can be a data file,
should be replaced with the real name of a file to be e.g. hex file, or UP project file. If the file
opened. name contains space(s), it must be
enclosed by inverted commas.
• Text in braces {} separated by the | sign represents a
selection of one of the presented options. For example, /pdiff file To “program the difference”. The keyed in
{ A | B } means “choose either A or B”. file gets programmed by the differential
algorithm. If the file name contains
• Text in square brackets [] presents an optional
space(s), it must be enclosed by inverted
parameter – it can be keyed in but does not have to.
commas.
• Text in quotation marks “ ” is a mnemonic.
/o file To open. The keyed in file opens. The file
/ask To be used linked with /p. The program can be a data file, e.g. hex file, or UP
always asks if it is to continue before project file. This parameter is optional. If
launching the actual device programming the file name contains space(s), it must be
even if the program settings specify not to enclosed by inverted commas.
ask. The dialog displays the selected device
type. /df file When there is UP project file specified after
the /p or /o parameter and user wants to
/q /quiet “Quiet” mode. The program does not ask use the project and to change data file
any questions. If it needs to display a only, the /df parameter with the new data
dialog, the execution finishes with an error. file name can be used for this purpose. If
See UP program return codes. An external the file name contains space(s), it must be
application can monitor UP work flow by enclosed by inverted commas.
ProgressBar value reading, see Work flow
monitoring. /eeonly This executes the selected operation only
with the data (EEPROM) memory or only
/q1 “Quiet” mode 1. It works same like the /q with the information memory in the case of
parameter, but shows the Status form, MSP430.
which is closed after programming
regardless of errors. UP does not provide /part name This selects the required device in
with the ProgressBar value when the /q1 UP.
parameter was used.
/erase This erases the device.
/e file “EEPROM” file. For keying in the name of a
/wnd class name A different window class name. More
file with data for data memory, if needed. If
than one instance of the UP program can
the file name contains space(s), it must be
be started using this parameter (running
enclosed by inverted commas.
then simultaneously). Each new instance of
/noe “No EEPROM”. The program skips the the running UP must have a different class
device data memory programming. If this name.
parameter is used for MSP430
microcontroller programming, the
information memory is erased and
programmed.
Page 63
/cfg If this parameter is used in combination PIC32 microcontrollers also have a boot
with parameter /p, only the configuration memory. This, however, uses variables and
memory gets programmed. This is useful a data memory form for programming, so it
for programming AVR microcontrollers, for works with parameters for a data memory
example, which can be switched to a faster and not with parameters for a boot
oscillator and then programmed much memory. A similar situation can be found in
faster. the information memory of MSP430 and
CC430 microcontrollers.
/devid If this parameter is used in combination
with parameter /p, the software only /code This performs the selected operation only
checks the device's Device ID. with code or main memory.
/blank This checks device erasure (blank check) /getpartrev Only reads the revision of the device
and returns an error code if the result is not and returns revision + 0x10000 as the error
OK. code.
/verify file This verifies the device. /sn serial_number Using this parameter it is possible to
enter the value of the serial number, which
/read file This reads the device and saves the read is then written to the address in accordance
content to the file. with the serial numbers settings. In the
/s programmer_SN This makes it possible to settings, the serial numbers have to be
select a programmer by its serial number. configured as Computed, Manual. The
The serial number is to be keyed in the way number is entered as hexadecimal, e.g.
it is displayed in the UP program and 1234ABCD.
printed on the programmer bottom. /conf file When UP closes, it saves its console
Example: 016709 or A6016709. When * content to the file, but only when the
sign is used instead of the serial number, operation was started from the
then any available programmer of the commandline.
selected type is used.
Note: When no parameter requesting an operation is
/progname name This makes it possible to used, the UP starts and keeps running. When a parameter
select a programmer by its name such as requesting an operation is used and the software is not
PRESTO or FORTE for example. running, the operation is executed and the software
/noboot This skips programming of the MSP430 boot closes if it does not need user interaction.
memory.
/boot This performs the selected operation only Using a Project File
with the MSP430 boot memory.
If you work on more than one project, it can happen that
Note the program is set up for a different device (or even a
different programmer if you have more) than what you
expected. To avoid such situations, it is recommended to
use project files (.PPR) that hold all the program settings
needed for programming and paths to the work files.
Page 64
7 Device ID error.
Examples of Use 8 Not supported.
The installation directory of the UP software contains the 9 Error of the serial number entered using the
“read_avr_eeprom.bat“ and “set_idle_power_1.bat“ /sn parameter.
sample batch files showing the use of command line
parameters. 0x10000 + const Revision of the device read using /
getpartrev parameter.
File Opening Note: The return value can be found in the %errorlevel%
up.exe file_name variable if working with batch files.
Page 65
by “lParam”.
5.7.1 List of Commands
Unless specified otherwise, the command returns to its
return value:
0 error, failed
1 everything worked OK
Page 66
bit 3 = 1 boot memory (MSP430, CC430) 4 – more than 6 V
6 see verification return value FORTE:
below -1 - measuring error
xx - measured voltage × 10
bit 0 = 1 code/main memory example: 33 means 3.3 V
bit 1 = 1 data memory (EEPROM) 24 address reads data from address, returns error code,
bit 2 = 1 configuration memory data are returned with wParam = 25
bit 3 = 1 boot memory (MSP430, CC430) 25 any returns last data read with wParam of 24
7 see erasing, same return code as from the 32 see UP program initialization
below command line below
bit 0 = 1 code/main memory bit 0 = 1 reload settings (reload project/ini file or
bit 1 = 1 data memory (EEPROM) registry)
bit 3 = 1 boot memory (MSP430, CC430) bit 1 = 1 reload language file
8 see BlankCheck of memory, same return code as bit 2 = 1 recreate programmer (like programmer was
below from the command line changed)
bit 0 = 1 code/main memory bit 3 = 1 reload programmer settings (like port
settings)
bit 1 = 1 data memory (EEPROM)
bit 4 = 1 reload selected device
bit 2 = 1 configuration memory
bit 5 = 1 reload current file (.hex, .bin, ...)
bit 3 = 1 boot memory (MSP430, CC430)
bit 6 = 1 recreate all dialog windows (adjust their size
15 any presses the GO button, returns 1
when reloading device)
16 see asks if the programmer supports the function
0x 0100 refresh device specific windows
below
0x 0200 refresh all editors
0 MCLRControl_Run
0x 0300 refresh project captions
1 MCLRControl_Stop
33 1 save all project settings
2 MCLRControl_Reset
48 see saves current file (same as Ctrl+S), returns 0
8 current voltage at pin VDD
below1 when there was no error else returns a
17 see performs the programmer function nonzero value
below
bit 0 = 1 code/main memory
0 MCLRControl_Run
bit 1 = 1 data memory (EEPROM)
1 MCLRControl_Stop
bit 2 = 1 configuration memory
2 MCLRControl_Reset
bit 3 = 1 boot memory (MSP430, CC430)
8 current voltage at pin VDD
56 0 returns the handle of the UP main form
return value PRESTO:
0 – unknown level Table 9: Commands WM_USER
1– 0 V
2 – approx. 2 V
A message of the WM_CLOSE type closes the UP
3 – approx. 5 V
program.
Page 67
Example of use 5.8 UP_DLL.DLL Library
var Thanks to this library strings can be exchanged with the
window: HWND; UP program.
begin
window := FindWindow('up v1.x', nil); As the library needs to communicate with UP, the
Result := SendMessage(window, program must be running. UP_DLL cannot work on its
WM_USER, 0, 0); own.
end.
unit up_dll;
interface
1 Only parameter lParam=1 or lParam=2 are allowed for Function UP_LoadFile (FileName: PChar; style: in
AVR microcontrollers. teger): integer; stdcall;
(*
* Load File (with extension .hex or .ppr);
* Loading of .ppr file can result in loading * .
hex file too;
* Result codes are same like on command
* line.
*
* Style |
= 1; UP will be quiet on file load * errors
* Style |= 2; UP will do no previous file
* saving
*
*)
Function UP_GetStrValue(ValueName: PChar; Value:
PChar; Size: integer): integer; stdcall;
Function UP_GetIntValue(ValueName: PChar; var Va
lue: integer): LongBool; stdcall;
Function UP_SetStrValue(ValueName: PChar; Value:
PChar): LongBool; stdcall;
Function UP_SetIntValue(ValueName: PChar; Value:
integer): LongBool; stdcall;
Function UP_LoadFile_Wnd(WndClass:PChar; FileNam
e: PChar; style:integer):integer; stdcall;
Function UP_SetStrValue_Wnd(WndClass:PChar; Valu
Page 68
eName: PChar; Value:PChar): BOOL; stdcall; l';
Function UP_SetIntValue_Wnd(WndClass:PChar; Valu function UP_GetStrValue_Wnd; external 'up_dll.dl
eName: PChar; Value:integer): BOOL; stdcall; l';
function UP_GetIntValue_Wnd; external 'up_dll.dl
Function UP_GetStrValue_Wnd(WndClass:PChar; Valu l';
eName: PChar; Value: PChar; Size: integer): inte
ger; stdcall; end.
function UP_SetIntValue_Wnd; external 'up_dll.dl
Page 69
You can set an automatic check for newer versions on the
5.10 Access of More UP web in Options ➙ Program settings ➙ Others.
If a newer program version is available on the web, it is If true, current file is reloaded before device (or its part) is
recommended to update the existing version as it may programmed.
eliminate known bugs or make the programming
algorithm for a particular device more efficient. Prog.LoadFileBfgProgWarnMod
boolean
New versions also add newly supported types of devices.
If true, the program warns when it is set to reload current
Updates are free and are very easy. You can download a file before programming and data in some editor have
new program version from https://www.asix.tech/ been manually modified.
prg_up_en.html and simply install it over the previous one
by running the installer and clicking the Next button till it Prog.LoadFileBfgProgWarnOnNoChange
finishes. boolean
You do not have to worry about losing the settings you If true, the program warns when it is set to reload current
created in your current program version. The installation file before programming and the content of the loaded file
preserves all of them. has not changed from the previous programming.
Page 70
File.AutoCheck Prog.UseOnlyThisSN
boolean boolean
If true, current file is periodically tested for changes. If true, the SN saved in the up.ini is always used regardles
of the SN contained in a project file.
File.LoadOnModify
boolean LanguageFile
string
If true, when change is detected, question pops up.
Relative path to used languange file
FileLoad.ClearData
Project.File
string
FileLoad.ClearCfg
Project file path
FileLoad.ClearID Project.Present
boolean
FileLoad.ClearCode Project.Template
boolean boolean
If true, the contents of code memory is erased (in UP If true, the user is asked for project name before its
memory) before new file is loaded; saving.
all cells not stored in the file will have its default (blank) HexFile.File
state. string
Prog.Name HexFile.IHex
string boolean
Selected programmer name If true, the file with extension different from .HEX or .BIN
is loaded as HEX file.
Possible values are PREST, FORTE.
HexFile.Template
Prog.PortBase boolean
integer
If true, the user is asked for name before saving.
Serial number of programmer
Page 71
HexFile.SaveVoid Question before programming OTP devices
boolean
Prog.QBfrDiffProg
If true, empty cells are saved, too. boolean
If true, the user is asked if the loaded BIN file should be Prog.QBfrProgCP
loaded as Little or Big endian. boolean
Prog.QBfrProgFlash Prog.SoundsOff
boolean boolean
Question before programming flash devices If true, all sounds of the program are switched off.
Prog.QBfrProg Prog.SkipBlankForCfg
boolean boolean
Page 72
If true, no blank check of part is performed before Prog.DoubleVerifyV2
programming of configuration space. integer
Prog.SkipBlankCheck Defines supply voltage size for the second verification,
boolean the value is in volts x 10.
Prog.SkipEraseData Serial.Step
boolean integer
If true, no erasing is performed before only data memory Step of serial numbers
programming.
Serial.File
Prog.SkipLastFFVerify string
boolean File name of external file with serial numbers
If true, verification of empty FF positions at the end of the
programmed memory is not preformed. Serial.File.Next
string
Prog.SkipVerify Label of serial number
boolean
Defines supply voltage size for the first verification, the Serial.ASCII
value is in volts x 10. boolean
Page 73
If serial number is computed, if true, serial number is Serial.Order
stored to device as ASCII characters. integer
Serial.SaveTo 0 HiLo hilo
integer
1 hilo HiLo
1 code/main memory
2 LoHi lohi
2 data memory
3 lohi LoHi
4 ID positions
Serial.Write.BeforeProg
Serial.Retlw boolean
boolean
If true, current serial number is "written" into opened HEX
If serial number is computed, if true, memory cells are editors just before programming the device.
filled with retlw instructions.
Serial.Write.AfterProg
Serial.Addr boolean
integer
If true, current serial number is "written" into opened HEX
If serial number is computed, address where to save editors after successful programming.
Serial.CPW Serial.Succ.AfterProg
integer boolean
If serial number is computed, chars per word If true, next serial number is generated after successful
programming.
Serial.Base
integer Serial.LogSN
boolean
If serial number is computed, base of serial number, can
be only 10 or 16 If true, the result of programming is logged to a selected
file.
Serial.Succ
integer Serial.LogFile
string
next serial number is
File name of a file where the result of the programming
0 same will be logged.
1 incremented
ICSP.LongTime
2 decremented boolean
3 random (LSFR) If true, longer times for switching Vcc are taken.
Page 74
ICSP.LongTime.Time.SwOn SpecSettings.PREST.LVP
integer integer
Time to wait after Vcc is switched on in microseconds. 0 HVP method
0 100 kHz SpecSettings.PREST.PSoCAlg
integer
1 500 kHz
0 automatic selection
2 1 MHz
1 assume VDD > 3.6 V
3 Maximal
2 assume VDD =< 3.6 V
SpecSettings.PREST.i2cAddr
integer SpecSettings.PREST.PSoCRSTInit
integer
0 first suitable address or N/A
0 Reset mode
1 second suitable address
1 Power cycling
etc...
SpecSettings.PREST.MSP430osc
Page 75
integer SpecSettings.PREST.AVRXTAL.AutoClk
0 Calibrated internal RC oscilator boolean
1 Not calibrated internal RC oscilator If true, faster programming with slow clock is used for
AVR MCUs.
SpecSettings.PREST.MSP430speed
integer SpecSettings.PREST.AVRRSTInverse
boolean
0 Normal
If true, the reset signal polarity is assumed to be inverse
1 Slow in comparison with standard polarity of the reset signal of
the selected chip. It is supported with AVR and 8051
2 Slowest devices.
SpecSettings.PREST.MSP430EraseSegme SpecSettings.PREST.AVRHVP
ntA boolean
boolean
If true, high voltage method is used for AVR MCUs, it is
If true, MSP430 Segment A is erased. supported for AVR TPI interface only.
SpecSettings.PREST.SPI_Flash_Freq SpecSettings.FORTE.UVCCLevel
integer integer
2 750 kHz
SpecSettings.FORTE.Power
boolean
SpecSettings.PREST.AVRXTAL.CLK If true, idle power supply is provided by FORTE
programmer.
SpecSettings.PREST.AVRXTAL.RPT SpecSettings.FORTE.ProgPower
integers boolean
represent maximum AVR oscillator frequency If true, the supply voltage during programming is
provided by FORTE programmer.
values can be found in *.lng files at item
MainForm.PRESTSpecForm.ComboAVRXTAL.xxx.Items SpecSettings.FORTE.LVP
where xxx is minimum divisor of system clock of selected integer
AVR's SPI module. This is 2 for new AVRs, 3 and 4 for
0 HVP method
older AVRs and 24 for Atmel's 8051 arch. processors.
1 LVP method
These settings can be found in ini file too at
[SpecSettings.PREST], XTALRpt and XTALClk.
Page 76
SpecSettings.FORTE.UsePE SpecSettings.FORTE.MSP430EraseSegme
boolean ntA
If true, PE (programming executive) is used for boolean
programming of PIC MCUs, when programmed by FORTE If true, MSP430 Segment A is erased.
programmer.
SpecSettings.FORTE.PIC32MZ_BootProg SpecSettings.FORTE.MSP430Interface
integer
integer
0 JTAG
0 Lower Boot alias
1 SBW
1 Boot Flash 1 and 2
SpecSettings.FORTE.PSoCAlg SpecSettings.FORTE.ARMFreq
integer
integer
The value specifies the frequency of connected oscillator
0 automatic selection or crystal. This value is used for programming of
1 assume VDD > 3.6 V ARM7TDMI.
SpecSettings.FORTE.MSP430osc SpecSettings.FORTE.ARMCommFreq
integer integer
Page 77
lower and so on. integer
SpecSettings.FORTE.AVRXTAL.DELAY 0 100 kHz
integer 1 400 kHz
represents maximum AVR oscillator frequency 2 1 MHz
value can be found in *.lng files at item 3 Maximal
MainForm.PRESTSpecForm.ComboAVRXTALPresto2.xxx.It
ems where xxx is minimum divisor of system clock of SpecSettings.FORTE.i2cAddr
selected AVR's SPI module. This is 2 for new AVRs, 3 and integer
4 for older AVRs and 24 for Atmel's 8051 arch. 0 first suitable address or N/A
processors.
1 second suitable address
This setting can be found in ini file too at
[SpecSettings.FORTE], XTALClk. etc...
SpecSettings.FORTE.AVRXTAL.AutoClk
boolean 5.13 Appendix B: Use of ICSP
If true, faster programming with slow clock is used for
ICSP (In-Circuit Serial Programming) is a method of PIC
AVR MCUs.
microcontroller programming making it possible to
program devices already placed on PCBs.
SpecSettings.FORTE.AVRRSTInverse
boolean Two different algorithms may be used for PIC
microcontroller programming: HVP (using programming
If true, the reset signal polarity is assumed to be inverse voltage on pin -MCLR/VPP) or LVP (using the LVP pin).
in comparison with standard polarity of the reset signal of
the selected chip. It is supported with AVR and 8051 The LVP programming algorithm can be disabled in the
devices. device's configuration word. Microcontrollers have the
LVP algorithm enabled from the production, therefore
SpecSettings.FORTE.AVRHVP their PGM input needs to be treated during the first
boolean programming (PGM input must be in log.0 for the time of
programming by means of the HVP algorithm).
If true, high voltage method is used for AVR MCUs, it is
supported for AVR TPI interface only. Note: Not all devices have the PGM pin.
Page 78
HVP Algorithm 5.13.2 Power Supply Options
Connecting the shared data and power supply ground
• PGM pin (if the device has one) must be maintained in (GND) is obviously necessary for all cases. The
log. 0!! microcontroller being programmed can be fed:
• -MCLR/VPP must be separated from the resetting • externally from an application
circuits (with a 10 kΩ resistor, for example).
A programming voltage is supplied to this pin P(VPP) • internally from a programmer
for programming. The leading edge and the voltage The external power supply from the application cannot be
level at VPP must not be influenced by the application. used for some types of microcontroller having the -MCLR/
The PRESTO programmer supports only fixed voltage VPP pin alternatively configurable as an I/O.
of 13 V on pin P(VPP) in contrast to adjustable voltage
within a range of 6.5 V to 17 V supported by FORTE. The internal power supply can be used only in cases
Please check limit voltage value on pin -MCLR/VPP of where the application does not draw too much current
the PIC device to be programmed by PRESTO. from programmer's feeding pin (VDD). The maximum
allowed current consumption can be found in the
• RB6 and RB7 pins must not be influenced by the
Technical Specification.
application during programming.
Both PRESTO and FORTE programmers feature an
overcurrent protection. PRESTO has a software protection
LVP algorithm (without VPP) in which an output gets disconnected by the running UP
program having detected an overload. FORTE has a
• RB6, RB7, PGM and -MCLR/VPP pins must not be hardware protection, which does not depend on the
influenced by the application during programming. All control software.
pins are in various logical levels during programming.
The programmer switches the power supply off if the
maximum load is substantially exceeded for a certain
Loading of Different time (this time is adjustable). PRESTO checks for the
overload state the whole time the power supply is
Programmer Pins connected.
The maximum current drawn from I/O pins, from pins Support for an external power supply is integrated in both
P(VPP) and VDD can be found in the Technical PRESTO and FORTE hardware. The programmer feeds the
Specification. input and output circuits with a voltage connected to pin
OTP (One-Time Programmable) devices have a VDD. The voltage may be lower than 5 V.
considerably higher current consumption on pin P(VPP)
than devices with a FLASH memory. Therefore the
application should not have any additional current
consumption at pin P(VPP) in case of OTP.
Page 79
Notes
Advice
When designing the process, please pay special attention • An error may occur if UP cannot program the
to the type of device to be programmed – if it can be not calibration word or if a fault occurs during Device ID
only operated but also programmed at a voltage lower reading, UP warns about an overcurrent at VDD, etc.
than 5 V. This may be eliminated by prolonging the charging/
discharging time in the ▸ Delay for VDD switching on/
off when supplied from programmer option - up to
Power Supply Capacities in several seconds.
• If UP points out an overcurrent error at VPP, a shorter
Application ICSP cable may help (its maximum length is 15 cm).
If there are capacities present at the application's power-
supply pin that would slow down the power on/off
switching and application is fed from programmer during
5.13.3 ICSP Connector
programming, longer charging/discharging times need to All ASIX programmers use a unified connector with
be set in UP. In other case UP will probably announce 2.54 mm spacing of pins for programming with the ICSP
overcurrent on VDD pin. algorithm.
An approximate time that should be set in the program: This connector has 8 pins with 7 signals. Not all signals
are always needed for the programming itself.
t[μs] = 2.5 × C[μF] × R[Ω].
For further information on connecting a device to the
The equivalent resistance is presented in table following programmer see Connection Examples.
table:
Page 80
5.14.2 Description of
Intel‑HEX File Format
Intel-HEX are text files consisting of lines.
This appendix describes the format of Intel-HEX files used 02 - Extended segment address. (32-bit
by UP for data reading and saving. .hex is the typical Intel-HEX only)
extension for such a file.
04 - Extended linear address. (32-bit
Intel-HEX only)
5.14.1 Supported There are also other types like 03 and 05, which are
Alternatives of HEX ignored by UP while reading and not used for saving.
:02400E00413F30
Page 81
02 Record length. The configuration memory
size is one word = 14 bit = 2 byte (byte
alignment).
Saving Device Type in .hex File
400E Record address. The configuration memory Users frequently mistook the selected device type for the
address is the word 2007h addressed by device type for which the .hex file was saved. To
bytes, i.e. 400Eh. eliminate this, UP contains a function allowing you to save
the device type in a file.
00 Record type = data
The program adds one more line below the End of File:
413F Record data. Configuration word =3F41h #PART=.... The absolute majority of programs working
with Intel-HEX files ignore this line, but such a modified
30 Check sum. 30 = 02 + 40 + 0E + 00 + 41 file cannot be considered as complying with the Intel-HEX
+ 3F = xxD0; neg D0 = 30 format.
End of File
The only acceptable alternative of the End of file line is:
:00000001FF
:020000040030CA
Page 82
6
up_control.dll library
The up_control.dll enables user to control the UP software
using functions contained in the library. It contains basic
programming functions.
Page 83
7
PRESTO.DLL Library
The presto.dll library has been designed for working
together with the PRESTO programmer.
The implemented functions allow you to set logical levels
at different programmer's pins as needed or to read their
state. Various communication protocols can be created
thanks to this.
Page 84
8 Important warning
A power supply voltage from an external source must be
present during programming that utilizes the JTAG
interface. The programmer does not feed the application
JTAG PLAYER in this case.
This utility is not part of the UP software installation pack Serial Vector Format (.svf) is the recommended file
but it can be downloaded separately from https:// format for all the testing and programming except
www.asix.tech/prg_jtag-svf-player_cz.html for Xilinx CPLD XC9500. The Xilinx Serial Vector
Format (.xsvf) is recommended for Xilinx CPLD XC9500.
JTAG PLAYER is localized only in English.
Page 85
Notes • RUNTEST MAXIMUM max_time SEC parameter is
ignored.
Some AVR devices do not support page by page
programming. In such a case, the SVF file must be • UNTEST run_count is limited to 2^31/3 (approximately
created without the -mp parameter. 715 million).
• RUNTEST min_time SEC is limited to 2^31/3 ms
Lattice CPLD Programming (approximately 715 seconds).
SVF file can be created from a .JED file using ispVM • TRST and RUNTEST SCK – these commands share the
System. This program is part of the ispLEVER Classic same configurable P/VPP pin of both the PRESTO and
system, which is available at the Lattice website. FORTE programmers and can never be used together.
• HDR+SDR+TDR / HIR+SIR+TIR length is limited to We do not recommend using an SVF file for
2^31 bits. programming devices of the Xilinx XC9500 family, as the
algorithm for XC9500/XL/XV device programming cannot
• Supported TCK frequencies are 3 MHz, 1.5 MHz, be correctly described in the SVF format.
750 kHz and fragments of 1 MHz starting at 500 kHz
for PRESTO. FORTE adds 15 MHz, 10 MHz and 5 MHz
on top of these.
Page 86
State of XSVF File 8.1.3 Programming
Implementation Connector
The following table describes the functions of PRESTO's
The XSVF file support has been implemented in
and FORTE's pins for programming by means of the JTAG
accordance with the "XAPP503, Appendix B: XSVF File
interface.
Format" specification available at the Xilinx website with
the following limitations:
• XSETSDRMASKS, XSDRINC and XSIR2 commands are PRESTO FORTE Function
not implemented. VPP P SCK (System Clock)/User defined state
• Only the XSVF file format is recommended for during file execution and after.
programming the Xilinx XC9500/XV/XL families. - - Not connected pin (key)
We seriously recommend using an SVF file for all VDD VDD Feeding of I/O buffers
architectures except XC9500/XV/XL. For XC9500/XV/XL GND GND Ground of I/O buffers
programming, the use of the XSVF format is
MOSI D JTAG TDI (Test Data In)
recommended as the SVF format does not include the
XREPEAT command, which is necessary for XC9500/XV/XL CLOCK C JTAG TCK (Test Clock)
programming. MISO I JTAG TDO (Test Data out)
Warning: Executing a file containing the XREPEAT LVP L JTAG TMS (Test Machine State)
command may be very slow.
Table 12: J TAG programming connector
8.2 Settings
This chapter explains the meaning of different settings in
Options ➙ Program Options.
Page 87
The maximum frequency is 3 MHz for the PRESTO • slow clock on TCK (~100 kHz)
programmer and 15 MHz for FORTE.
• default speed clock on TCK
If the Ignore FREQUENCY commands option is selected,
Example: "RUNTEST 3E-3 SEC;" means "Generate clock on
the programmer applies only the frequency set by the
TCK for at least 3 ms".
user and ignores all FREQUENCY commands.
Page 88
• The RUNTEST command containing run_count and RUNTEST timing multiply (both SVF and XSVF): 0%
specifying min_time is executed at the currently
running TCK frequency. Therefore the command can RUNTEST with run_count and no timing (both SVF
take much more time than what is specified in and XSVF): interpret as RUNTEST min_time with scale
min_time. 1 MHz
• The RUNTEST command containing run_count and VPP PRESTO / P FORTE pin usage while running test
specifying max_time is executed at the currently (file): Tristate
running TCK frequency. As the programmer cannot
VPP PRESTO / P FORTE pin usage after test
respect the “deadline” specified in the max_time
completion: Tristate
parameter, this parameter is ignored.
Page 89
RUNTEST timing multiply (both SVF and XSVF): The jtagplay.exe program returns the following return
25% codes:
RUNTEST with run_count and no timing (both SVF 0 execution of the last file had no errors
and XSVF): interpret as RUNTEST min_time with scale
1 MHz 1 an error occurred during execution of the
last file
VPP PRESTO / P FORTE pin usage while running test
(file): Tristate 2 execution of the last file could not be
started
VPP PRESTO / P FORTE pin usage after test
completion: Tristate
Return Codes
Page 90
9 9.2 Programming
For programming of predefined tasks it is advisable to
Example:
9.1 Programming settings multiup.exe C:\data\project.mppr
Page 91
• Use of the latest version of UP is recommended. If you
10 are still using an older version, an update is
recommended.
• Are you programming a new device or has it been
Page 92
quality using a voltmeter. At the same time, the input
pins (pins P, D, I and L) indicate what logical level is
currently seen by the programmer.
Page 93
11 Important warnings
The HPR3V3 pins are unidirectional, so this
level shifter can be used for devices with
HPR3V3 unidirection signals like SPI Flash memories,
AVR devices or MSP430 devices without SBW
interface, but it cannot be used for PIC
devices or MSP430 devices with SBW
HPR3V3 is an optional accessory to the PRESTO interface.
programmer for programming of stand-alone 3.3 V
devices as for example DataFlash Memories. The PRESTO Never connect an external voltage to the
programmer can supply a programmed device with 5 V. output 3.3 V supply pins!
However, some devices require 3.3 V supply voltage and
3.3 V logic levels on their pins. In such case, the HPR3V3
level shifter or an external 3.3 V power supply have to be
used.
11.2 HPR3V3 schematics
11.1 Usage
Plug the HPR3V3 level shifter directly to the pins of the
PRESTO programmer (NOT to the programmed device
connector!). Pin 2 is used as a key, so that it is not
possible to connect it wrong way. Now, connect the
programmed device to HPR3V3 using ICSP cable.
Connection of the programmed device pins is the same as
connection of the device to PRESTO.
Set internal power supply for programming. VOH output pin voltage log.1 2.9 V
Page 94
VOL output pin voltage log.0 (25 °C) 0.36 V
IOUT output pin current 4 mA
Page 95
12
HPR1V2
HPR1V2 is an optional accessory to the PRESTO
programmer for programming of the devices with supply
voltage and logical levels between 1.2 V and 3.3 V as for Fig. 30: Use of HPR1V2
example Xilinx CoolRunner-II .
The PRESTO programmer can program devices with signal Important warning
levels between 3 and 5 V ± 10%, but sometimes it is
necessary to program a device with less signal levels. In The HPR1V2 pins are unidirectional, this level
such case, the HPR1V2 level shifter have to be used. The shifter can be used for example with JTAG
level shifter have to be used with external supply voltage devices, but it cannot be used with devices
from application, it cannot be supplied from the that have save bidirectional signals on the
programmer. programming interface, like PIC
microcontrollers.
Page 96
12.2 HPR1V2 schematics
min. max.
VCC supply voltage 1.2 3.3 V
VIH input pin voltage log.1 0.65xVCC V
VIL input pin voltage log.0 0.35xVCC V
IOUT output pin current 4 mA
Page 97
13
HPRAVR
HPRAVR is an optional accessory for PRESTO and FORTE
programmers for programming AVR microcontrollers in
applications with the ISP10PIN standard connector on the
device's side and with the ICSPCAB8 cable on the Fig. 32: Use of HPRAVR
programmer's side. The ISP10PIN connector is typically
used on boards with microcontrollers of the AVR type Important Warning
such as STK500, for example. Pin No. 1 of the HPRAVR adapter is marked
with red color. Please double check the
Page 98
Fixed links.
14 2015-11-19 Added description of setting of the T pin during and
after programming.
2016-01-22 The serial numbers logging description has been
Document history updated.
2016-03-08 Added description of the Display programmer form
function.
Document Modifications made Added description of the setting which disables the
revision VPP before VCC warning.
2013-07-03 Newly created document 2016-05-20 The PE description has been updated.
2013-12-18 Minor text corrections Added description of the start and end address for
the SPI Flash memories.
2014-02-28 New command line parameter [/read]
2016-10-10 Added description of the /sn commandline
2014-07-01 CE certificate was replaced by Declaration of
parameter and manual serial numbers description.
Conformity.
Added the commandline error code 9 description.
2014-09-23 Fixed I2C memory example picture.
2016-12-15 Description of usage of the programmers at Linux
Described new option - Show only the lowest byte of
has been added.
word in ASCII
2017-02-02 Added a table with recommended values of Rs for
2014-11-21 Updated list of variables for up_dll.dll
ZDs, under PIC connections picture.
2014-11-25 New settings of the UP program have been added.
Added description of auto programming in the Mass
2015-02-03 Added View/Console menu description. production window.
Added description of PIC32MZ_BootProg variable. Added description of Keep manually modified data.
Small text fixes. 2017-02-10 The Linux driver instalation chapter has been
2015-03-12 The name of item Delay for VDD switching on/off completed.
has been changed 2017-03-13 A link to lin_ftd2xx has been added.
Added description of the checksum settings 2017-03-23 Added description of /q1 commandline parameter.
2015-04-07 Updated description how to create SVF file for 2017-05-09 Added description of "Load last project on start-up"
Lattice. option.
2015-05-19 Definition of input voltage on pins was added. 2017-06-29 Added chapter about MultiUP utility.
Description of w=32 parameter for Windows 2017-10-30 Added description of "When using Windows
messages was added. Messages disable other warnings" option.
2015-08-05 Description of the programmer driver installation Added description of "Write checksum to log file"
has been changed. option.
Added new /getpartrev parameter. 2018-02-19 The HPR chapters have been completed and
Added new commandline errorcodes. moved.
2015-09-21 Added description of the setting of the warning 2018-03-28 Added description of "Device info" menu item.
when the loaded file is not aligned to a word size. 2018-05-17 Added description of Renesas RX600 settings.
Page 99
2018-07-30 Added a note to Debug fuse of MCU PIC. JTAG Player -s parameter description has been
2018-08-10 Added description where Linux FTDI driver can be updated.
found. 2021-02-25 Fixed Windows Message w=48 description.
Added a note to commandline parameters. Fixed Windows Messages table.
2019-01-25 Description of saving fuses to ini function has been Added a description of a Recently used devices list.
added. 2022-01-07 Rules settings were changed for Linux installation.
Write RC osc Adjustment function description has
been added.
2019-01-31 Added description of how to read the ProgressBar
value in the quiet mode.
2019-02-26 Added description of Read address function
Added description of Windows Messages wParam of
24 and 25.
2019-04-23 Added description of /df parameter, description of /p
and /o parameters has been updated.
2019-06-26 Updated description of /s commandline parameter.
Added description of "Lock project" function.
Added description of function setting actual SN from
log file.
2019-09-20 Company address has been changed.
2019-10-24 Added chapter about up_control.dll
2020-01-10 Added Autoload next file function description.
2020-03-31 Added description of /conf parameter.
Added list of parameters which are transferred to
already running UP instance.
Added description of the file locations only
programming.
Added description of the option switching off the
Device ID check.
2020-05-26 Added description of "Load project unlocked"
function.
Added description of how to use project on the
commandline.
2021-01-11 Driver installation description has been updated.
UP software installation description has been
updated.
Page 100