ASIX PRESTO User manual

PRESTO
Reference Manual
USB In-System Programmer

ASIX s.r.o.
Staropramenna 4
150 00 Prague
Czech Republic
www.asix.net
support@asix.net
sales@asix.net
ASIX s.r.o. reserves the right to make changes to this document, the
latest version of which can be found on the Internet.
ASIX s.r.o. renounces responsibility for any damage caused by the use
of ASIX s.r.o. products.
© Copyright by ASIX s.r.o.

Table of Contents
Introduction 9
1
PRESTO 10
2
10
2.1 Package Content
10
2.2 Features
10
2.3 Quick Start
10Windows2.3.1
11Linux2.3.2
11
2.4 Use
11Numerous Supported Devices2.4.1
11USB Connection2.4.2
11Programming of Placed Devices2.4.3
12Programming of Autonomous Devices2.4.4
12Programming Interface2.4.5
12Power Supply From Application2.4.6
12User Interface2.4.7
12Software2.4.8
13Debugging2.4.9
13
2.5 Controls and Connectors
13Programming Connector2.5.1
14GO Button2.5.2
14LED Indicators2.5.3
ON-LINE 14
ACTIVE 14
14USB Connector2.5.4
15
2.6 Connecting to Application
15Custom-made Connecting Cable2.6.1
15Programming in ZIF Socket2.6.2
16Connecting Procedure2.6.3
17Connection Examples2.6.4
PIC Microcontrollers 17
AVR Microcontrollers 18
AVR with TPI Interface (e.g. ATtiny10) 19
Atmel 8051 19
Cypress PSoC 19
MSP430 with TEST pin without SBW interface 20
MSP430 / CC430 with SBW interface 20
TI (Chipcon) CCxxxx 21
I2C Memory Chips 21
SPI Memory Chips 21
Microwire Memory Chips 22
JTAG Interface 22
23
2.7 HPR Adapters
23HPR3V32.7.1
Usage 23
23HPR1V22.7.2
Usage 23
24HPRAVR Adapter2.7.3
Usage 24
25
2.8 Built-in Protection
25
2.9 Technical Specifications
25Limit Values2.9.1
25Operating Specifications2.9.2
26Declaration of Conformity2.9.3
DRIVERS 28
3
28
3.1 Driver Installation

28Windows Operating Systems3.1.1
Windows 7 and later 28
Older supported Windows versions 28
29Linux3.1.2
29
3.2 Driver Updating
Usage under Linux 30
4
UP SOFTWARE 32
5
32
5.1 Abbreviations Used
32
5.2 Installation
32
5.3 Device Programming
32Programmer Selection5.3.1
33Projects5.3.2
33Device Type Selection5.3.3
34Program settings5.3.4
Delay for VDD switching on/off when supplied from
programmer 34
Production Programming Settings 35
Settings for Programming During Development 35
Programmer Settings 36
Fuses and Working with Them 36
36Programming5.3.5
Differential Programming 37
37
5.4 Further Features
37Setting the GO Button5.4.1
37Mass Production5.4.2
38Serial Numbers5.4.3
Format of Files with Serial Numbers 40
Data Record 40
Example of File with Serial Numbers 40
41Calibration Memory Support5.4.4
Working with Calibration Memory When Erasing a
Device in UV Eraser 41
Working With Calibration Memory in Devices With
Flash Memory 41
41
5.5 Program Controls
42Toolbar5.5.1
42Status Bar5.5.2
42Menus5.5.3
File Menu 42
File ➙ New 42
File ➙ Open... 42
File ➙ Open next file... 42
File ➙ Reload actual file 43
File ➙ Save 43
File ➙ Save as... 43
File ➙ Import data memory from file... 43
File ➙ Open file with data memory automatically 43
File ➙ New project 43
File ➙ Open project... 43
File ➙ Save project... 43
File ➙ Close project 43
File ➙ Recent projects 44
File ➙ Read calibration data... 44
File ➙ Save calibration data... 44
File ➙ Export to bin... 44
File ➙ Exit 44
Edit Menu 44
Edit ➙ Fill with value... 44
Edit ➙ Text insert... 45
Edit ➙ Fill selected location with RETLW 45
View Menu 45
View ➙ Code/main memory 45
View ➙ Data memory 45
View ➙ Boot memory 45
View ➙ Configuration memory 45

