0% found this document useful (0 votes)
11 views104 pages

forte_en

The document is a reference manual for the FORTE High-Speed USB Programmer by ASIX s.r.o., detailing its features, package content, and usage instructions. It includes sections on driver installation for various operating systems, programming procedures, and technical specifications. Additionally, the manual provides information on connecting to different microcontrollers and memory chips, as well as software options and settings for effective programming.

Uploaded by

Ala Amdouni
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)
11 views104 pages

forte_en

The document is a reference manual for the FORTE High-Speed USB Programmer by ASIX s.r.o., detailing its features, package content, and usage instructions. It includes sections on driver installation for various operating systems, programming procedures, and technical specifications. Additionally, the manual provides information on connecting to different microcontrollers and memory chips, as well as software options and settings for effective programming.

Uploaded by

Ala Amdouni
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/ 104

FORTE

High-Speed USB Programmer

Reference Manual
ASIX s.r.o.
Na Popelce 38/17
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.


AVR with TPI Interface (e.g. ATtiny10) 21
Table of Contents ATxmega with PDI Interface 21

AVR with UPDI and RESET pins 21


1 Introduction 10
AVR with UPDI Interface 21
1.1 Abbreviations & Terms Used 10
Atmel 8051 22

2 FORTE 11 AT89C51CC01UA 22
2.1 Package Content 11 Cypress PSoC 22
2.2 Features 11 MSP430 / CC430 with TEST Pin, JTAG Interface 23
2.3 Quick Start 12 MSP430 / CC430 without TEST Pin, JTAG Interface 23
2.3.1 Windows 12 MSP430 / CC430, SBW Interface 24
2.4 Use 12 TI (Chipcon) CCxxxx 24
2.5 Controls and Connectors 14 STM8 24
2.5.1 Programming Connector 14
ARM with SWD interface 25
2.5.2 GO Button 15
LPCxxxx, UART interface 25
2.5.3 LED Indicators 15
C8051 and EFM8 with C2 interface 25
ACTIVE 15
HCS08 25
ON-LINE 15
CH32V003 26
2.5.4 USB Connector 15
Z8F 26
2.6 Connecting to Application 15
2.6.1 Custom-made Connecting Cable 15 I2C Memory Chips 26

2.6.2 Programming in ZIF Socket 16 SPI Memory Chips 27


2.6.3 Connecting Procedure 16 QUAD SPI interface 27
Table of Connections 17 Microwire Memory Chips 27
2.6.4 Connection Examples 19 UNI/O Memory Chips 28
RL78 Microcontrollers 19
1-Wire Interface 28
RX600 Microcontrollers 19
JTAG Interface 28
PIC Microcontrollers 19 HCSxxx 29
AVR Microcontrollers 20 SPD5118 29
AVR in HVP mode 20
2.7 Technical Specifications 30 5.4.1 Setting the GO Button 41

2.7.1 Limit Values 30 5.4.2 Mass Production 41

2.7.2 Operating Specifications 30 5.4.3 Serial Numbers 42

2.7.3 Declaration of Conformity and RoHS 31 Format of Files with Serial Numbers 44
Data Record 44
3 DRIVERS 32 Example of File with Serial Numbers 44
3.1 Driver Installation 32 5.4.4 Calibration Memory Support 45

3.1.1 Windows Operating Systems 32 Working with Calibration Memory When Erasing a 45
Device in UV Eraser
Windows 7 and later 32
Working With Calibration Memory in Devices With 45
Older supported Windows versions 32 Flash Memory

3.2 Driver Updating 33 5.5 Program Controls 45


5.5.1 Toolbar 46
4 Usage under Linux 34 5.5.2 Status Bar 46
5.5.3 Menus 46
5 UP SOFTWARE 36
File Menu 46
5.1 Abbreviations Used 36
File ➙ New 46
5.2 Installation 36 File ➙ Open... 46
5.3 Device Programming 36 File ➙ Open next file... 46
5.3.1 Programmer Selection 36 File ➙ Open next: 47
File ➙ Reload actual file 47
5.3.2 Projects 37
File ➙ Save 47
5.3.3 Device Type Selection 37 File ➙ Save as... 47
5.3.4 Program settings 37 File ➙ Import data memory from file... 47
Delay for VDD switching on/off when supplied from 38 File ➙ Open file with data memory automatically 47
programmer File ➙ New project 47
Production Programming Settings 39 File ➙ Open project... 47
File ➙ Save project... 48
Settings for Programming During Development 39
File ➙ Close project 48
Programmer Settings 40 File ➙ Recent projects 48
File ➙ Read calibration data... 48
Fuses and Working with Them 40
File ➙ Save calibration data... 48
5.3.5 Programming 40
File ➙ Export to bin... 48
Differential Programming 41 File ➙ Exit 48

41 Edit Menu 48
5.4 Further Features
Edit ➙ Fill with value... 48 ▸ Erase all 52
Edit ➙ Text insert... 49 ▸ Erase code/main memory 53
Edit ➙ Fill selected location with RETLW 49 ▸ Erase data memory 53
View Menu 49 Device ➙ Blank check 53
View ➙ Code/main memory 49 ▸ Blank check all 53
View ➙ Data memory 49 ▸ Blank check all except data memory 53
View ➙ Boot memory 49 ▸ Blank check of code/main memory 53
View ➙ Configuration memory 49 ▸ Blank check of data memory 53
View ➙ Console 49 ▸ Blank check of configuration memory 53
View ➙ Display code/main memory 49 Device ➙ Select device 53
View ➙ Display data memory 49 Device ➙ Device info 53
View ➙ Display configuration memory 50 Options Menu 54
View ➙ Display programmer form 50
Options ➙ Program settings ➙ Programming 54
Device Menu 50
▸ Reload file before every programming 54
Device ➙ Program 50 ▸ Keep manually modified data 54
▸ Program all 50 ▸ Warn before file load, when data in some
▸ Program all except data memory 50 editor have been changed 54
▸ Program code/main memory 50 ▸ Warn, when the loaded file has not
changed 54
▸ Program data memory 51
▸ Program file locations only 54
▸ Program configuration memory 51
▸ Ask before erasing 54
▸ Program differentially 51
▸ Ask before programming of OTP / Flash /
▸ Differential program data memory 51 Code/Data Protection / differential 54
▸ Mass Production 51 ▸ Display fuse warning messages 55
Device ➙ Read 51 ▸ Except for programming: Close status
window 55
▸ Read all 51
▸ After programming: Close status window 55
▸ Read all except data memory 51
▸ Beep after successful finishing 55
▸ Read code/main memory 51
▸ Beep after unsuccessful finishing 55
▸ Read data memory 52
▸ Turn off all sound for UP 55
▸ Read configuration memory 52
▸ Delay for VDD switching on/off when
▸ Read address 52 supplied from programmer 55
Device ➙ Verify 52 ▸ Do not perform Device ID check before
▸ Verify all 52 programming 55
▸ Verify all except data memory 52 ▸ Do not perform blank check before cfg
word programming 55
▸ Verify code/main memory 52
▸ Do not perform blank check after erasing 56
▸ Verify data memory 52
▸ Do not erase device before programming 56
▸ Verify configuration memory 52
Device ➙ Erase 52
▸ Do not erase data memory before its Options ➙ Program settings ➙ Editors 59
programming 56
▸ Code/main memory editor: show words as
▸ Do not verify unprogrammed words at the bytes 59
end of the memory 56
▸ Code/main memory editor 8 words wide 59
▸ Do not verify 56
▸ Data memory editor 8 words wide 59
▸ Verify with two supply voltages 56
▸ Boot memory editor 8 words wide 59
Options ➙ Program settings ➙ Panels 56
▸ Show only the lowest byte of word in ASCII 59
▸ Display selected device on toolbar 56
▸ Mask ID positions while reading from
▸ Display selected programmer on toolbar 56 device, from file, etc. 59
▸ Display the status bar in the lower part of ▸ Mask ID positions during direct user input 60
the window 56
▸ Configuration memory editor: show cfg
▸ Display icons on toolbar buttons 56 word instead of fuses 60
▸ Display descriptions on toolbar buttons 57 Options ➙ Program settings ➙ Serial numbers 60
▸ Show mass production counter in status ▸ Serial numbers 60
bar 57
▸ Prepare S/N before programming 60
Options ➙ Program settings ➙ Files 57
▸ Find successor after programming 60
▸ File save style 57
▸ Prepare S/N after programming 60
▸ Do automatic check for newer version of
57 ▸ Serial number interval 60
actual file
▸ Never ask and never save changes to data ▸ Log to file 60
file 57 ▸ After project load set actual SN according
▸ Check device type when loading .hex file 57 to the last in the log 60
▸ Save device type into .hex file 57 ▸ Serial number length (the number of
characters) 61
▸ Warn when loaded HEX does not contain
58 ▸ Number base 61
CFG memory data
▸ Warn when loaded HEX is not aligned to ▸ Code as ASCII 61
word size. 58 ▸ Initial serial number 61
▸ Binary file loading and saving style 58 ▸ Next S/N 61
▸ Save unused locations to .hex file 58 ▸ Destination 61
▸ Clear code/main / data memory / ID ▸ Hexadecimal address of first word 61
positions before file reading 58
▸ Fill with RETLW instruction 61
▸ Erase configuration memory before file
reading 58 ▸ Characters per word 61
▸ Read data memory not from the file but ▸ Sequence 61
from the device 58
Options ➙ Program settings ➙ Checksum 61
▸ Read ID positions not from the file but
from the device 59 ▸ Show checksum in status bar 62
▸ Save fuses in UP instead of data file 59 ▸ Write checksum to log file 62
▸ Project storing style 59 ▸ Checksum algorithm 62
▸ Load last project on start-up 59 Options ➙ Program settings ➙ Others 62
Options ➙ Program settings ➙ Colors 59 ▸ Update check settings 62
▸ Allow internal and external supply Oscillator frequency 65
voltages collision 62
Faster Programming with Slow Clock 65
▸ Do not show warning if internal 5 V is
62 Inverse Reset 65
switched on with 3.3 V device
▸ Allow to change supply voltage level when Write RC osc Adjustment 65
it is on 62 HVP 65
▸ Allow external supply voltage for devices Settings Associated with CH32V003
requiring VPP before VCC. 63 65
Microcontrollers
▸ When using Windows Messages disable ▸ Fast mode 65
other warnings 63
Settings Associated with I2C Memory Chips 65
▸ Pin T during programming 63
I2C Bus Speed 65
▸ Pin T after programming 63
I2C Memory Address 66
Options ➙ Select programmer 63
Settings Associated with SPI Flash Chips 66
Options ➙ Language selection... 63
▸ Start address 66
Options ➙ Keyboard shortcuts... 63
▸ End address 66
Options ➙ Lock project 63
Help Menu 63 PRESTO Programmer Settings Window 66

Help ➙ Help on program 63 In idle state 66


Help ➙ List of supported devices 64 During programming 66
Help ➙ Check Internet for updates 64 Settings Associated with PIC Microcontrollers 66
Help ➙ ASIX website 64 MCLR Pin Control 66
Help ➙ About 64 Programming Method 66
5.5.4 Programmer Settings Window 64 Algorithm Programming 66
Use PE 66
FORTE Programmer Settings Window 64
Boot memory programming 66
Power supply from the programmer 64
Settings Associated with AVR and 8051
In idle state 64 Microcontrollers 66
During programming 64 Oscillator Frequency 66
Reset 64 Faster Programming with Slow Clock 67
Settings Associated with RX600 Microcontrollers 64 Inverse Reset 67
▸ Protect with ID 64 HVP 67
▸ Allow using Configuration Clearing (erases Settings Associated with I2C Memory Chips 67
TM, ID) 64
I2C Bus Speed 67
▸ Baud Rate 64
I2C Memory Address 67
Settings Associated with PIC Microcontrollers 64
Settings Associated with SPI Flash Chips 67
▸ Programming method 65
▸ Start address 67
▸ Use PE 65
▸ End address 67
Boot memory programming 65
5.5.5 HEX Editor Windows 67
Settings Associated with AVR and 8051
Microcontrollers 65 Selecting an Area 67
Code/Main Memory Editor 68 5.14 Appendix C: Intel‑HEX File Format 87
Data Memory (EEPROM) Editor 68 5.14.1 Supported Alternatives of HEX Files 87

Configuration Memory Editor 68 5.14.2 Description of Intel‑HEX File Format 88

Tips for Advanced Users 68 Data Record 88

5.6 Running UP from Command Line 68 End of File 88


5.6.1 List of Parameters 69 Extended Linear Address 88
Using a Project File 71 Saving Device Type in .hex File 89
Examples of Use 71
5.6.2 Program Return Codes 71 6 up_control.dll library 90

5.6.3 Work flow monitoring 71


7 FORTE.DLL Library 91
5.7 Running UP by Means of Windows 72
Messages 8 JTAG PLAYER 92
5.7.1 List of Commands 72 8.1 JTAG Device Programming 92
Example of use 74 8.1.1 SVF File 92

5.8 UP_DLL.DLL Library 74 Examples of How to Create SVF Files 92

5.9 Running More Than One Instance of UP 75 State of .svf File Implementation 93

5.10 Access of More UP Instances to One 76 8.1.2 XSVF File 93


