0% found this document useful (0 votes)
62 views100 pages

Presto en

bio

Uploaded by

curz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views100 pages

Presto en

bio

Uploaded by

curz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 100

PRESTO

USB In-System Programmer

Reference Manual
ASIX s.r.o.
Na Popelce 38/17
150 00 Prague
Czech Republic

www.asix.net

[email protected]

[email protected]

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.

© Copyright by ASIX s.r.o.


2.6.3 Connecting Procedure 16

Table of Contents 2.6.4 Connection Examples 17


PIC Microcontrollers 17
1 Introduction 10
AVR Microcontrollers 18

2 PRESTO 11 AVR with TPI Interface (e.g. ATtiny10) 19

2.1 Package Content 11 Atmel 8051 19

2.2 Features 11 Cypress PSoC 20

2.3 Quick Start 11 MSP430 with TEST pin without SBW interface 20

2.3.1 Windows 11 MSP430 / CC430 with SBW interface 21


2.3.2 Linux 11 TI (Chipcon) CCxxxx 21
2.4 Use 12 I2C Memory Chips 21
2.4.1 Numerous Supported Devices 12 SPI Memory Chips 22
2.4.2 USB Connection 12
Microwire Memory Chips 22
2.4.3 Programming of Placed Devices 12
JTAG Interface 22
2.4.4 Programming of Autonomous Devices 12
2.4.5 Programming Interface 13 2.7 Built-in Protection 23
2.4.6 Power Supply From Application 13 2.8 Technical Specifications 24
2.4.7 User Interface 13 2.8.1 Limit Values 24

2.4.8 Software 13 2.8.2 Operating Specifications 24

2.4.9 Debugging 13 2.8.3 Declaration of Conformity 25

2.5 Controls and Connectors 14


3 DRIVERS 26
2.5.1 Programming Connector 14
3.1 Driver Installation 26
2.5.2 GO Button 14
3.1.1 Windows Operating Systems 26
2.5.3 LED Indicators 15
Windows 7 and later 26
ON-LINE 15
Older supported Windows versions 26
ACTIVE 15
3.1.2 Linux 27
2.5.4 USB Connector 15
3.2 Driver Updating 27
2.6 Connecting to Application 15
2.6.1 Custom-made Connecting Cable 15 4 Usage under Linux 28
2.6.2 Programming in ZIF Socket 16
5.5.3 Menus 40
5 UP SOFTWARE 30
File Menu 40
5.1 Abbreviations Used 30
File ➙ New 40
5.2 Installation 30 File ➙ Open... 40
5.3 Device Programming 30 File ➙ Open next file... 40
File ➙ Open next: 41
5.3.1 Programmer Selection 30
File ➙ Reload actual file 41
5.3.2 Projects 31 File ➙ Save 41
5.3.3 Device Type Selection 31 File ➙ Save as... 41
5.3.4 Program settings 31 File ➙ Import data memory from file... 41
File ➙ Open file with data memory automatically 41
Delay for VDD switching on/off when supplied from 32
programmer File ➙ New project 41
File ➙ Open project... 41
Production Programming Settings 33
File ➙ Save project... 42
Settings for Programming During Development 33 File ➙ Close project 42
Programmer Settings 34 File ➙ Recent projects 42
File ➙ Read calibration data... 42
Fuses and Working with Them 34
File ➙ Save calibration data... 42
5.3.5 Programming 34 File ➙ Export to bin... 42
Differential Programming 35 File ➙ Exit 42
Edit Menu 42
5.4 Further Features 35
Edit ➙ Fill with value... 42
5.4.1 Setting the GO Button 35
Edit ➙ Text insert... 43
5.4.2 Mass Production 35 Edit ➙ Fill selected location with RETLW 43
5.4.3 Serial Numbers 36 View Menu 43
Format of Files with Serial Numbers 38 View ➙ Code/main memory 43
Data Record 38 View ➙ Data memory 43
Example of File with Serial Numbers 38 View ➙ Boot memory 43
5.4.4 Calibration Memory Support 39 View ➙ Configuration memory 43
View ➙ Console 43
Working with Calibration Memory When Erasing a 39
Device in UV Eraser View ➙ Display code/main memory 43
View ➙ Display data memory 43
Working With Calibration Memory in Devices With 39
Flash Memory View ➙ Display configuration memory 44
39 View ➙ Display programmer form 44
5.5 Program Controls
Device Menu 44
5.5.1 Toolbar 40
Device ➙ Program 44
5.5.2 Status Bar 40
▸ Program all 44
▸ Program all except data memory 44 ▸ Warn before file load, when data in some
editor have been changed 48
▸ Program code/main memory 44
▸ Warn, when the loaded file has not
▸ Program data memory 45 48
changed
▸ Program configuration memory 45 ▸ Program file locations only 48
▸ Program differentially 45 ▸ Ask before erasing 48
▸ Differential program data memory 45 ▸ Ask before programming of OTP / Flash /
▸ Mass Production 45 Code/Data Protection / differential 48
Device ➙ Read 45 ▸ Display fuse warning messages 49
▸ Read all 45 ▸ Except for programming: Close status
window 49
▸ Read all except data memory 45
▸ After programming: Close status window 49
▸ Read code/main memory 45
▸ Beep after successful finishing 49
▸ Read data memory 46
▸ Beep after unsuccessful finishing 49
▸ Read configuration memory 46
▸ Turn off all sound for UP 49
▸ Read address 46
▸ Delay for VDD switching on/off when
Device ➙ Verify 46 supplied from programmer 49
▸ Verify all 46 ▸ Do not perform Device ID check before
programming 49
▸ Verify all except data memory 46
▸ Do not perform blank check before cfg
▸ Verify code/main memory 46 49
word programming
▸ Verify data memory 46 ▸ Do not perform blank check after erasing 50
▸ Verify configuration memory 46 ▸ Do not erase device before programming 50
Device ➙ Erase 46 ▸ Do not erase data memory before its
▸ Erase all 46 programming 50
▸ Erase code/main memory 47 ▸ Do not verify unprogrammed words at the
end of the memory 50
▸ Erase data memory 47
▸ Do not verify 50
Device ➙ Blank check 47
▸ Verify with two supply voltages 50
▸ Blank check all 47
Options ➙ Program settings ➙ Panels 50
▸ Blank check all except data memory 47
▸ Display selected device on toolbar 50
▸ Blank check of code/main memory 47
▸ Display selected programmer on toolbar 50
▸ Blank check of data memory 47
▸ Display the status bar in the lower part of
▸ Blank check of configuration memory 47 the window 50
Device ➙ Select device 47 ▸ Display icons on toolbar buttons 50
Device ➙ Device info 47 ▸ Display descriptions on toolbar buttons 51
Options Menu 48 ▸ Show mass production counter in status
bar 51
Options ➙ Program settings ➙ Programming 48
Options ➙ Program settings ➙ Files 51
▸ Reload file before every programming 48
▸ File save style 51
▸ Keep manually modified data 48
▸ Automatically check for newer versions of ▸ After project load set actual SN according
actual file 51 to the last in the log 54
▸ Check device type when loading .hex file 51 ▸ Serial number length (the number of
characters) 54
▸ Save device type into .hex file 51
▸ Number base 54
▸ Warn when loaded HEX does not contain
CFG memory data 51 ▸ Code as ASCII 55
▸ Warn when loaded HEX is not aligned to ▸ Initial serial number 55
word size. 52
▸ Next S/N 55
▸ Binary file loading and saving style 52
▸ Destination 55
▸ Save unused locations to .hex file 52
▸ Hexadecimal address of first word 55
▸ Clear code/main / data memory / ID
52 ▸ Fill with RETLW instruction 55
positions before file reading
▸ Erase configuration memory before file ▸ Characters per word 55
reading 52 ▸ Sequence 55
▸ Read data memory not from the file but Options ➙ Program settings ➙ Checksum 55
from the device 52
▸ Show checksum in status bar 55
▸ Read ID positions not from the file but
from the device 52 ▸ Write checksum to log file 55
▸ Save fuses in UP instead of data file 53 ▸ Checksum algorithm 56
▸ Project storing style 53 Options ➙ Program settings ➙ Others 56
▸ Load last project on start-up 53 ▸ Update check settings 56
Options ➙ Program settings ➙ Colors 53 ▸ Allow internal and external supply
voltages collision 56
Options ➙ Program settings ➙ Editors 53
▸ Do not show warning if internal 5 V is
▸ Code/main memory editor: show words as 56
53 switched on with 3.3 V device
bytes
▸ Allow to change supply voltage level when
▸ Code/main memory editor 8 words wide 53 56
it is on
▸ Data memory editor 8 words wide 53 ▸ Allow external supply voltage for devices
▸ Boot memory editor 8 words wide 53 requiring VPP before VCC. 56
▸ Show only the lowest byte of word in ASCII 53 ▸ When using Windows Messages disable
other warnings 57
▸ Mask ID positions while reading from
53 ▸ Pin T during programming 57
device, from file, etc.
▸ Mask ID positions during direct user input 53 ▸ Pin T after programming 57
▸ Configuration memory editor: show cfg Options ➙ Select programmer 57
word instead of fuses 54 Options ➙ Language selection... 57
Options ➙ Program settings ➙ Serial numbers 54 Options ➙ Keyboard shortcuts... 57
▸ Serial numbers 54 Options ➙ Lock project 57
▸ Prepare S/N before programming 54 Help Menu 57
▸ Find successor after programming 54
Help ➙ Help on program 57
▸ Prepare S/N after programming 54
Help ➙ List of supported devices 57
▸ Serial number interval 54 Help ➙ Check Internet for updates 57
▸ Log to file 54
Help ➙ ASIX website 57 Use PE 60
Help ➙ About 58 Boot memory programming 60
5.5.4 Programmer Settings Window 58 Settings Associated with AVR and 8051
Microcontrollers 60
FORTE Programmer Settings Window 58
Oscillator Frequency 60
Power supply from the programmer 58 Faster Programming with Slow Clock 60
In idle state 58 Inverse Reset 60
During programming 58 HVP 60
Reset 58
Settings Associated with I2C Memory Chips 61
Settings Associated with RX600 Microcontrollers 58
I2C Bus Speed 61
▸ Protect with ID 58
I2C Memory Address 61
▸ Allow using Configuration Clearing (erases
58 Settings Associated with SPI Flash Chips 61
TM, ID)
▸ Baud Rate 58 ▸ Start address 61