View ➙ Console 45
View ➙ Display code/main memory 45
View ➙ Display data memory 45
View ➙ Display configuration memory 45
View ➙ Display programmer form 46
Device Menu 46
Device ➙ Program 46
▸ Program all 46
▸ Program all except data memory 46
▸ Program code/main memory 46
▸ Program data memory 47
▸ Program configuration memory 47
▸ Program differentially 47
▸ Differential program data memory 47
▸ Mass Production 47
Device ➙ Read 47
▸ Read all 47
▸ Read all except data memory 47
▸ Read code/main memory 47
▸ Read data memory 48
▸ Read configuration memory 48
Device ➙ Verify 48
▸ Verify all 48
▸ Verify all except data memory 48
▸ Verify code/main memory 48
▸ Verify data memory 48
▸ Verify configuration memory 48
Device ➙ Erase 48
▸ Erase all 48
▸ Erase code/main memory 48
▸ Erase data memory 49
Device ➙ Blank check 49
▸ Blank check all 49
▸ Blank check all except data memory 49
▸ Blank check of code/main memory 49
▸ Blank check of data memory 49
▸ Blank check of configuration memory 49
Device ➙ Select device 49
Options Menu 50
Options ➙ Program settings ➙ Programming 50
▸ Reload file before every programming 50
▸ Keep manually modified data 50
▸ Warn before file load, when data in some
editor have been changed 50
▸ Warn, when the loaded file has not
changed 50
▸ Ask before erasing 50
▸ Ask before programming of OTP / Flash /
Code/Data Protection / differential 50
▸ Display fuse warning messages 50
▸ Except for programming: Close status
window 51
▸ After programming: Close status window 51
▸ Beep after successful finishing 51
▸ Beep after unsuccessful finishing 51
▸ Turn off all sound for UP 51
▸ Delay for VDD switching on/off when
supplied from programmer 51
▸ Do not perform blank check before cfg
word programming 51
▸ Do not perform blank check after erasing 51
▸ Do not erase device before programming 51
▸ Do not erase data memory before its
programming 52
▸ Do not verify unprogrammed words at the
end of the memory 52
▸ Do not verify 52
▸ Verify with two supply voltages 52
Options ➙ Program settings ➙ Panels 52
▸ Display selected device on toolbar 52
▸ Display selected programmer on toolbar 52
▸ Display the status bar in the lower part of
the window 52
▸ Display icons on toolbar buttons 52
▸ Display descriptions on toolbar buttons 52
▸ Show mass production counter in status
bar 52