Programmer Examples of How to Create XSVF Files 93
5.11 Updating UP 76
State of XSVF File Implementation 94
5.12 Appendix A UP_DLL.DLL 76 8.1.3 Programming Connector 94
5.12.1 Data Types 76
8.2 Settings 94
5.12.2 List of UP variables 77
8.2.1 Default TCK signal frequency 94
5.13 Appendix B: Use of ICSP 84 8.2.2 Fast Clocks Option (FORTE only) 95
5.13.1 Pins Used for Programming 85 8.2.3 RUNTEST without run_count (SVF only) 95
HVP Algorithm 85 8.2.4 RUNTEST Timing Multiply (both SVF and XSVF) 95
LVP algorithm (without VPP) 85 8.2.5 RUNTEST with run_count and no timing 95
(both SVF and XSVF)
Loading of Different Programmer Pins 85 8.2.6 VPP PRESTO / P FORTE pin usage while running test 96
5.13.2 Power Supply Options 85 (file) / after test completion
8.2.7 Default Settings 96
Power Supply Capacities in Application 86
Default Settings for FPGAs 96
5.13.3 ICSP Connector 87
Default Settings for XC9500 96

Default Settings for AVR: 96

8.3 Running JTAG Player from Command Line 97

9 MultiUP 98
9.1 Programming settings 98
9.2 Programming 98
9.3 CommandLine 98

10 TROUBLE-SHOOTING 99
10.1 Tips and Tricks 99
10.2 FORTE Tester 99

11 HPRAVR 101
11.1 Usage 101

12 Document history 102


ICSP (In-Circuit Serial Programming). The
1 meaning of ICSP is identical with the
meaning of ISP (In System Programming) in
this manual, i.e. device programming done
inside a system.
Introduction LVP (Low Voltage Programming) is a
programming mode in which none of the
pins has higher than the power-supply
This manual describes FORTE, a High-Speed USB voltage applied.
programmer and its control software, both manufactured
by ASIX. PDI Program and Debug Interface

Chapter 1 gives you ‘quick start’ instructions on how to SBW (SPY-BI-WIRE) MSP430 microcontroller
start working with the programmer, offers examples of its interface
connecting to applications and provides technical
specifications. SWD (Serial Wire Debug) ARM microcontroller
interface
Chapter 2 focuses on the installation of drivers and
software updates. TPI Atmel Tiny Programming Interface

Chapter 3 introduces the UP program, which is software VCC If the text features VCC or VDD, they mean
used for controlling all ASIX programmers. You can find the power-supply voltage on the VDD pin,
procedures there for setting up the programmer prior to which can serve as either input or output
programming, for actual programming and/or verification depending on the particular application.
of devices. It also describes how to control the software VPP If the text features VPP, it means the
from a command line or a DLL library. programming voltage on pin P of devices
Chapter 4 presents the JTAG SVF Player software used for with High Voltage Programming.
programming devices with the JTAG interface using .svf/ The term “file” means a file with data to be programmed
.xsvf files. in context of this manual, in other cases a particular type
Chapter 5 offers tips and tricks in case of experiencing of file is specified. A file with .hex extension means Intel-
difficulties with programming. HEX file whilst a file with .bin extension means binary file.

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

Page 10
• programming interface of 8×I/O + individually
2 configurable pull-up/down resistors
• built-in fast input/output HW protection, independent
of the status of the PC

FORTE • overcurrent protection on VDD and P sources


• overvoltage protection on VDD pin

Thank you for buying the FORTE programmer made by • GO button for quick function selection
ASIX s.r.o. It was a wise decision. Feel free to contact our
• more than one simultaneously running programmer
technical support in case of any questions or doubts.
per PC, command line support, support for Windows
messages and for DLL
2.1 Package Content • Windows XP or later
• compact
Your Forte package should include:
• FORTE programmer
1 lower speeds can typically be programmed at less than
• ICSPCAB16 cable 1.2 V.
• ICSPCAB8 cable
• USB cable (type A - B)
• Info leaflet

2.2 Features
FORTE is a fast and flexible High-Speed 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.
• very fast programmer (30 MHz out, 15 MHz in/out)
• High-Speed USB 2.0 (480 Mbps) interface, programmer
powered via USB
• embedded processor pro comprehensive functions
• synchronous and asynchronous programming, JTAG
support
• programming voltage from 1.8 V 1 to 5.5 V
• feeds applications with 1.8 V to 5.5 V

Page 11
during programming.
2.3 Quick Start The programmer may run under Windows XP or later.

Please install the drivers and the UP software prior to the Numerous Supported Devices
first use of FORTE.
The list of supported devices includes:
2.3.1 Windows • Microchip PIC microcontrollers – devices with serial
Administrator rights are required to run the software programming, which include all PIC and dsPIC devices
for the first time. with the exception of several obsolete types.
• Microcontrollers with ARM core – such as ATSAM3N2A
Start with installing the UP program. Its installer installs
or LPC2148.
the USB driver for FORTE, too. You can download the
installer from www.asix.tech/prg_up_en.html. • Atmel AVR microcontrollers – all devices supporting
"SPI Low Voltage Serial Downloading" such as
Once the installation is complete, connect the FORTE ATtiny12, AT90S8535 or ATmega128.
programmer to your computer.
• Atmel ATxmega microcontrollers – devices
The driver contained in the UP installer is intended for programmable via JTAG or PDI interface such as
Windows 7 and later. For older Windows operating system ATxmega32D4 or ATxmega128B1.
versions the driver has to be downloaded from
www.asix.net, from download section of the programmer • Atmel AVR32 microcontrollers – AT32UC3A1256, for
and unpacked somewhere. After the programmer has example.
been connected, the operating system asks for the driver. • Atmel 8051 microcontrollers – devices that support
In "Found New Hardware" dialog the path to the ISP programming such as AT89S8253, AT89LP4052,
unpacked driver has to be set. AT89LP216 or AT89S2051.
The green ON-LINE LED should turn on after a few • Texas Instruments microcontrollers – 16-bit MSP430,
moments and the Windows Device Manager should CC430 and CCxxxx with a flash memory, including
present the programmer as correctly installed. their fuse programming.
• Cypress – PSoC microcontrollers.
2.4 Use • Serial EEPROM and Flash memory chips - I2C
(24LCxx), Microwire (93LCxx) and SPI (25Cxx).
FORTE is a fast and flexible High-Speed 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.

The programmer is powered via USB. It can feed the This, however, is not an exhausting list of possibilities.
application to be programmed with a voltage of 1.8 V to Additional types are regularly supplemented in response
5.5 V or it can utilize an external application’s voltage to customers’ interest. New software versions are
downloadable from the Internet for free.

Page 12
High Speed Connection to a remote application through a 16-wire
ribbon cable has been improved by interleaving its
Compared to the PRESTO programmer, FORTE features an individual signals with ground.
embedded processor making it possible to perform
complex operations with the device being programmed as Power Supply From Application
well as offering a significantly faster output interface. Due
to this, devices may be programmed up to the limits of The VDD output can serve as an input using the power
their theoretical performance. from the application for feeding the output buffers, or it
can become an output and as such to provide voltage for
USB Connection the application.

FORTE is controlled and powered through a USB port. It FORTE can power applications with a voltage from 1.8 V
communicates in the High-Speed mode (480 Mbps) / to 5.5 V. A controlled discharge resistor is incorporated
connected to a USB 2.0 port and in the Full-Speed mode / for faster transitions between different programming
connected to a USB 1.1 port. This means that connecting phases when capacitors in the application need to be
the programmer is fast and easy, requiring only a single discharged all the way down to 0 V.
cable. FORTE includes a built-in “voltmeter” at pins P and VDD.

Programming of Placed Devices Overcurrent Protection


ISP (In-System Programming) or the special ICSP (In- FORTE includes a fast-responding hardware overcurrent
Circuit Serial Programming) for the PIC microcontrollers is protection at pins P and VDD, which is independent of the
currently replacing the traditional method in which state of the controlling PC.
devices were first programmed and only then placed on a
PCB (printed circuit board). Thanks to ISP even SMD User Interface
devices with an extremely narrowly spaced pins can
easily be programmed and their firmware upgraded in The programmer status is clearly indicated by two LEDs.
already assembled and finished devices. ON-LINE (green LED) informs of connecting to USB while
ACTIVE (two-state yellow/red LED) signals an activity or a
Programming of Autonomous Devices faulty state (error) of the programming interface.
Those who still need to program autonomous devices, i.e. The GO button significantly increases the operator’s
devices not yet placed on a PCB can use the ISP2ZIF comfort in repeated programming. It starts programming
adapter featuring a ZIF (zero insertion force) socket. or other user-defined commands

Programming Interface Software


The FORTE programmer features 8 independent I/O pins The UP program is a basic software tool for working with
with individually configurable pull-up/down resistors. FORTE, also compatible with the PRESTO programmer.
Devices to be programmed are connected through a Apart from standard commands, UP provides numerous
16-pin ISP connector, which is backward compatible with above-standard functions, which broaden the
the 8-pin ICSP connector for PIC microcontrollers. VPP can programmer’s applications and simplify its operation.
be set to any value between 6.5 V and 17 V. These include the possibility to define projects, existence
of adjustable parameters when running from the

Page 13
command line providing for unattended programmer
operation in routine programming, environment 2.5.1 Programming
personalization incl. keyboard shortcuts, automatic
generation of serial numbers, etc. Connector
The programming connector is a 16 way double row plug
UP has been developed for Windows XP or later. with pin No. 3 (in standard numbering) missing. Spacing
Modified drivers developed by FTDI are used for between pins is 2.54 mm.
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.

2.5 Controls and


Connectors

Fig. 3: Programming connector

Pin Type Description


P I/O, VPP signal input/output or VPP output
VDD PWR power input/output
GND PWR signal grounding
D, C, I, L, T, S, R I/O signal input/output
Fig. 2: The FORTE programmer Table 1: programming connector

FORTE features two LEDs, a button, a connector for


linking to USB and a programming connector.

Page 14
2.5.2 GO Button
This 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


Fig. 4: ICSPCAB8 Fig. 5: ICSPCAB16

ACTIVE
2.6.1 Custom-made
This two-state LED informs you of the equipment status.
The yellow color means that there is ongoing
Connecting Cable
communication between the programmer and a device. Should an application to be programmed have a non-
compatible type of connector for linking to the
A red color signals an error state. programmer, the customer can make his/her own
programming cable. Its length should not exceed 15 cm.
This is where interleaving of individual signals with GND
ON-LINE in a 16-wire ribbon cable can be used conveniently. In
order to utilize this ground-interleaving, all GND signals
The green LED informs you that FORTE is connected to a
must be actively connected on the application's side.
computer and that the computer and the programmer
“understand each other”, i.e. drivers are installed and The following table lists markings of connectors by FCI
work correctly. Electronics suitable for making a custom cable. Of course,
it is possible to use any similar ones:
2.5.4 USB Connector
A standard USB (type B) connector is provided for FCI marking Description
connecting to a computer. The programmer uses the
USB High-Speed (480 Mbps) interface for communication. 65039-036LF housing, 1 pin
65039-029LF housing, 1 x 8 pins

2.6 Connecting to 65043-029LF


47217-000LF
housing, 2 x 8 pins
pin
Application Table 2: ICSP cable - material list
The programmer should be connected to an application to
be programmed with an ICSPCAB8 or ICSBCAB16 cable. A cable with a cross-section between 0.1 and 0.3 mm2
The cables are designed for 2.54 mm spacing. may be used for making the custom connecting cable.

Page 15
Please make sure that the GND of the application, the
2.6.2 Programming in ZIF programmer and the USB are interconnected before
signals and the power are applied.
Socket
If programming of autonomous device is required, i.e. Important warning
those that are only later connected to an application, it is If an application is powered by a switched
possible by means of our optional ISP2ZIF accessory. 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. 6: ISP2ZIF

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


and an ICSP connector for connecting to the programmer,
which can also provide voltage for feeding the program
circuitry.

2.6.3 Connecting
Procedure
The correct procedure for connecting the programmer:
first connect FORTE to the target application, then
connect FORTE to the USB and finally turn on the
application’s power supply.

Page 16
Table of Connections Pin I2C SPI QUAD Microwire UNI/O
SPI1
P - CS - CS CS
Pin AVR AVR TPI ATxmega 8051 -
PDI
VDD VDD VDD VDD VDD VCC
P RESET RESET RESET
GND GND GND GND GND VSS
-
D SDA SI SIO0 DI SCIO
VDD VCC VCC VCC VCC
C SCL SCK SCK CLK
GND GND GND GND GND
I SO SIO1 DO
D MOSI TPIDATA PDI_DATA MOSI
L SIO2 ORG/(PRE)
C SCK TPICLK PDI_CLK SCK
T
I MISO MISO
S SIO3
L SS
R
T
S Table 5: Connection list No.3
R

Table 3: Connection list No.1


Pin PSoC 1-Wire ARM SWD LPC UART
P XRST IO2 NRST RESET
-
Pin PIC MSP430 MSP430 SBW TI CCxxxx
VDD VDD VDD VDD VDD
P MCLR TEST / VPP VPP RESET
GND VSS GND GND VSS
-
D ISSP-DATA SWDIO RXD
VDD VDD VCC VCC VDD
C ISSP-SCLK SWCLK TXD
GND VSS VSS VSS GND
I ISP
D PGD TDI SBWTDIO Debug_data
L
C PGC TCK SBWTCK Debug_clock
T
I TDO
S
L LVP TMS
R
T
S Table 6: Connection list No.4
R RESET