Settings Associated with PIC Microcontrollers 58 ▸ End address 61


▸ Programming method 58 5.5.5 HEX Editor Windows 61
▸ Use PE 58 Selecting an Area 61
Boot memory programming 59
Code/Main Memory Editor 61
Settings Associated with AVR and 8051
Microcontrollers 59 Data Memory (EEPROM) Editor 61
Oscillator frequency 59
Configuration Memory Editor 61
Faster Programming with Slow Clock 59
Tips for Advanced Users 62
Inverse Reset 59
Write RC osc Adjustment 59 5.6 Running UP from Command Line 62
HVP 59 5.6.1 List of Parameters 62
Settings Associated with I2C Memory Chips 59 Using a Project File 64
I2C Bus Speed 59
Examples of Use 65
I2C Memory Address 59
Settings Associated with SPI Flash Chips 59 File Opening 65
▸ Start address 59 Device Programming 65
▸ End address 59 5.6.2 Program Return Codes 65

PRESTO Programmer Settings Window 59 5.6.3 Work flow monitoring 65

In idle state 59 5.7 Running UP by Means of Windows 65


During programming 60 Messages
Settings Associated with PIC Microcontrollers 60 5.7.1 List of Commands 66
MCLR Pin Control 60 Example of use 68
Programming Method 60
5.8 UP_DLL.DLL Library 68
Algorithm Programming 60
5.9 Running More Than One Instance of UP 69 State of .svf File Implementation 86

5.10 Access of More UP Instances to One 70 8.1.2 XSVF File 86


Programmer Examples of How to Create XSVF Files 86
5.11 Updating UP 70 State of XSVF File Implementation 87
5.12 Appendix A UP_DLL.DLL 70 8.1.3 Programming Connector 87
5.12.1 Data Types 70
8.2 Settings 87
5.12.2 List of UP variables 70
8.2.1 Default TCK signal frequency 87
5.13 Appendix B: Use of ICSP 78 8.2.2 Fast Clocks Option (FORTE only) 88
5.13.1 Pins Used for Programming 78 8.2.3 RUNTEST without run_count (SVF only) 88
HVP Algorithm 79 8.2.4 RUNTEST Timing Multiply (both SVF and XSVF) 88
LVP algorithm (without VPP) 79 8.2.5 RUNTEST with run_count and no timing 88
(both SVF and XSVF)     
Loading of Different Programmer Pins 79 8.2.6 VPP PRESTO / P FORTE pin usage while running test 89
(file) / after test completion
5.13.2 Power Supply Options 79
8.2.7 Default Settings 89
Power Supply Capacities in Application 80
Default Settings for FPGAs 89
5.13.3 ICSP Connector 80
Default Settings for XC9500 89
5.14 Appendix C: Intel‑HEX File Format 81
Default Settings for AVR: 89
5.14.1 Supported Alternatives of HEX Files 81
8.3 Running JTAG Player from Command Line 90
5.14.2 Description of Intel‑HEX File Format 81
Data Record 81 9 MultiUP 91
End of File 82 9.1 Programming settings 91
Extended Linear Address 82 9.2 Programming 91
Saving Device Type in .hex File 82 9.3 CommandLine 91

6 up_control.dll library 83 10 TROUBLE-SHOOTING 92


10.1 Tips and Tricks 92
7 PRESTO.DLL Library 84
10.2 PRESTO Tester 92
8 JTAG PLAYER 85
8.1 JTAG Device Programming 85 11 HPR3V3 94

8.1.1 SVF File 85 11.1 Usage 94

Examples of How to Create SVF Files 85 11.2 HPR3V3 schematics 94


11.3 Technical specification 94

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.

ICSP (In-Circuit Serial Programming). The


meaning of ICSP is identical with the
This manual describes PRESTO, a USB programmer and meaning of ISP (In System Programming) in
its control software, both manufactured by ASIX. this manual, i.e. device programming done
Chapter 1 gives you ‘quick start’ instructions on how to inside a system.
start working with the programmer, offers examples of its LVP (Low Voltage Programming) is a
connecting to applications and provides technical programming mode in which none of the
specifications. pins has higher than the power-supply
Chapter 2 focuses on the installation of drivers and voltage applied.
software updates. PDI Program and Debug Interface
Chapter 3 introduces the UP program, which is software SBW (SPY-BI-WIRE) MSP430 microcontroller
used for controlling all ASIX programmers. You can find interface
procedures there for setting up the programmer prior to
programming, for actual programming and/or verification TPI Atmel Tiny Programming Interface
of devices. It also describes how to control the software
from a command line or a DLL library. VCC If the text features VCC or VDD, they mean
the power-supply voltage on the VDD pin,
Chapter 4 presents the JTAG SVF Player software used for which can serve as either input or output
programming devices with the JTAG interface using .svf/ depending on the particular application.
.xsvf files.
VPP If the text features VPP, it means the
Chapter 5 offers tips and tricks in case of experiencing programming voltage on pin P of devices
difficulties with programming. with High Voltage Programming.
The term “file” means a file with data to be programmed
in context of this manual, in other cases a particular type
of file is specified.

A file with .hex extension means Intel-HEX file whilst a file


with .bin extension means binary file.

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

PRESTO • Windows XP or later, Linux (Wine)


• compact

Thank you for buying the PRESTO programmer made by


ASIX s.r.o. It was a wise decision. Feel free to contact our
technical support in case of any questions or doubts.
2.3 Quick Start
Please install the drivers and the UP software prior to the
2.1 Package Content first use of PRESTO.

Your PRESTO package should include: 2.3.1 Windows


• PRESTO programmer Administrator rights are required to run the software
for the first time.
• ICSPCAB8 cable
Start with installing the UP program. Its installer installs
• USB cable (type A - B) the USB driver for PRESTO, too. You can download the
• Info leaflet installer from www.asix.tech/prg_up_en.html.

Once the installation is complete, connect the PRESTO


2.2 Features programmer to your computer.
The driver contained in the UP installer is intended for
PRESTO is a fast USB In-System programmer suitable for Windows 7 and later. For older Windows operating system
programming a range of devices such as microcontrollers, versions the driver has to be downloaded from
EEPROM or Flash serial memory chips, CPLD, FPGA and www.asix.net, from download section of the programmer
many others. and unpacked somewhere. After the programmer has
been connected, the operating system asks for the driver.
• USB 1.1 (USB 2.0 compatible) interface, programmer In "Found New Hardware" dialog the path to the
powered via USB unpacked driver has to be set.
• 3 MHz in/out The green ON-LINE LED should turn on after a few
• synchronous programming, JTAG support moments and the Windows Device Manager should
present the programmer as correctly installed.
• programming voltage from 2.7 V to 5.5 V
• feeds applications with 5 V 2.3.2 Linux
• overcurrent protection on VDD and VPP sources The programmer can be operated under Wine in Linux.
• overvoltage protection on VDD pin Please find detailed installation instructions at separate
chapter.

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:

• Microchip PIC microcontrollers – devices with serial 2.4.3 Programming of


programming, which include all PIC and dsPIC devices
with the exception of several obsolete types. Placed Devices
• Atmel AVR microcontrollers – all devices supporting ISP (In-System Programming) or the special ICSP (In-
"SPI Low Voltage Serial Downloading" such as Circuit Serial Programming) for the PIC microcontrollers is
ATtiny12, AT90S8535 or ATmega128. currently replacing the traditional method in which
devices were first programmed and only then placed on a
• Atmel ATxmega microcontrollers – devices PCB (printed circuit board). Thanks to ISP even SMD
programmable via JTAG interface such as devices with an extremely narrowly spaced pins can
ATxmega128A1. easily be programmed and their firmware upgraded in
already assembled and finished devices.
• Atmel AVR32 microcontrollers – AT32UC3A1256, for
example.
• Atmel 8051 microcontrollers – devices that support
2.4.4 Programming of
ISP programming such as AT89S8253, AT89LP4052,
AT89LP216 or AT89S2051.
Autonomous Devices
Those who still need to program autonomous devices, i.e.
• Texas Instruments microcontrollers – 16-bit MSP430, devices not yet placed on a PCB can use the ISP2ZIF
CC430 (fuse programming is not supported for these adapter featuring a ZIF (zero insertion force) socket.
families) and CCxxxx.

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

Fig. 3: Programming connector

Pin Name Type Description