Options ➙ Program settings ➙ Files 53
▸ File save style 53
▸ Automatically check for newer versions of
actual file 53
▸ Check device type when loading .hex file 53
▸ Save device type into .hex file 53
▸ Warn when loaded HEX does not contain
CFG memory data 53
▸ Warn when loaded HEX is not aligned to
word size. 53
▸ Binary file loading and saving style 53
▸ Save unused locations to .hex file 54
▸ Clear code/main / data memory / ID
positions before file reading 54
▸ Erase configuration memory before file
reading 54
▸ Read data memory not from the file but
from the device 54
▸ Read ID positions not from the file but
from the device 54
▸ Project storing style 54
▸ Load last project on start-up 54
Options ➙ Program settings ➙ Colors 55
Options ➙ Program settings ➙ Editors 55
▸ Code/main memory editor: show words as
bytes 55
▸ Code/main memory editor 8 words wide 55
▸ Data memory editor 8 words wide 55
▸ Boot memory editor 8 words wide 55
▸ Show only the lowest byte of word in ASCII 55
▸ Mask ID positions while reading from
device, from file, etc. 55
▸ Mask ID positions during direct user input 55
▸ Configuration memory editor: show cfg
word instead of fuses 55
Options ➙ Program settings ➙ Serial numbers 55
▸ Serial numbers 55
▸ Prepare S/N before programming 56
▸ Find successor after programming 56
▸ Prepare S/N after programming 56
▸ Serial number interval 56
▸ Log to file 56
▸ Serial number length (the number of
characters) 56
▸ Number base 56
▸ Code as ASCII 56
▸ Initial serial number 56
▸ Next S/N 56
▸ Destination 56
▸ Hexadecimal address of first word 56
▸ Fill with RETLW instruction 57
▸ Characters per word 57
▸ Sequence 57
Options ➙ Program settings ➙ Checksum 57
▸ Show checksum in status bar 57
▸ Checksum algorithm 57
Options ➙ Program settings ➙ Others 57
▸ Update check settings 57
▸ Allow internal and external supply
voltages collision 57
▸ Do not show warning if internal 5V is
switched on with 3.3V device 58
▸ Allow to change supply voltage level when
it is on 58
▸ Allow external supply voltage for devices
requiring VPP before VCC. 58
▸ Pin T during programming 58
▸ Pin T after programming 58
Options ➙ Select programmer 58
Options ➙ Language selection... 58
Options ➙ Keyboard shortcuts... 58
Help Menu 59
Help ➙ Help on program 59
Help ➙ List of supported devices 59
Help ➙ Check Internet for updates 59
Help ➙ ASIX website 59
Help ➙ About 59
59Programmer Settings Window5.5.4
FORTE Programmer Settings Window 59

Power supply from the programmer 59
In idle state 59
During programming 59
Reset 59
Settings Associated with PIC Microcontrollers 59
▸ Programming method 59
▸ Use PE 59
Boot memory programming 60
Settings Associated with AVR and 8051
Microcontrollers 60
Oscillator frequency 60
Faster Programming with Slow Clock 60
Inverse Reset 60
HVP 60
Settings Associated with I2C Memory Chips 60
I2C Bus Speed 60
I2C Memory Address 60
Settings Associated with SPI Flash Chips 60
▸ Start address 60
▸ End address 60
PRESTO Programmer Settings Window 60
In idle state 60
During programming 61
Settings Associated with PIC Microcontrollers 61
MCLR Pin Control 61
Programming Method 61
Algorithm Programming 61
Use PE 61
Boot memory programming 61
Settings Associated with AVR and 8051
Microcontrollers 61
Oscillator Frequency 61
Faster Programming with Slow Clock 61
Inverse Reset 61
HVP 61
Settings Associated with I2C Memory Chips 62
I2C Bus Speed 62
I2C Memory Address 62
Settings Associated with SPI Flash Chips 62
▸ Start address 62
▸ End address 62
62HEX Editor Windows5.5.5
Selecting an Area 62
Code/Main Memory Editor 62
Data Memory (EEPROM) Editor 62
Configuration Memory Editor 62
Tips for Advanced Users 63
63
5.6 Running UP from Command Line
63List of Parameters5.6.1
Using a Project File 65
Examples of Use 65
File Opening 65
Device Programming 65
65Program Return Codes5.6.2
66
5.7 Running UP by Means of Windows
Messages
66List of Commands5.7.1
Example of use 68
68
5.8 UP_DLL.DLL Library
69
5.9 Running More Than One Instance of UP
70
5.10 Access of More UP Instances to One
Programmer
70
5.11 Updating UP
70
5.12 Appendix A UP_DLL.DLL
70Data Types5.12.1
70List of UP variables5.12.2
78
5.13 Appendix B: Use of ICSP
78Pins Used for Programming5.13.1

