No part of this document may be reproduced without the prior written consent of Elprotronic Inc.
The information in this document is subject to change without notice and does not represent a
commitment on any part of Elprotronic Inc. While the information contained herein is assumed to
be accurate, Elprotronic Inc. assumes no responsibility for any errors or omissions.
In no event shall Elprotronic Inc, its employees or authors of this document be liable for special,
direct, indirect, or consequential damage, losses, costs, charges, claims, demands, claims for lost
profits, fees, or expenses of any nature or kind.
The software described in this document is furnished under a licence and may only be used or copied
in accordance with the terms of such a licence.
Disclaimer of warranties: You agree that Elprotronic Inc. has made no express warranties to You
regarding the software, hardware, firmware and related documentation. The software, hardware,
firmware and related documentation being provided to You “AS IS” without warranty or support
of any kind. Elprotronic Inc. disclaims all warranties with regard to the software, express or implied,
including, without limitation, any implied warranties of fitness for a particular purpose,
merchantability, merchantable quality or noninfringement of third-party rights.
Limit of liability: In no event will Elprotronic Inc. be liable to you for any loss of use, interruption
of business, or any direct, indirect, special incidental or consequential damages of any kind
(including lost profits) regardless of the form of action whether in contract, tort (including
negligence), strict product liability or otherwise, even if Elprotronic Inc. has been advised of the
possibility of such damages.
2
END USER LICENSE AGREEMENT
PLEASE READ THIS DOCUMENT CAREFULLY BEFORE USING THE SOFTWARE AND
THE ASSOCIATED HARDWARE. ELPROTRONIC INC. AND/OR ITS SUBSIDIARIES
(“ELPROTRONIC”) IS WILLING TO LICENSE THE SOFTWARE TO YOU AS AN
INDIVIDUAL, THE COMPANY, OR LEGAL ENTITY THAT WILL BE USING THE
SOFTWARE (REFERENCED BELOW AS “YOU” OR “YOUR”) ONLY ON THE CONDITION
THAT YOU AGREE TO ALL TERMS OF THIS LICENSE AGREEMENT. THIS IS A LEGAL
AND ENFORCABLE CONTRACT BETWEEN YOU AND ELPROTRONIC. BY OPENING THIS
PACKAGE, BREAKING THE SEAL, CLICKING “I AGREE” BUTTON OR OTHERWISE
INDICATING ASSENT ELECTRONICALLY, OR LOADING THE SOFTWARE YOU AGREE
TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO
THESE TERMS AND CONDITIONS, CLICK ON THE “I DO NOT AGREE” BUTTON OR
OTHERWISE INDICATE REFUSAL, MAKE NO FURTHER USE OF THE FULL PRODUCT
AND RETURN IT WITH THE PROOF OF PURCHASE TO THE DEALER FROM WHOM IT
WAS ACQUIRED WITHIN THIRTY (30) DAYS OF PURCHASE AND YOUR MONEY WILL
BE REFUNDED.
1. License.
The software, firmware and related documentation (collectively the “Product”) is the property of
Elprotronic or its licensors and is protected by copyright law. While Elprotronic continues to own
the Product, You will have certain rights to use the Product after Your acceptance of this license.
This license governs any releases, revisions, or enhancements to the Product that Elprotronic may
furnish to You. Your rights and obligations with respect to the use of this Product are as follows:
YOU MAY:
A.use this Product on many computers;
B.make one copy of the software for archival purposes, or copy the software onto the hard disk
of Your computer and retain the original for archival purposes;
C.use the software on a network
YOU MAY NOT:
A.sublicense, reverse engineer, decompile, disassemble, modify, translate, make any attempt
to discover the Source Code of the Product; or create derivative works from the Product;
B.redistribute, in whole or in part, any part of the software component of this Product;
3
C.use this software with a programming adapter (hardware) that is not a product of
Elprotronic Inc or Texas Instruments Inc.
2. Copyright
All rights, title, and copyrights in and to the Product and any copies of the Product are owned by
Elprotronic. The Product is protected by copyright laws and international treaty provisions.
Therefore, you must treat the Product like any other copyrighted material.
3. Limitation of liability.
In no event shall Elprotronic be liable to you for any loss of use, interruption of business, or any
direct, indirect, special, incidental or consequential damages of any kind (including lost profits)
regardless of the form of action whether in contract, tort (including negligence), strict product
liability or otherwise, even if Elprotronic has been advised of the possibility of such damages.
4. DISCLAIMER OF WARRANTIES.
You agree that Elprotronic has made no express warranties to You regarding the software, hardware,
firmware and related documentation. The software, hardware, firmware and related documentation
being provided to You “AS IS” without warranty or support of any kind. Elprotronic disclaims all
warranties with regard to the software and hardware, express or implied, including, without
limitation, any implied warranties of fitness for a particular purpose, merchantability, merchantable
quality or noninfringement of third-party rights.
4
This device complies with Part 15 of the FCC Rules.
Operation is subject to the following two conditions:
(1) this device may not cause harmful interference and
(2) this device must accept any interference received,
including interference that may cause undesired
operation.
NOTE: This equipment has been tested and found to comply with the limits for a Class B digital devices,
pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful
interference in a residential installation. This equipment generates, uses, and can radiate radio frequency energy
and, if not installed and used in accordance with the instruction manual, may cause harmful interference to
radio communications. However, there is no guarantee that interference will not occur in a particular
installation. If this equipment does cause harmful interference to radio or television reception, which can be
determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one
of more of the following measures:
*Reorient or relocate the receiving antenna
*Increase the separation between the equipment and receiver
*Connect the equipment into an outlet on a circuit different from that to which the receiver is connected
*Consult the dealer or an experienced radio/TV technician for help.
Warning: Changes or modifications not expressly approved by Elprotronic Inc. could void the user’s authority
to operate the equipment.
This Class B digital apparatus meets all requirements of the Canadian
Interference-Causing Equipment Regulations.
Cet appereil numerique de la classe B respecte toutes les exigences du
Reglement sur le material brouilleur du Canada.
MSP430FPA1.dll- required if the USB-MSP430-FPA adapter is used
MSPFET430UIF1.dll- required if the TI’s MSP-FET430UIF is used
config.ini- (optional) default configuration file for the FPAs
The FlashPro-Multi-FPA-Demo.exe program contains GUI (Figure 2.3) that allows to activate
one or more Flash Programming Adapters (FPA), TI’s MSP-FET430UIF adapter or mixed like in
an example below - USB-MSP430-FPA and MSP-FET430UIF adapters . When one adapter is used
then the button Open Instances And FPA (“*# *”) should be pressed. The first detected FPA
24
adapter connected to USB port(s) will be activated. If the USB-MSP430-FPA adapter is not present,
then software is searching for the MSP-FET430UIF adapter. If more then one adapter are connected,
then only fisrt will be used, all others adapters will be ignored. When the adapter is accepted by
software, then the 1. Initialization button must be pressed. When the 1. Initialization button is
pressed then communication with the programming adapter is initialized. Now the desired
configuration setup should be downloaded to DLLs and programming adapters (using button ‘2.
Setup File’ ), code file with data to be downloaded to target devices (using button ‘3. Open Code’)
Figure 2.4 Demo program dialogue screen using DLLs.
and password file, if required (using button ‘Open Password’ ). Setup file can be created using
standard FlashPro430 programming software. Setup file used in the FlashPro430 has the same
format as the configuration file used in the application DLL.
25
All other buttons used in the demo program are calling one API-DLL function per one button.
For example button ‘Autoprogram’ is calling
F_Autoprogram(1);
function, button ‘Open Target’ is calling
F_OpenTarget();
function etc. Using any button pressing sequence it is possible to test how the application dll is
responding for these combinations. Some of the buttons assigning extra data to be able to simulate
some write/erase procedures as follows.
*button ‘Erase segment’ allows to erase segment located on address 0x1000 to 0x107F.
*button ‘Blank Check Segm.’ allows to check the segment defined in the ‘Erase segment’
button.
*button ‘Write Flash Block’ allows to write block data
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
to flash location starting from 0x1020.
*button ‘Read Flash Block’ allows to read data from flash addresses 0x1000 to 0x103F.
When the check mark named ‘Use address/data from example (see manual) ’ in the ‘Edit’ frame
is unmarked, then edit fields becomes active and addresses to the function described above can
customized and defined in the ‘RAM Address (HEX)’ or ‘Flash Address (HEX)’. Content of data
can be specified in the ‘Data (HEX)’ field. All data should be separated by white character (space).
Maximum size data should be specified in the ‘size (max 32 bytes)’ fields (RAM or Flash).
When any button related to encapsulated functions is used ( ‘Autoprogram’, ‘Erase Flash’, ‘Blank
Check’, ‘Write Flash’, ‘Verify Flash’ ) then data taken from the code file is used ( press button ‘3.
Open Code’ to take desired code data).
Described demo program allows to understand how to use the dll functions in the application
software.
When more then one adapter is connected to PC, then the Multi-FPA API-DLL feature should be
activated. Currently up to 64 adapters can be controlled from one application software. For simplicity
the presented demo program can control up to eight adapters only. The Multi-FPA API-DLL can
assign specified FPA serial number to desired FPA index or specified COM port or eq. serial number
for the MSP-FET430UIF, where index can be from 1 up to 64 (1 to 8 in presented demo software).
At the startup software is scanning all available FPAs and MSP-FET430UIFs and assigning adapters
according to defined FPA’s serial number list. See the F_OpenInstancesAndFPAs(..) Instruction for
details. Configuration will be always the same regardless used the FPA vs USB port location. All
26
adapters not specified in the desired FPA list will be ignored. Make sure that the desired list uses
correct FPAs serial numbers. The FPA serial number is printed in the FPA’s label. When the MSP-
FET430UIF is used then check the assigned port for particular adapter (use FET-Pro430 software
for it) or use the UIF definition to accept any UIF-MSP430UIF adapter. Note, that only one MSP-
FET430UIF can be used, so definition UIF can be used for simplicity.
Assume, that we are using one USB-MSP430-FPA programming adapter and one MSP-FET430UIF
adapter. In the next step, the configuration file should be created, that contains list off all FPA’s used
in the application. Using the Notepad editor open the default FPA’s configuration file ‘FPAs-
setup.ini’ taken from your destination location (copied before from Elprotronic’s directory) and write
the serial numbers or IDs of used adapters. Take a serial numbers from the FPAs labels and write
it on the desired FPAs locations FPA-1 up to FPA-8. For two adapters as above the configuration
file can use an IDs - FPA and UIF only as follows:
;===================================================================
; USB-MSP430-FPA configuration setup *
; Elprotronic Inc. *
;------------------------------------------------------------------; up to eight FPA can be specified and connected via USB to PC *
; syntax: *
; FPA-x Serial Number *
; where FPA-x can be FPA-1, FPA-2, FPA-3 .... up to FPA-8 *
; Serial number - get serial number ir ID from the desires *
; adapter's label *
; Minimum one FPA's must be specified *
; FPA-x order - any *
; *
; e.g (without semicolon - comment) *
; Available options for Elprotronic's FPA's: *
; ANY adapter FPA or UIF - * *
; or ANY FPA adapter - FPA *
; or FPA with serial number only eg. - 20080123 *
; *
; Available options for TI's MSP-FET430UIF *
; ANY adapter FPA or UIF - * *
; or ANY UIF adapter - UIF *
; or UIF used COM x port - COM4 *
; or UIF used HID x port - HID3 *
; *
;FPA-1 20050116 *
;FPA-3 20050199 *
;FPA-5 20050198 *
;===================================================================
FPA-1 FPA
FPA-2 UIF
27
Note, that only lines without comments (without semicolon on the front ) are used by software. All
lines with comment are ignored. The FPA’s serial numbers and FPA’s indexes can be listed in any
order and with gap like FPA-1, FPA-5 etc. without FPA-2, 3 etc. Minimum one valid FPA with
correct ID or SN must be specified. Up to sixteen adapters can be declared. When the FPA’s
configuration file is created then file should be saved using name starting from FPA and with
extention ini e.g FPAs-setup.ini.
Connect all required adapters to USB connectors and run the FlashPro-Multi-FPA-Demo.exe demo
software. First the DLL instances should be opened and all connected FPA’s should be assigned to
desired FPA’s indexes. When the button ‘FPA assigment’ is pressed, then the DLL function named
F_OpenInstancesAndFPAs( FileName );
is called. This function is taking list of defined FPA’s numbers or IDs from the FPAs configuration
file and assigning all adapters to desired FPA indexes (1 to64). Number of instances to be opened
is calculated automatically, one per available and valid adapter. On described example with two
asdapters in the ‘FPAs selector’ will display two valid adapters with list of used FPAs’ serial
numbers or COM port for the MSP-FET430UIF. All, others FPA-x fields will be disabled. In this
example only two DLL instances becomes opened. Valid FPA indexes becomes 1,2 and ALL.
When the dll instances becomes opened and FPA adapter assigned to desired FPA’s indexes, then
the initialization procedure F_Initialization() must be called. It is recommended to initialize all
opened instances by calling function
F_Set_FPA_index(ALL_ACTIVE_FPA);
when more then one FPA adapter is used, or
F_Set_FPA_index(1);
when one FPA (assigned to index 1 by default) is used
prior to initialization function
F_Initialization();
On the demo program initialization procedure all these procedures are called when the button ‘1.
Initialization’ is pressed. Now adapters are ready to take other commands. In the demo above the
‘Autoprogram’ button has been used to download code simultaneously to two target devices
MSP430F1232 via two types of programming adapters - USB-MSP430-FPA and TI’s MSP-
FET430UIF. See programming report in the Report window - under FPA-#1 report taken from first
adapter, and under FPA #2 - report taken from the second adapter. In reality always the same type
adapters will be used, but this example showing flexibility of the API-DLL, that allows to swap
adapters and use application software with different adapters without modifying an application
software.
28
3. Example with API DLL
3.1 Example with single FPA
The code example described below uses one programming adapter. The Multi-FPA API-DLL
selector should be select for FPA-1 only. The fpa_index should be set to 1 or should be unmodified.
The default value of the fpa_index when one adapter is detected only is 1.
Initialization opening procedure for the USB-FPA can be as follows:
response = F_OpenInstancesAndFPAs( “*# *” );
// DLL and FPA (one only) initialization
if( response == 0 )
{
//The FPA has not been found. Exit from the program.
{
//The FPA has not been found. Exit from the program.
}
F_Set_FPA_index( 1 ); // select FPA 1 only
F_Initialization( ); // init FPA
//– functions above initialized at the startup only --- F_ReadConfigFile( filename ); // read configuration data and save
// to API-DLLs
F_ReadCodeFile( format, filename ); // read code data and save to DLL
do
{
status = F_AutoProgram( 1 );//start autoprogram
if ( status != TRUE )
{
..............................
}
else
29
{
................................................
}
} while(1); //make an infinite loop until last target device programmed