P1 VPP I/O, VPP signal input/output or VPP output
P2 key
P3 VDD PWR power input/output
Fig. 2: The PRESTO programmer
P4 GND PWR signal grounding
PRESTO features two LEDs, a button, a connector for P5 DATA/ I/O signal input/output
linking to USB and a programming connector. MOSI
P6 CLOCK O signal output
2.5.1 Programming P7 MISO I signal input
Connector P8 LVP I/O signal input/output
The programming connector is a 8 way single row plug Table 1: programming connector
with pin No. 2 (in standard numbering) missing. Spacing
between pins is 2.54 mm.
2.5.2 GO Button
his button simplifies work with the application being
programmed. It triggers device programming or another
pre-programmed function. For further information on
settings see Setting the GO Button

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.

2.5.4 USB Connector


A standard USB (type B) connector is provided for
connecting to a computer. The programmer uses the Fig. 4: ICSPCAB8
USB Full-Speed interface for communication.
2.6.1 Custom-made
Connecting Cable
Should an application to be programmed have a non-
compatible type of connector for linking to the
programmer, the customer can make his/her own
programming cable. Its length should not exceed 15 cm.
The following table lists markings of connectors by FCI
Electronics suitable for making a custom cable. Of course,
it is possible to use any similar ones:

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.

The simplest way of connecting the GND prior to the


other signals is to ground the application before
connecting it to the programmer. This can, for example,
be achieved by making the GND pin of the application’s
ICSP connector longer than the other pins. It will make
sure that both grounds are interconnected first.

Fig. 5: ISP2ZIF

ISP2ZIF consists of a zero insertion force (=ZIF) socket


and an ICSP connector for connecting to the programmer,

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)

Table 3: Connection list No.1 Table 5: Connection list No.3

Pin PIC MSP430 MSP430 TI CCxxxx


2.6.4 Connection Examples
SBW The following text presents examples of connections
P1 MCLR TEST RESET between PRESTO and the device being programmed. We
use a notation according to the manufacturer datasheet
P2 of each particular device.
P3 VDD VCC VCC VDD
P4 VSS VSS VSS GND
P5 PGD TDI SWBTDIO Debug data PIC Microcontrollers
P6 PGC TCK SWBTCK Debug clock
P7 TDO
P8 LVP TMS

Table 4: Connection list No.2

Fig. 6: PIC microcontroller

1) Not all PIC microcontrollers have the PGM pin. The


PGM pin can be connected to programmer’s L pin, to
VSS via a pull-down resistor (for HVP programming)
or to VDD via a pull-up resistor (for LVP
programming).

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 Ω

Table 6: Recommended resistors values with Zener diode (the


value also depends on the rest circuit)
Fig. 7: AVR microcontroller
7) If the LVP mode is used, it is recommended to check 1) A source of the clock signal, which is set in the device
whether the LVP fuse is still set after erasing the part. or which will be set by fuses during programming
8) Programming of PIC32 devices is supported by must be connected to the device. A crystal must be
means of the ICSP interface only with external 3 V connected if set up as the clock source.
power supply. 2) Device fuses have been set up by the producer to the
9) Devices with an ICPORT fuse must have the internal oscillator with a frequency of 1 MHz. In the
dedicated ICSP port off for LVP programming. initial programming, the device should be
programmed with “Oscillator frequency” set up at
10) PIC24 and dsPIC33 devices may be programmed “>750 kHz” or lower in the “PRESTO programmer
using PE (Programming Executive) or using the settings” window.
standard method. Programming by means of PE is
usually faster. 3) Not all AVR microcontrollers allow use of a crystal
(e.g. ATtiny13, ATtiny15).

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).

Fig. 9: Atmel 8051 microcontroller

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

Fig. 11: MSP430 microcontroller, TEST pin, without SBW

1) Not all MSP430 microcontrollers have the TEST pin.


2) This interconnection can be used with e.g.
MSP430F1xx, MSP430F4xx, MSP430F21x1, but not
with MSP430F20xx or MSP430F22xx.
Fig. 10: Cypress PsoC microcontroller 3) If the oscillator calibration values are saved in the
information memory and this memory is not going to
be re-programmed (erased) during programming, the
device should be programmed with the Cal Int. RC
(=calibrated internal RC oscillator) option selected in
the PRESTO programmer settings window. In the
other cases Not Cal Int. RC (=not calibrated internal
RC oscillator) should be selected.

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

Fig. 12: MSP430 / CC430 microcontroller, SBW

1) Microcontrollers with SBW interface could be


Fig. 13: I2C memory chips
programmed only through this interface. It concerns
e.g. MSP430F20xx, MSP430F22xx or MSP430F5xxx. 1) The programmer uses an internal 2.2 kΩ pull-up
2) If the oscillator calibration values are saved in the resistor on the data wire (SDA) when working with an
information memory and this memory is not going to I2C device.
be re-programmed (erased) during the programming 2) If the device to be programmed is 24LC(S)21A or
process, the device should be programmed with the 24LC(S)22A, its VCLK pin must be connected to VDD
Cal Int. RC (=calibrated internal RC oscillator) during programming.
option selected in the PRESTO programmer
settings window. In the other cases Not Cal Int. RC 3) 34xx02 memory chips need “high” voltage at the A0
(=not calibrated internal RC oscillator) should be pin for commands protecting it against SWP and
selected. There is no need to select the oscillator for CSWP recording. The “high” voltage is generated at
the MSP430F5xxx and CC430 devices. pin P, which must be connected to pin A0 in this
case. The memory chip pins A0, A1 and A2 must be
3) The safety fuse on the JTAG interface cannot be connected manually according to the selected
blown by the PRESTO programmer. protection mode.
4) Speed in the PRESTO programmer settings
window should be slow down if any external
capacitor is connected to the device's reset pin.

Page 21
SPI Memory Chips Microwire Memory Chips

Fig. 14: SPI memory chips Fig. 15: 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.

Fig. 16: Components with J TAG interface

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

2.8.1 Limit Values P pin output voltage


VIL input voltage
13 V or logic levels
max. 0.5 V
VIH input voltage min. 2.0 V
Operating min. 0 °C max. +55 °C VOL output voltage max. 0.44 V @ VDD=4.5 V
temperature
typ. 0.1 V
Storage temperature min. -40 °C max. +85 °C
VOH output voltage min. 3.8 V @ VDD=4.5 V
Maximum current on max. 370 mA typ. VDD - 0.1 V
USB
Resistance to short circuiting limited2
Voltage at any pin1 min. -0.5 V max. 6.5 V
Operating system Windows3 32/ 64-bit, Linux4
Maximum current on 20 mA
I/O pin USB compatibility USB 1.1 Full Speed
ESD protection (HBM ±4 kV contact USB 2.0 compatible
model) ±8 kV air USB connector type B
Dimensions 112 x 64 x 22 mm
Table 7: Limit values
Weight 80 g
Gross weight 180 g
2.8.2 Operating Table 8: Operating specifications
Specifications
Important Warning 1 Pin VPP configured as an output has a voltage +13 V
Failure to respect these parameters may 2 For more information see Built-in Protection
damage the programmer or the connected 3 Windows XP, Windows Vista, Windows 7, Windows 8,
computer. Windows 8.1, Windows 10
4 The UP software runs under Wine

VDD feeding voltage supplied by 5 V


programmer
VDD feeding voltage supplied by 2.7 V to 5.5 V
application
Maximum current drawn from 100 mA
VDD
Maximum current drawn from 50 mA
VPP

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.

During the installation, the operating system will ask


3.1.1 Windows Operating whether it should install the software, which has not
passed the Microsoft compatibility test for Windows. Click
Systems Continue Anyway.
The user must have administrator rights to install and run
the UP program for the first time. Standard user rights are
sufficient for further use.

PRESTO drivers are installed automatically as part of the


UP program installation.

Windows 7 and later


Start with installing the UP program. Its installer installs
the USB driver for PRESTO, too. You can download the
installer from www.asix.tech/prg_up_en.html.

Once the installation is complete, connect the PRESTO


programmer to your computer. The green ON-LINE LED
should turn on after a few moments and the Windows
Device Manager should present the programmer as
correctly installed.

Fig. 17: Compatibility test dialog window

The green ON-LINE LED should turn on after a few


moments and the Windows Device Manager should
present the programmer as correctly installed.

Page 26
3.1.2 Linux
The programmer can be operated under Wine in Linux.
Please find detailed installation instructions at separate
chapter.

3.2 Driver Updating


PRESTO communicates with the PC through a USB circuit
produced by FTDI www.ftdichip.com, which also develops
drivers for these circuits.
The latest drivers are always included in the UP
installation pack.
Drivers for the Windows operating system have been
stable for a long time and therefore no further updates
are usually needed, unless additional applications using
the FTDI circuits on the given PC so require.
However, should you need to update your driver, the
simplest way of doing so is to update the UP program.

Download the latest UP installer from the web and install


the new version without risk of losing your personalized
program setup data or data of your projects. The new
version will replace the original one.

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:

Add a new file with udev rules to the directory /etc/