HVP Algorithm 79
LVP algorithm (without VPP) 79
Loading of Different Programmer Pins 79
79Power Supply Options5.13.2
Power Supply Capacities in Application 80
80ICSP Connector5.13.3
81
5.14 Appendix C: Intel‑HEX File Format
81Supported Alternatives of HEX Files5.14.1
81Description of Intel‑HEX File Format5.14.2
Data Record 81
End of File 82
Extended Linear Address 82
Saving Device Type in .hex File 82
PRESTO.DLL Library 83
6
JTAG PLAYER 84
7
84
7.1 JTAG Device Programming
84SVF File7.1.1
Examples of How to Create SVF Files 84
State of .svf File Implementation 85
85XSVF File7.1.2
Examples of How to Create XSVF Files 85
State of XSVF File Implementation 86
86Programming Connector7.1.3
86
7.2 Settings
86Default TCK signal frequency7.2.1
87Fast Clocks Option (FORTE only)7.2.2
87RUNTEST without run_count (SVF only)7.2.3
87RUNTEST Timing Multiply (both SVF and XSVF)7.2.4
87RUNTEST with run_count and no timing
(bothSVFandXSVF)
7.2.5
88VPP PRESTO / P FORTE pin usage while running test
(file) / after test completion
7.2.6
88Default Settings7.2.7
Default Settings for FPGAs 88
Default Settings for XC9500 88
Default Settings for AVR: 88
89
7.3 Running JTAG Player from Command Line
MultiUP 90
8
90
8.1 Programming settings
90
8.2 Programming
90
8.3 CommandLine
TROUBLE-SHOOTING 91
9
91
9.1 Tips and Tricks
91
9.2 PRESTO Tester
Document history 93
10