Table 4: Connection list No.2

Page 17
Pin JTAG HCS08 HCSxxx C2 Pin AVR HVP AVR UPDI AVR UPDI+RST
P USR RESET P RESET UPDI / RESET RESET
- -
VDD VDD VDD VDD VDD VDD VCC VDD VDD
GND GND VSS VSS GND GND GND GND GND
D TDI BKGD Data C2D D SDI UPDI
C TCK Clock C2CK C SDO
I TDO I SII
L TMS L SCI
T T
S S
R R

Table 7: Connection list No.5 Table 9: Connection list No.7

Pin RL78 RX600 AT89C51CC01UA Pin CH32V003 SPD5118 Z8F


P RESET RES# RESET P NRST RESET
- -
VDD VDD VCC VCC VDD VDD VDDSPD VDD
GND VSS VSS VSS GND VSS GND VSS
D TOOL0 RXD1 RxD D SWIO HSDA DBG
C TXD1 TxD C HSCL
I MD EA I
L PC7/UB PSEN L HSA
T T
S S
R ALE R

Table 8: Connection list No.6 Table 10: Connection list No.8

1 It is recommended to use a flat ribbon cable and to


connect all its GND wires.
2 An external pull-up resistor or possibly a Schottky diode

should be connected for 1-Wire components – see


chapter 1-Wire Interface.
Page 18
2) For programming of OSIS(ID) and device locking the
settings in the "FORTE programmer settings" window
2.6.4 Connection Examples have to be used.
The following text presents examples of connections
between FORTE and the device being programmed. We
use a notation according to the manufacturer datasheet PIC Microcontrollers
of each particular device.

RL78 Microcontrollers

Fig. 9: PIC microcontroller

1) Not all devices 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
Fig. 7: Renesas RL78 microcontroller via a pull-up resistor (for LVP programming).
2) The whole device must be erased before
programming if code/main memory protection (CP) or
RX600 Microcontrollers data memory protection (CPD) is active.
3) Some devices cannot be erased when CP or CPD is
active if the power-supply voltage is less than 5 V.
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) If the LVP mode is used, it is recommended to check
whether the LVP fuse is still set after erasing the part.
6) Programming of PIC32 devices is supported by
means of the ICSP interface.

Fig. 8: Renesas RX600 Microcontroller 7) Devices with an ICPORT fuse must have the
dedicated ICSP port off for LVP programming.
1) The RX600 MCUs are programmed in Boot mode.

Page 19
8) PIC24 and dsPIC33 devices may be programmed 4) After the device fuses are correctly set up, right-click
using PE (Programming Executive) or using the (i.e. using the right mouse button) inside the
standard method. Programming by means of PE is Configuration window and choose Learn fuses.
usually faster. This saves the fuses in the up.ini file or in the project
if used. This is necessary due to the fact that .hex
9) When the MCU debug mode is enabled using a fuse, files for AVR microcontrollers themselves do not
the programmer cannot communicate with it. contain configuration fuses. If a device is
programmed from the command line, a .ppr project
file containing saved fuses needs to be used.
AVR Microcontrollers
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) HPRAVR is an optional accessory for programming
AVR microcontrollers in applications with the
Fig. 10: AVR microcontroller ISP10PIN standard connector on the device's side.

1) A source of the clock signal, which is set in the device 8) Some AVR devices have their ISP interface provided
or which will be set by fuses during programming at different pins than the SPI interface. Further
must be connected to the device. A crystal must be information can be found in the device data sheet (in
connected if set up as the clock source. the Serial Downloading section).

2) Device fuses have been set up by the producer to the


internal oscillator with a frequency of 1 MHz. In the
initial programming, the device should be
AVR in HVP mode
programmed with “Oscillator frequency” set up at
“>750 kHz” or lower in the “FORTE programmer
settings” window.
3) Not all AVR devices allow use of a crystal
(e.g. ATtiny13, ATtiny15).

Fig. 11: AVR in HVP mode (e.g. ATtiny841)

Page 20
1) Some devices require also other pins to be connected
to GND, this can be found in a picture in the device
datasheet in chapter "High-voltage Serial
AVR with UPDI and RESET pins
programming".

AVR with TPI Interface (e.g.


ATtiny10)

Fig. 14: AVR microcontroller with separated UPDI and RESET


pins

AVR with UPDI Interface


Fig. 12: AVR microcontroller, TPI interface

ATxmega with PDI Interface

Fig. 15: AVR microcontroller, UPDI interface

1) On UPDI pin a 12 V pulse is used to enter the


programming mode of ATtiny UPDI.

Fig. 13: ATxmega microcontroller, PDI interface 2) When the programmed device quits the
programming mode or the UPDI interface is disabled
1) For programming that uses the JTAG interface, during programming, a power-on reset of the
devices must be connected as described in the JTAG programmed device has to be done.
Interface section.

Page 21
3) For AVR with UPDI data files with memories mapped
from zero are expected and their fuses save to a
project file same as for older AVRs, because Atmel
AT89C51CC01UA
Studio creates the data files this way.

Atmel 8051

Fig. 17: Mikrokontrolér AT89C51CC01UA

1) The ALE pin do not have to be connected, when it is


unconnected on the programmed device or when it is
in log.1.
Fig. 16: Atmel 8051 microcontroller

1) The SS pin must be connected only for AT89LP2052 /


4052 / 213 / 214 / 216 / 428 / 828 / 6440 / 51RD2 / Cypress PSoC
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) FORTE 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 logical 1. If POL Fig. 18: Cypress PsoC microcontroller
is in logical 0, 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 logical 0.

Page 22
1) The way of entering in the programming mode
should be set in the FORTE programmer settings
window. Devices without an XRST pin can only use
MSP430 / CC430 without TEST
initialization through the power-on reset (by power
supply). Devices with an XRST pin may use both
Pin, JTAG Interface
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 FORTE
programmer settings window should be set in
accordance with the power supply cable used.

MSP430 / CC430 with TEST Pin,


JTAG Interface Fig. 20: MSP430 / CC430 microcontroller, no TEST pin, J TAG
interface

1) Pin P feeds the device with 6.5 V during the fuse


programming. If the fuse is not to be programmed,
this pin does not have to be connected.
2) The MSP430F5xxx and CC430 devices lock in a
different way, i.e. pin P stays disconnected. Even the
100 R resistor can be left out in such a case.
3) If the oscillator calibration values are saved in the
information memory and this memory is not going to
Fig. 19: MSP430 / CC430 microcontroller, TEST pin, J TAG
be re-programmed (erased) during the programming
interface process, the device should be programmed with the
Cal Int. RC (=calibrated internal RC oscillator)
1) If the oscillator calibration values are saved in the option selected in the FORTE programmer
information memory and this memory is not going to settings window. In other cases Not Cal Int. RC
be re-programmed (erased) during programming, the (=not calibrated internal RC oscillator) should be
device should be programmed with the Cal Int. RC selected.
(=calibrated internal RC oscillator) option selected in
the FORTE programmer settings window. In the
other cases Not Cal Int. RC (=not calibrated internal
RC oscillator) should be selected.

Page 23
MSP430 / CC430, SBW Interface TI (Chipcon) CCxxxx

Fig. 21: MSP430 / CC430 microcontroller, SBW interface Fig. 22: (Chipcon) CCxxxx microcontroller

1) Pin P feeds the device with 6.5 V during the fuse


programming. If the fuse is not to be programmed,
this ping does not have to be connected.
STM8
2) The MSP430F5xxx and CC430 devices lock in a
different way, i.e. pin P stays disconnected. Even the
100 R resistor can be left out in such a case.
3) 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 FORTE programmer
settings window. In the other cases Not Cal Int. RC
(=not calibrated internal RC oscillator) should be
Fig. 23: STM8 microcontroller
selected. There is no need to select the oscillator for
the MSP430F5xxx and CC430 devices.
4) Speed in the FORTE programmer settings window
should be slow down if any external capacitor is
connected to the device's reset pin.
5) The FORTE programmer also erases the Segment A of
the information memory with the Erase Segment A
option selected.

Page 24
ARM with SWD interface C8051 and EFM8 with C2
interface

Fig. 24: ARM with SWD interface


Fig. 26: C8051 and EFM8 with C2 interface
1) ARM microcontrollers which do not have SWD
interface are programmed via JTAG interface.
2) Renesas ARM MCUs with OSIS fuse will lock by
programming of the changed OSIS value. When the
HCS08
correct OSIS value is filled for a locked MCU, then it is
possible to communicate with the MCU. When the
MCU is erased with the correct value filled, the OSIS
lock will disable.

LPCxxxx, UART interface

Fig. 27: HCS08 microcontroller

1) At some devices the programming mode cannot be


entered using their RESET signal, then power-on
reset is used. The programmer cannot do the power-
on reset when UP is controlled using commandline
parameters and external supply voltage is to be
used, in such a case the user have to ensure that the
Fig. 25: LPCxxxx, UART interface BKGD pin is in log. 0 during connection of the supply
voltage.
1) UART programming support is implemented for some
LPCxxxx MCUs as an alternative interface to SWD.

Page 25
CH32V003 I2C Memory Chips

Fig. 28: CH32V003 microcontroller Fig. 30: I2C memory chips

1) The programmer uses an internal 2.2 kΩ pull-up


resistor on the data wire (SDA) when working with an
Z8F I2C device. This internal resistor can be disabled at
"FORTE programmer settings" window.
2) If the device to be programmed is 24LC(S)21A or
24LC(S)22A, its VCLK pin must be connected to VDD
during programming.
3) 34xx02 memory chips need “high” voltage at the A0
pin for commands protecting it against SWP and
CSWP recording. The “high” voltage is generated at
FORTE P pin, it must be connected to A0 pin in this
case. The memory chip A0, A1 and A2 pins must be
connected manually according to the selected
protection mode.
Fig. 29: Z8F microcontroller
4) 34AA04 memory needs “high” voltage at the A0 pin
for configuration memory programming. The “high”
voltage is generated at FORTE P pin, it must be
connected to A0 pin in this case.

Page 26
SPI Memory Chips QUAD SPI interface

Fig. 31: SPI memory chips Fig. 32: QUAD SPI interface

1) Some devices have WP, HOLD or RESET pins. All of 1) It is recommended to use a flat ribbon cable and to
them must be connected to the required logic level in connect all its GND wires.
such a way as not to block the communication or
device programming.
Different manufacturers mark the memory chips' SPI pins
Microwire Memory Chips
with different names. Some of them are listed in the
following table:

Name on picture Atmel, SST ST


DI SI D
DO SO Q
CLK SCK C
CS CS, CE S

Fig. 33: Microwire memory chips

1) Pin L determines the memory organization as either


8-bits or 16-bits per word. The user selects the
required organization in the UP program and FORTE
then sets this pin to the corresponding logic level. If
this memory pin is firmly connected to the correct
logic level inside the application, pin L in the
programmer remains disconnected.

Page 27
2) If used in combination with the M93Sx6 memory chip, 2) For DS1821: In thermostat mode, the VDD pin of the
the programmer's L pin must be connected to the device must be connected to the D pin of the
device's PRE pin to serve for selecting the protection programmer. However external supply voltage must
register. not be connected to the D pin of the programmer. It
may be connected to VDD pin of the programmer
only. In this case the device must be programmed
UNI/O Memory Chips standalone!
3) For DS28E05: This device requires lower value of the
pull-up resistor, e.g. 560R.

JTAG Interface

Fig. 34: UNI/O serial memory chips

1-Wire Interface
Fig. 36: Components with J TAG interface

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
example.
2) The programmer always uses an external
power-supply voltage for SVF or XSVF file
programming by means of the JTAG Player
utility.

Fig. 35: Components with 1-WIRE interface 3) AVR32 microcontrollers are to be programmed from
the UP software through the JTAG interface. The
1) A Schottky diode is necessary only for devices device must not be reset during programming.
requiring higher than the power-supply voltage for
programming, such as DS2505 or DS2406, for 4) ATxmega microcontrollers with the JTAG interface
example. A pull-up resistor is needed in any case. can be programmed from the UP software through
this interface. Pin P is not needed for programming.

Page 28
5) ARM microcontrollers can be programmed from the
UP software through the JTAG interface.
HCSxxx
a) Devices which have SWD interface, e.g. most of
Cortex-M3 core chips, are programmed via this
interface, see its connection.
b) Clock source which is connected to the chip and its
frequency must be set in the FORTE programmer
settings window.
c) Using the programmer P pin is not mandatory for
the programming, but it should be connected to the
NRST pin of the device providing reset of the device
after programming to launch the application
program.
Fig. 37: HCSxxx
d) NXP LPC2xxx: For proper operation, it is required
to tie both /RESET and /TRST pins to FORTE P 1) The Clock signal is usually on S2 pin, the Data signal
output. Further, it is necessary to provide external is usually on PWM pin.
pull-down resistor of 4.7 kΩ to 10 kΩ on the /RTCK
pin. The LPC2xxx MCUs execute on-chip bootloader
after reset. The bootloader then examines pin P0.14
or P2.10 (depends on the part type, see the device
SPD5118
datasheet) to decide whether to start user
application on continue its operation (log. 1 for user
application, log. 0 for the bootloader). Because of
this, it is necessary to provide an external pull-up
resistor on this pin to start user programmed
application.