The software for the programmers is capable of working udev/rules.d or /lib/udev/rules.d (Depending on
under Wine. For USB access it uses libftd2xx. your distribution). Suitable name for this new file is 51-
asix_tools.rules. Insert the following lines to this file :
Step 1: Install libftd2xx and libftchipid SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403",
ATTRS{idProduct}=="f1a0", MODE:="0666", SYMLINK
Install 32-bit versions of libftd2xx and libftchipid by FTDI, +="asix_presto"
even if you use 64-bit kernel. The application is a 32-bit SUBSYSTEMS=="usb", ATTRS{idVendor}=="a600",
binary and requires 32-bit libraries. ATTRS{idProduct}=="a000", MODE:="0666", SYMLINK
+="asix_sigma"
The driver can be found on FTDI web at "Drivers/D2XX SUBSYSTEMS=="usb", ATTRS{idVendor}=="a600",
Drivers" section. ATTRS{idProduct}=="a003", MODE:="0666", SYMLINK
• Extract libftd2xx.so.1.1.0 (in case of newer version +="asix_forte"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="a600",
replace 1.1.0 with the latest version) and libftchipid
ATTRS{idProduct}=="a004", MODE:="0666", SYMLINK
and copy the files libftd2xx.1.1.0.so and
+="asix_omega"
libftchipid0.1.0 into the directory for 32-bit
VID and PID values can be determined using the listing of
libraries (typically /usr/lib/i386-linux-gnu/). connected devices by the lsusb command.
• ln -s libftd2xx.so.1.1.0 /usr/lib/i386-linux-
gnu/libftd2xx.so.1 (it is typically sufficient to run
ldconfig to achieve this) Step 2: Install wine
• ln -s libftd2xx.so.1.1.0 /usr/lib/i386-linux- It is necessary to install 32-bit version of wine (for
gnu/libftd2xx.so.0 (must be made manually) example wine-1.4:i386).

• ln -s libftchipid.so.0.1.0 /usr/lib/i386- Step 3: Install lin_ftd2xx


linux-gnu/libftchipid.so.0 (it is typically sufficient
to run ldconfig to achieve this) The lin_ftd2xx is available at ASIX web.
• The library searches for device files in /dev/bus/usb. Check environment variable WINEDLLPATH. It should
Please ensure that /dev/bus/usb directory contains point to directory where are 32-bit wine DLLs, typically /
special files to access USB devices. usr/lib/i386-linux-gnu/wine. Install lin_ftd2xx by ASIX
• Check that your device is recognized by the system into this directory.
(use command lsusb). Installation of the Microsoft™ TrueType core fonts are
recommended. These fonts may be obtained by installing
msttcorefonts package from Ubuntu package repository.

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.

If needed, the program can be uninstalled using the Add/


Remove Programs icon in the Control Panel or manually
by deleting the corresponding directory and desktop Fig. 18: Programmer selection

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.

If the Always use this S/N choice is set, the currently


selected programmer is used even when in a loaded
project file there is defined a different programmer serial
number. Serial number defined on the CommandLine has
priority before this choice.

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.

Selection If you are updating UP to a new version, all the existing


settings will be preserved.
Select the device type by choosing Device ➙ Select
device or by double-clicking the device name displayed A detailed description of all settings can be found in
in the top right corner of the program window. Menus, so we will pay attention to only a few important
settings for now.

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.

Fig. 20: Programming settings

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.

If the Options ➙ Program settings ➙ Programming ➙


Reload file before every programming option is
active, the software reloads current file after the
Program button is pressed. If, however, fuses are not
saved in current file and no project is created from which
fuses could be used, the configuration memory initializes
into the default state before each programming
procedure. This can be avoided by deactivating the
Program settings ➙ Files ➙ Erase configuration
Fig. 21: Programmer settings memory before file reading option.
The current voltage is continuously displayed in the top Many devices have specific requirements for fuse
right corner of this window. settings. Further information on how to correctly set their
fuses can be found in the particular device data sheet.
Should an error i.e. overload occur, a warning appears at
this place.
The output voltage in the idle state if it is turn on can be
5.3.5 Programming
changed only if it is allowed under Options ➙ Program Select the file that you want to program by choosing File
settings ➙ Others ➙ Allow to change supply voltage ➙ Open....
level when it is on (FORTE only).
Once the file opens, you can see the current code/main
If a voltage is present at the VDD pin, you can stop the memory, data memory and configuration memory (fuses).
running microcontroller application by pressing the Reset If you cannot see these windows, activate them under
button and restart it by pressing the same button again. the View menu.
The memory being programmed can be manually
modified at any time by simply marking the required
location and rewriting its value from the keyboard. If you

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.

The programming process is triggered by choosing


5.4 Further Features
Device ➙ Program or by clicking the Program button.
The following section focuses on selected additional
In some devices, the system checks the Device ID (device functions of UP available for device programming.
electronic signature) and the code/data protection bits
before launching the programming process. If the ID does
not match the selected device type, a warning message is
5.4.1 Setting the GO
displayed. Button
Displaying of this warning message is frequently caused ASIX programmers feature a GO button, which allows the
by a fault in the interconnection of the device and the user to trigger the programming process without a
programmer. computer mouse or keyboard.
If things are in order, the programmer performs the The function of the GO button can be set under the
following operations: erases the device, checks the Options ➙ Key shortcuts menu in the GO button field
erasure, programs the device and checks the to suit user's needs.
programmed device.
The UP software must be running if the user wants to use
If only a particular memory of a microcontroller needs to the GO button, but may be minimized on the screen.
be programmed, it can be done by choosing the
corresponding item in the Device ➙ Program menu or Additional settings associated with the GO button can be
by clicking the pull-down arrow next to the Program found in Settings for Programming During Development.
button on the button bar. Depending on the device type,
the following options may be available: program code/
main memory, program data (EEPROM) memory, program
5.4.2 Mass Production
configuration memory or program all. The mass production function is available under the
Device ➙ Program ➙ Mass production menu. It can
also be called up by clicking the arrow next to the
Differential Programming Program button on the toolbar.

The Device ➙ Program menu offers a possibility of


differential programming, provided the device to be
programmed supports it. If selected, the existing memory
content is read first and only cells that differ are then

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.

5.4.3 Serial Numbers


The Serial Numbers function programs the serial number
or another sequence of characters in the selected
memory location.

Fig. 22: Mass production Fig. 23: Serial numbers


The actual programming can be triggered by clicking the Once the serial numbers are activated and their type set
Program button in the Mass production dialog up under Options ➙ Program settings ➙ Serial
window. numbers, a window with the current serial number opens
offering the possibility to manually write a serial number
The function of this button is identical to the Program all
in the memory HEX editor, to specify where it should be
or Program all except data memory options
written and if the system should proceed to the next
depending on the state of the Don't program data
sequential number.
EEPROM checkbox in the Mass production window.
Serial numbers can be:
This dialog window also displays a counter of devices
programmed. Depending on the program settings, the • Computed
counter can also be displayed in the status bar. For
further information on settings see Production The computed serial numbers must always be written in
Programming Settings. the same selected position in the device such as the
code/main memory, data memory or an ID position, for
The counter displays the number of programmed devices example. The serial number is always expected to be a
in both the mass production mode and the standard number in decimal or hexadecimal format and may be
mode. coded as a 4-bit combination (one to four characters per
word) or as an ASCII character (one or two ASCII
Pressing the Counter reset button zeroes all the mass characters per word). If the code/main memory is used for
production counters. This operation cannot be undone. Microchip microcontrollers, you can choose RETLW
The choice "Auto programming" causes that the device is instructions. Then RETLW instructions are written in the
programmed after it has been connected, the connection given address of the code/main memory together with a
test is done by reading the Device ID. parameter corresponding with the serial number.

The programming can be launched by connecting • Taken from File


external power supply (VDD). A single serial number can be distributed in more than

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).

Note: A word is understood as one memory position.

Fig. 24: Serial number settings

A file for logging the programmed serial numbers can be


selected under Options ➙ Program settings ➙ Serial
numbers.

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

sn4:  0000 67 78 89 9A, 2100 04 02 03 04; Working With Calibration


sn5:  0000 78 89 9A AB, 2100 05 02 03 04;
sn6:  0000 78 89 9A AB, 2100 06 02 03 04;
Memory in Devices With Flash
sn7:  0000 78 89 9A AB, 2100 07 02 03 04;
sn8:  code.0001 3F00 3F01 3F02 3F03, 
Memory
data.0002 'x' '4' '2'; When these devices are erased, the content of their
sn9:  prog.0001 3F00 3F01 3F02 3F03, calibration memory is preserved.
  e.0002 'x' '4' '3';
If you really need to erase the calibration memory for
some reason, you can do so by choosing Device ➙ Erase
5.4.4 Calibration Memory ➙ Erase all (including calibration).

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!

Working with Calibration 5.5 Program Controls


Memory When Erasing a Device
in UV Eraser
Calibration data should be saved prior to erasing a
device. To do so, choose File ➙ Save calibration
data...

ou can retrieve it back by choosing File ➙ Read


calibration data...

The program contains a function for verifying whether a


device has been erased correctly: Device ➙ Blank
check. When this command is used, the program displays
data from the calibration memory.

Fig. 25: Controls of UP software

1) Title bar with the open project name or file


2) Menu

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

7) HEX editor window for code/main memory • Edit Menu

8) HEX editor window for data memory • View Menu

9) Configuration window • Device Menu

10) Status bar • Options Menu


• Help Menu
5.5.1 Toolbar
A toolbar is a panel with quick selection buttons located
under the program menu (see Program Controls).
File Menu
If you want to remove the toolbar, simply uncheck the File ➙ New
Display icons and descriptions on the toolbar button Keyboard shortcut: Ctrl+N
options in the Settings menu as described in Program
settings. The program creates a new empty file. If the currently
open file has not been saved, the program prompts the
5.5.2 Status Bar user to save it.

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.

File ➙ Save File ➙ New project


Keyboard shortcut: Shift+Ctrl+N
Keyboard shortcut: Ctrl+S
This command creates a new project.
The program saves the file on a disc. If you want save
your file under a different name than the current one, use It is especially advisable to use project files if you
the Save As... command instead. frequently switch between programming different device
types or if you are using several different programmers. A
The program can skip unused locations of the memory.
project file contains all the corresponding settings and
See Program settings for details.
provides for loading of all of them in one step.