Page 9
1
Introduction
This manual describes PRESTO, a USB programmer and
its control software, both manufactured by ASIX.
Chapter 1 gives you ‘quick start’ instructions on how to
start working with the programmer, offers examples of its
connecting to applications and provides technical
specifications.
Chapter 2 focuses on the installation of drivers and
software updates.
Chapter 3 introduces the UP program, which is software
used for controlling all ASIX programmers. You can find
procedures there for setting up the programmer prior to
programming, for actual programming and/or verification
of devices. It also describes how to control the software
from a command line or a DLL library.
Chapter 4 presents the JTAG SVF Player software used for
programming devices with the JTAG interface using .svf/
.xsvf files.
Chapter 5 offers tips and tricks in case of experiencing
difficulties with programming.
Abbreviations & Terms Used
HVP (High Voltage Programming) is a
programming mode in which a higher
voltage than the power-supply voltage is
applied to pin P in the initial phase.
ICSP (In-Circuit Serial Programming). The
meaning of ICSP is identical with the
meaning of ISP (In System Programming) in
this manual, i.e. device programming done
inside a system.
LVP (Low Voltage Programming) is a
programming mode in which none of the
pins has higher than the power-supply
voltage applied.
PDI Program and Debug Interface
SBW (SPY-BI-WIRE) MSP430 microcontroller
interface
TPI Atmel Tiny Programming Interface
VCC If the text features VCC or VDD, they mean
the power-supply voltage on the VDD pin,
which can serve as either input or output
depending on the particular application.
VPP If the text features VPP, it means the
programming voltage on pin P of devices
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
2
PRESTO
Thank you for buying the PRESTO programmer made by
ASIXs.r.o. It was a wise decision. Feel free to contact our
technical support in case of any questions or doubts.
2.1 Package Content
Your PRESTO package should include:
•PRESTO programmer
•ICSPCAB8 cable
•USB cable (type A - B)
•CD-ROM with manual and drivers
•Info leaflet
2.2 Features
PRESTO is a fast USB In-System programmer suitable for
programming a range of devices such as microcontrollers,
EEPROM or Flash serial memory chips, CPLD, FPGA and
many others.
•USB1.1 (USB2.0 compatible) interface, programmer
powered via USB
•3MHz in/out
•synchronous programming, JTAG support
•programming voltage from 2.7V to 5.5V
•feeds applications with 5V
•overcurrent protection on VDD and VPP sources
•overvoltage protection on VDD pin
•GO button for quick function selection
•more than one simultaneously running programmer
per PC, command line support, support for Windows
messages and for DLL
•WindowsXP or later, Linux (Wine)
• compact
2.3 Quick Start
Please install the drivers and the UP software prior to the
first use of PRESTO.
2.3.1 Windows
Administrator rights are required to run the software
for the first time.
Start with installing the UP program. Its installer installs
the USB driver for PRESTO, too. You can find the installer
on the supplied CD-ROM or on the web (the preferred
option).
Once the installation is complete, connect the PRESTO
programmer to your computer.
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
and unpacked somewhere. After the programmer has
been connected, the operating system asks for the driver.
In "Found New Hardware" dialog the path to the
unpacked driver has to be set.
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 11
2.3.2 Linux
The programmer can be operated under Wine in Linux.
Please find detailed installation instructions at separate
chapter.
2.4 Use
PRESTO is a fast USB programmer suitable for
programming of a range of devices such as
microcontrollers, EEPROM or Flash serial memory chips,
CPLD, FPGA and many others. It is equipped with
overcurrent protection at the VDD and VPP sources and
with overvoltage protection at the VDD pin.
The programmer is powered via USB. It can feed the
application to be programmed with a voltage of 5V or it
can utilize an external application’s voltage of 2.7V to
5.5V during programming.
The programmer may run under WindowsXP or later or
under Linux in Wine.
2.4.1 Numerous Supported
Devices
The list of supported devices includes:
•Microchip PIC microcontrollers – devices with serial
programming, which include all PIC and dsPIC devices
with the exception of several obsolete types.
•Atmel AVR microcontrollers – all devices supporting
"SPI Low Voltage Serial Downloading" such as
ATtiny12, AT90S8535 or ATmega128.
•Atmel ATxmega microcontrollers – devices
programmable via JTAG interface such as
ATxmega128A1.
•Atmel AVR32 microcontrollers – AT32UC3A1256, for
example.
•Atmel 8051 microcontrollers – devices that support
ISP programming such as AT89S8253, AT89LP4052,
AT89LP216 or AT89S2051.
•Texas Instruments microcontrollers – 16-bit MSP430,
CC430 (fuse programming is not supported for these
families) and CCxxxx.
•Cypress – PSoC microcontrollers.
•Serial EEPROM and Flash memory chips - I2C
(24LCxx), Microwire (93LCxx) and SPI (25Cxx).
•Devices with JTAG interface, for which an SVF or an
XSVF file can be created. These include CPLD (such as
Xilinx XC95xx and CoolRunner), configuration memory
for FPGA (such as Xilinx XC18Vxx and XCFxxS),
microcontrollers (such as ATmega128) and others.
This, however, is not an exhausting list of possibilities.
Additional types are regularly supplemented in response
to customers’ interest. New software versions are
downloadable from the Internet for free.
2.4.2 USB Connection
PRESTO is controlled and powered through a USB port. It
communicates in the Full-Speed mode and works with a
USB 2.0 port or a USB 1.1 port. This means that
connecting the programmer is fast and easy, requiring
only a single cable.
2.4.3 Programming of
Placed Devices
ISP (In-System Programming) or the special ICSP (In-
Circuit Serial Programming) for the PIC microcontrollers is
currently replacing the traditional method in which
devices were first programmed and only then placed on a
PCB (printed circuit board). Thanks to ISP even SMD
devices with an extremely narrowly spaced pins can
easily be programmed and their firmware upgraded in
already assembled and finished devices.