Fig. 38: SPD5118

1) In offline mode an iternal supply voltage from the


programmer has to be used, because a POR with HSA
pin connected to GND is needed. For this mode the
HSA pin of the device can be connected to the L pin
of the programmer. In normal mode the HSA pin do
not have to be connected to the programmer. A write
protection can be disabled in the offline mode only in
registers of MR12, MR13.

Page 29
2.7 Technical Specifications 2.7.2 Operating
Specifications
2.7.1 Limit Values Important Warning
Failure to respect these parameters may
damage the programmer or the connected
Operating temperature min. 0 °C max. +55 °C computer.
Storage temperature min. -40 °C max. +85 °C
Voltage at any pin1 min. -0.5 V max. 6.5 V
Maximum current on I/O pin 50 mA VDD feeding voltage 1.8 V to 5.5 V
supplied by programmer
ESD protection (HBM model) ±4 kV kontakt
VDD feeding voltage 1.8 V to 5.5 V
±8 kV vzduch
supplied by application
Table 11: Limit values VDD external feeding voltage 1.2 V to 5.5 V
for communication at limited
speed1
1 Pin P configured as an output has a voltage within a Maximum current drawn 100 mA
range of +6.5 V to +17 V. from VDD
Maximum current drawn 100 mA at 7 V
from VPP 10 mA at 17 V
Maximum current drawn 4 mA @ VDD = 1.8 V
from I/O pin 16 mA @ VDD = 4.5 V
Maximum current drawn 100 mA
from all I/O pins
simultaneously
Allowed input voltage on pins 0 to 5.5 V
P pin output voltage Adjustable from 6.5 V to 17 V or
logic levels
VIL input voltage max. VDD x 0.3 V
VIH input voltage min. VDD x 0.7 V
VOL output voltage max. 0.55 V @ VDD=4.5 V
@ I=4 mA
typ. 0.1 V
VOH output voltage min. 3.8 V @ VDD=4.5 V @ I=4 mA
typ. VDD - 0.1 V
Resistance to short circuiting permanent

Page 30
Windows2 32/ 64-bit
Operating system
USB compatibility USB 2.0 High-Speed (480 Mbps)
2.7.3 Declaration of
USB connector type B Conformity and RoHS
Dimensions 112 x 64 x 22 mm Declaration of Conformity and RoHS directive documents
Weight 60 g are available at www.asix.tech in the Documents section.
Gross weight 230 g

Table 12: Operating specifications

1 The programmer can typically communicate at a lower


application’s voltage at a reduced speed.
2 Windows XP, Windows Vista, Windows 7, Windows 8,

Windows 8.1, Windows 10, Windows 11

Page 31
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.

FORTE 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 FORTE, too. You can download the
installer from www.asix.tech/prg_up_en.html.

Once the installation is complete, connect the FORTE


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. 39: 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 32
3.2 Driver Updating
FORTE 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 33
• The library searches for device files in /dev/bus/usb.
4 Please ensure that /dev/bus/usb directory contains
special files to access USB devices.
• Check that your device is recognized by the system
Usage under Linux (use command lsusb).
• Check your access rights to the corresponding files in /
dev/bus/usb (command ls -la /dev/bus/usb/).
The support of ASIX products in Linux was Probably you will not have as a user the r+w access
discontinued. rights for these files.

Last version where we tested our products was • If you have not access rights and you are using udev:
UBUNTU 20.04.2 LTS and Wine 5.0.
Our customers informed us that our products could Add a new file with udev rules to the directory /etc/
be successfully used up to Wine 6.0, but not in udev/rules.d or /lib/udev/rules.d (Depending on
higher versions. your distribution). Suitable name for this new file is 51-
asix_tools.rules. Insert the following lines to this file :
The software for the programmers is capable of working SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403",
under Wine. For USB access it uses libftd2xx. ATTRS{idProduct}=="f1a0", MODE:="0666", SYMLINK
+="asix_presto"
Step 1: Install libftd2xx and libftchipid SUBSYSTEMS=="usb", ATTRS{idVendor}=="a600",
ATTRS{idProduct}=="a000", MODE:="0666", SYMLINK
Install 32-bit versions of libftd2xx and libftchipid by FTDI, +="asix_sigma"
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}=="a003", MODE:="0666", SYMLINK
+="asix_forte"
The driver can be found on FTDI web at "Drivers/D2XX
SUBSYSTEMS=="usb", ATTRS{idVendor}=="a600",
Drivers" section. ATTRS{idProduct}=="a004", MODE:="0666", SYMLINK
• Extract libftd2xx.so.1.1.0 (in case of newer version +="asix_omega"
replace 1.1.0 with the latest version) and libftchipid VID and PID values can be determined using the listing of
and copy the files libftd2xx.1.1.0.so and connected devices by the lsusb command.
libftchipid0.1.0 into the directory for 32-bit
libraries (typically /usr/lib/i386-linux-gnu/).
Step 2: Install wine
• ln -s libftd2xx.so.1.1.0 /usr/lib/i386-linux-
gnu/libftd2xx.so.1 (it is typically sufficient to run It is necessary to install 32-bit version of wine (for
ldconfig to achieve this) example wine-1.4:i386).

• ln -s libftd2xx.so.1.1.0 /usr/lib/i386-linux- The Wine versions over 6.0 are not supported.
gnu/libftd2xx.so.0 (must be made manually)
Step 3: Install lin_ftd2xx
• ln -s libftchipid.so.0.1.0 /usr/lib/i386-
linux-gnu/libftchipid.so.0 (it is typically sufficient The lin_ftd2xx is available at ASIX web.
to run ldconfig to achieve this)

Page 34
Check environment variable WINEDLLPATH. It should
point to directory where are 32-bit wine DLLs, typically /
usr/lib/i386-linux-gnu/wine. Install lin_ftd2xx by ASIX
into this directory.

Installation of the Microsoft™ TrueType core fonts are


recommended. These fonts may be obtained by installing
msttcorefonts package from Ubuntu package repository.

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 35
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. 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. 40: Programmer selection

Page 36
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. 41: 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 37
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. 42: Programming settings

Page 38
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 39
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. 43: 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 40
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 41
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. 44: Mass production Fig. 45: 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 42
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. 46: Serial number settings

A file for logging the programmed serial numbers can be


selected under Options ➙ Program settings ➙ Serial
numbers.

Page 43
The numbers themselves are logged in case of calculated or a numeral base in which the number is written in can
serial numbers while their labels are logged in case of be explicitly defined.
serial numbers taken from a file - see Format of Files with
Serial Numbers. For example, b'10101010' means the same as h'AA',
d'170' or just AA. 'A' means d'65' (ASCII character itself).
Except for the serial numbers also the date, time and the
result of the programming are writen to the file. For the Example record for PIC16F628A:
devices for which the revision reading is supported, the
revision number is also written to the file. 2100 05 55 54 means to save data 05h, 55h, 54h in
addresses 00 to 02 of a data memory.
The code/main memory which stores the serial number
Format of Files with Serial can also be specified by the word “CODE.” or “PROG.” or
Numbers just “P.”.

Files containing definitions of serial numbers are text files The data memory should be specified by the word
that can easily be created in third-party programs. *.SN or “DATA.” or “EE.” or just “E.”.
*.TXT are recommended file extensions.
“ID” or just “I” is used for the memory of ID positions.
A serial number record has the following form:
These words are always followed by an address inside the
[comment] label: data record, data record, ..., specified memory.
data record;
Example:
Semicolons are obligatory at the end of records.
EE.00 05 55 54 means to save data 05h, 55h, 54h in
• Comment is any string containing no colon ':'. addresses 00 to 02 of a data memory.
Comments are optional. If a colon cannot be found in
the whole serial number record, the record is ignored Notes
(understood as a comment). It is also possible to write
a comment behind two slashes '//'. • * There is no specifier for the configuration memory, it
would make no sense.
This is just a comment;
// Also this is a comment. dsPIC – addresses of 24-bit words are to be written in for
all addresses (i.e. an internal dsPIC address of 24h is 12h
• White character is a space, tabulator or end of line here). For a data (EEPROM) memory addresses of 16-bit
(CR+LF). words are to be written in, i.e. as they go one by one
through the microcontroller.
• Label is a string identifying the serial number. This
string is compulsory. The label must not contain white • Autonomous memory chips (I2C, SPI) have only the
characters, colons or semicolons. code memory. If a non-existent memory is specified,
an error is reported.
Data Record
A data record consists of an address and data items in a Example of File with Serial Numbers
chain following this address. Comment at the beginning;
sn1: 0000 34 45 56 67,
Each item can be written in hexadecimal form (e.g. 2100) 2100 01 02 03 04; serial number 1

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

5.4.4 Calibration Memory Advice

Support New Flash devices with a calibration memory (such as


PIC12F629) contain so called 'bandgap bits', which form
Some devices contain a calibration memory containing part of the device calibration. These bits can be found in
factory-preset device calibration. The loss of its content the configuration word and are erased too if the
can cause a fault in the device functionality. For this command Device ➙ Erase ➙ Erase all(including
reason we have tools allowing users to work with the calibration) is executed!
calibration memory.

5.5 Program Controls


Working with Calibration
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. 47: Controls of UP software

1) Title bar with the open project name or file


2) Menu

Page 45
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 46
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 47
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 48
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 49
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 50
▸ 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 51
▸ 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 52
▸ 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 53
▸ 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 54
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 55
▸ 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 56
▸ 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. ▸ Do automatic check for newer version
▸ 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 ▸ Never ask and never save changes to
successfully.
data file
If you use the Count all actions option, the counter When this option is enabled and data in an editor have
includes all actions performed with the device (such as been changed, before opening of an other file, before
reading, erasing, data memory programming, etc.). closing of the application etc. the application will not ask
Show values description displays explanatory notes to and will not save the file which is currently open.
individual counter items for easier understanding.
▸ Check device type when loading .hex
If you want to exclude operations that triggered a file
warning from the correct operations, use the If action
ends with warning assume as erroneous option. If the device type has been saved in the corresponding
Intel-HEX file and it does not agree with the currently
The choice Reset counters on proj ect open causes, selected device type, the program points out this
that the counters are reset on any project file load, discrepancy.
including automatic project load during program start.
▸ Save device type into .hex file
Counter style allows you to choose whether the counter
should display the good/bad or good/total figures. The program adds one more line below the end of file
command specifying the type of device for which the file
The Counter reset, button can be used for zeroing the is being saved.
counters while their initial values can be set in the Preset
counter values fields. Such a modified file does not comply with the Intel-HEX
format, but most programs working with the Intel-HEX
format ignore this line.
Options ➙ Program settings ➙ Files
Keyboard shortcut: Shift+F10 For further information about the Intel-HEX format see
Appendix C: Intel-HEX File Format.
This tab holds all the settings for reading data from and
saving data to files.

Page 57
▸ Warn when loaded HEX does not ▸ Clear code/main / data memory / ID
contain CFG memory data positions before file reading
If the file does not contain configuration memory data This location is filled with ones and only then a file is
and the data are expected for the chosen device, a loaded. This way all positions that are not saved in the
warning message is displayed. .hex file get erased.

▸ Warn when loaded HEX is not aligned This option is also important if no “empty” locations are
saved in the .hex file (see ▸ Save unused locations to .hex
to word size. file).
If the file is not aligned to the word size of the memory of
the device, a warning message is displayed. ▸ Erase configuration memory before file
▸ Binary file loading and saving style reading
With this option activated, the configuration memory is
This panel provides for the setting of how .bin files are to initialized before a file for code/main memory is loaded.
be loaded and saved if a device with more than one byte
per word is selected. If no fuses are saved in the file, it is recommended to
deactivate this option. At the beginning of the work, the
Available options are: the program always asks before user can set the content of the configuration memory and
loading or saving a .bin file (Ask if to load/save .bin as then the fuses do not have to be set again if the file is
Big or Little Endian), or without asking, the program repeatedly loaded.
always loads files as Little Endian (Never ask, load/save
as Little Endian) or as Big Endian (Never ask, load/ ▸ Read data memory not from the file but
save as Big Endian).
from the device
▸ Save unused locations to .hex file If you want to make sure that the content of the data
memory does not get overwritten, use the ▸ Program all
If not all positions are saved, the final file is smaller, but it
except data memory option. If, however the ▸ Program all
can cause difficulties as a cell is considered an “empty
option is selected by accident (by unintended pressing of
position” if it contains only ones (e.i. FFFh, 3FFFh, etc.).
the GO button, for example), the content of the data
Yet this could be a meaningful instruction (3FFFh is
memory would be erased.
Microchip PIC addlw -1 instruction, for example).
For such cases, this option of Read data memory not
As UP always saves files by larger blocks, (by eight or
from the file but from the device is available. The
sixteen bytes), the danger of losing an instruction by such
program fills in the given location with the memory
saving is rather small in reality.
content of the device connected to the programmer.
If you use memory initialization prior to loading a .hex file
(which is recommended), even a program loaded from a Advice
reduced .hex file will be correctly programmed as the This option could cause unexpected actions during work
missing instructions are created “automatically”. with the programmer such as switching the application on
or starting the UP program.