File ➙ Save as... File ➙ Open project...


The program saves the open file on a disc under a new
Keyboard shortcut: Shift+Ctrl+O
name using the Windows standard dialog.
Using the Windows standard dialog, the program opens
The program can skip unused locations of the memory
an already existing project file saved on a disc. If an
while saving or not to save certain selected locations.
additional file had been opened together with the project,

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.

Individual bytes can be inserted as well as saved in View ➙ Boot memory


RETLW instructions (this applies only to the code/main This command opens or closes the boot memory HEX
memory working with Microchip microcontrollers). editor window. For more on HEX editors see HEX Editor
Note: Microchip PIC RETLW instruction means return with Windows.
a constant value in the work register – this instruction is
frequently used for creating tables. View ➙ Configuration memory
If the Text insert... command is called, the program This command opens or closes the configuration memory
presets the selected memory and the starting cell HEX editor window. For more on HEX editors see HEX
according to the current window and the selected cell. Editor Windows.

Edit ➙ Fill selected location with View ➙ Console


This command opens or closes the console, where the UP
RETLW can write details about programming.
This command fills the selected Microchip
microcontroller's memory location with RETLW. View ➙ Display code/main memory
The command can be called only from an open HEX Keyboard shortcut: Alt+F10
editor. It is also available through the context menu (right
mouse click) in the editor. This command displays the code/main memory HEX
editor. If it is already displayed, it moves it to the front
A memory location can be selected by holding the Shift (the editor gets focus). For more on HEX editors see HEX
key and clicking by mouse or moving by means of the Editor Windows.
cursor keys (arrows). For further information on
highlighting a location see HEX Editor Windows. View ➙ Display data memory
Keyboard shortcut: Alt+F11

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.

▸ Program all except data memory


A keyboard shortcut can be assigned in Options ➙ Key
shortcuts.

This command works the same as Program all with the


exception that it does NOT erase, program or verify the
data memory.

Devices without a data memory do not have this


command available and their programming is done using
the Program all command.

This command cannot be used in some cases that use


Code or Data Protection. For these, the program offers
the command Erase whole device and program also
data memory (with data currently in the editor).

▸ Program code/main memory


A keyboard shortcut can be assigned in Options ➙ Key
shortcuts.
This command erases the code/main memory, checks the
erasure, programs and checks the programming result.

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.

▸ Program configuration memory ▸ Mass Production


A keyboard shortcut can be assigned in Options ➙ Key A keyboard shortcut can be assigned in Options ➙ Key
shortcuts shortcuts
This command programs the configuration memory and This command opens a window for easy programming of
ID positions (if device contains them) and checks the several identical devices with the same or very similar
programming result program(s) (except their serial numbers and the like). For
further information see Mass Production.
▸ Program differentially
Keyboard shortcut: Ctrl+F5 Device ➙ Read
This command programs the device applying the Keyboard shortcut: Shift+F6
differential method. This means that it reads the device This command opens a sub-menu with device reading
and programs only those cells the content of which differs options. Some of them may be not available for certain
from the editor. device types.
This command is available only for those devices that
support such treatment (not all devices do). ▸ Read all
Keyboard shortcut: F6
If a device has the Code/Data Protection active,
differential programming makes no sense. The program This command reads the content of the whole device.
performs complete programming instead, including
device erasure. ▸ Read all except data memory
A keyboard shortcut can be assigned in Options ➙ Key
▸ Differential program data memory shortcuts
A keyboard shortcut can be assigned in Options ➙ Key
shortcuts This command reads the content of the whole device
except the data memory.
This command programs the data memory applying the
differential method. Its function is identical with ▸ Read code/main memory
differential programming of the code/main memory.
A keyboard shortcut can be assigned in Options ➙ Key
This command is available only for those devices that shortcuts
support such treatment (not all devices do).
This command reads the content of the code/main
If a device has the Code/Data Protection active, memory.
differential programming makes no sense. The program

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.

This command compares the content of all device ▸ Erase all


memories except its data memory with the current
Keyboard shortcut: F8
content of HEX editors.
This command erases the whole device.

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.

▸ Erase data memory ▸ Blank check of configuration 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 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

This command verifies whether the code/main memory is


correctly erased.

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.

This option is also important if no “empty” locations are


saved in the .hex file (see ▸ Save unused locations to .hex
file).

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.

▸ Save fuses in UP instead of data file ▸ Code/main memory editor 8 words


This option allows to save fuses in ini file or UP projekt file wide
even for devices which by default have their fuses saved This option narrows the editor from the original sixteen
in a data file. cells down to eight. The option is suitable especially for
small monitors. It can change automatically when a
▸ Project storing style different device type is selected.
This panel allows you to set how projects should be saved
when exiting UP. Available options are: save The same option can be set for others memories:
automatically, ask before saving or keep the original file
(i.e. do not save). ▸ Data memory editor 8 words wide
▸ Boot memory editor 8 words wide
▸ Load last project on start-up
This option allows you to set if on the next UP start it will ▸ Show only the lowest byte of word in
open the project file, which was open on program ASCII
closing. When this option is activated, the program shows the
ASCII translation of only the lowest byte of word, which
Options ➙ Program settings ➙ can be useful especially for PIC MCUs.
Colors ▸ Mask ID positions while reading from
Keyboard shortcut: Shift+F10
device, from file, etc.
This is where you can change and save colors of HEX Some manufacturers' specifications recommend saving
editors so that they suit your needs and your aesthetic only masked data (with only four bits usable) in ID
preferences. positions. With this option activated, the program always
applies this bit mask when reading ID positions from
A front color, a background color and a font can be
different sources.
selected for all the listed text segments.

Options ➙ Program settings ➙ ▸ Mask ID positions during direct user


input
Editors With this option activated, the program applies the bit
Keyboard shortcut: Shift+F10 mask to each user-modification of ID positions. For further
information see ▸ Mask ID positions while reading from
device, from file, etc..

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.

▸ Hexadecimal address of first word ▸ Write checksum to log file


This address defines where the first word of the serial Enables writing of the loaded data file checksum to a log
number is to start in the selected memory type. file.

Note: The checksum is recalculated on data file load. This


function have to be enabled before the file load, else the
checksum value will not be written to the log file.

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).

Window ▸ Baud Rate


Power supply from the programmer Using this option it is possible to set a communication
speed between the programmer and the programmed
This trackbar allows the user to set the voltage level
device.
supplied to the application by the programmer.

In idle state Settings Associated with PIC


If this option is checked, the programmer supplies power Microcontrollers
to the application even when not programming. ▸ Programming method
During programming • HVP Traditional programming will be applied using a
voltage of 8 V to 13 V at pin P.
If this option is checked, voltage from the programmer
will be used during programming. • LVP Programming utilizing the microcontroller's LVP
pin will be applied; only logical values of 0 or 1 are
Reset present at programmer's pin P.
This button allows you to switch levels on the device's ▸ Use PE
reset pin between the level required for reset and high
impedance. Programming utilizing the Use PE option can be applied
to PIC24 and dsPIC33 devices. PE stands for Programming
Reset is active if voltage is present on the power supply Executive and it is a programming method frequently
pin. proving to be faster. The Programming Executive does
verification after programming, that is why UP does not
verify after PE programming.

Page 58
Boot memory programming the device will be written back to the fuse.

This allows to select the boot memory region to be HVP


programmed or checked.
If this option is checked, the programmer uses the “high”
voltage at pin P for communication with the device.
Settings Associated with AVR and
8051 Microcontrollers This allows you to program a device with the external
RESET signal switched off.
Oscillator frequency
An external oscillator or a functional internal oscillator Settings Associated with I2C
must be connected in the course of AVR microcontroller
programming. The frequency setting must match the
Memory Chips
frequency at which the device's oscillator is really I2C Bus Speed
running, after eventual dividers. The maximum speed of
Select the maximum possible speed of the I2C bus. The
communication with the microcontroller then depends on
programmer switches on the internal pull-up of 2.4 kΩ
the frequency of this oscillator.
while working on the I2C bus.
Faster Programming with Slow Clock I2C Memory Address
If this option is active, once the device is erased, the
Select the address of the I2C memory on the bus.
fuses are programmed at the maximum frequency of the
internal oscillator. This allows the programmer to
communicate with the device at a faster speed. At the Settings Associated with SPI Flash
end of programming, the required value of the
communication memory including the clock speed is
Chips
programmed. ▸ Start address
This option has its effect only if the whole device is Sets the address range for work with the memory. Start
programmed. address is the first address, where the selected
operation is executed.
Inverse Reset
▸ End address
With this option activated, the programmer generates an
inverse reset signal. Sets the address range for work with the memory. End
address is the last address, where the selected operation
This option is appreciated if the application includes a is executed.
reset circuit that needs an inverse signal at the input
compared to the output signal sent to the microcontroller,
and if the programmer is connected via this reset circuit. PRESTO Programmer Settings
Write RC osc Adjustment Window
When this option is set, programmer will write the value In idle state
defined in the Configuration window to "RC osc
Adjustment" fuse. When it is not set, the value read from If this option is checked, the programmer supplies power
to the application even when not programming.

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.

Settings Associated with PIC Settings Associated with AVR and