Page 12
2.4.4 Programming of
Autonomous Devices
Those who still need to program autonomous devices, i.e.
devices not yet placed on a PCB can use the ISP2ZIF
adapter featuring a ZIF (zero insertion force) socket.
2.4.5 Programming
Interface
Devices to be programmed are connected through a 8-pin
ISP connector, which is backward compatible with the
ICSP connector for PIC microcontrollers.
2.4.6 Power Supply From
Application
The VDD output can serve as an input using the power
from the application for feeding the output buffers with a
voltage from 2.7V to 5.5V or it can become an output
and as such to provide voltage for the application.
PRESTO can power applications with 5V voltage.
PRESTO detects three levels of external power supply
voltage: 3V, 5V and overvoltage.
PRESTO includes an overcurrent protection at pins P and
VDD.
The voltage range can be extend by two optional
adapters (HPR3V3, HPR1V2).
HPR3V3 is an optional accessory for PRESTO by which
PRESTO can power applications with 3.3V voltage.
HPR1V2 is an optional accessory for PRESTO which
extends input voltage of VDD pin in power from
application mode from 1.2V to 3.3V.
2.4.7 User Interface
The programmer status is clearly indicated by two LEDs.
ON-LINE (green LED) informs of connecting to USB while
ACTIVE (yellow LED) signals an activity of the
programming interface.
The GO button significantly increases the operator’s
comfort in repeated programming. It starts programming
or other user-defined commands.
2.4.8 Software
The UP program is a basic software tool for working with
PRESTO, also compatible with the FORTE programmer.
Apart from standard commands, UP provides numerous
above-standard functions, which broaden the
programmer’s applications and simplify its operation.
These include the possibility to define projects, existence
of adjustable parameters when running from the
command line providing for unattended programmer
operation in routine programming, environment
personalization incl. keyboard shortcuts, automatic
generation of serial numbers, etc.
UP has been developed for WindowsXP or later. It also
works under Linux (through Wine).
Modified drivers developed by FTDI are used for
communication through USB.
Devices with the JTAG interface, for which an SVF or an
XSVF file can be created, can be programmed by means
of the JTAG SVF Player software.
The voltage at the VDD pin is permanently displayed in
UP for greater comfort and for monitoring of the
operation. The reset signal is conveniently controlled by a
single button.

Page 13
2.4.9 Debugging
PRESTO provides user with support for debugging ARM
microcontrollers through OpenOCD which is an open
source debugging system originally developed by
Dominic Rath. OpenOCD uses GDB for access to debug
functions. User can communicate with OpenOCD via a
command line and telnet.
The revision 717 of OpenOCD, which can be found on our
website in a program package together with the ARMINE
program, is supported officially.
2.5 Controls and
Connectors
Fig.2: The PRESTO programmer
PRESTO features two LEDs, a button, a connector for
linking to USB and a programming connector.
2.5.1 Programming
Connector
The programming connector is a 8 way single row plug
with pin No.2 (in standard numbering) missing. Spacing
between pins is 2.54mm.

Page 14
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
P4
GND
PWR
signal grounding
P5
DATA/
MOSI
I/O
signal input/output
P6
CLOCK
O
signal output
P7
MISO
I
signal input
P8
LVP
I/O
signal input/output
Table 1: programming connector
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
2.5.3 LED Indicators
ON-LINE
The green LED informs you that PRESTO is connected to a
computer and that the computer and the programmer
“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
USBFull-Speed interface for communication.

Page 15
2.6 Connecting to
Application
The programmer should be connected to an application to
be programmed with an ICSPCAB8 which is designed for
2.54mm spacing.
Fig.4: ICSPCAB8
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 15cm.
The following table lists markings of connectors by FCI
Electronics suitable for making a custom cable. Ofcourse,
it is possible to use any similar ones:
FCI marking
Description
65039-036LF
housing, 1 pin
65039-029LF
housing, 1 x 8 pins
47217-000LF
pin
Table 2: ICSP cable - material list
A cable with a cross-section between 0.1 and 0.3mm2
may be used for making the custom connecting cable.
2.6.2 Programming in ZIF
Socket
If programming of autonomous device is required, i.e.
those that are only later connected to an application, it is
possible by means of our optional ISP2ZIF accessory.
Fig.5: ISP2ZIF
ISP2ZIF consists of a zero insertion force (=ZIF) socket
and an ICSP connector for connecting to the programmer,