Page 58
▸ Read ID positions not from the file but Options ➙ Program settings ➙
from the device Editors
If you want to preserve the content of the ID positions, Keyboard shortcut: Shift+F10
use the Read ID positions not from the file but from
the device option. The program fills in the given location
with the memory content of the device connected to the
▸ Code/main memory editor: show words
programmer before starting the programming itself. as bytes
Individual words can be displayed by bytes in case of
Advice devices with 16-bit-long words.
This option could cause unexpected actions during work
with the programmer such as switching the application on ▸ Code/main memory editor 8 words
or starting the UP program. wide
This option narrows the editor from the original sixteen
▸ Save fuses in UP instead of data file cells down to eight. The option is suitable especially for
This option allows to save fuses in ini file or UP projekt file small monitors. It can change automatically when a
even for devices which by default have their fuses saved different device type is selected.
in a data file.
The same option can be set for others memories:
▸ Project storing style ▸ Data memory editor 8 words wide
This panel allows you to set how projects should be saved
when exiting UP. Available options are: save ▸ Boot memory editor 8 words wide
automatically, ask before saving or keep the original file
(i.e. do not save).
▸ Show only the lowest byte of word in
ASCII
▸ Load last project on start-up When this option is activated, the program shows the
This option allows you to set if on the next UP start it will ASCII translation of only the lowest byte of word, which
open the project file, which was open on program can be useful especially for PIC MCUs.
closing.
▸ Mask ID positions while reading from
Options ➙ Program settings ➙ device, from file, etc.
Colors Some manufacturers' specifications recommend saving
only masked data (with only four bits usable) in ID
Keyboard shortcut: Shift+F10 positions. With this option activated, the program always
This is where you can change and save colors of HEX applies this bit mask when reading ID positions from
editors so that they suit your needs and your aesthetic different sources.
preferences.

A front color, a background color and a font can be


selected for all the listed text segments.

Page 59
▸ Mask ID positions during direct user ▸ Find successor after programming
input Once one programming procedure is successfully
With this option activated, the program applies the bit completed, the system proceeds to the following serial
mask to each user-modification of ID positions. For further number. If this option is not activated, it is still possible to
information see ▸ Mask ID positions while reading from proceed to the following number manually by clicking the
device, from file, etc.. Next button on the Serial numbers tab – see Serial
Numbers.
▸ 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.

Direct editing of fuses is understood as direct writing of a ▸ Serial number interval


configuration word value in the hexadecimal form. This defines by what value the following serial number
will be larger or smaller.
When a “non-translatable” configuration word is entered,
the program leaves the unrecognized items unchanged
unless the user changes them him/herself. This typically
▸ Log to file
concerns CP fuses having several bits but only two By activating this option and by selecting a log file in the
values. field, information about correctly and incorrectly
programmed devices as well as the programming time is
Options ➙ Program settings ➙ Serial saved in the selected file.

numbers ▸ After project load set actual SN


Keyboard shortcut: Shift+F10 according to the last in the log
For further information on working with serial numbers When this option is enabled, the last programmed SN is
see Serial Numbers. read from the log file and when the programming is
logged as errorless the next SN is computed from the
▸ Serial numbers read value else the last SN is set again.
This tab allows you to choose whether serial numbers are The log file has to exist and the last record has to contain
to be used and if so then whether they should be read a SN.
from a file or computed and whether they should be
automatically written to the corresponding location. This function can be useful when the serial numbers are
enabled and saving of UP project files is disabled, in such
▸ Prepare S/N before programming a case the actual SN will not update in the project file on
program close.
This option prepares a serial number in the selected
memory location before the actual device programming.

Page 60
▸ Serial number length (the number of ▸ Destination
characters) This panel determines the memory location in which the
This field determines how many characters the serial serial numbers are to be stored. Code/main memory,
number can hold. For example, 4 characters provide for data memory and ID positions are available as
the serial numbers 0001 to 9999 in base 10 (i.e. in options.
decimal form).
▸ Hexadecimal address of first word
▸ Number base This address defines where the first word of the serial
This option defines the base of the serial number number is to start in the selected memory type.
characters. Base 10 and base 16 are available (i.e. the
decimal and hexadecimal forms). ▸ Fill with RETLW instruction
Individual words of the serial number can be filled with
▸ Code as ASCII RETLW instruction in Microchip microcontrollers. This
With this option activated, serial numbers are legible as option is available only if the serial number is located in
ASCII characters. the code/main memory.

▸ Initial serial number ▸ Characters per word


This field defines the initial value from which serial This panel determines how many serial number
numbers are to be computed. characters form one word. Options of 1 to 4 characters
per word are available.
▸ Next S/N
▸ Sequence
This field defines how the following serial number is to be
generated. This panel sets how individual serial number characters
and words are to be ordered.
If The same is selected, the serial number does not
change. If One interval higher is selected, the following For example, if you have a base 10 serial number
number will be larger by the value of ▸ Serial number consisting of four characters organized as 2 characters
interval while if One interval lower is selected, it will per word and you are working let's say with 1234 as the
reduce by that value. serial number, it will be saved in the following ways:

The Generated LSFR option generates the numbers in a HiLo hilo: 12 34


pseudo-random sequence. This means that the sequence hilo HiLo: 34 12
will always be the same if the same Initial serial LoHi lohi: 21 43
lohi LoHi: 43 21
number and the same Serial numbers step is used.
The Manual option shows a field, in the serial numbers Options ➙ Program settings ➙
window, where the serial number in the hexadecimal form
can be entered before programming. When this option is Checksum
selected, the serial number can be entered using the /sn
commandline parameter as well.

Page 61
▸ Show checksum in status bar If you approve the collision of supply voltages, it allows
the programmer to connect its internal voltage to pin
After enabling of this setting the checksum of the code VDD at times when it can already see a voltage present
memory will be shown on the status bar. there. This could damage both the programmer and/or
the application being programmed.
When MD5 checksum algorithm is selected, the checksum
is shown after placing the mouse on MD5 text in the This option has been included for very specific cases. One
status bar. of them can be a request to program an application,
which does not have any VDD pin. Then the application
Note: Doubleclick on the checksum value in the status bar
must be powered from its own source but the
will cause the value recalculation.
programmer's output buffers must be powered from the
USB. Yet as the voltage at the application's data signals
▸ Write checksum to log file “sneaks” through the protective diodes into the output
Enables writing of the loaded data file checksum to a log section of the programmer, the programmer can see a
file. certain small voltage present at VDD and refuses to
connect its own internal voltage to it.
Note: The checksum is recalculated on data file load. This
function have to be enabled before the file load, else the ▸ Do not show warning if internal 5 V is
checksum value will not be written to the log file.
switched on with 3.3 V device
▸ Checksum algorithm
Warning
Using this choice the checksum calculation algorithm can High a voltage at the device can damage the
be chosen. programmer or the application being
programmed.
Options ➙ Program settings ➙
This option can be used to suppress the warning if a
Others higher voltage is switched on at the VDD output than the
Keyboard shortcut: Shift+F10 value allowed for the particular device.

▸ Update check settings If there is a voltage convertor integrated in the


application between the device being programmed and
Here you can set if the program should ask for your the programming interface, it might be useful to use this
permission to connect to the Internet and check for option of programing at a higher voltage than what the
updates upon each start or not. device has been designed for.
For further information see Updating UP. This option is available only for PRESTO.
▸ Allow internal and external supply ▸ Allow to change supply voltage level
voltages collision when it is on
Warning In order to protect the application connected to FORTE
A collision of power supply voltages can from damage, it is typically forbidden to change the
damage the programmer or the application! output voltage level if the voltage is currently connected
to the application. After activating this option, the output
voltage can be changed at any time within the range that

Page 62
the device being programmed can cope with. This option is available only for FORTE.

▸ Allow external supply voltage for Options ➙ Select programmer


devices requiring VPP before VCC. Settings concerning the programmer and the
For some devices their manufacturer requires the communication port are described in Programmer
programming voltage to be connected before the supply Selection.
voltage of the device. When the external supply voltage is
used, it does not comply with the specification. In this Options ➙ Language selection...
case a warning is displayed, which can be permanently Keyboard shortcut: Ctrl+L
disabled using this setting.
A file with a different language localization can be
Disabling of this warning should be well considered. This selected using the Windows standard dialog. This means
warning is displayed for devices for which the external that one program installation can easily switch between
supply voltage violates the device manufacturer different user-interface languages.
specification.

▸ When using Windows Messages Options ➙ Keyboard shortcuts...


Keyboard shortcut: Ctrl+K
disable other warnings
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.
This window also provides for setting the required
▸ Pin T during programming behavior of the GO button.
With this setting it is possible to set a logical level during
programming on the T pin. The selected logical level will Options ➙ Lock project
be visible on the pin only when the supply voltage is
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 Help Menu
will appear on the T pin after programming. The selected
logical level will be visible on the pin only when the Help ➙ Help on program
supply voltage is available at the VDD pin of the Keyboard shortcut: F1
programmer.
This command opens the help that you are are just
In case that the T pin is used for programming, this reading.
function will not be available.

Page 63
Help ➙ List of supported devices During programming
This command displays a list of devices currently If this option is checked, voltage from the programmer
supported by the latest version of UP. will be used during programming.

Help ➙ Check Internet for updates Reset


The program connects to the Internet and checks if you This button allows you to switch levels on the device's
are using the latest version. reset pin between the level required for reset and high
impedance.
Help ➙ ASIX website Reset is active if voltage is present on the power supply
This command opens www.asix.cz, the website of ASIX pin.
s.r.o. where you can find the latest drivers and manuals
for ASIX products. Settings Associated with RX600
Help ➙ About Microcontrollers
Basic information on the program and a contact to ▸ Protect with ID
technical support.
If this option is active, it programs also the OSIS(ID) value
during Configuration memory programming, this way it is
5.5.4 Programmer Settings possible to lock the device bootloader access.

Window ▸ Allow using Configuration Clearing


All important settings concerning the programmer and (erases TM, ID)
the applications to be programmed are displayed in the The Configuration Clearing erases a TM (Trusted Memory)
programmer settings window. space. When the TM is in use, the use of this option
The window appearance changes in accordance with the should be well considered.
selected programmer and device. The use of this option is the only possibility how to erase
OSIS(ID).

FORTE Programmer Settings ▸ Baud Rate


Window Using this option it is possible to set a communication
speed between the programmer and the programmed
Power supply from the programmer device.
This trackbar allows the user to set the voltage level
supplied to the application by the programmer. Settings Associated with PIC
Microcontrollers
In idle state
If this option is checked, the programmer supplies power
to the application even when not programming.

Page 64
▸ Programming method programmed.

• HVP Traditional programming will be applied using a Inverse Reset


voltage of 8 V to 13 V at pin P.
With this option activated, the programmer generates an
• LVP Programming utilizing the microcontroller's LVP inverse reset signal.
pin will be applied; only logical values of 0 or 1 are
present at programmer's pin P. This option is appreciated if the application includes a
reset circuit that needs an inverse signal at the input
▸ Use PE compared to the output signal sent to the microcontroller,
and if the programmer is connected via this reset circuit.
Programming utilizing the Use PE option can be applied
to PIC24 and dsPIC33 devices. PE stands for Programming
Executive and it is a programming method frequently Write RC osc Adjustment
proving to be faster. The Programming Executive does When this option is set, programmer will write the value
verification after programming, that is why UP does not defined in the Configuration window to "RC osc
verify after PE programming. Adjustment" fuse. When it is not set, the value read from
the device will be written back to the fuse.
Boot memory programming
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 This allows you to program a device with the external
8051 Microcontrollers RESET signal switched off.

Oscillator frequency Settings Associated with CH32V003


An external oscillator or a functional internal oscillator
must be connected in the course of AVR microcontroller Microcontrollers
programming. The frequency setting must match the ▸ Fast mode
frequency at which the device's oscillator is really
running, after eventual dividers. The maximum speed of When this option is set, programmer uses double speed
communication with the microcontroller then depends on for communication with the microcontroller.
the frequency of this oscillator.
Settings Associated with I2C
Faster Programming with Slow Clock Memory Chips
If this option is active, once the device is erased, the
fuses are programmed at the maximum frequency of the I2C Bus Speed
internal oscillator. This allows the programmer to Select the maximum possible speed of the I2C bus. The
communicate with the device at a faster speed. At the programmer switches on the internal pull-up of 2.4 kΩ
end of programming, the required value of the while working on the I2C bus.
communication memory including the clock speed is
programmed.

This option has its effect only if the whole device is

Page 65
I2C Memory Address Programming Method
Select the address of the I2C memory on the bus. • HVP Traditional programming is applied with 13 V
present at VPP.
Settings Associated with SPI Flash • LVP Programming utilizing microcontroller's LVP pin is
Chips applied, only logical values of 0 or 1 are present at
programmer's pin P.
▸ Start address
Sets the address range for work with the memory. Start Algorithm Programming
address is the first address, where the selected • Auto An algorithm is selected according to the voltage
operation is executed. currently present at VDD.
• Ucc=5 V The algorithm for fast 5 V programming is
▸ End address used.
Sets the address range for work with the memory. End
address is the last address, where the selected operation • Ucc=2.7 to 5.5 V The algorithm for slow
is executed. programming is used with the benefit of working at all
power supply voltages.