Microcontrollers 8051 Microcontrollers
MCLR Pin Control Oscillator Frequency
The logical value present at pin P1 (VPP) can be An external oscillator or a functional internal oscillator
controlled by the Run, Stop, Tristate and Reset buttons must be connected in the course of AVR microcontroller
in the idle state if a voltage is present. programming. The frequency setting must match the
frequency at which the device's oscillator is really
The Reset button generates a resetting pulse. running, after eventual dividers. The maximum speed of
communication with the microcontroller then depends on
Programming Method the frequency of this oscillator.
• HVP Traditional programming is applied with 13 V
present at VPP. Faster Programming with Slow Clock
• LVP Programming utilizing microcontroller's LVP pin is If this option is active, once the device is erased, the
applied, only logical values of 0 or 1 are present at fuses are programmed at the maximum frequency of the
programmer's pin P. internal oscillator. This allows the programmer to
communicate with the device at a faster speed. At the
Algorithm Programming end of programming, the required value of the
communication memory including the clock speed is
• Auto An algorithm is selected according to the voltage programmed.
currently present at VDD.
This option has its effect only if the whole device is
• Ucc=5 V The algorithm for fast 5 V programming is
programmed.
used.
• Ucc=2.7 to 5.5 V The algorithm for slow Inverse Reset
programming is used with the benefit of working at all With this option activated, the programmer generates an
power supply voltages. inverse reset signal.
Use PE This option is appreciated if the application includes a
Programming utilizing the Use PE option can be applied reset circuit that needs an inverse signal at the input
to PIC24 and dsPIC33 devices. PE stands for Programming compared to the output signal sent to the microcontroller
Executive and it is a programming method frequently and if the programmer is connected via this reset circuit.
proving to be faster. The Programming Executive does
verification after programming, that is why UP does not HVP
verify after PE programming. If this option is checked, the programmer uses the “high”
voltage at pin P for communication with the device.
This allows you to program a device with the external

Page 60
RESET signal switched off.

Settings Associated with I2C Selecting an Area


Memory Chips An area can be selected in a HEX editor by holding the
Shift key down and pressing the cursor keys (i.e. arrows).
I2C Bus Speed
Once a required area is selected, it can be filled with a
Select the maximum possible speed of the I2C bus. The required value. The values can also be filled with RETLW
programmer switches on the internal pull-up of 2.2 kΩ instruction. These options are available in the context
while working on the I2C bus. menu (opens by mouse right-click).

I2C Memory Address


Select the address of the I2C memory on the bus. Code/Main Memory Editor
Settings Associated with SPI Flash Menu: View ➙ Display code/main memory

Chips Keyboard shortcut to open the window: F10


Keyboard shortcut to close the window: Esc
▸ Start address
The code/main memory editor displays the code/main
Sets the address range for work with the memory. Start memory content or the content of the memory itself in
address is the first address, where the selected case of serial EEPROM chips (24xx, 93xx,...).
operation is executed.

▸ 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

Keyboard shortcut to open the window: F12


Keyboard shortcut to close the window: Esc

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.

up.exe file.hex See the “read_avr_eeprom.bat“ sample batch file in the


installation directory of UP.
up.exe "C:\My Documents\Recent Projects\PIC
\My latest project\flasher.hex" 5.6.3 Work flow monitoring
Device Programming When the application was started in the quiet mode
(with /q parameter) on the commandline, an external
up.exe /p file_name
application can monitor its work flow by reading of the
up.exe /p file.hex value of the main ProgressBar, it is being continuously
saved to a Named Shared Memory.
up.exe /p "C:\My Documents\Recent Projects\PIC The UP software shares a variable of size of one Integer. It
\My latest project\flasher.hex" can be accessed using OpenFileMapping and
MapViewOfFile Windows functions. The name of the
5.6.2 Program Return shared variable is the UP window class name plus
_Progress string. E.g., when the name is set to up1 using
Codes the /w parameter, then the name of the shared variable is
up1_Progress.
0 Problem-free execution.

1 File error. File not found or incorrect file


format, for example. 5.7 Running UP by Means
2 Equipment error. Communication
failed, communication error.
test of Windows Messages
The UP program can be controlled by means of messages
3 Programming preparation error. device of the Windows operating system. The running instance of
cannot be erased, etc. UP executes the requested command immediately after
message receipt.
4 Programming error.
Messages must be sent to "up v1.x" class window. The
5 Verification error.
message type is always of WM_USER.
6 Programming failed due to a need to
Commands are identified by “wParam” while parameters
communicate with user.

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

Commands with a wParam of 1, 2, 3, 4, 5, 6, 7 and 24 are


thread blocking.

wParam lParam Description


0 0 does not perform anything, returns 1
1 SetForegroundWindow()
2 Maximize, SetForegroundWindow()
1 any programs everything, same return code as
from the command line
2 any programming excl. data memory, same
return code as from the command line
3 see programming incl. erasing, same return code
below as from the command line
bit 0 = 1 code/main memory
bit 1 = 1 data memory (EEPROM)
bit 2 = 1 configuration memory
bit 3 = 1 boot memory (MSP430, CC430)
4 see reading
below
bit 0 = 1 code/main memory
bit 1 = 1 data memory (EEPROM)
bit 2 = 1 configuration memory
bit 3 = 1 boot memory (MSP430, CC430)
5 see differential programming
below
bit 0 = 1 code/main memory
bit 1 = 1 data memory (EEPROM)
bit 2 = 1 configuration memory

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_GetIntValue_Wnd(WndClass:PChar; Valu For further information see Appendix A UP_DLL.DLL.


eName: PChar; var Value: integer): LongBool; std
call;
5.9 Running More Than
(*
* All these functions are used for changing
* internal settings of UP in runtime.
One Instance of UP
* UP_GetIntValue, UP_SetStrValue, If you need to connect more than one programmer to one
* UP_SetIntValue returns nonzero if computer, a separate instance of UP must be running for
* successful each programmer connected.
* UP_GetStrValue returns amount of
* characters to copy into Value string UP should be running in just one instance for standard
* including null terminator use. Each additional instance just sends commands from
* If Size is less than requied size, no the command line to the already running first instance or
* characters are copied. makes it visible in another way.
*)
However, UP can be started and run in several instances if
implementation used together with the parameter /w and a different
window class name. Those programs (instances) having
function UP_LoadFile; external 'up_dll.dll'; the same window class name will communicate with each
other.
function UP_GetStrValue; external 'up_dll.dll';
Parameters for the program controlled from the command
function UP_GetIntValue; external 'up_dll.dll'; line are described in Running UP from Command Line.

function UP_SetStrValue; external 'up_dll.dll'; Example of use


The first instance of UP can be started the standard way
function UP_SetIntValue; external 'up_dll.dll';
from the start menu.
function UP_LoadFile_Wnd; external 'up_dll.dll'; Additional instances can be started from the command
line as up.exe /w "another up", for example.
function UP_SetStrValue_Wnd; external 'up_dll.dl
l';

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.

Instances to One 5.12 Appendix A UP_DLL.DLL


Programmer This appendix deals with the names of settings and
Only one program or utility can access one programmer values of functions in the UP_DLL.DLL library.
at any one time. Please look at the sample batch files in UP installation
The operating system takes care of the access rights of folder for better understanding.
programmers connected to the USB interface. The following information is provided only for experienced
If UP is running, the operating system does not allow any users and does not provide any guarantee.
other program to access the selected programmer as UP
needs to continually check the GO button state and the 5.12.1 Data Types
voltage on the feeding pin.
string is string
UP can temporarily be prohibited to access the
programmer and the programmer freed this way for integer signed 32bit value
another application. This can be done by choosing
boolean accessed like integers; 0 is false, other
Options ➙ Select programmer. As long as this dialog is
value is true
open, another program can access the programmer. The
data the system works with in HEX editors does not get
lost by closing this dialog window. 5.12.2 List of UP variables
Prog.LoadFileBfgProg
5.11 Updating UP boolean

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

Part.Name Opened current file path


string
HexFile.Present
Selected device name boolean

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

HexFile.AskForBinEndian Question before differential programming (of flash


boolean devices)

If true, the user is asked if the loaded BIN file should be Prog.QBfrProgCP
loaded as Little or Big endian. boolean

HexFile.BinLittleEndian Warning before programming device with some kind of


boolean protection

If true, the loaded BIN file is loaded as Little endian. Prog.CloseStatOnGoodAct


boolean
HexFile.LoadDataAuto
boolean If true, status window will be automatically closed after
read/verify etc... without errors.
If true, with file is loaded also a separate file for data
memory. Prog.CloseStatOnGoodProg
boolean
HexFile.LastDataFile
string If true, status window will be automatically closed after
programming without errors.
Path of a separate file for data memory.
Prog.BeepOnGoodProg
HexFile.DataIHex boolean
boolean
If true, program makes a sound on successful
If true, the file for data memory with extension different programming.
from .HEX or .BIN is loaded as HEX file.
Prog.BeepOnBadProg
Prog.QBfrEraseFlash boolean
boolean
If true, program makes a sound on unsuccessful
Question before erasing flash devices programming.

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.

If true, no blank check of device is performed before Serial


device programming. integer
Prog.SkipErase 0 no serial numbers
boolean
1 serial numbers are from external file
If true, no erasing is performed before device
programming. 2 serial numbers are calculated

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

If true, no verification is performed after programming. Serial.Length


integer
Prog.DoubleVerify If serial number is computed, serial number length
boolean (digits)
If true, verification on two supply voltages is performed
after programming. Supported by FORTE with internal Serial.Actual
supply voltage only. (unsigned) integer

If serial number is computed, actual computed serial


Prog.DoubleVerifyV1 number (if decimal, coded as BCD)
integer

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

ICSP.LongTime.Time.SwOff 1 LVP method


integer
SpecSettings.PREST.PICAlg
Time to wait after Vcc is switched off in microseconds. integer