Page 16
which can also provide voltage for feeding the program
circuitry.
2.6.3 Connecting
Procedure
The correct procedure for connecting the programmer:
first connect PRESTO to the target application, then
connect PRESTO to the USB and finally turn on the
application’s power supply.
Please make sure that the GND of the application, the
programmer and the USB are interconnected before
signals and the power are applied.
Important warning
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.
Pin
AVR
AVR TPI
8051
JTAG
P1
RESET
RESET
RESET
USR
P2
P3
VCC
VCC
VCC
VDD
P4
GND
GND
GND
GND
P5
MOSI
TPIDATA
MOSI
TDI
P6
SCK
TPICLK
SCK
TCK
P7
MISO
MISO
TDO
P8
SS
TMS
Table 3: Connection list No.1
Pin
PIC
MSP430
MSP430
SBW
TI CCxxxx
P1
MCLR
TEST
RESET
P2
P3
VDD
VCC
VCC
VDD
P4
VSS
VSS
VSS
GND
P5
PGD
TDI
SWBTDIO
Debug data
P6
PGC
TCK
SWBTCK
Debug clock
P7
TDO
P8
LVP
TMS
Table 4: Connection list No.2

Page 17
Pin
PSoC
I
2
C
SPI
Microwire
P1
XRST
CS
CS
P2
P3
VDD
VDD
VDD
VDD
P4
VSS
GND
GND
GND
P5
ISSP-data
SDA
SI
DI
P6
ISSP-SCLK
SCL
SCK
CLK
P7
SO
DO
P8
ORG(PRE)
Table 5: Connection list No.3
2.6.4 Connection Examples
The following text presents examples of connections
between PRESTO and the device being programmed. We
use a notation according to the manufacturer datasheet
of each particular device.
PIC Microcontrollers
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).
2) The whole device must be erased before
programming if code/main memory protection (CP) or
data memory protection (CPD) is active.
3) Some PIC devices cannot be erased with CP or CPD
active being powered by voltage less than 5V.
4) If a microcontroller has more than one power-supply
VDD or VSS pin, all of them must be connected
including the AVDD and AVSS pins.
5) PIC microcontrollers which require 3V or lower power
supply must be fed from external power supply
because PRESTO can only provide 5V voltage.
6) Some PIC microcontrollers require voltage less than
13V on the MCLR pin while the programmer can only
set 13V voltage level on VPP. If such device has been
selected in UP, a warning message is displayed. It is
recommended to limit voltage on the MCLR pin by an
external circuit (a potential divider or a Zener diode
and a resistor).
VPP
Resistor
9V
390Ω
11V
200Ω
Table 6: Recommended resistors values with Zener diode (the
value also depends on the rest circuit)
7) If the LVP mode is used, it is recommended to check
whether the LVP fuse is still set after erasing the part.
8) Programming of PIC32 devices is supported by
means of the ICSP interface only with external 3V
power supply.
9) Devices with an ICPORT fuse must have the
dedicated ICSP port off for LVP programming.
10) PIC24 and dsPIC33 devices may be programmed
using PE (Programming Executive) or using the
standard method. Programming by means of PE is
usually faster.