Use PE
PRESTO Programmer Settings Programming utilizing the Use PE option can be applied
Window to PIC24 and dsPIC33 devices. PE stands for Programming
Executive and it is a programming method frequently
In idle state proving to be faster. The Programming Executive does
If this option is checked, the programmer supplies power verification after programming, that is why UP does not
to the application even when not programming. verify after PE programming.

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
the frequency of this oscillator.

Page 66
Faster Programming with Slow Clock Settings Associated with SPI Flash
If this option is active, once the device is erased, the
fuses are programmed at the maximum frequency of the
Chips
internal oscillator. This allows the programmer to ▸ Start address
communicate with the device at a faster speed. At the Sets the address range for work with the memory. Start
end of programming, the required value of the address is the first address, where the selected
communication memory including the clock speed is operation is executed.
programmed.

This option has its effect only if the whole device is ▸ End address
programmed. Sets the address range for work with the memory. End
address is the last address, where the selected operation
Inverse Reset is executed.
With this option activated, the programmer generates an
inverse reset signal. 5.5.5 HEX Editor Windows
This option is appreciated if the application includes a HEX editors are used for displaying the content of a
reset circuit that needs an inverse signal at the input memory chip to be programmed.
compared to the output signal sent to the microcontroller
and if the programmer is connected via this reset circuit. Different colors are used in HEX editors to differentiate
between states of different cells to make it easy to see
HVP which cells have been read from a file, which have been
successfully programmed, etc.
If this option is checked, the programmer uses the “high”
voltage at pin P for communication with the device. Colors may be user-assigned. This is especially
recommended for workstations with displays/screens
This allows you to program a device with the external displaying only a limited number of colors.
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
I2C Bus Speed Shift key down and pressing the cursor keys (i.e. arrows).
Select the maximum possible speed of the I2C bus. The Once a required area is selected, it can be filled with a
programmer switches on the internal pull-up of 2.2 kΩ required value. The values can also be filled with RETLW
while working on the I2C bus. instruction. These options are available in the context
menu (opens by mouse right-click).
I2C Memory Address
Select the address of the I2C memory on the bus.

Page 67
Tips for Advanced Users
Code/Main Memory Editor Even though the configuration memory may be presented
as a set of settings, in reality it is nothing more than a
Menu: View ➙ Display code/main memory memory that can be approached cell by cell. Due to this,
Keyboard shortcut to open the window: F10 it is possible to display the memory in this way.
Keyboard shortcut to close the window: Esc This can be achieved by activating Options ➙ Program
The code/main memory editor displays the code/main settings ➙ Editors ➙ Configuration memory editor:
memory content or the content of the memory itself in show cfg word instead of fuses option or by double-
case of serial EEPROM chips (24xx, 93xx,...). clicking the configuration memory window.
The device's ID positions (do not mistake for Device ID)
can also be found in the configuration memory window. ID
Data Memory (EEPROM) Editor positions can be programmed with values identifying the
device, such as the serial number, for example. ID
Menu: View ➙ Display data memory positions can always be read - even if the device is locked
against reading.
Keyboard shortcut to open the window: F11
Keyboard shortcut to close the window: Esc According to the recommendation of the Microchip, ID
positions should not be programmed with any value; only
The data memory editor is used for displaying the content
a certain number of bits (typically 4) should carry data for
of the additional memory in some devices (typically
identification while other bits should be programmed with
EEPROM).
the default value.
Not all devices have an additional memory. This means
This can be achieved by activating Options ➙ Program
the editor may not be available for some devices.
settings ➙ Editors ➙ Mask ID positions....

Configuration Memory Editor 5.6 Running UP from


Menu: View ➙ Display configuration memory
Command Line
Keyboard shortcut to open the window: F12
Keyboard shortcut to close the window: Esc The UP program can alternatively be controlled from the
command line.
The configuration memory editor displays settings that
are to be programmed in a device, but are not part of any The program itself makes sure that it always runs in one
of the above memory types. instance only (with one class name). Should a second
instance (with the same class name) be started,
The configuration memory editor content depends on the parameters from the command line are transferred to the
selected device type. It is necessary to get acquainted first instance for execution. Only the /p, /pdiff, /blank, /
with the device's data sheet in order to get a closer verify, /erase, /read, /noe, /eeonly, /noboot, /boot, /code, /
explanation of individual options in this window. cfg parameters are transfered to the running instance. UP
can be started in more instances using different class
Not all devices need configuration data. This means the name, see /wnd in List of Parameters.
editor may not be available for some devices.

Page 68
On the commandline it is recommended to use project /q /quiet “Quiet” mode. The program does not ask
file, it contains important settings for programming. Some any questions. If it needs to display a
project settings can be modified using commandline dialog, the execution finishes with an error.
parameters. Commandline parameters have higher See UP program return codes. An external
priority than the settings from the project defined on the application can monitor UP work flow by
commandline. ProgressBar value reading, see Work flow
monitoring.
5.6.1 List of Parameters /q1 “Quiet” mode 1. It works same like the /q
parameter, but shows the Status form,
UP.EXE [{/ask | /q | /q1}]
which is closed after programming
[{/e File_with_eepromm.hex | [/noe]}] [{/p |[/pdiff]| [/
regardless of errors. UP does not provide
o]} File.hex | File.ppr] [/df File.hex] [/part
with the ProgressBar value when the /q1
device_name] [/eeonly] [/erase][/w[nd]
parameter was used.
up_window_class] [/cfg] [/devid] [/blank] [/verify File]
[/read File] [/s SN_programmer's][/progname name] [/ /e file “EEPROM” file. For keying in the name of a
noboot] [/boot] [/code] [/getpartrev] [/sn file with data for data memory, if needed. If
serial_number] [/conf file] the file name contains space(s), it must be
enclosed by inverted commas.
Legend
/noe “No EEPROM”. The program skips the
• Text presented here in bold is to be keyed in in the device data memory programming. If this
command line exactly as printed here. parameter is used for MSP430
microcontroller programming, the
• Text presented here in italics is to be replaced by the information memory is erased and
corresponding parameter. For example, file_name programmed.
should be replaced with the real name of a file to be
opened. /p file To “program”. The keyed in file will be
programmed. The file can be a data file,
• Text in braces {} separated by the | sign represents a e.g. hex file, or UP project file. If the file
selection of one of the presented options. For example, name contains space(s), it must be
{ A | B } means “choose either A or B”. enclosed by inverted commas.
• Text in square brackets [] presents an optional
/pdiff file To “program the difference”. The keyed in
parameter – it can be keyed in but does not have to.
file gets programmed by the differential
• Text in quotation marks “ ” is a mnemonic. algorithm. If the file name contains
space(s), it must be enclosed by inverted
/ask To be used linked with /p. The program commas.
always asks if it is to continue before
launching the actual device programming /o file To open. The keyed in file opens. The file
even if the program settings specify not to can be a data file, e.g. hex file, or UP
ask. The dialog displays the selected device project file. This parameter is optional. If
type. the file name contains space(s), it must be
enclosed by inverted commas.

Page 69
/df file When there is UP project file specified after /s programmer_SN This makes it possible to
the /p or /o parameter and user wants to select a programmer by its serial number.
use the project and to change data file The serial number is to be keyed in the way
only, the /df parameter with the new data it is displayed in the UP program and
file name can be used for this purpose. If printed on the programmer bottom.
the file name contains space(s), it must be Example: 016709 or A6016709. When *
enclosed by inverted commas. sign is used instead of the serial number,
then any available programmer of the
/eeonly This executes the selected operation only selected type is used.
with the data (EEPROM) memory or only
with the information memory in the case of /progname name This makes it possible to
MSP430. select a programmer by its name such as
PRESTO or FORTE for example.
/part name This selects the required device in
UP. /noboot This skips programming of the MSP430 boot
memory.
/erase This erases the device.
/boot This performs the selected operation only
/wnd class name A different window class name. More with the MSP430 boot memory.
than one instance of the UP program can
be started using this parameter (running Note
then simultaneously). Each new instance of
the running UP must have a different class PIC32 microcontrollers also have a boot
name. memory. This, however, uses variables and
a data memory form for programming, so it
/cfg If this parameter is used in combination works with parameters for a data memory
with parameter /p, only the configuration and not with parameters for a boot
memory gets programmed. This is useful memory. A similar situation can be found in
for programming AVR microcontrollers, for the information memory of MSP430 and
example, which can be switched to a faster CC430 microcontrollers.
oscillator and then programmed much
faster. /code This performs the selected operation only
with code or main memory.
/devid If this parameter is used in combination
with parameter /p, the software only /getpartrev Only reads the revision of the device
checks the device's Device ID. and returns revision + 0x10000 as the error
code.
/blank This checks device erasure (blank check)
and returns an error code if the result is not /sn serial_number Using this parameter it is possible to
OK. enter the value of the serial number, which
is then written to the address in accordance
/verify file This verifies the device. with the serial numbers settings. In the
settings, the serial numbers have to be
/read file This reads the device and saves the read configured as Computed, Manual. The
content to the file. number is entered as hexadecimal, e.g.
1234ABCD.

Page 70
/conf file When UP closes, it saves its console 2 Equipment error. Communication test
content to the file, but only when the failed, communication error.
operation was started from the
commandline. 3 Programming preparation error. device
cannot be erased, etc.
Note: When no parameter requesting an operation is
used, the UP starts and keeps running. When a parameter 4 Programming error.
requesting an operation is used and the software is not 5 Verification error.
running, the operation is executed and the software
closes if it does not need user interaction. 6 Programming failed due to a need to
communicate with user.

Using a Project File 7 Device ID error.


8 Not supported.
When the user programs different devices, it can happen
that the program is set up differently than expected. 9 Error of the serial number entered using the
Whenever it is possible, it is recommended to use /sn parameter.
project files (.PPR) that hold all the program settings
needed for programming and paths to the data files. 0x10000 + const Revision of the device read using /
getpartrev parameter.

Note: The return value can be found in the %errorlevel%


Examples of Use variable if working with batch files.
File Opening
up.exe project.ppr
5.6.3 Work flow monitoring
When the application was started in the quiet mode
up.exe "C:\My Documents\Recent Projects\PIC (with /q parameter) on the commandline, an external
\My latest project\project.ppr" application can monitor its work flow by reading of the
value of the main ProgressBar, it is being continuously
Device Programming saved to a Named Shared Memory.
up.exe /p project.ppr The UP software shares a variable of size of one Integer. It
can be accessed using OpenFileMapping and
up.exe /p "C:\My Documents\Recent Projects\PIC
MapViewOfFile Windows functions. The name of the
\My latest project\project.ppr"
shared variable is the UP window class name plus
_Progress string. E.g., when the name is set to up1 using
5.6.2 Program Return the /w parameter, then the name of the shared variable is
up1_Progress.
Codes In the installation directory of the UP, in an
0 Problem-free execution. example_ProgressBar subdirectory, there is a C language
example of how to read the ProgressBar value.
1 File error. File not found or incorrect file
format, for example.

Page 71
5.7 Running UP by Means 5.7.1 List of Commands
Unless specified otherwise, the command returns to its
of Windows Messages return value:

The UP program can be controlled by means of messages 0 error, failed


of the Windows operating system. The running instance of
UP executes the requested command immediately after 1 everything worked OK
message receipt. Commands with a wParam of 1, 2, 3, 4, 5, 6, 7 and 24 are
Messages must be sent to "up v1.x" class window. The thread blocking.
message type is always of WM_USER.

Commands are identified by “wParam” while parameters wParam lParam Description


by “lParam”.
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 72
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 13: 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 73
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 .he
x 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 74
eName: PChar; Value:PChar): BOOL; stdcall; implementation

Function UP_SetIntValue_Wnd(WndClass:PChar; Valu function UP_LoadFile; external 'up_dll.dll';


eName: PChar; Value:integer): BOOL; stdcall;
function UP_GetStrValue; external 'up_dll.dll';
Function UP_GetStrValue_Wnd(WndClass:PChar; Valu
eName: PChar; Value: PChar; Size: integer): inte function UP_GetIntValue; external 'up_dll.dll';
ger; stdcall;
function UP_SetStrValue; external 'up_dll.dll';
Function UP_GetIntValue_Wnd(WndClass:PChar; Valu
eName: PChar; var Value: integer): LongBool; std function UP_SetIntValue; external 'up_dll.dll';
call;
function UP_LoadFile_Wnd; external 'up_dll.dll';
(*
* All these functions are used for changing
* internal settings of UP in runtime. function UP_SetStrValue_Wnd; external 'up_dll.dl
* UP_GetIntValue, UP_SetStrValue, l';
* UP_SetIntValue returns nonzero if
* successful function UP_SetIntValue_Wnd; external 'up_dll.dl
* UP_GetStrValue returns amount of l';
* characters to copy into Value string
* including null terminator function UP_GetStrValue_Wnd; external 'up_dll.dl
* If Size is less than requied size, no l';
* characters are copied. function UP_GetIntValue_Wnd; external 'up_dll.dl
*) l';