SpecSettings.PREST.Power 0 automatic selection


integer 1 assume VDD = 5 V
0 idle power supply is None / External 2 assume VDD < 5 V
1 idle power supply is Internal 5 V
SpecSettings.PREST.UsePE
SpecSettings.PREST.ProgPower boolean
integer If true, PE (programming executive) is used for
0 power supply during programming is programming of PIC MCUs.
External 2.7 to 5.5 V
SpecSettings.PREST.PIC32MZ_BootProg
1 power supply during programming is integer
Internal 5 V
0 Lower Boot alias
SpecSettings.PREST.i2cSpeed 1 Boot Flash 1 and 2
integer

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

0 3 MHz Defines the size of the internal supply voltage provided by


FORTE programmer. The value is in volts x 10.
1 1.5 MHz

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.

2 assume VDD =< 3.6 V SpecSettings.FORTE.ARMOscType


integer
SpecSettings.FORTE.PSoCRSTInit
integer 0 Crystal

0 Reset mode 1 Ext. Clock

1 Power cycling 2 Int.RC 32 kHz

SpecSettings.FORTE.MSP430osc SpecSettings.FORTE.ARMCommFreq
integer integer

0 Calibrated internal RC oscilator Selects communication frequency between FORTE


programmer and the programmed chip. The frequencies
1 Not calibrated internal RC oscilator are same as stated in the "Communication frequency"
ComboBox in UP. 0 means the highest frequency, 1 is
SpecSettings.FORTE.MSP430speed lower and so on.
integer
SpecSettings.FORTE.SPI_Flash_Freq
0 Normal integer
1 Slow Selects communication frequency between FORTE
programmer and the programmed chip. The frequencies
2 Slowest
are same as stated in the "Communication frequency"
ComboBox in UP. 0 means the highest frequency, 1 is

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.

SpecSettings.FORTE.ATxmegaInterface 5.13.1 Pins Used for


integer
0 PDI Programming
This chapter describes how to treat pins in the ICSP
1 JTAG programming mode in accordance with the programming
algorithm.
SpecSettings.FORTE.i2cSpeed

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.

Data pins may have their signals changing at a speed of


several MHz, so the application must not influence the
signals in any significant way.

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:

Pin No. Signal Programming connector


Programmer Charging current Discharging current
1 -MCLR P / VPP
PRESTO Corresponds to 50 Ω Corresponds to 1 kΩ
2 not used (key)
FORTE Corresponds to 50 Ω Corresponds to 27 Ω
3 VCC VDD
Table 10: Equivalent resistance of pin VDD 4 GND GND
5 RB7 D / DATA
Example
6 RB6 C / CLOCK
The necessary charging time for an application with 7 not used
a 33 μF capacitor programmed with PRESTO: 8 RB3/RB4/RB5 L / LVP
2.5 × 33 × 50 = 4125 μs
Table 11: ICSP connector
discharging:
The following drawing illustrates the recommended
2.5 × 33 × 1000 = 82.5 ms. connection of -MCLR/VPP pin found in Microchip
For further information on the setting see ▸ Delay for VDD microcontrollers for device programming through the
switching on/off when supplied from programmer. ICSP interface.

Page 80
5.14.2 Description of
Intel‑HEX File Format
Intel-HEX are text files consisting of lines.

Each line has the following structure:


:LLAAAATTDDDD...CC

„:“ Each line in a file must start with this


character (colon, 0x3A).

LL Length of record (number of DD fields).

AAAA Address of record's first byte.


Fig. 26: Recommended connection of -MCLR/VPP pin
TT Record type. The types may be:

5.14 Appendix C: Intel‑HEX 00 - Data

01 - End of file. Each file must finish with


File Format this record.

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.

Files DD Record data. The number of bytes must be


exactly LL.
UP supports 2 basic alternatives of Intel-HEX files:
CC Checksum. The check sum is computed as
• "basic", sometimes also 8-bit Intel-HEX File (e.g. a binary supplement to the sum of all
Microchip MPASMWIN generates this file with values on the line.
parameter INHX8M).
• "extended", sometimes also 32-bit Intel-HEX File (e.g.
Microchip MPASMWIN generates this file with Data Record
parameter INHX32).
A line with the configuration memory of a 14-bit device is
used here as an example.

: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

Extended Linear Address


Only files that need to address more than 64 kB of the
addressed space contain this line.

For example, processors of the PIC18F family have their


configuration memory saved at the address 0x 30 00 00
00.

If this address needs to be used, it is necessary to insert a


line in the .hex file specifying the extended linear
address, i.e. the upper 16 bites of the address. The lower
16 bits are read from the line with the data record.

:020000040030CA

This line selects the configuration memory of PIC18F


family devices.

The extended segment records specify the segment, i.e.


bits 19-4 of the address, which are then added to
addresses from the data records (offset).

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.

From the view of the user the UP software is running


invisibly.

There is more information concerning the library available


in a separate document.

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.

The function QsetPins() is provided for controlling all


pins that can work as an output, while the function
QGetPins() serves for reading pins working as an input.
The function QSendByte() allows you to quickly send an
SPI Byte to data and clock pins. If reading is needed at
the same time, use the QsendByte_OutIn() function.

In addition there are functions for setting the


programmer's characteristics, controlling the voltage or
reading the return values.

This library can be used with all revisions of the PRESTO


programmer regardless of the hardware version.

The functions implemented in the presto.dll library are


described in detail in a separate document devoted to
this library.

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.

8.1.1 SVF File


JTAG PLAYER is a utility designed for programming
devices with the JTAG interface by means of PRESTO or SVF (Serial Vector Format) is a file used for describing
FORTE programmers. high-level operations on the IEEE 1149.1 bus.

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.

8.1 JTAG Device Examples of How to Create SVF


Files
Programming This chapter presents methods of creating an SVF file for
different types of device.
Having started JTAG PLAYER, select your programmer in
Options ➙ Select Programmer.
Atmel AVR (e.g. ATmega128)
If you cannot see your connected programmer in the Programming
dialog window, check if the green ON-LINE LED on the
programmer is on. If so, make sure thatanother software Generate an SVF file using the avrsvf.exe program
is not communicating with the programmer. available at the ATMEL website in the “Tools & Software
of AVR 8-bit RISC MCUs” section.
Program the device by choosing File ➙ Open&Process.
The file to be programmed must be in SVF/XSVF format. Example:
For more information on the file format see SVF File or
XSVF File. avrsvf -datmega128 -s -e -ifmyfile.hex -pf -vf -
ovmyfile.svf -mp
If an error occurs during the programming process, check
the connection between the programmer and the This example shows how to create an SVF file from the
application. In addition, check the presence of a feeding myfile.hex file. The final SVF file is then used by
voltage. jtagplay.exe for erasing, programming and verification.
Run avrsvf -h for more information.

The device must be in the reset state during


programming.

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.

Altera CPLD Programming 8.1.2 XSVF File


The QUARTUS II program by Altera can generate SVF files XSVF (Xilinx Serial Vector Format) is a file used for
if it is set up so in the menu. describing high-level operations on the IEEE 1149.1 bus
Such an SVF file, however, cannot be used as it is due to extended by Xilinx.
a wrong Silicon ID. According to Altera, SVF files XSVF is recommended for Xilinx CPLD XC9500.
generated by their software are assumed only for ATE
(Automatic Test Equipment) programmers and Altera
does not consider supporting others.
Examples of How to Create
However, such an SVF file can be manually modified to
suit our needs. In order to do so, delete the "CHECKING XSVF Files
SILICON ID" section in the SVF file or mark it as a non- Xilinx CPLD Programming
executable comment.
To create an XSVF file, use the iMPACT program available
at the Xilinx website.
State of .svf File Choose Prepare Configuration Files ➙ Boundary-
Implementation Scan File ➙ XSVF File in the Operation Mode
Selection dialog window that opens after the iMPACT
The SVF file support has been implemented in accordance
program starts. Run all operations (Erase, Program,
with the "Serial Vector Format Specification, Revision E"
Verify, Test...) the same way as if a programmer was
available at www.asset-intertech.com/support/svf.html
connected (e.g. Xilinx Parallel Cable). Then save the new
with the following limitations:
file and close iMPACT. Running the created XSVF file will
• PIO a PIOMAP commands are not implemented. perform the recorded operations.

• 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.

8.2.1 Default TCK signal


frequency
This frequency of the TCK clock is used until the JTAG
Player reaches the first FREQUENCY command in the SVF
file or until the FREQUENCY with the "default" value is
reached.
The XSVF file format does not support the FREQUENCY
default command. Therefore frequency defined by
Default TCK Signal Frequency parameter is applied to
all operations.

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.

8.2.2 Fast Clocks Option 8.2.4 RUNTEST Timing


(FORTE only) Multiply (both SVF
This option is available only for the FORTE programmer. and XSVF)
According to the JTAG specification, the signal at TDI is Recommended values:
sampled at TCK's rising edge. However, should a higher
• for accurate timing specified in the SVF or XSVF file:
frequency be required (around 5 MHz or more), it may be
0% (no added time)
useful to change the moment of sampling from the rising
edge to the falling edge by shifting it by 1/2 of the TCK • for XC9500(XL) family: 100% or more
period. To do so, choose Fast Clock Option.
• for Atmel AVR (e.g. ATmega128): 25%

8.2.3 RUNTEST without 8.2.5 RUNTEST with


run_count (SVF only) run_count and no
The programmer should stay in the specified state for the
specified time and generate the clock signal on TCK while timing
executing an SVF file.

The specified time can be exceeded, but it slows the