Page 18
11) Programming of some new PIC microcontrollers in the
HVP mode can cause that a warning message
indicating overcurrent on VPP appears. If that
message does not indicate a real fault it could be
caused by different technology which has been used
by Microchip for producing new devices, although
they are from pristine families. These devices have
slightly different parameters. It could be solved by
connecting capacitor of 1nF between the VPP pin
and GND and resistor of 10Ω in serial with VPP signal
if the fault persists.
AVR Microcontrollers
Fig.7: AVR microcontroller
1) A source of the clock signal, which is set in the device
or which will be set by fuses during programming
must be connected to the device. A crystal must be
connected if set up as the clock source.
2) Device fuses have been set up by the producer to the
internal oscillator with a frequency of 1MHz. In the
initial programming, the device should be
programmed with “Oscillator frequency” set up at
“>750kHz” or lower in the “PRESTO programmer
settings” window.
3) Not all AVR microcontrollers allow use of a crystal
(e.g.ATtiny13, ATtiny15).
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.
This saves the fuses in the up.ini file or in the project
if used. This is necessary due to the fact that .hex
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,
otherwise a warning appears at this place (blank
check of data memory).
7) HPR3V3 is an optional accessory for programming
AVR microcontrollers which reguire 3.3V voltage with
PRESTO internal 5V power supply.
8) HPRAVR is an optional accessory for programming
AVR microcontrollers in applications with the
ISP10PIN standard connector on the device's side.
9) Some AVR devices have their ISP interface provided
at different pins than the SPI interface. Further
information can be found in the device data sheet (in
the Serial Downloading section).

Page 19
AVR with TPI Interface (e.g.
ATtiny10)
Fig.8: AVR microcontroller, TPI interface
1) These microcontrollers require voltage 12V on the
RESET pin during programming in the HVP mode
while the programmer can only set 13V voltage level
on VPP. Therefore it is necessary to limit voltage on
the RESET pin by an external circuit. There is no need
of any external circuit for the LVP mode which is
preferred.
Atmel 8051
Fig.9: Atmel 8051 microcontroller
1) The SS pin must be connected only for AT89LP2052 /
4052 / 213 / 214 / 216 / 428 / 828 / 6440 / 51RD2 /
51ED2 / 51ID2 / 51RB2 / 51RC2 / 51IC2.
2) AT89LP213, AT89LP214 and AT89LP216 have the
inverse reset logic. Thus an appropriate resistor must
be pulled-up to VCC.
3) PRESTO can not program devices containing the
letter “C” in their name, however, it supports devices
with “S” in their name, of which some are compatible
with the “C” types. For example, AT89C2051 is not
supported, but AT89S2051 is.
4) The software assumes that while programming
AT89LP52, the device’s POL pin is in logical1. If POL
is in logical0, the Inverse RESET option should be
activated in the program. For AT89LP51RD2,
AT89LP51ED2, AT89LP51ID2, AT89LP51RB2,
AT89LP51RC2 and AT89LP51IC2 the software
assumes the POL pin in logical0.
Cypress PSoC
Fig.10: Cypress PsoC microcontroller

Page 20
1) The way of entering in the programming mode
should be set in the PRESTO programmer settings
window. Devices without an XRST pin can only use
initialization through the power-on reset (by power
supply). Devices with an XRST pin may use both
methods, but the method using the reset signal for
initialization is better as it can be used in
combination with an external power supply.
2) Algorithm programming in the PRESTO
programmer settings window should be set in
accordance with the power supply cable used.
MSP430 with TEST pin without
SBW interface
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.
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.
4) The safety fuse on the JTAG interface cannot be
blown by the PRESTO programmer.
5) The HPR3V3 adapter should be used for feeding
these microcontrollers (without the SBW interface)
from PRESTO internal 5V power supply.
MSP430 / CC430 with SBW
interface
Fig.12: MSP430 / CC430 microcontroller, SBW
1) Microcontrollers with SBW interface could be
programmed only through this interface. It concerns
e.g. MSP430F20xx, MSP430F22xx or MSP430F5xxx.
2) If the oscillator calibration values are saved in the
information memory and this memory is not going to
be re-programmed (erased) during the programming
process, 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. There is no need to select the oscillator for
the MSP430F5xxx and CC430 devices.
3) The safety fuse on the JTAG interface cannot be
blown by the PRESTO programmer.
4) Speed in the PRESTO programmer settings
window should be slow down if any external
capacitor is connected to the device's reset pin.
Table of contents
Other ASIX Controllers manuals