Function UP_GetChecksum(Recalculate: integer; Ch function UP_GetChecksum; external 'up_dll.dll';


ecksum: PChar; Size: integer): BOOL; stdcall; function UP_GetChecksum_Wnd; external 'up_dll.dl
l';
Function UP_GetChecksum_Wnd(WndClass:PChar; Reca
lculate: integer; Checksum: PChar; Size: integer end.
): BOOL; stdcall;
For further information see Appendix A UP_DLL.DLL.
(*
* These functions return checksum value from the
UP, where: 5.9 Running More Than
* Recalculate = 0; only returns the checksum
* Recalculate = 1; checksum will be recalculated
first
One Instance of UP
* Checksum; the returned checksum as string If you need to connect more than one programmer to one
* Size; the length of the Checksum array, the ca computer, a separate instance of UP must be running for
ller have to fill each programmer connected.
* WndClass; the UP window class name
*) UP should be running in just one instance for standard
use. Each additional instance just sends commands from

Page 75
the command line to the already running first instance or
makes it visible in another way. 5.11 Updating UP
However, UP can be started and run in several instances if
used together with the parameter /w and a different If a newer program version is available on the web, it is
window class name. Those programs (instances) having recommended to update the existing version as it may
the same window class name will communicate with each eliminate known bugs or make the programming
other. algorithm for a particular device more efficient.

Parameters for the program controlled from the command New versions also add newly supported types of devices.
line are described in Running UP from Command Line.
Updates are free and are very easy. You can download a
new program version from https://www.asix.tech/
Example of use prg_up_en.html and simply install it over the previous one
The first instance of UP can be started the standard way by running the installer and clicking the Next button till it
from the start menu. finishes.

Additional instances can be started from the command You do not have to worry about losing the settings you
line as up.exe /w "another up", for example. created in your current program version. The installation
preserves all of them.

5.10 Access of More UP You can set an automatic check for newer versions on the
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
voltage on the feeding pin. 5.12.1 Data Types
UP can temporarily be prohibited to access the string is string
programmer and the programmer freed this way for integer signed 32bit value
another application. This can be done by choosing
Options ➙ Select programmer. As long as this dialog is boolean accessed like integers; 0 is false, other
open, another program can access the programmer. The value is true
data the system works with in HEX editors does not get
lost by closing this dialog window.

Page 76
If true, the contents of code memory is erased (in UP
5.12.2 List of UP variables memory) before new file is loaded;

Prog.LoadFileBfgProg all cells not stored in the file will have its default (blank)
boolean state.

If true, current file is reloaded before device (or its part) is Part.Name
programmed. string

Prog.LoadFileBfgProgWarnMod Selected device name


boolean
Prog.Name
If true, the program warns when it is set to reload current string
file before programming and data in some editor have
been manually modified. Selected programmer name

Prog.LoadFileBfgProgWarnOnNoChange Possible values are PREST, FORTE.


boolean
Prog.PortBase
If true, the program warns when it is set to reload current integer
file before programming and the content of the loaded file
has not changed from the previous programming. Serial number of programmer

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

Project.Present
FileLoad.ClearID boolean

Project.Template
FileLoad.ClearCode boolean
boolean

Page 77
If true, the user is asked for project name before its string
saving.
Path of a separate file for data memory.
HexFile.File
string HexFile.DataIHex
boolean
Opened current file path
If true, the file for data memory with extension different
HexFile.Present from .HEX or .BIN is loaded as HEX file.
boolean
Prog.QBfrEraseFlash
HexFile.IHex boolean
boolean Question before erasing flash devices
If true, the file with extension different from .HEX or .BIN
is loaded as HEX file. Prog.QBfrProgFlash
boolean
HexFile.Template Question before programming flash devices
boolean

If true, the user is asked for name before saving. Prog.QBfrProg


boolean
HexFile.SaveVoid Question before programming OTP devices
boolean
If true, empty cells are saved, too. Prog.QBfrDiffProg
boolean
HexFile.AskForBinEndian Question before differential programming (of flash
boolean devices)
If true, the user is asked if the loaded BIN file should be
loaded as Little or Big endian. Prog.QBfrProgCP
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
HexFile.LoadDataAuto boolean
boolean If true, status window will be automatically closed after
If true, with file is loaded also a separate file for data read/verify etc... without errors.
memory.
Prog.CloseStatOnGoodProg
HexFile.LastDataFile boolean

Page 78
If true, status window will be automatically closed after boolean
programming without errors.
If true, verification of empty FF positions at the end of the
Prog.BeepOnGoodProg programmed memory is not preformed.
boolean
Prog.SkipVerify
If true, program makes a sound on successful boolean
programming.
If true, no verification is performed after programming.
Prog.BeepOnBadProg
boolean Prog.DoubleVerify
boolean
If true, program makes a sound on unsuccessful
programming. If true, verification on two supply voltages is performed
after programming. Supported by FORTE with internal
Prog.SoundsOff supply voltage only.
boolean
Prog.DoubleVerifyV1
If true, all sounds of the program are switched off. integer

Prog.SkipBlankForCfg Defines supply voltage size for the first verification, the
boolean value is in volts x 10.

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 2 serial numbers are calculated
programming.
Serial.Step
Prog.SkipEraseData integer
boolean
Step of serial numbers
If true, no erasing is performed before only data memory
programming. Serial.File
string
Prog.SkipLastFFVerify

Page 79
File name of external file with serial numbers Serial.CPW
integer
Serial.File.Next
string If serial number is computed, chars per word

Label of serial number Serial.Base


integer
Serial.Length
integer If serial number is computed, base of serial number, can
be only 10 or 16
If serial number is computed, serial number length
(digits) Serial.Succ
integer
Serial.Actual
(unsigned) integer next serial number is

If serial number is computed, actual computed serial 0 same


number (if decimal, coded as BCD)
1 incremented
Serial.ASCII 2 decremented
boolean
3 random (LSFR)
If serial number is computed, if true, serial number is
stored to device as ASCII characters. Serial.Order
integer
Serial.SaveTo
integer 0 HiLo hilo
1 code/main memory 1 hilo HiLo
2 data memory 2 LoHi lohi
4 ID positions 3 lohi LoHi

Serial.Retlw Serial.Write.BeforeProg
boolean boolean
If serial number is computed, if true, memory cells are If true, current serial number is "written" into opened HEX
filled with retlw instructions. editors just before programming the device.

Serial.Addr Serial.Write.AfterProg
integer boolean
If serial number is computed, address where to save If true, current serial number is "written" into opened HEX
editors after successful programming.

Page 80
Serial.Succ.AfterProg 1 power supply during programming is
boolean Internal 5 V

If true, next serial number is generated after successful SpecSettings.PREST.i2cSpeed


programming. integer

Serial.LogSN 0 100 kHz


boolean 1 500 kHz
If true, the result of programming is logged to a selected 2 1 MHz
file.
3 Maximal
Serial.LogFile
string SpecSettings.PREST.i2cAddr
integer
File name of a file where the result of the programming
will be logged. 0 first suitable address or N/A

ICSP.LongTime 1 second suitable address


boolean etc...
If true, longer times for switching Vcc are taken.
SpecSettings.PREST.LVP
ICSP.LongTime.Time.SwOn integer
integer 0 HVP method
Time to wait after Vcc is switched on in microseconds. 1 LVP method

ICSP.LongTime.Time.SwOff SpecSettings.PREST.PICAlg
integer integer
Time to wait after Vcc is switched off in microseconds. 0 automatic selection

SpecSettings.PREST.Power 1 assume VDD = 5 V


integer
2 assume VDD < 5 V
0 idle power supply is None / External
SpecSettings.PREST.UsePE
1 idle power supply is Internal 5 V boolean

SpecSettings.PREST.ProgPower If true, PE (programming executive) is used for


integer programming of PIC MCUs.

0 power supply during programming is SpecSettings.PREST.PIC32MZ_BootProg


External 2.7 to 5.5 V integer

Page 81
0 Lower Boot alias 1 1.5 MHz

1 Boot Flash 1 and 2 2 750 kHz

SpecSettings.PREST.PSoCAlg SpecSettings.PREST.AVRXTAL.CLK
integer

0 automatic selection SpecSettings.PREST.AVRXTAL.RPT


1 assume VDD > 3.6 V integers

2 assume VDD =< 3.6 V represent maximum AVR oscillator frequency


values can be found in *.lng files at item
SpecSettings.PREST.PSoCRSTInit
integer MainForm.PRESTSpecForm.ComboAVRXTAL.xxx.Items
where xxx is minimum divisor of system clock of selected
0 Reset mode AVR's SPI module. This is 2 for new AVRs, 3 and 4 for
1 Power cycling older AVRs and 24 for Atmel's 8051 arch. processors.

These settings can be found in ini file too at


SpecSettings.PREST.MSP430osc [SpecSettings.PREST], XTALRpt and XTALClk.
integer

0 Calibrated internal RC oscilator


SpecSettings.PREST.AVRXTAL.AutoClk
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
0 Normal boolean

1 Slow If true, the reset signal polarity is assumed to be inverse


in comparison with standard polarity of the reset signal of
2 Slowest the selected chip. It is supported with AVR and 8051
devices.
SpecSettings.PREST.MSP430EraseSegme
ntA SpecSettings.PREST.AVRHVP
boolean boolean

If true, MSP430 Segment A is erased. If true, high voltage method is used for AVR MCUs, it is
supported for AVR TPI interface only.
SpecSettings.PREST.SPI_Flash_Freq
integer SpecSettings.FORTE.UVCCLevel
integer
0 3 MHz
Defines the size of the internal supply voltage provided by

Page 82
FORTE programmer. The value is in volts x 10. 0 Reset mode

SpecSettings.FORTE.Power 1 Power cycling


boolean
SpecSettings.FORTE.MSP430osc
If true, idle power supply is provided by FORTE integer
programmer.
0 Calibrated internal RC oscilator
SpecSettings.FORTE.ProgPower 1 Not calibrated internal RC oscilator
boolean
If true, the supply voltage during programming is SpecSettings.FORTE.MSP430speed
provided by FORTE programmer. integer

0 Normal
SpecSettings.FORTE.LVP
integer 1 Slow
0 HVP method 2 Slowest
1 LVP method SpecSettings.FORTE.MSP430EraseSegme
SpecSettings.FORTE.UsePE ntA
boolean boolean

If true, PE (programming executive) is used for If true, MSP430 Segment A is erased.


programming of PIC MCUs, when programmed by FORTE
programmer. SpecSettings.FORTE.MSP430Interface
integer
SpecSettings.FORTE.PIC32MZ_BootProg 0 JTAG
integer
1 SBW
0 Lower Boot alias

1 Boot Flash 1 and 2 SpecSettings.FORTE.ARMFreq


integer
SpecSettings.FORTE.PSoCAlg The value specifies the frequency of connected oscillator
integer or crystal. This value is used for programming of
0 automatic selection ARM7TDMI.

1 assume VDD > 3.6 V SpecSettings.FORTE.ARMOscType


integer
2 assume VDD =< 3.6 V
0 Crystal
SpecSettings.FORTE.PSoCRSTInit
integer 1 Ext. Clock

Page 83
2 Int.RC 32 kHz in comparison with standard polarity of the reset signal of
the selected chip. It is supported with AVR and 8051
SpecSettings.FORTE.ARMCommFreq devices.
integer
SpecSettings.FORTE.AVRHVP
Selects communication frequency between FORTE boolean
programmer and the programmed chip. The frequencies
are same as stated in the "Communication frequency" If true, high voltage method is used for AVR MCUs, it is
ComboBox in UP. 0 means the highest frequency, 1 is supported for AVR TPI interface only.
lower and so on.
SpecSettings.FORTE.ATxmegaInterface
SpecSettings.FORTE.SPI_Flash_Freq integer
integer
0 PDI
Selects communication frequency between FORTE
programmer and the programmed chip. The frequencies 1 JTAG
are same as stated in the "Communication frequency"
ComboBox in UP. 0 means the highest frequency, 1 is SpecSettings.FORTE.i2cSpeed
lower and so on. integer

0 100 kHz
SpecSettings.FORTE.AVRXTAL.DELAY
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
integer
selected AVR's SPI module. This is 2 for new AVRs, 3 and
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

Page 84
voltage on pin -MCLR/VPP) or LVP (using the LVP pin).

The LVP programming algorithm can be disabled in the Loading of Different


device's configuration word. Microcontrollers have the
LVP algorithm enabled from the production, therefore Programmer Pins
their PGM input needs to be treated during the first The maximum current drawn from I/O pins, from pins
programming (PGM input must be in log.0 for the time of P(VPP) and VDD can be found in the Technical
programming by means of the HVP algorithm). Specification.

Note: Not all devices have the PGM pin. OTP (One-Time Programmable) devices have a
considerably higher current consumption on pin P(VPP)
5.13.1 Pins Used for than devices with a FLASH memory. Therefore the
application should not have any additional current
Programming consumption at pin P(VPP) in case of OTP.

This chapter describes how to treat pins in the ICSP Data pins may have their signals changing at a speed of
programming mode in accordance with the programming several MHz, so the application must not influence the
algorithm. signals in any significant way.

5.13.2 Power Supply Options


HVP Algorithm 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