(both SVF and XSVF) 
programming process down. Even though it is not This command should be interpreted as the minimum
supported by the SVF specification, many programmable frequency on TCK.
devices allow stopping the TCK clock during this time.
Yet some SVF file generators (such as Xilinx iMPACT, for
The programmer's ability to keep accurate time needs to example) use this command as waiting time and assume
be considered. A high level of accuracy cannot be a frequency of 1 MHz. For such cases the use of "interpret
achieved if the maximum frequency is used (the as RUNTEST min_time with scale 1 MHz" setting is
programmer can guarantee respecting the min_time SEC recommended.
parameter only). A higher accuracy can be achieved with
JTAG Player Behavior When Reaching RUNTIME
slow clock (~100 kHz). If the clock signal is not used at
Command With MINTIME Specification
all, the programmer is capable of following the min_time
SEC parameter almost exactly. (This concerns only SVF files as the RUNTEST alternative,
which is usable in XSVF XRUNTEST run_count cannot
Three possibilities are available considering these facts:
specify time.)
• no clock on TCK

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.

8.2.6 VPP PRESTO / P Default Settings for XC9500


FORTE pin usage Default TCK frequency: 5 MHz; Ignore FREQUENCY
commands
while running test
Fast Clock Option (FORTE only): 5 MHz and above
(file) / after test RUNTEST without run_count (SVF only): slow clock
completion on TCK (~100 kHz)
The selection of the VPP / P pin function: TRST or SCK as RUNTEST timing multiply (both SVF and XSVF):
described in the SVF file or user-defined output levels. 100%
(This is useful to keep the device in the reset state during
file execution.) RUNTEST with run_count and no timing (both SVF
and XSVF): interpret as RUNTEST min_time with scale
1 MHz
8.2.7 Default Settings
VPP PRESTO / P FORTE pin usage while running test
The JTAG Player features several default settings intended (file): Tristate
primarily for use in connection with FORTE, but not with
PRESTO. Feel free to change these settings if the default VPP PRESTO / P FORTE pin usage after test
values do not suit your application. completion: Tristate

Default Settings for FPGAs Default Settings for AVR:


Default TCK frequency: 15 MHz; Ignore FREQUENCY Default TCK frequency: 1 MHz; Ignore FREQUENCY
commands commands
Fast Clock Option (FORTE only): 5 MHz and above Fast Clock Option (FORTE only): 5 MHz and above
RUNTEST without run_count (SVF only): default RUNTEST without run_count (SVF only): default
speed clock on TCK speed clock on TCK

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

8.3 Running JTAG Player


from Command Line
SVF & XSVF JTAG Player can be run from the command
line for more comfort especially during debugging. The
following parameters apply:
jtagplay.exe [-p] [-f filename] [-i inifile] [-
c] [-cc] [-s serial]

-p automatically executes the file specified in


the -f filename parameter

-f filename specifies SVF / XSVF file to be executed


-i inifile ini file containing settings

-c closes the program if the file has been


executed without errors
-cc closes the program even if the file has been
executed with error(s)

-s serial uses PRESTO or FORTE programmer of the


specified serial number, when instead of
the serial number there is the "-" (dash)
sign, it will use any connected programmer
regardless of its serial number
-forte uses FORTE, not PRESTO

Return Codes

Page 90
9 9.2 Programming
For programming of predefined tasks it is advisable to

MultiUP open MultiUP project file in menu "File/Open MPPR file".


The project can be crated in the "Options" menu.

Afterwards the particular programmings can be run


MultiUP is utility usable for programming with up to 4 separately using the "Run" button on the appropriate
ASIX programmers at once. MultiUP uses program UP. programmer panel or all the active programmings can be
run at once using the "Run all" button, eventually the
The utility is installed together with the UP program. associated keyboard shortcuts can be used.
MultiUP can simply, using one button, run programming
of selected task, which is deffined with the UP program
project and other settings.
9.3 CommandLine
To increase speed the utility loads the programming data It is possible to provide the MPPR project path on the
only once, it is suitable for using in production. commandline, it will be loaded on the utility start.

Example:
9.1 Programming settings multiup.exe C:\data\project.mppr

In the "Options/Programming settings" it is possible to


select programmers to be used, UP program project to be
programmed, whether they will program the common
way or using the differential programming and the
memories to be programmed.
To improve clarity it is possible to select a name for each
of the programmers.

Each of the programmers can program a different project


or all of them can be the same project.
All of the programmers do not have to be of the same
type (PRESTO, FORTE), but the selected project have to
use the same type of the programmer.

In the Options it is also possible to select Keyboard


shortcuts for running work of the praticular programmers
and to set the console saving during the program closing.

The parameters configured in the Options can be used


once or they can be saved to MPPR file for other using.

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

TROUBLE-SHOOTING previously programmed? If so, the problems may be


caused by unsuitably set fuses in the device.
• The length of the ICSP cable should not exceed 15 cm.
This chapter describes how to proceed if experiencing • Make sure that there is no additional capacity present
difficulties with device programming. It also describes at the programming (data) pins. Consider if circuits on
testing utilities for PRESTO and FORTE programmers the programming pins could cause too large a load for
designed to check if the programmer is in good condition programming.
or damaged. Please go through all the tips and tricks
before you send your programmer to a service shop. • It is important that the crystal or the communication
speed settings reflect the reality in devices that need
The testing utilities are not part of the UP software that settings.
installation, but they can be downloaded separately from
https://www.asix.tech/prg_testers_en.html. • Some devices may be programmed using several
different methods. Programming problems may be
caused by selecting a different programming interface
10.1 Tips and Tricks or a different programming mode than the ones that
the application is prepared for.
Should you experience difficulties with programming, we If none of the above tips help to eliminate the problem
recommend checking the following points: and if it absolutely sure that the device to be
programmed is not faulty, the fault may lie in the
• Check the microcontroller and programmer programmer.
connections according to the description in Connecting
to Application. Even though it may seem trivial, it is To easily find out whether the programmer is in order or
recommended to check the connection twice and to not, you can use the testing utilities described in the
assume the second time that the link does not always following chapters.
lead where you want it to or it leads to more than one
point.
• If a crystal or other auxiliary devices are used for
10.2 PRESTO Tester
programming, (typically pull-down or pull-up resistors),
check if their values and connections are correct. he PRESTO Tester utility easily tests the “health
state” (usability) of the PRESTO programmer right at the
• It is advisable (and often necessary) to have blocking customer's site.
capacitors at the power supply of the device to be
programmed. In order to run it successfully, only one PRESTO
programmer may be connected to the control PC and its
• If the device to be programmed has more than one drivers must be correctly installed. This is confirmed by
power-supplying pin, all of them must be really fed. It the green LED being on.
is often recommended to check their voltage with a
voltmeter.

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.

In addition, a pull-up resistor may be connected to pin D.


This means that if its output is in the Tristate mode, pin D
starts reading log. 1.

The programming voltage of 13 V can be connected to


the output of pin P.
If everything seems to be in order, but the device still fails
to get programmed, it is recommended to check the
application connection according to instructions for
connecting a microcontroller to the programmer.

If in doubt as to whether the programmer is in order or


faulty, do not hesitate to contact our technical support.

Fig. 27: Tester PRESTO

After you start the tester, make sure that the


programmer's output buffers are fed. You can either use
the 5V from USB option or connect an external power-
supply voltage to the VDD pin. The level of detected
voltage is displayed in the lower part of the VDD&AUX
panel.

Basic communication with the programmer can easily be


recognized by the Active diode being on. You can also
use the Test ➙ USB Flood Test menu option, which
tests the USB communication with the programmer in
both directions.

The programmer's serial number is displayed in the


window title bar. This number is necessary for any
communication with the service shop. You can also find
this number on the bar code label attached to the
programmer bottom.
Now you can switch logical levels for individual output
pins (pins P, D, D and L) and check the output signal

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.

Common connection diagram is below.

Fig. 29: HPR3V3 schematics

11.3 Technical specification

min. typ. max.


VCC output supply voltage 3.2 3.3 3.37 V
Fig. 28: Use of HPR3V3 ICC output supply current 90 mA

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

Table 13: Technical specification

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.

12.1 Usage The HPR1V2 have to be supplied with external


supply voltage from application.
Plug the HPR1V2 level shifter directly to the pins of the
PRESTO programmer (NOT to the programmed device Never turn on the internal supply voltage
connector!). Pin2 is used as a key, so that it is not from the programmer, when the HPR1V2 is
possible to connect it a wrong way. Now, connect the connected!
programmed device to HPR1V2 using ICSP cable.
Connection of the programmed device pins is the same as
connection of the device to the PRESTO. Common
connection diagram is below.

Page 96
12.2 HPR1V2 schematics

Fig. 31: HPR1V2 schematics

12.3 Technical specification

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

Table 14: Technical specification

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

13.1 Usage position of the pin No. 1 in the application as


the application could be damaged if
incorrectly connected.
Connect the HPRAVR adapter to the application's
connector. Make sure that pin 1 of the HPRAVR adapter is
connected to pin 1 of the ISP10PIN connector in the
application (Pin 1 is marked with a red dot at HPRAVR
while it may be marked in different ways on the
connected application – see information in the
corresponding manual).

Now interconnect the adapter and FORTE with an ICSP


cable. Pin 2 in the cable is used as the key. The following
picture illustrates a typical interconnection of the PRESTO
programmer with an application through the HPRAVR
adapter:
Fig. 33: ISP10PIN, top
view

Fig. 34: HPRAVR adapter diagram

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

You might also like