Page 85
maximum load is substantially exceeded for a certain
time (this time is adjustable). PRESTO checks for the Advice
overload state the whole time the power supply is When designing the process, please pay special attention
connected. to the type of device to be programmed – if it can be not
only operated but also programmed at a voltage lower
Support for an external power supply is integrated in both than 5 V.
PRESTO and FORTE hardware. The programmer feeds the
input and output circuits with a voltage connected to pin
VDD. The voltage may be lower than 5 V.
Power Supply Capacities in
Application
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
programming, longer charging/discharging times need to
be set in UP. In other case UP will probably announce
overcurrent on VDD pin.
An approximate time that should be set in the program:
t[μs] = 2.5 × C[μF] × R[Ω].

The equivalent resistance is presented in table following


table:

Programmer Charging current Discharging current


PRESTO Corresponds to 50 Ω Corresponds to 1 kΩ
FORTE Corresponds to 50 Ω Corresponds to 27 Ω

Table 14: Equivalent resistance of pin VDD

Example
The necessary charging time for an application with
a 33 μF capacitor programmed with PRESTO:

2.5 × 33 × 50 = 4125 μs
discharging:

2.5 × 33 × 1000 = 82.5 ms.


For further information on the setting see ▸ Delay for VDD
switching on/off when supplied from programmer.

Page 86
Notes

• An error may occur if UP cannot program the


calibration word or if a fault occurs during Device ID
reading, UP warns about an overcurrent at VDD, etc.
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
several seconds.
• If UP points out an overcurrent error at VPP, a shorter
ICSP cable may help (its maximum length is 15 cm).

5.13.3 ICSP Connector


All ASIX programmers use a unified connector with
Fig. 48: Recommended connection of -MCLR/VPP pin
2.54 mm spacing of pins for programming with the ICSP
algorithm.
This connector has 8 pins with 7 signals. Not all signals 5.14 Appendix C: Intel‑HEX
are always needed for the programming itself.

For further information on connecting a device to the


File Format
programmer see Connection Examples. This appendix describes the format of Intel-HEX files used
by UP for data reading and saving. .hex is the typical
extension for such a file.
Pin No. Signal Programming connector
1 -MCLR P / VPP 5.14.1 Supported
2
3 VCC
not used (key)
VDD
Alternatives of HEX
4 GND GND Files
5 RB7 D / DATA UP supports 2 basic alternatives of Intel-HEX files:
6 RB6 C / CLOCK • "basic", sometimes also 8-bit Intel-HEX File (e.g.
7 not used Microchip MPASMWIN generates this file with
8 RB3/RB4/RB5 L / LVP parameter INHX8M).
• "extended", sometimes also 32-bit Intel-HEX File (e.g.
Table 15: ICSP connector
Microchip MPASMWIN generates this file with
parameter INHX32).
The following drawing illustrates the recommended
connection of -MCLR/VPP pin found in Microchip
microcontrollers for device programming through the
ICSP interface.

Page 87
02 Record length. The configuration memory
5.14.2 Description of size is one word = 14 bit = 2 byte (byte
alignment).
Intel‑HEX File Format
Intel-HEX are text files consisting of lines. 400E Record address. The configuration memory
address is the word 2007h addressed by
Each line has the following structure: bytes, i.e. 400Eh.

:LLAAAATTDDDD...CC 00 Record type = data

„:“ Each line in a file must start with this 413F Record data. Configuration word =3F41h
character (colon, 0x3A).
30 Check sum. 30 = 02 + 40 + 0E + 00 + 41
LL Length of record (number of DD fields). + 3F = xxD0; neg D0 = 30

AAAA Address of record's first byte.


TT Record type. The types may be: End of File
00 - Data The only acceptable alternative of the End of file line is:

01 - End of file. Each file must finish with :00000001FF


this record.

02 - Extended segment address. (32-bit


Intel-HEX only)
Extended Linear Address
04 - Extended linear address. (32-bit Only files that need to address more than 64 kB of the
Intel-HEX only) addressed space contain this line.

There are also other types like 03 and 05, which are For example, processors of the PIC18F family have their
ignored by UP while reading and not used for saving. configuration memory saved at the address 0x 30 00 00
00.
DD Record data. The number of bytes must be
exactly LL. If this address needs to be used, it is necessary to insert a
line in the .hex file specifying the extended linear
CC Checksum. The check sum is computed as address, i.e. the upper 16 bites of the address. The lower
a binary supplement to the sum of all 16 bits are read from the line with the data record.
values on the line.
:020000040030CA

This line selects the configuration memory of PIC18F


Data Record family devices.

A line with the configuration memory of a 14-bit device is The extended segment records specify the segment, i.e.
used here as an example. bits 19-4 of the address, which are then added to
addresses from the data records (offset).
:02400E00413F30

Page 88
Saving Device Type in .hex File
Users frequently mistook the selected device type for the
device type for which the .hex file was saved. To
eliminate this, UP contains a function allowing you to save
the device type in a file.
The program adds one more line below the End of File:
#PART=.... The absolute majority of programs working
with Intel-HEX files ignore this line, but such a modified
file cannot be considered as complying with the Intel-HEX
format.

Page 89
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 90
7
FORTE.DLL Library
Functions implemented in forte.dll enable setting and
reading of logical levels on single pins of FORTE
programmer. This way it is possible to make various
communication protocols.
Except for functions which enable controlling of the single
pins, the library contains also functions prepared for
communication via SPI, I2C and 1-Wire buses, functions
for supply and programming voltage controlling and
supply voltage and GO button reading.

The functions implemented in the forte.dll library are


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

Page 91
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 92
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 • RUNTEST run_count is limited to 2^31/3
created without the -mp parameter. (approximately 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 93
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 16: 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 94
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 95
• 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 96
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 97
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 98
• If the device to be programmed has more than one
10 power-supplying pin, all of them must be really fed. It
is often recommended to check their voltage with a
voltmeter.

TROUBLE-SHOOTING • Use of the latest version of UP is recommended. If you


are still using an older version, an update is
recommended.

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

In order to run it successfully, only one FORTE

Page 99
programmer may be connected to the control PC and its this number on the bar code label on the programmer
drivers must be correctly installed. This is confirmed by bottom.
the green ON-LINE LED being on.
Space for displaying possible error messages concerning
overcurrent or overvoltage detected is provided in the
window under the serial number.

The line below provides information on the GO button.

The programing voltage level on pin P can be verified by


switching the VPP option on and setting the required
voltage level. The detected voltage is displayed in the top
right corner of the window. The level of the current
detected on pin P is displayed immediately below the
voltage. As the P output features a built-in potential
divider of approximately 5 kΩ, a non-zero value of the
current is displayed even with the output pin P
disconnected caused by feeding this potential divider.
If outputs are in a state of high impedance (Z),
information on input logical levels at these pins is
displayed. If a pull-up resistor is connected to a selected
pin, the system starts reading log. 1. If a pull-down
resistor is connected, log. 0 is read.
Outputs can be linked individually to log. 1 or log. 0.
Output signal quality can be verified by a voltmeter.
The Generate waves option sends a periodical signal of
approximately 1 kHz simultaneously to all outputs.

Fig. 49: FORTE Tester Neither reading of inputs nor setting of outputs works if
there is no voltage at pin VDD.
After you start the tester, make sure that the
programmer's output buffers are fed. You can either If everything seems to be in order, but the device still fails
switch on the VDD and set its voltage to the required to get programmed, it is recommended to check the
level or connect an external feeding voltage to the VDD application connection according to instructions for
pin. The level of detected voltage is displayed in the lower connecting a microcontroller to the programmer.
part of the window.
If in doubt as to whether the programmer is in order or
Basic communication with the programmer can easily be faulty, do not hesitate to contact our technical support.
recognized by the Active diode being on. You can choose
its color to be yellow or red.

Programmer's serial number is displayed in the top part of


the window. This number is necessary for any
communication with the service shop. You can also find

Page 100
11
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. 50: 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

11.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. 51: ISP10PIN, top
view

Fig. 52: HPRAVR adapter diagram

Page 101
Definition of input voltage on pins was added.
12 Description of w=32 parameter for Windows
messages was added.
2015-08-05 Description of the programmer driver installation
Document history has been changed.
Added new /getpartrev parameter.
Added new commandline errorcodes.
Document Modifications made 2015-09-21 Added description of the setting of the warning
revision when the loaded file is not aligned to a word size.
2013-07-03 Newly created document Fixed links.
2013-12-18 Minor text corrections 2015-11-19 Added description of setting of the T pin during and
2014-02-28 The NXP LPC2xxx family was added in the JTAG after programming.
Interface chapter 2016-01-22 The serial numbers logging description has been
New command line parameter [/read] updated.
2014-04-25 The STM8 family was added in the Connection 2016-03-08 Added description of the Display programmer form
Examples chapter function.
2014-07-01 The ARM SWD interface was added in the Added description of the setting which disables the
Connection Examples chapter VPP before VCC warning.
CE certificate was replaced by Declaration of 2016-05-20 The PE description has been updated.
Conformity Added description of the start and end address for
2014-09-23 A note about reset of MCU ARM SWD was cleared. the SPI Flash memories.
Described new option - Show only the lowest byte of 2016-08-10 Description of the HCSxxx connection has been
word in ASCII added.
2014-11-21 Updated list of variables for up_dll.dll 2016-10-10 Added description of the /sn commandline
parameter and manual serial numbers description.
2014-11-25 New settings of the UP program have been added.
Added the commandline error code 9 description.
2015-02-03 Added View/Console menu description.
2016-12-15 Description of usage of the programmers at Linux
Added description of PIC32MZ_BootProg variable.
has been added.
Small text fixes.
2017-02-02 Added description of auto programming in the Mass
2015-03-12 The name of item Delay for VDD switching on/off production window.
has been changed
Added description of Keep manually modified data.
Added description of the checksum settings
2017-02-10 The Linux driver instalation chapter has been
2015-04-07 Updated description how to create SVF file for completed.
Lattice.
2017-03-13 A link to lin_ftd2xx has been added.
2015-05-19 A chapter about forte.dll was added.
2017-03-23 Added description of /q1 commandline parameter.
The C8051 and EFM8 C2 interface was added in the
2017-05-09 Added description of "Load last project on start-up"
Connection Examples chapter.
option.

Page 102
2017-06-29 Added chapter about MultiUP utility. 2019-10-24 HCS08 note has been modified.
2017-10-30 Description of the AVR UPDI connection has been Added chapter about up_control.dll
added. 2019-12-18 Added AVR HVP connection description.
Added description of "When using Windows 2020-01-10 Added Autoload next file function description.
Messages disable other warnings" option.
2020-03-31 Added description of /conf parameter.
Added description of "Write checksum to log file"
option. Added list of parameters which are transferred to
already running UP instance.
2017-11-22 Added description of RL78 connection.
Added description of the file locations only
2018-02-19 HPRAVR chapter moved. programming.
2018-03-28 Added description of "Device info" menu item. Added description of the option switching off the
2018-05-17 Added RX600 connection description. Device ID check.
Added description of Renesas RX600 settings. 2020-05-26 Added description of "Load project unlocked"
2018-06-07 Added AT89C51CC01UA connection decription. function.
2018-07-30 Added a note to Debug fuse of MCU PIC. Added description of how to use project on the
commandline.
Added a note to AVR UPDI files mapping.
2020-08-18 Modified AVR UPDI connection.
2018-08-10 Added description where Linux FTDI driver can be
found. 2021-01-11 Driver installation description has been updated.
Added a note to commandline parameters. SDA internal pull-up disable option has been
described.
2019-01-25 Description of saving fuses to ini function has been
added. UP software installation description has been
updated.
Write RC osc Adjustment function description has
been added. JTAG Player -s parameter description has been
updated.
2019-01-31 Added description of how to read the ProgressBar
value in the quiet mode. 2021-02-25 Fixed Windows Message w=48 description.
2019-02-26 Added a note for DS28E05. Fixed Windows Messages table.
Added description of Read address function Added a description of a Recently used devices list.
Added description of Windows Messages wParam of 2021-03-15 Some typing errors have been fixed.
24 and 25. 2021-12-23 Added a picture and a description of QUAD SPI
2019-04-23 Added description of /df parameter, description of /p interface.
and /o parameters has been updated. 2022-01-07 Added a note concerning 34AA04 memory.
2019-06-26 Updated description of /s commandline parameter. Rules settings were changed for Linux installation.
Added description of "Lock project" function. 2022-01-14 Description of comments in serial numbers files has
Added description of function setting actual SN from been extended.
log file. 2022-05-23 Added LPC UART connection description.
2019-07-26 Added HCS08 connection description. 2022-06-28 Projects description at commandline chapter has
2019-09-20 Company address has been changed. been modified.

Page 103
2022-09-14 Added connection description of AVR MCU with
separated UPDI and RESET pins.
2023-01-12 Added an OSIS fuse description for Renesas ARM.
The chapter about CE and RoHS has been modified.
Added a note concerning Wine version.
2023-03-13 Added a note to showing the MD5 checksum.
Added description of UP_GetChecksum and
UP_GetChecksum_Wnd v up_dll.dll functions.
2023-05-15 Added CH32V003 connection description.
2023-08-24 CH32V003 Fast mode function has been described.
2023-11-02 Addded description of "Never ask and never save
changes to data file" function.
2023-11-06 Added an information about ProgressBar read
example.
2023-12-06 Added a note that Linux support was discontinued.
2023-12-14 Added SPD5118 connection description.
2024-01-05 Added Zilog Z8F connection description.
2024-02-16 Z8F connection picture has been fixed.

Page 104

You might also like