FlashPro ARM GangPro Manual Fp Gp
User Manual: elprotronic -
Open the PDF directly: View PDF
.
Page Count: 86
| Download | |
| Open PDF In Browser | View PDF |
FlashPro-ARM GangPro-ARM www.elprotronic.com FlashPro-ARM GangPro-ARM Flash and Gang Programmer for ARM core MCUs User Guide FlashPro-ARM GangPro-ARM www.elprotronic.com Elprotronic Inc. 35 Austin Rumble Court King City Ontario, L7B0B2 CANADA Web site: E-mail: Fax: Voice: www.elprotronic.com info@elprotronic.com 905-539-0474 905-539-0424 Copyright © Elprotronic Inc. All rights reserved. Disclaimer: 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 license and may only be used or copied in accordance with the terms of such a license. 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 non-infringement 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. FlashPro-ARM GangPro-ARM www.elprotronic.com 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 ENFORCA- BLE 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; C. use this software with a programming adapter (hardware) that is not a product of Elprotronic 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. FlashPro-ARM GangPro-ARM www.elprotronic.com 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 non-infringement of third-party rights. FlashPro-ARM GangPro-ARM www.elprotronic.com 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. FlashPro-ARM GangPro-ARM www.elprotronic.com Contents Introduction ................................................................................................................................. 1 Features........................................................................................................................................ 2 2.1 Key Features........................................................................................................................................ 2 2.2 Custom Features ................................................................................................................................. 2 2.2.1 Encrypted Image option ............................................................................................................... 2 2.2.2 Script file ...................................................................................................................................... 2 2.2.3 DLLs .............................................................................................................................................. 3 Getting Started ............................................................................................................................. 4 3.1 Driver Installation................................................................................................................................ 4 3.2 Hardware Setup .................................................................................................................................. 8 3.3 Starting up the Programmer ............................................................................................................... 9 3.4 Programmer Selector .......................................................................................................................... 9 Main Graphical User Interface ................................................................................................ 11 4.1 MCU Device Type .............................................................................................................................. 11 4.2 Code File Management ..................................................................................................................... 14 4.3 Flash Protection Bits ......................................................................................................................... 16 4.4 Power Device from Adapter.............................................................................................................. 18 4.5 Target Device Action Result .............................................................................................................. 19 4.6 Device Action Box ............................................................................................................................. 20 4.6.1 Auto Program ............................................................................................................................. 21 4.6.2 Verify Access .............................................................................................................................. 22 4.6.3 Erase Flash.................................................................................................................................. 22 4.6.4 Blank Check ................................................................................................................................ 23 4.6.5 Write Flash ................................................................................................................................. 23 4.6.6 Write SN/Model ......................................................................................................................... 23 4.6.7 Verify Flash ................................................................................................................................. 23 4.6.8 Read/Copy .................................................................................................................................. 23 4.7 Next Button ....................................................................................................................................... 25 Data Viewers .............................................................................................................................. 26 Memory Option Dialog Screen ................................................................................................... 29 FlashPro-ARM GangPro-ARM www.elprotronic.com 6.1 Memory Erase, Write, and Verify ..................................................................................................... 29 6.2 Read .................................................................................................................................................. 32 6.3 Retain Data in Flash .......................................................................................................................... 32 6.4 Write Verification .............................................................................................................................. 32 Adapter Options ......................................................................................................................... 33 7.1 Communication Speed ...................................................................................................................... 33 7.2 Reset Dialog Screen........................................................................................................................... 33 7.2.1 Reset pulse duration .................................................................................................................. 33 7.2.2 Final Target Device action .......................................................................................................... 35 7.3 Preferences Dialog Screen ................................................................................................................ 35 Serialization ................................................................................................................................ 37 8.2 Serial Number Display Format .......................................................................................................... 40 8.3 Serial Number Memory Format ........................................................................................................ 40 8.3.1 HEX Memory Format.................................................................................................................. 42 8.3.2 BCD Memory Format ................................................................................................................. 45 8.3.3 ASCII Memory Format ................................................................................................................ 47 8.4 Serial Number Output File ................................................................................................................ 49 8.5 Model, Group, Revision .................................................................................................................... 49 8.6 BarCode Scanner Setup..................................................................................................................... 50 8.7 Device Serialization box .................................................................................................................... 50 8.8 Serialization Report Dialog Screen .................................................................................................... 51 8.9 Serial Number Input File ................................................................................................................... 52 Check Sum Options .................................................................................................................... 56 9.1 Check Sum types ............................................................................................................................... 59 9.1.1 Arithmetic Sum (8b/16b) ........................................................................................................... 59 9.1.2 Arithmetic Sum (8b/32b) ........................................................................................................... 59 9.1.3 Arithmetic Sum (16b/16b)......................................................................................................... 59 9.1.4 Arithmetic Sum (16b/32b)......................................................................................................... 59 9.1.5 CRC16 (Poly 0x11201) - (8b/16b) (Named as CRCCCITT) and CRC16 defined polynomial (8b/16b) .............................................................................................................................................. 60 9.1.6 CRC32 (Poly 0x04C11DB7) - (8b/32b) (Named as IEEE 802-3) and CRC32 defined polynomial (8b/32b) .............................................................................................................................................. 61 FlashPro-ARM GangPro-ARM www.elprotronic.com Script File .................................................................................................................................. 62 10.1 Script button ................................................................................................................................... 62 10.2 Script file option .............................................................................................................................. 63 10.2.1 Script Limitations ..................................................................................................................... 64 10.2.2 Command Syntax ..................................................................................................................... 64 10.2.3 Instructions .............................................................................................................................. 64 Setup and Image Load and Save .............................................................................................. 69 11.1 Load and Save Setup ....................................................................................................................... 69 11.2 Load and Save Image ...................................................................................................................... 69 11.3 Commands combined with the executable file .............................................................................. 74 Target Connection .................................................................................................................... 76 Table of Figures Figure 3.1: New Hardware Wizard, step 1. Select “Yes, this time only." ............................................ 5 Figure 3.2: New Hardware Wizard, step 2. Select “Install the software automatically. .................... 6 Figure 3.3: New Hardware Wizard, step 3. Ignore this warning. .......................................................... 6 Figure 3.4: New Hardware Wizard, step 4. USB-FPA-BOOT driver installed. ................................... 7 Figure 3.5: New Hardware Wizard, step5. USB-FPA (Elprotronic) driver installed. .......................... 7 Figure 3.6: Hardware setup, cable connections. .................................................................................... 9 Figure 3.7: FPA selector. When one or more programmers are connected to the computer at once, the FPA selector allows the user to choose which programmer to operate. ........................ 10 Figure 4.1: Main Dialog Screen. .............................................................................................................. 12 Figure 4.2: The MCU type can be selected here. ................................................................................. 13 Figure 4.3: Select the Code file you wish to program to the MCU. .................................................... 14 Figure 4.4: Code size exceeds Flash size. ............................................................................................ 15 Figure 4.5: Save code file......................................................................................................................... 15 Figure 4.6: The programmer will ask the user if they wish to program the debug register even if protection bits haven't been programmed successfully. This is useful in overcoming some processor bugs that prevent protection bits from being committed.................................................. 16 Figure 4.7: Memory Protection. ............................................................................................................... 17 Figure 4.8: Power device. ......................................................................................................................... 18 Figure 4.9: Power-cycle required to begin verification. ........................................................................ 19 Figure 4.10: Check boxes will indicate the statue of each operation during programming. ........... 19 Figure 4.11: Actions that can be taken using the Programmer. ......................................................... 20 Figure 4.12: This text window shows text messages describing the actions being performed, and how long they take. .................................................................................................................................. 21 Figure 4.13: A summary of the entire programming procedure. ......................................................... 21 Figure 4.14: This message clarifies which segment of flash memory will be erased...................... 22 Figure 4.15: Flash memory contents as read from the MCU. ............................................................. 24 Figure 4.16: Contents of flash have been copied to a file and can be used as a new Code file... 25 Figure 4.17: The next button can take on multiple functions depending on which Device Action was used previously. ............................................................................................................................... 25 Figure 5.1: Code File Data. The selected option on the bottom ignores all bytes that have the value of 0xFF, which represents empty bytes. .................................................................................... 27 Figure 5.2: Comparison of code and flash memory data from the target processor. ..................... 28 Figure 6.1: Control how memory will be accessed using this dialog window. ................................. 30 Figure 7.1: Use this drop-box to select the desired communication speed. ..................................... 33 Figure 7.2: Use this dialog window to configure reset options. ......................................................... 34 Figure 7.3: Use this dialog window to configure your preferences. .................................................. 36 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 8.1: If an MCU already contains serialization information at a specified location then a conflict window will appear giving the user the option to retain the old serial number, or program in a new one. ............................................................................................................................................. 37 Figure 8.2: Serialization options can be selected here. ....................................................................... 39 Figure 8.3: This window will appear when there is a conflict between memory allocated to code and the SN. To avoid this pop-up, select the option to “Remove code contents in the location where the serialization and model are defined" in Figure 8.2. .......................................................... 42 Figure 8.4: Seen in the main dialog window, this serialization status box will display the current device's serial number and the next serial number to be programmed. .......................................... 50 Figure 8.5: Serialization report gives a summary of all the serial numbers programmed using the selected file. ............................................................................................................................................. 51 Figure 8.6: Serial numbers read from a file. .......................................................................................... 55 Figure 9.1: Check Sum information compared between the file and MCU memory. ...................... 56 Figure 9.2: Check Sum Options............................................................................................................... 57 Figure 9.3: Check Sum Report. ............................................................................................................... 58 Figure 9.4: Check Sum Type.................................................................................................................... 58 Figure 9.5: Check Sum Initial Value. ...................................................................................................... 58 Figure 9.6: Check Sum Inverted Option. ................................................................................................ 58 Figure 10.1: Script file not defined........................................................................................................... 62 Figure 10.2: Script file active. ................................................................................................................... 62 Figure 11.1: Image Options. .................................................................................................................... 71 Figure 11.2: PC Hardware fingerprint. .................................................................................................... 72 Figure 11.3: Image Options with security settings enabled and the password lock and unlock options specified....................................................................................................................................... 73 Figure 12.1: Adapter.................................................................................................................................. 76 FlashPro-ARM GangPro-ARM www.elprotronic.com Introduction I nt ro d uc t io n The FlashPro-ARM and GangPro-ARM programmer (“the programmer”) is designed to program M0-M7 series MCU devices from multiple vendors. The programmer communicates with MCUs using the JTAG, cJTAG, and SWD debug interfaces. The GangPro-ARM programmer can program up to 6 targets simultaneously. The programmer package consists of a USB-FPA adapter, WindowsTM based software available online at www.elprotronic.com (supported from Windows 10 to Windows 2000), USB cable to connect the adapter with the computer, ribbon cables to connect the adapter with debug interface, and cable converter adapter for different pinouts (20-pin, 14-pin). A GangSplitter-ARM is available to purchase optionally for the GangPro-ARM programmer. The programmer enables communication with the target device at high speed. A standard auto program procedure includes initialization, erasing memory, blank checking, programming, verification, and optionally locking the device to prevent future access. In addition, the programming software package can assign a serial number, model type, and revision. Each serial number is unique for each programmed device and is assigned automatically. Several serial number formats are available. There are a number of erase and write options available as well. This enables the user to erase and write all flash memory or only a specified fragment of memory. This feature is very useful when only a part of programmed data or code needs to be replaced. For example one can change the serial number, calibration data or personality data without erasing existing program code. The remainder of this manual will explain how to use all of the programmer’s different features. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |1 FlashPro-ARM GangPro-ARM www.elprotronic.com Features The programmer is designed to program the ARM series MCU devices from multiple vendors. Depending on the programmer key the user purchased, the adapter will be able to program some or all available ARM MCUs. 2.1 Key Features The key features of the programmer are: Supports M0, M3, M4, and M7 devices from various vendors. Programming speed via debug interface is approximately 1 Mbytes/s using XStream-Iso 1.0 adapter and 50 kbytes/s using USB-FPA 6.1 adapter. Our programmers are professionally made and are recommended by Texas Instruments as the Third Party Tools source. Full memory or page memory erase capability. Write Check Sum verification. No code size limitations. Target device can be powered from the programming adapter or from external source. Easy to use WindowsTM based software. Programmer accepts TI (*.txt), TI CCS (*.bin), Motorola (*.s19, *.s28, *.s37, *.srec) and Intel (*.hex) data files for programming. Lock setup capability, useful in production. Software package can assign and automatically increment a serial number, model type and revision. Serial Number with or without an automatically inserted current date can be stored in Flash memory in HEX, BCD or ASCII format. Log file capability allows to review information about flashed target devices. DLL software package can control programmer from other programs. Programmer has been fully tested to comply with FCC and CE requirements. Uses USB-2.0 Full-Speed to communicate with the programming adapter. 2.2 Custom Features The programmer can be controlled from external software using DLL as well as custom scripts to specify programming sequences. These features are very useful for automation in a production environment. 2.2.1 Encrypted Image option Code contents downloaded to target device can be encrypted and blocked against unauthorized access. 2.2.2 Script file A user can define a sequence of programming steps by means of a script file. The script file is a sequence of programmer commands, where each command corresponds to a button in the FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |2 FlashPro-ARM GangPro-ARM www.elprotronic.com programming software. Each command can be accompanied by a few options. A script file of up to 1000 lines can be created. The detailed description of script commands is given in Chapter 10. Please note that the script file is not available in the lite version of the programming software. 2.2.3 DLLs The programming adapter can also be controlled through user created applications. For this purpose a DLL is provided to allow a user to develop custom applications that can control the programming adapter and allow the programming of target devices via the programmer .The Multi-FPA API-DLLs allows to fully control up to 64 programming adapters (to program simultaneously up to 64 target devices) from external software written in MS Visual C++, MS Visual Basic, C#, LABView, DOS or other programming packages like Borland C++ etc. See the “FlashPro-ARM API-DLL User’s Manual" and “GangPro-ARM API-DLL User’s Manual" for details. The Generic-DLL can also control 64 of any adapter in a thread-safe way, and provides an advanced command-line tool (available online in the Downloads category). FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |3 FlashPro-ARM GangPro-ARM www.elprotronic.com Getting Started The programmer package contains: 1. 2. 3. 4. 5. Software for adapter is available for download www.elprotronic.com One FlashPro-ARM/GangPro-ARM Programmer adapter (XStream-Iso or USB-FPA 6.1). One 6 feet long USB-A to USB-B cable. FPA to ARM 14-pin to 20-pin adapter (PE036X01) and ribbon cable. (Optional) GangSplitter-ARM, enables the GangPro-ARM to connect to six target devices (see more information online in the Products category). The programmer software runs under WindowsTM ME, WinNT, 2000, XP, 7, 8, and 10. Follow instructions below to install the software: 1. Download X-ProARM-xxxx-Setup.zip 2. The setup wizard appears automatically after clicking setup.exe. Begin the installation process. 3. Once the installation program starts, on-screen instructions will guide you through the remainder of the installation. You must accept the license agreement before using this software. 3.1 Driver Installation The installation program will place the USB driver files in Windows directories “Windows\inf" and “Windows\system32\drivers". Plug in the programmer to the PC USB Port, using provided cable extender (USB-A to USBB). For Windows XP, Vista, 7, 8, 10. The “New hardware has been found - USB-FPA-BOOT" window should be displayed. Follow wizard instructions to install the drivers. a) In the first Wizard dialog screen (see Figure 3.1) select the “Yes, this time only" option. b) In the second Wizard dialog screen (see Figure 3.2) select the “Install the software automatically (Recommended)" option and press NEXT button. c) Software will search for the USB-FPA-BOOT driver. It can take a few minutes to find the necessary files. When the driver is found then the following warning will be displayed (Figure 3.3). FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |4 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 3.1: New Hardware Wizard, step 1. Select “Yes, this time only." FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |5 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 3.2: New Hardware Wizard, step 2. Select “Install the software automatically. Figure 3.3: New Hardware Wizard, step 3. Ignore this warning. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |6 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 3.4: New Hardware Wizard, step 4. USB-FPA-BOOT driver installed. Figure 3.5: New Hardware Wizard, step5. USB-FPA (Elprotronic) driver installed. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |7 FlashPro-ARM GangPro-ARM www.elprotronic.com d) Ignore this message and press button “Continue Anyway". The first USB-FPA-BOOT driver should be installed and the following message will be displayed (Figure 3.4). e) Press the “Finish" button. After a few seconds, a second “New hardware" window will appear regarding the USB-FPA (Elprotronic). Repeat procedures described above to install the USB-FPA (Elprotronic) driver (see Figure 3.5). If for any reason the wizard cannot find the USB driver's location then use the manual browse option to locate driver files in the software directory “C:\Program Files (x86)\Elprotronic\Drivers USB-FPA\XP,Vista,Win-7,8,10". For Windows 2000, 98-SE, ME. The “New hardware has been found" window will be displayed instead. Follow wizard instructions to install the drivers. a. Press “Next" when the Device Wizard Driver screen appears. b. Select the following option on the wizard screen: select a suitable driver for my device (recommended) and press “Next". c. Select the third option – “Specify a location" for a location of the driver files. d. In the application software directory “C:\Program Files (x86)\Elprotronic\Drivers USBFPAnW2K, W98SE, WinME" and press “Next". e. Driver installation process will start. Driver installation procedures should be done twice to install two USB drivers - the Boot driver and the Application driver. Reboot computer if necessary. 3.2 Hardware Setup Connect programmer to target device: 1. Connect the USB-FPA Flash Programming Adapter to the PC USB Port or via USB-HUB using provided cable extender (USB-A to USB-B) (see Figure 3.6). 2. Plug in 14-pin ribbon cable to programmer and then the ARM 14-pin to 20-pin adapter (PN: PE036X01) to the end of the ribbon cable. Connect target device to the 20-pin end of the adapter. Make sure that pin 1 on your device board's header is connected to pin 1 of the socket connector (red cable). FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |8 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 3.6: Hardware setup, cable connections. 3.3 Starting up the Programmer To start the programmer click on the FlashPro-ARM or GangPro-ARM icon. Once started, the software will attempt to access the programming adapter. If no error messages appear then the software has initialized without a problem and you may begin using it. However, if the programming adapter is not detected an error message will appear. To correct the problem, make sure that the connection cable is properly attached and the USB driver is installed. Several warning messages regarding a mismatch between flash size and code file size may appear, but you can ignore them at this point. They are designed to warn the user before attempting to program a code file that is too large for a selected MCU device type. These warning messages are relevant after you have selected your desired MCU device type and code file, since code outside of flash will not be programmed. 3.4 Programmer Selector The programmer software has a Multi-USB feature. Up to 64 Flash Programming Adapters can be connected to one PC. Each adapter can be controlled by a separate instance of the programming software application. Up to 64 applications can be opened at the same time. Each FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 Page |9 FlashPro-ARM GangPro-ARM www.elprotronic.com application can have independent setup from the others (code file, controlled microcontroller type etc.). When more than one programmer is connected to a PC each time you start the programmer application a X-Pro FPA Selector dialog screen will appear (see Figure 3.7). The dialog screen will list all adapters connected and allow you to choose the adapter you wish the application to control. Make sure that the selected FPA is not used by another opened application. The selected FPA's serial number will be displayed on the bottom left side of the programming dialog screen. When the Multi-FPA API-DLL is used, then all adapters can be controlled from one software application. The Generic-DLL can also control 64 of any adapter in a thread-safe way, and provides an advanced command-line tool (available online in the Downloads category). Figure 3.7: FPA selector. When one or more programmers are connected to the computer at once, the FPA selector allows the user to choose which programmer to operate. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 10 FlashPro-ARM GangPro-ARM www.elprotronic.com Main Graphical User Interface The main dialog (see Figure 4.1) contains a pull down menu, interface selection box, lock protection bits box, device action buttons, report (status) window, open file buttons, target device information box, serial number box, power DC status and check sum result boxes. All device action buttons, power ON/OFF button and the check sum result box have their own status indicators. Each indicator can assume any of the following conditions: - idle status. - test in progress. For power on/off - DC voltage is correct. - access enabled. - access denied. For power on/off - DC voltage is too low. - device action has finished successfully. - device action has finished, but result failed. - applies to blank check only. All memory is not blank, but the specified memory segment is blank. 4.1 MCU Device Type Target MCU device type can be selected from the pull down field of the Vendor, Family, Group, and Name menus shown in Figure 4.2. The pull down fields contains a list of all devices in the family series currently available. When communication between the microcontroller and the programming adapter is initialized, the software will detect the target microcontroller automatically. The type of detected microcontroller is displayed in the field “Target:". This allows the software to warn the user if the connected microcontroller does not match the one specified during configuration. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 11 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 4.1: Main Dialog Screen. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 12 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 4.2: The MCU type can be selected here. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 13 FlashPro-ARM GangPro-ARM www.elprotronic.com 4.2 Code File Management The programmer provides a few options to manage code files. These options allow the user to open a code file, and save memory or read code data into a new code file. The “Open Code File" button, or the File→Open Code File option prompts for opening the file that contains the code data, as shown in Figure 4.3. When the file is selected the contents of the file are downloaded into application memory. If the selected target device does not have enough flash memory to fit the data contained in the code file, a warning message as shown in Figure 4.4 will appear. When a code file is opened and read successfully the code file name and full path will be displayed on the right side of the “Open Code File" button (see Figure 4.1). Contents of the selected file can be viewed by selecting the View→Code File Data option (see Chapter 5). The File→Save Code as... option saves the data currently contained within the application code data block into a code file. When the user selects this option the window in Figure 4.5 will appear, prompting for the name of the file to be created. The File→Save Memory as... option will save the code read from a target device into a code file similarly to the File→Save Code as... option. All of the aforementioned Code File options work with the three most popular code file formats. These formats are the Texas Instruments, the Motorola and the Intel file formats. The programmer will work with any of these formats and will easily convert one file format to another by using the File→Open Code File and File→Save Code as... options. Figure 4.3: Select the Code file you wish to program to the MCU. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 14 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 4.4: Code size exceeds Flash size. Figure 4.5: Save code file. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 15 FlashPro-ARM GangPro-ARM www.elprotronic.com 4.3 Flash Protection Bits Flash memory within some devices can be protected against unauthorized program or read access. The programmer software allows the user to program these bits by selecting the “Enable" check-box within the “Memory Protection" area in the top right corner of the main dialog screen (shown in Figure 4.1). When the “Enable" option is selected, then all protection bits will be programmed during the “Auto Program" procedure after code contents have been programmed and verified correctly. These bits can also be programmed manually by pressing the “Lock Device" button. When programming Flash Protection Bits, depending on the target device family, it is sometimes necessary to power-cycle the target device to verify that these bits have been successfully committed (see Section 4.4). Although some devices allow the user to reset these protection bits to factory settings using the “Clear Locked Device" procedure, not all devices support this feature. On a few devices protection bits cannot be re-programmed once committed. Therefore it is important to verify if the recovery procedure is supported on the target MCU by checking the relevant technical reference manual if you intend to program protection bits multiple times. Some processor revisions are known to contain bugs that prevent memory protection bits from being committed (e.g. see LM3S3748 RevA0 errata). In some cases you can still disable debug access because the debug register commits successfully, consult MCU errata on the Texas Instruments' website regarding the revision you are using. When the programmer detects that protection bits have not been programmed successfully, but the user has requested to program debug bits, a popup message will ask if programming should proceed anyway (see Figure 4.6). Normally, the debug register is programmed last only if all other operations are successful. The desired configuration of protection bits can be chosen in the Setup→Memory Protection dialog screen (shown in Figure 4.7). The user can select an address range to be protected (for no protection specify both values as 0), or modify individual register bits. Additional protection can be enabled by totally disabling debug access to the MCU. After debug access is disabled then JTAG/SWD can no longer be used to communicate with the target device. All these protection bits can either be chosen from the dialog screen, or taken from a code file. The exact protection capabilities vary between MCU families. Figure 4.6: The programmer will ask the user if they wish to program the debug register even if protection bits haven't been programmed successfully. This is useful in overcoming some processor bugs that prevent protection bits from being committed. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 16 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 4.7: Memory Protection. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 17 FlashPro-ARM GangPro-ARM www.elprotronic.com 4.4 Power Device from Adapter The programming adapter is powered from the USB Port interface. A target device can be powered from the programming adapter with voltage range from 1.8V to 4.0V in 0.1V steps selected in the voltage selector located in the “MCU Vcc" box (see Figure 4.8). The target device will be powered from the adapter if the check-box “Enable" is selected. By clicking the POWER ON/OFF button you can also turn the power on or off manually on the target device. Current DC voltage on the target device is continuously monitored and displayed in the “MCU Vcc" box, even if the target device is powered from an external DC source. If DC voltage is higher than minimum voltage, then a yellow box will be displayed, indicating that DC voltage is OK and target device is fully functional under this DC voltage. If DC level is below minimum, then an access denied sign box will be displayed (red sign with white line). If DC level is below 1V, then blank sign box will be displayed. When the target device is powered from an external power supply then the check box “Enable" should not be selected. RESET button located on the right side on the POWER ON/OFF button (Figure 4.1) can generate a reset pulse to the target device. Pressing this button will reset the target device manually at any time, assuming the reset line is connected between the adapter and MCU. When programming Flash Protection Bits, depending on the target device family, it is sometimes necessary to power-cycle the target device to verify that these bits have been successfully committed. The programmer will do this automatically when power is taken from the adapter in cases where a power-cycle is required. However, if power is taken from an external power source and the “Enable" check-box is disabled in the “MCU Vcc" area, a popup message will wait for the user to power-cycle the device before proceeding with verification (shown in Figure 4.9). Some processor revisions are known to contain bugs that prevent memory protection bits from being committed (e.g. see LM3S3748 RevA0 errata). In some cases you can still disable debug access because the debug register commits successfully, consult MCU errata on the relevant website regarding the revision you are using. When the programmer detects that protection bits have not been programmed successfully, but the user has requested to program debug bits, a popup message will ask if programming should proceed anyway (see Figure 4.6). Normally, the debug register is programmed last only if all other operations are successful. Figure 4.8: Power device. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 18 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 4.9: Power-cycle required to begin verification. 4.5 Target Device Action Result After any programming action is performed, a result icon will be displayed next to the button pressed indicating the result status. Some actions, like “Auto Program", perform many tasks and each part of the result is displayed in the test result icons (see Figure 4.10). Figure 4.10: Check boxes will indicate the statue of each operation during programming. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 19 FlashPro-ARM GangPro-ARM www.elprotronic.com 4.6 Device Action Box The Device Action box contains multiple buttons (see Figure 4.11). Each button allows a specific action to be executed. Software procedures related to each action allow you to fully execute the desired task, without the need to follow a specific sequence of actions. Every action starts by powering up the target device, if Power Device from the Adapter is enabled. When the DC voltage level becomes higher than minimum voltage, communication with the target device is initiated via the debug interface. If the debug interface is disabled for any reason (i.e. debug register has been programmed to disable debug interface) all these actions will fail( A Clear Locked Device action can be attempted to factory reset the MCU and restore debug interface, if possible). Alternatively, when the debug interface is enabled, and the specified action is completed successfully, a green check marks will appear (see Figure 4.11). The application returns to original state after each operation, therefore the order the buttons are pressed in doesn't matter to the application. Progress of all actions is displayed in the report window. If the particular action has been finished successfully, then message “done" or “OK" will appear on the right side of processed procedure (Figure 4.12). If not, a “failed" message will be displayed and selected action will terminate the sequence of any follow-up actions (with a few exceptions, a full blank check fail, will start a partial blank check that can pass, or a locked device can trigger an unlock attempt). Final status is also displayed in the Status window (see Figure 4.13) as Active (blue), Pass (green), or Fail (red). On the bottom of the programmer dialog screen the progress bar is displayed and the total run time is shown in the report window. Run time does not include the time when user interaction is required. Figure 4.11: Actions that can be taken using the Programmer. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 20 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 4.12: This text window shows text messages describing the actions being performed, and how long they take. Figure 4.13: A summary of the entire programming procedure. 4.6.1 Auto Program The “Auto Program" button is the most frequently used button when programming a target microcontroller device in a production process. The “Auto Program" button activates all required procedures to fully erase, program and verify flash memory contents. “Auto Program" executes the following procedures: reload code file when “Reload Code File" is selected (useful for debugging when the code file is frequently modified), initialization, read retain data from the flash if specified (optional), read label information (Serial Number, Model, Group, Revision)(optional), erase flash memory, erased memory blank check, flash programming and verification, flash retained data and verify (optional), assign or retrieve label information from file (optional), flash assigned or retrieved label and verify (optional), flash memory check sum verification (optional), FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 21 FlashPro-ARM GangPro-ARM www.elprotronic.com set flash protection bits (optional). In the report window you can see report messages during the “Auto Program" procedure (see Figure 4.12). Status window (see Figure 4.13) has a counter that is useful in a production process. The total number of programmed devices can be entered in the Total edit line. The Balance line shows the number of devices that have not been programmed yet. The Balance counter is initialized to the value entered in the Total edit line and is decremented every time “Auto Program" is completed successfully. In the bottom box in the Status group is displayed the number of available serial numbers taken from a user specified serial numbers file. Note: Balance counter works only with the “Auto Program" procedure. 4.6.2 Verify Access This button allows the user to check that the programmer has access to the target device. 4.6.3 Erase Flash The “Erase Flash" function erases the selected flash memory segments, or mass (all) memory. If any option other than “Erase All Memory" is selected in the Memory Options Setup (see Chapter 6 for configuration details), then a message shown in Figure 4.14 will be displayed. This message clarifies which segment of flash memory is to be erased because typically a mass erase is recommended, since repeated writing over a flash location that has not been erased can eventually cause permanent damage to the MCU’s flash memory. Figure 4.14: This message clarifies which segment of flash memory will be erased. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 22 FlashPro-ARM GangPro-ARM www.elprotronic.com 4.6.4 Blank Check The “Blank Check" function checks if flash memory of the target microcontroller is blank (all bytes contain the value 0xFF or 0x00 depending on MCU). This test performs two checks: (i) determine if the entire memory contents are clean, (ii) check memory segments specified by the user (see setup in Memory Erase/Write Group). The following conditions can appear at the completion of this operation: - all memory is blank - all memory is not blank, but selected part of it is blank. - memory is not blank. 4.6.5 Write Flash The “Write Flash" function writes contents from the code file to flash memory. Erase and blank check flash segments you wish to program before pressing the “Write Flash" button (see Chapter 6 for configuration details). 4.6.6 Write SN/Model When the “Write SN/Model" button is clicked, Serialization (see Chapter 8.2) information will be manually programmed to the target device. It is NOT recommended to use this button outside of the “Auto Program" procedure other than for testing purposes. Only the “Auto Program" procedure will decrement serial numbers from a serial numbers file (if specified) and log used serial numbers into the output file. Also, if you chose to select Check Sum Options (see Chapter 9), a check sum that includes the serial number will not be updated if you change the serial number using this button manually. 4.6.7 Verify Flash The “Verify Flash" function compares the contents of flash memory with data from the code file. This function can use the standard memory verification method (byte by byte) or verify the calculated check sum of the code and check sum of the flash contents (see Chapter 6). Note: During verification, either all memory or just the selected part of memory is verified, depending on settings specified in the Memory Erase/Write Address Range in the Memory Options setup. See Chapter 6 for details. 4.6.8 Read/Copy The “Read/Copy" function reads data from the target microcontroller and displays it in the Flash Memory Data window (see Figure 4.15). This window can also be opened by selecting the View→Flash Memory Data option. Flash memory data viewer, shown in Figure 4.15, displays the code address on the left side, data in hex format in the central column, the same data in ASCII format in the right column. Contents of the code viewer can be converted to code files by clicking on the bottom buttons. Data will be viewed in the Notepad Editor. The address range to be displayed in the Flash Memory Data window can be specified in the Memory Options screen. See Chapter 6 Read group for details. When the “Copy" button FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 23 FlashPro-ARM GangPro-ARM www.elprotronic.com is clicked, then contents of the read target device memory will be saved in the specified by user file name and opened as a current Code File. As a consequence of this action, programmer setup will be modified for the copy procedure. Serialization will be disabled and the “All Memory" option will be selected in the “Write/Erase/Verify Address Range". The message shown in Figure 4.16 will be displayed. When the button “OK" is pressed then the programmer is ready to program the target device. Figure 4.15: Flash memory contents as read from the MCU. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 24 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 4.16: Contents of flash have been copied to a file and can be used as a new Code file. 4.7 Next Button The “NEXT" button is a dynamically programmable device action button (use shortcut function key F5 to operate). At start-up the “Next" button is disabled (see Figure 4.17, left), but when any button from the Device Action group is pressed, the “Next" button will take on the name and feature of that button. For example, if “Auto Program" has been used then its name will be displayed on the “Next" button (see Figure 4.17, middle) and it will perform the same function as the “AUTO PROG.” button. The “NEXT" button will retain this functionality until a different Device Action button is pressed. For example if the button, ”READ / COPY", is clicked then from this moment on the button “NEXT" will take the name and function of the “Read Flash" button and so on (see Figure 4.17, right). The purpose of the “Next" button is to perform the same task repeatedly on a series of target MCUs during production. Figure 4.17: The next button can take on multiple functions depending on which Device Action was used previously. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 25 FlashPro-ARM GangPro-ARM www.elprotronic.com Data Viewers Data from code files and flash memory can be viewed and compared in data viewers. Contents of a selected code file can be viewed by selecting the View→Code File Data option. The Code data viewer, shown in Figure 5.1, displays the code address on the left side, data in hex format in the central column, and the same data in ASCII format in the right column. Data in hex format is displayed from 0x00 to 0xFF for addresses corresponding to the code file. Data from other addresses is displayed as double dots “..”. If code size exceeds flash memory size in the selected microcontroller, a warning message will be displayed first. The contents of the code viewer can be converted to TI (*.txt) or Intel (*.hex) file format by clicking on the TI hex or INTEL button. Contents of Flash Memory Data can be viewed by selecting the View→Flash Memory Data option. To be able to see flash memory contents, the Read/Copy button must be used first (as described in Section 4.6.8). The Flash Memory Data viewer displays memory addresses, data in hex and ASCII format in the same way as the code data viewer shown in Figure 5.1. Contents of the code file and flash memory can be compared and differences can be displayed in the viewer by selecting the View→Compare Code and Flash Data option. Only data that are not the same in the code file and flash memory will be displayed. The first line displays code file data, and the second line displays flash memory data as shown in Figure 5.2. If all the aforementioned data are identical, then a No difference found message will be displayed on the screen. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 26 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 5.1: Code File Data. The selected option on the bottom ignores all bytes that have the value of 0xFF, which represents empty bytes. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 27 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 5.2: Comparison of code and flash memory data from the target processor. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 28 FlashPro-ARM GangPro-ARM www.elprotronic.com Memory Option Dialog Screen The Memory Options dialog screen selected by choosing the Setup→Memory Options option (shown in Figure 6.1) has four settings groups and one information group. These settings groups allow the user to specify memory segments for erase, write, verify and read operations. The user can also choose to retain data in flash memory between successive “Auto Program" and “Erase" operations and choose the type of write verification. The information group contains specifications of the selected MCU, such as the address range for non-volatile registers, flash size, and RAM size. 6.1 Memory Erase, Write, and Verify The “AUTO PROG.", “ERASE FLASH", “WRITE FLASH", and “VERIFY FLASH" operations used in the main dialog screen (shown in Figure 4.1) use addresses specified in this dialog screen. This settings group has seven options: 1) Unlock [Auto Program only] - When this option is selected the “AUTO PROG." operation will attempt to unlock the target device using the “Clear Locked Device" recovery procedure IF the FlashPro-ARM Programmer fails in gaining access. The recovery procedure is only used in this context if the debug interface is disabled, not if selected memory pages are protected. 2) 2. Update only - When this option is selected the “Auto Program" operation will not erase memory contents. Instead, contents of code data taken from the code file will be downloaded to flash memory. This option is useful when a relatively small amount of data, such as calibration data, needs to be added to flash memory. Other address ranges should not be included in the code file, meaning that the code file should contain ONLY the data which is to be programmed to flash memory. For example, if the code file contains data as shown in TI format: @1008 25 CA 80 40 39 E3 F8 02 @2200 48 35 59 72 AC B8 Q FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 29 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 6.1: Control how memory will be accessed using this dialog window. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 30 FlashPro-ARM GangPro-ARM www.elprotronic.com Then 8 bytes of data will be written starting at location 0x1008 and 6 bytes of data starting at location 0x2200. The specified addresses should be blank before writing (contain a value of 0xFF). Before the writing operation is actually performed, the FlashPro-ARM Programmer will verify automatically if this part of memory is blank and will only proceed to program the device if verification is successful. Even Number of Bytes. The number of bytes in all data blocks must be even. Words (two bytes) are used for writing and reading data. In case that the code file contains an odd number of bytes, the data segment will be appended by a single byte containing a blank value of 0xFF. This value will not overwrite the current memory contents (because Update only is selected), but verification will fail if the target device does not contain a blank value of 0xFF at that location. 3) NVR Memory only - If an MCU contains a non-volatile register (NVR) segment then it will be programmed. NVR segments include user registers (USER REGS) and protection registers (FMPPE and FMPRE). Values for user registers can only be specified in the code file; however, values for protection registers can be specified in the code file, or manually by using the Setup→Memory Protection option (see Section 4.3). NVR segments cannot be erased normally, only the “Clear Locked Device" procedure can reset these registers to factory settings (not all processors support this feature). 4) NVR and Flash Memory - This is the most frequently used option during programming. All memory is erased before programming, and all contents from the code file are downloaded to the target microcontroller's flash memory. If the MCU contains an NVR segment then it will be programmed. 5) Flash Memory only - All flash memory will be erased and programmed. Contents of NVR memory will be ignored. 6) Used by Code File - This option allows main memory segments and NVR segments to be modified when specified by the code file. Other flash memory segments are not touched. This option is useful if only some data, like calibration data, needs to be replaced. 7) User defined - This option is functionally similar to options described before, but memory segments are explicitly chosen by the user. When this option is selected, then on the right side of the memory group check boxes and address edit lines will be enabled. The check boxes allow the user to select memory segments to be enabled (erased, programmed, and verified). Edit lines in the Main Memory group allow the user to specify the main memory address range (start and stop addresses). The start address should specify the first byte in the segment, and the stop address should specify the last byte in the segment (last byte is programmed). Since the main memory segment size is 0x400, then the start address should be a multiple of 0x400. The stop address should specify the last byte of the segment to be written. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 31 FlashPro-ARM GangPro-ARM www.elprotronic.com 6.2 Read The Read Address Range group (see Figure 6.1) specifies the address range used when the “READ / COPY" operation is used. Memory read setup has four options available: 1. 2. 3. 4. NVR Memory only, NVR and Flash Memory, Flash Memory only, User defined. The meaning of each option is the same as for the Memory Erase, Write, and Verify settings. 6.3 Retain Data in Flash This feature allows the programmer to preserve flash contents between successive programming and erase operations. By specifying the start and end addresses (inclusively), the selected bytes will be first read and then copied to an internal buffer before the selected flash memory is erased. After the memory segment coinciding to this region has been erased, the internal buffer will be used to program this segment of flash memory to its previous values. NVR addresses cannot be entered in this section. 6.4 Write Verification Verification setup allows the user to select one of three write verification methods: 1. Fast Verification - Each byte is verified after being written, and at the end of the process a check sum is calculated based on current flash memory and compared to the calculated check sum taken from the code file. 2. Standard Verification - Includes Fast Verification as well as reading the contents of the entire flash after programming to compare them against the code file. If they are the same, then verification is successful. Typically, the standard verification procedure requires the same amount of time as the read/write procedure. 3. None - Not recommended. Some MCUs have flash with an extremely limited number of program/erase cycles (e.g. 100 instead of the usual 1 million), meaning that after that number is exceeded programming is no longer reliable (check MCU errata from TI website). Verification will check that the code file specified has actually been copied to the target device. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 32 FlashPro-ARM GangPro-ARM www.elprotronic.com Adapter Options 7.1 Communication Speed The default communication speed between the programming adapter and target device is 1 Mb/s. Under some conditions, for example when the cable between FPA and target device is long or some protection components are installed in the debug interface, fast communication cannot be used. In this case the lower speed of 0.2 Mb/s can be used to establish communication between FPA and target device (see Figure 7.1 communication speed selector). Figure 7.1: Use this drop-box to select the desired communication speed. 7.2 Reset Dialog Screen The Target's Reset Options dialog screen enables the user to select the reset pulse duration and reset line state at the end of the programming process (see Figure 7.2). 7.2.1 Reset pulse duration The reset pulse allows the adapter to initiate communication with a microcontroller using the debug interface. In most cases a pulse width of 10ms is sufficient to initiate communication; however, if there is additional load on the reset line a longer pulse might be required. Therefore, four additional settings, 100, 200, 500 ms and custom, are available. When a RESET IC circuit is used then the custom defined reset pulse duration should be used. Two parameters of the custom reset pulse are defined - initialization reset pulse time (typically very short - 1 ms) and an idle reset time. Idle reset time must be set at least to the duration of the reset time generated by the RESET circuit. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 33 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 7.2: Use this dialog window to configure reset options. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 34 FlashPro-ARM GangPro-ARM www.elprotronic.com 7.2.2 Final Target Device action Every device action, like “Auto Program" or “Read/Copy" starts with the activation of the RESET line (active low). When the device programming action begins the RESET line is raised high. When device action is finished, the RESET line is again asserted, protecting the target device from running the application program. This method is commonly used to protect the programming adapter from DC overload. However, when target device is supplied from its own power supply, or a battery, then overload protection of the programming adapter is no longer necessary. The target device can be set to run an application immediately after the target device is programmed. This permits verification of the programmed device if required. To do this check the Hardware Reset (RST line) and start the application program option. Application run time can be unlimited (enter 0) or limited up to 120 seconds. Limited time is specified in the “Application Program RUN time" box. 7.3 Preferences Dialog Screen The Preferences Dialog screen allows the user to select multiple features, including the option to view history in the report window and to log messages to a file (see Figure 7.3). The Report History Display Enable check-box when clicked will allow report history to be displayed for up to 8 kB worth of characters (approximately 20 last communication messages). When disabled, then only last programming report is displayed. Enabling the log file will save history messages to a log file, preserving it for later analysis if necessary. To control the size of each log file, the user can choose to create a new log file every day, or every month. All programming actions at the end can generate the Beep OK tone. When a lot of units are programmed then the beeping can become a nuisance and therefore it can be disabled. However, the error programming tone is enabled permanently and cannot be disabled because it should not be ignored. It is also possible to disable multiple warning messages for a single programmer operation, which is useful when the user is aware of the problem and simply wishes to proceed. This can normally happen when attempting to read protected memory pages, at which point the programmer will give a warning message indicating a read error per page. Enabling this option will configure the programmer to only display the first warning message. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 35 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 7.3: Use this dialog window to configure your preferences. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 36 FlashPro-ARM GangPro-ARM www.elprotronic.com Serialization The programmer has the ability to automatically program the target device's serial number (SN) and save it in flash memory. New SNs can be created automatically by incrementing a starting base SN, or can be taken from a file created by the user. SNs that have been used are stored in separate data files to account for devices that have already been programmed. In addition to this SN, the model name, group, and revision number can also be programmed to the target device. The user can specify the display SN format and location in flash memory where this information will be stored. The SN is programmed when “Auto Program" or “Write SN/Model" buttons are pressed and the SN feature is enabled. When the “Auto Program" function is activated the SN is programmed to the target's device memory at the same time as code data. If "Auto Program" fails for any reason then the new SN is neither created nor programmed to the device. The software also allows the microcontroller to retain its SN if one has already been assigned to it. Every time a device is programmed and serialization is enabled the contents of the target's memory are scanned for an existing SN. If the SN is found at the specified location the message in Figure 8.1 will appear and allow the user to decide to keep the old SN, program a new SN from the list, or program a SN typed manually. Figure 8.1: If an MCU already contains serialization information at a specified location then a conflict window will appear giving the user the option to retain the old serial number, or program in a new one. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 37 FlashPro-ARM GangPro-ARM www.elprotronic.com The Serialization Dialog screen, shown in Figure 8.2, allows the user to configure how serialization is done. Serialization can be enabled, or disabled, by selecting the check mark in the ENABLE Serialization check-box. When serialization is disabled all edit lines and check boxes are disabled. When serialization is enabled, most fields have to be set to ensure that the result will be as the user expects. The necessary fields include: Display Format - The display format describes the meaning of the characters that comprise the SN. Memory Format - The memory format describes how the SN will be stored in the device's flash memory. Memory Location - This address is the memory location reserved for the SN. It can only overlap code regions if the Remove code contents in the location where the serialization and model.. are defined check-box is also selected. Starting Number and Increment - When using all display formats except “Custom" and “from File", these parameters are necessary. The starting number will indicate the value of the first SN created. Subsequent SNs will be determined by adding the increment to the current SN number. Both of these parameters can only be positive integers and create SNs that remain within the maximum range described later in this chapter. Output File - The specified file will store all successfully programmed SNs. The serialization dialog screen also contains several useful optional features: Model/Group/Revision - In addition to the aforementioned SN formats, the software also allows the user to program each device with separate HEX or ASCII data. This information is saved at a different memory location from the SN, and does not change after each programming cycle. This is used to program static information that should be the same for each target device, like the software revision number, model, etc. BarCode Scanner - The BarCode Scanner can be used as an input mechanism for new SNs. When enabled, scanning a barcode will set the \Next SN" shown in Figure 4.1 to the value read by the BarCode Scanner. For convenience, the software can be configured to start the \Auto Program" procedure immediately after the BarCode Scanner reads a new number, by selecting the Start AUTOPROGRAM following BarCode scan check-box. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 38 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 8.2: Serialization options can be selected here. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 39 FlashPro-ARM GangPro-ARM www.elprotronic.com 8.2 Serial Number Display Format Programming software has eight formats for writing a serial number, referred to as Display Format, and three methods of storing the SN in memory, referred to as In Memory Format in the serialization dialog screen. When a serial number is created, the current date (if required) is taken from the PC timer, therefore ensure that your computer has the correct date and time. Display Formats: 1. YYYY-1234(5) - (SN Format F0) Serial number has 8 (BCD) or 9 (HEX) characters. First four characters specify the year, and the remaining 4 or 5 characters specify the serial number up to a maximum of 9999 or 65535 respectively, e.g. SN 20039999 or 200365535. 2. YYMM-1234(5) - (SN Format F1) Serial number has 8 (BCD) or 9 (HEX) characters. First two characters specify the last two digits of the year, next two characters specify the month, and the remaining 4 or 5 characters specify the serial number up to a maximum of 9999 or 65535 respectively, e.g. 03059999 or 030565535. 3. YYMMDD-1234 - (SN Format F5) Serial number has 10 characters. First six characters contain date (year, month, day of month) and remaining 4 characters specify the serial number, e.g. 1205309999. 4. YYDDD-1234(5) - (SN Format F4) Serial number has 9 (BCD) or 10 (HEX) characters. First five characters contain date (year, day of year from 1 to 366) and remaining 4 or 5 characters specify the serial number up to a maximum of 9999 or 65535 respectively, e.g. 123559999 or 1235565535. 5. 12345678 - (SN Format F2) 8 digit serial number without date stamp. The maximum value is 99999999. 6. 1234(5) - (SN Format F3) 4 (BCD) or 5 (HEX) digits serial number without date stamp. The 4 or 5 characters specify the serial number up to a maximum of 9999 or 65535. 7. Custom - (SN Format F6) 4 to 256 ASCII characters or hexadecimal numbers entered manually or from the Bar-Code Reader. 8. from File - (SN Format F7) 4 to 256 ASCII characters or hexadecimal numbers taken from a user created file. For SN display formats F0 through F5, the non-date components can be entered using either decimal or hexadecimal notation. Normally only characters from 0 to 9 will be accepted unless a “0x" prefix is added informing the software that a hexadecimal number is begin entered, allowing the user to use A to F as well. All characters are subsequently converted to a chosen memory format, which can be HEX, BCD or ASCII, before they are saved to flash memory. When a “Custom" (F6) or \from File" (F7) SN display format is selected then all characters can be accepted depending on the memory format chosen. Specifically, when the ASCII format is selected the SN can be comprised of any characters and is saved using 8-bits per character into flash memory. Conversely, when the HEX format is selected the SN can only be comprised of HEX characters (0...9,A...F) and is saved using 4-bits per character. 8.3 Serial Number Memory Format This section describes the different formats in which serial numbers can be stored in flash memory. These numbers can be stored using various types of byte-ordering schemes including: FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 40 FlashPro-ARM GangPro-ARM www.elprotronic.com 1. Most-Significant-Byte (MSB) first - The most significant byte, in a number composed of multiple bytes, is the byte that represents the greatest value 8-bit sub-component of that number. For example, the number 0x12345678 is composed of 4 bytes: 0x12, 0x34, 0x56, and 0x78, where 0x12 is the most significant byte. When this 4 byte number is stored in memory using MSB first ordering, then the lowest byte address (the first address) will store the most significant byte (0x12). Addr: 0x0, Content: 0x12 Addr: 0x1, Content: 0x34 Addr: 0x2, Content: 0x56 Addr: 0x3, Content: 0x78 2. Most-Significant-Word (MSW) first - The most significant word, in a number composed of multiple words, is the word that represents the greatest value 16-bit sub-component of that number. For example, the number 0x12345678 is composed of 2 words: 0x1234, and x5678, where 0x1234 is the most significant word. When this 2 word number is stored in memory using MSW first ordering, then the lowest word address (the first address) will store the most significant word (0x1234). Addr: 0x0, Content: 0x1234 Addr: 0x2, Content: 0x5678 3. Least-Significant-Byte (LSB) first - The least significant byte, in a number composed of multiple bytes, is the byte that represents the smallest value 8-bit sub-component of that number. For example, the number 0x12345678 is composed of 4 bytes: 0x12, 0x34, 0x56, and 0x78, where 0x78 is the least significant byte. When this 4 byte number is stored in memory using LSB first ordering, then the lowest byte address (the first address) will store the least significant byte (0x78). Addr: 0x0, Content: 0x78 Addr: 0x1, Content: 0x56 Addr: 0x2, Content: 0x34 Addr: 0x3, Content: 0x12 4. Least-Significant-Word (LSW) first - The least significant word, in a number composed of multiple words, is the word that represents the smallest value 16-bit sub-component of that number. For example, the number 0x12345678 is composed of 2 words: 0x1234, and x5678, where 0x5678 is the least significant word. When this 2 word number is stored in memory using LSW first ordering, then the lowest word address (the first address) will store the least significant word (0x5678). Addr: 0x0, Content: 0x5678 Addr: 0x2, Content: 0x1234 FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 41 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 8.3: This window will appear when there is a conflict between memory allocated to code and the SN. To avoid this pop-up, select the option to “Remove code contents in the location where the serialization and model are defined" in Figure 8.2. The location in the target device's flash memory where the SN will be stored is specified in the \Memory Location - SN Start Address in Memory" field of the serialization dialog screen (see Figure 8.3). Specified address must be even and should be specified in empty memory space, not used by program code or data block. However, if you'd like to integrate the SN with existing code, by programming the SN to a code location, then check the box Remove code contents in the location where the serialization and model are defined . The SN memory formats will be described in the following subsections. 8.3.1 HEX Memory Format When this format is selected the serial number is encoded using hexadecimal (HEX) notation. In general, each sub-component of the SN written in base 10 is converted to an equivalent base 16 number. The number of bytes used varies depending on the display format (F0, F1, F2, F4, and F5 - 4 bytes; F3 - 2 bytes; F6, and F7 - between 2 to 128 bytes). Display Format: YYYY-12345 - size in FLASH - 4 bytes Can be stored using MSW, and LSW byte-ordering. SN 200300123 will be encoded as: YYYY - 2003 -> 0x07D3 (HEX) FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 42 FlashPro-ARM GangPro-ARM www.elprotronic.com 12345 - 00123 -> 0x007B (HEX) and combined into one 32-bit HEX number: 0x07D3007B <-- Addr--> 00-01-02-03 D3 07 7B 00 -> HEX(MSW first) 7B 00 D3 07 -> HEX(LSW first) Display Format: YYMM-12345 - size in FLASH - 4 bytes Can be stored using MSW, and LSW byte-ordering. SN 030300123 will be encoded as: YYMM - 0303 -> 0x012F (HEX) 12345 - 00123 -> 0x007B (HEX) and combined into one 32-bit HEX number: 0x012F007B <-- Addr--> 00-01-02-03 2F 01 7B 00 -> HEX(MSW first) 7B 00 2F 01 -> HEX(LSW first) Display Format: YYMMDD-1234 - size in FLASH - 4 bytes Can be stored using MSW, and LSW byte-ordering. The date component is compressed to fit into only two bytes as follows: Bit 15-14-13-12-11-10--9 8--7--6--5 4--3--2--1--0 <---(year-2000)----> <--month-> <----day----> SN 0405110123 will be encoded as: YYMMDD - 040511 -> 0x08AB (HEX) 1234 - 0123 -> 0x007B (HEX) and combined into one 32-bit HEX number: 0x08AB007B <-- Addr--> 00-01-02-03 AB 08 7B 00 -> HEX(MSW first) 7B 00 AB 08 -> HEX(LSW first) Display Format: YYDDD-1234 - size in FLASH - 4 bytes Can be stored using MSW, and LSW byte-ordering. The date component is compressed to fit into only two bytes as follows: Bit 15-14-13-12-11-10--9 8--7--6--5--4--3--2--1--0 <---(year-2000)----> <----- day of year -----> SN 041110123 will be encoded as: FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 43 FlashPro-ARM GangPro-ARM www.elprotronic.com YYDDD - 04111 -> 0x086F (HEX) 1234 - 0123 -> 0x007B (HEX) and combined into one 32-bit HEX number: 0x086F007B <-- Addr--> 00-01-02-03 6F 08 7B 00 -> HEX(MSW first) 7B 00 6F 08 -> HEX(LSW first) Display Format: 12345678 - size in FLASH - 4 bytes Can be stored using MSB, MSW, LSB, and LSW byte-ordering. SN 12345678 will be encoded as: 12345678 - 12345678 -> 0x00BC614E (HEX) <-- Addr--> 00-01-02-03 00 BC 61 4E -> HEX(MSB first) BC 00 4E 61 -> HEX(MSW first) 4E 61 BC 00 -> HEX(LSB first) 4E 61 BC 00 -> HEX(LSW first) Display Format: 12345 - size in FLASH - 2 bytes Can be stored using MSB, MSW, LSB, and LSW byte-ordering. SN 12345 will be encoded as: 12345 - 12345 -> 0x3039 (HEX)00-01 30 39 -> HEX(MSB first) 39 30 -> HEX(MSW first) 39 30 -> HEX(LSB first) 39 30 -> HEX(LSW first) Display Format: Custom - size in FLASH - between 2 to 128 bytes Can be stored using MSB, LSB, and LSW byte-ordering. A SN entered using the “Custom" format is entered as a series of either an even number of HEX digits or any number of ASCII characters. This subsection deals only with storing the SN entered as a series of an even number of HEX digits, where two adjacent HEX digits comprise one byte (two digits are adjacent if they have the index j and k, where j=2*i and k=2*i+1, for all i where 0 00-01-02-03-04-05-06-07 FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 44 FlashPro-ARM GangPro-ARM www.elprotronic.com 12 34 56 78 AA BB CC DD -> HEX(MSB first) DD CC BB AA 78 56 34 12 -> HEX(LSB first) DD CC BB AA 78 56 34 12 -> HEX(LSW first) Display Format: from File - size in FLASH - between 2 to 128 bytes Can be stored using MSB, LSB, and LSW byte-ordering. A SN entered using the “from File" format is read from the SN input file and can be a series of either an even number of HEX digits or any number of ASCII characters. Section 8.9 describes how to write a SN input file. This subsection deals only with storing the SN entered as a series of an even number of HEX digits, where two adjacent HEX digits comprise one byte (two digits are adjacent if they have the index j and k, where j=2*i and k=2*i+1, for all i where 0 00-01-02-03-04-05-06-07 12 34 56 78 AA BB CC DD -> HEX(MSB first) DD CC BB AA 78 56 34 12 -> HEX(LSB first) DD CC BB AA 78 56 34 12 -> HEX(LSW first) 8.3.2 BCD Memory Format When this format is selected the serial number is encoded using binary-coded decimal (BCD) notation. In general, each digit of the SN written in base 10 is separately expressed using 4 bits such that the resulting HEX number reads like a decimal. This is in contrast to HEX notation where the value of the entire number is converted to base 16. The number of bytes used varies depending on the display format (F0, F1, F2, and F4 - 4 bytes; F5 - 5 bytes; F3 - 2; F6, and F7 N/A). All BCD serial numbers are stored using MSB first byte-ordering scheme. Display Format: YYYY-1234 - size in FLASH - 4 bytes SN 20030123 will be encoded as: YYYY - 2003 -> 0x20 0x03 (BCD) 1234 - 0123 -> 0x01 0x23 (BCD) and combined into one 32-bit BCD number: 0x20030123 <--Addr---> 00-01-02-03 20 03 01 23 -> BCD(MSB first) Display Format: YYMM-1234 - size in FLASH - 4 bytes SN 03030123 will be encoded as: YYMM - 0303 -> 0x03 0x03 (BCD) 1234 - 0123 -> 0x01 0x23 (BCD) FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 45 FlashPro-ARM GangPro-ARM www.elprotronic.com and combined into one 32-bit BCD number: 0x03030123 <--Addr---> 00-01-02-03 03 03 01 23 -> BCD(MSB first) Display Format: YYMMDD-1234 - size in FLASH - 5 bytes SN 0405110123 will be encoded as: YYMMDD - 040511 -> 0x04 0x05 0x11 (BCD) 1234 - 0123 -> 0x01 0x23 (BCD) and combined into one 32-bit BCD number: 0x0405110123 <----Addr----> 00-01-02-03-04 04 05 11 01 23 -> BCD(MSB first) Display Format: YYDDD-1234 - size in FLASH - 4 bytes The date component is compressed to fit into only two bytes as follows: Bit 15...12 - Year number - multiple of ones (9,8,...1,0) 11,10 - Year number - multiple of tens (3,2,1,0) 9, 8 - Day number - multiple of hundreds (3,2,1,0) 7...4 - Day number - multiple of tens (9,8,...1,0) 3...0 - Day number - multiple of ones (9,8,...1,0) SN 041110123 will be encoded as: YYDDD - 04111 -> 0x41 0x11 (BCD) 1234 - 0123 -> 0x01 0x23 (BCD) and combined into one 32-bit BCD number: 0x41110123 <--Addr---> 00-01-02-03 41 11 01 23 -> BCD(MSB first) Display Format: 12345678 - size in FLASH - 4 bytes SN 12345678 will be encoded as: 12345678 - 12345678 -> 0x12 0x34 0x56 0x78 (BCD) and combined into one 32-bit BCD number: 0x12345678 <--Addr---> 00-01-02-03 12 34 56 78 -> BCD(MSB first) Display Format: 1234 - size in FLASH - 2 bytes SN 1234 will be encoded as: 1234 - 1234 -> 0x12 0x34 (BCD) and combined into one 16-bit BCD number: 0x1234 FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 46 FlashPro-ARM GangPro-ARM www.elprotronic.com 00-01 12 34 -> BCD(MSB first) Display Format: Custom - N/A Display Format: from File - N/A 8.3.3 ASCII Memory Format When this format is selected the serial number is encoded using American Standard Code for Information Interchange (ASCII) notation. In general, each character of the SN is assumed to be an ASCII character and converted to its byte-code representative using the standard ASCII table (each character of the SN will occupy 1 byte). The number of bytes used is directly proportional to the number of characters used in the display format (F0, F1, and F2 - 8 bytes; F3 - 4 bytes; F4 - 9 bytes; F5 - 10 bytes; F6, and F7 - between 4 to 256 bytes). All ASCII serial numbers are stored one byte at a time, where the first ASCII character occupies the lowest byte address (first address). Display Format: YYYY-1234 - size in FLASH - 8 bytes SN 20030123 will be encoded as: YYYY - 2003 -> 0x32 0x30 0x30 0x33 (ASCII) 1234 - 0123 -> 0x30 0x31 0x32 0x33 (ASCII) <---------Addr--------> 00-01-02-03-04-05-06-07 32 30 30 33 30 31 32 33 -> ASCII Display Format: YYMM-1234 - size in FLASH - 8 bytes SN 03030123 will be encoded as: YYMM - 0303 -> 0x30 0x33 0x30 0x33 (ASCII) 1234 - 0123 -> 0x30 0x31 0x32 0x33 (ASCII) <---------Addr--------> 00-01-02-03-04-05-06-07 30 33 30 33 30 31 32 33 -> ASCII Display Format: YYMMDD-1234 - size in FLASH - 10 bytes SN 0405110123 will be encoded as: YYMMDD - 040511 -> 0x30 0x34 0x30 0x35 0x31 0x31 (ASCII) 1234 - 0123 -> 0x30 0x31 0x32 0x33 (ASCII) <------------Addr-----------> 00-01-02-03-04-05-06-07-08-09 30 34 30 35 31 31 30 31 32 33 -> ASCII FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 47 FlashPro-ARM GangPro-ARM www.elprotronic.com Display Format: YYDDD-1234 - size in FLASH - 9 bytes SN 042140123 will be encoded as: YYDDD - 04214 -> 0x30 0x34 0x32 0x31 0x34 (ASCII) 1234 - 0123 -> 0x30 0x31 0x32 0x33 (ASCII) <-----------Addr---------> 00-01-02-03-04-05-06-07-08 30 34 32 31 34 30 31 32 33 -> ASCII Display Format: 12345678 - size in FLASH - 8 bytes SN 12345678 will be encoded as: 12345678 - 12345678 -> 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 (ASCII) <--------Addr---------> 00-01-02-03-04-05-06-07 31 32 33 34 35 36 37 38 -> ASCII Display Format: 1234 - size in FLASH - 4 bytes SN 1234 will be encoded as: 1234 - 1234 -> 0x31 0x32 0x33 0x34 (ASCII) <--Addr---> 00-01-02-03 31 32 33 34 -> ASCII Display Format: Custom - size in FLASH - between 4 to 256 bytes A SN entered using the \Custom" format is entered as a series of either an even number of HEX digits or any number of ASCII characters. This subsection deals only with storing the SN entered as a series of ASCII characters. The SN can be composed of anywhere between 4 and 256 characters. SN sequence entered as ``02WX24S234'' will be encoded as: 0x30 0x32 0x57 0x58 0x32 0x34 0x53 0x32 0x33 0x34 <------------Addr-----------> 00-01-02-03-04-05-06-07-08-09 30 32 57 58 32 34 53 32 33 34 -> ASCII Display Format: from File - size in FLASH - between 4 to 256 bytes A SN entered using the \from File" format is read from the SN input file and can be a series of either an even number of HEX digits or any number of ASCII characters. Section 8.9 describes how to write a SN input file. This subsection deals only with storing the SN entered as a series of ASCII characters. The SN can be composed of anywhere between 4 and 256 characters. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 48 FlashPro-ARM GangPro-ARM www.elprotronic.com SN sequence entered as ``02WX24S234'' will be encoded as: 0x30 0x32 0x57 0x58 0x32 0x34 0x53 0x32 0x33 0x34 <------------Addr-----------> 00-01-02-03-04-05-06-07-08-09 30 32 57 58 32 34 53 32 33 34 -> ASCII 8.4 Serial Number Output File The Serial Number Output File field specifies the file where serialization information will be saved after successful programming. The SN file contains the following data separated by tabs: 1. 2. 3. 4. 5. 6. Serial Number Format (F0-6), Serial Number, SN action type (New SN[.], unmodified SN[u], overwritten SN[o], manual SN[m]), Time and date when the SN was created, Code File Name, Model/Group/Revision text. Below is an example of a SN file containing information on three consecutively created serial numbers. F0 200300011 F0 200300012 F0 200300013 m u ( Sat, Mar 29,2003, 10:09 ) ( Sat, Mar 29,2003, 10:43 ) ( Sat, Mar 29,2003, 10:43 ) AS010X02-1v2.txt AS010X02-1v2.txt AS010X02-1v2.txt -01 R.0003-04-17 -01 R.0003-04-17 -01 R.0003-04-17 SNs can be saved as a unique SN per target device type, or saved as a unique SN across all devices type. When a unique SN per target device type is saved then a separate SN file should be used for each device type. If a unique SN across all device types is saved, then only one SN file name should be used. 8.5 Model, Group, Revision The software also allows the user to program each device with separate HEX or ASCII data. This information is saved at a different memory location from the SN, and does not change after each programming cycle. This is used to program static information that should be the same for each target device, like the software revision number, model, etc. This extra data can be composed of anywhere between 2 to 32 characters. This feature is enabled when the ENABLE check-box in the Model/Group/Revision group is selected (see Figure 8.2). When enabled, specify the number of bytes to be reserved for the desired text or data. Also, specify the memory address where this information will be stored on the target device (must be even address). Finally, enter the text or data to be saved and the format it should be stored in. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 49 FlashPro-ARM GangPro-ARM www.elprotronic.com 8.6 BarCode Scanner Setup The BarCode Scanner can be used as an input mechanism for new SNs. When enabled, scanning a barcode will set the Next SN (shown in Figure 4.1) to the value read by the BarCode Scanner. For convenience, the software can be configured to start the Auto Program procedure immediately after the BarCode Scanner reads a new number, by selecting the Start AUTOPROGRAM following BarCode scan check-box. The BarCode Scanner should be connected to the programming PC computer in series with the keyboard using the Y cable or to the USB port. Refer to your BarCode Scanner manual for setup details. BarCode Scanner is enabled when the ENABLE check-box in the BarCode Scanner group is selected. Depending on the output from the scanner choose the right terminating character, although commonly the default CR (ENTER) character is used. Finally, change the Display Format to “Custom" and select the proper Memory Format as either HEX or ASCII. Note Only ASCII characters from 0x21 to 0xFE are accepted from the BarCode Scanner. Others characters like white characters (space, tab) are ignored. All characters are converted to lower case characters. 8.7 Device Serialization box The Device Serialization box, located on the main programming dialog screen shown in Figure 4.1 and isolated in Figure 8.4), contains SN and model information. The first two read-only lines contain information taken from the target device during the read process. The first line shows the Model/Group/Revision text and the second line shows the SN. The following two lines contain SN and model information that will be programmed next generated automatically according to the Serialization setup. The current target's SN and model information can be read at any time by pressing the “READ / COPY” button located in the main dialog shown in Figure 4.1. Figure 8.4: Seen in the main dialog window, this serialization status box will display the current device's serial number and the next serial number to be programmed. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 50 FlashPro-ARM GangPro-ARM www.elprotronic.com 8.8 Serialization Report Dialog Screen The Serialization Report Dialog Screen shows the results of the serialization procedure. The report contains detailed information on two SNs, specifically the highest SN and the one selected. The report also shows all programmed units along with their SN, and unmodified or overwritten SNs coming from reprogrammed units (New SN[.], unmodified SN[u], overwritten SN[o], manual SN[m]). Detailed information about all programmed units can be viewed using the Notepad text editor by pressing the Notepad button. A summary of created serial numbers is displayed in the white report box (see Figure 8.5). If for any reason a SN entry is wrong it can be removed from the database by pressing the Delete SN button (the delete operation is not reversible). Figure 8.5: Serialization report gives a summary of all the serial numbers programmed using the selected file. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 51 FlashPro-ARM GangPro-ARM www.elprotronic.com 8.9 Serial Number Input File The FlashPro-ARM Programmer allows input of serial numbers from user created data files. When the data file is used change the Display Format to “from File" and select the proper Memory Format as either HEX or ASCII. The SN data file should contain a proper header followed by a list of SNs specified using the following commands (a command is preceded by the # character). Any data entered after a semicolon (;) will be ignored and can be used for commenting. Use the following list of commands: #SN LIST ;. Header, data file contains a SNs list. #SN SIZE number; optional. Overwrite size of the custom defined serial number size (see Figure 8.2). If the #SN SIZE is not specified, then the data specified in the serialization dialog screen is used. #SN HEX MSB ;optional. Select the HEX MSB first format regardless setup in the serialization dialog screen. #SN HEX LSB ;optional. Select the HEX LSB first format regardless setup in the serialization dialog screen. When the format is specified as the HEX format ( #SN HEX MSB or #SN HEX LSB) then string can contain gaps between numbers or 0x on the front. All gaps will be removed. Up to 256 characters (gaps excluded) can be specified for one number. All characters must be located in one line for the same SN. Example: The HEX number: A434BC5696AD10ACF0 can be specified as: A434BC5696AD10AC or 0xA434BC5696AD10AC or A434 BC56 96AD 10AC or A4 34 BC 56 96 AD 10 AC F0 #SN ASCII ; optional. Select an ASCII format regardless setup in the serialization dialog screen. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 52 FlashPro-ARM GangPro-ARM www.elprotronic.com #SN PREFIX string; optional. #SN SUFFIX string; optional. Serial number can contains up to 32 characters. If part of characters are the same in specified serial number list, then the repeatable part can be specified in the #SN PREFIX, or #SN SUFFIX, and only modified part of serial numbers can be listed. Serial number is combined as a string starting from prefix, modified part and ending with suffix. For example if the following serial number should be created: AB2007X-0001-BMR AB2007X-0002-BMR AB2007X-0003-BMR can the SN be specified as follows: #SN_PREFIX AB2007X#SN_SUFFIX -BMR and list of following serial numbers: 0001 0002 0003 Prefix and /or suffix numbers can be modified in the list if required, e.g. #SN_PREFIX AB2007X#SN_SUFFIX -BMR 0001 0002 0003 #SN_PREFIX AB2007V0001 0002 0003 that defined following serial numbers: AB2007X-0001-BMR AB2007X-0002-BMR AB2007X-0003-BMR AB2007V-0001-BMR AB2007V-0002-BMR AB2007V-0003-BMR Example of the Serial Number list (5 lines only in this example): ; ===================================================== ; Serial Number List ; SN format - ASCII ; ===================================================== #IEEE_SN_LIST #SN_SIZE 12 WX5E2007001P WX5E2007002P WX5E2007003P WX5E2007004P WX5E2007005P ; ===================================================== FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 53 FlashPro-ARM GangPro-ARM www.elprotronic.com The same Serial Number list with specified prefix /suffix: ; ===================================================== ; Serial Number List ; SN format - ASCII ; ===================================================== #IEEE_SN_LIST #SN_SIZE 12 #SN_PREFIX WX5E2007 ;any ASCII character #SN_SUFFIX P 001 002 003 004 005 ; ===================================================== When the SN data file is prepared, then at the first the data base file should be opened (see Figure 8.2). When the desired Serial Number Format is selected, then using the “Serial Numbers File" button located in the main dialog screen (Figure 4.1) the desired SN file should be opened. Selected file is converted to final format and all listed serial numbers are verified with the data base file if there was note used before. If the specified SN have been used before, then these numbers are removed from the SN list. When the SN file is read and verified, then the pending SN list is displayed in the screen (Figure 8.6) with following information displayed on the top of the list: number of the SN found in data base and removed from the pending list, number of the Serial Numbers with incorrect size and removed from the pending list. number of the accepted SN. When the \Paste to Notepad" button is pressed, then the pending Serial Number list can be saved in format ready to be used as a valid SN data file if required. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 54 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 8.6: Serial numbers read from a file. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 55 FlashPro-ARM GangPro-ARM www.elprotronic.com Check Sum Options The main dialog has three values for check sum (CS) calculation for programming purposes (Figure 9.1). These are the Source, Code, and Memory values. The first, Source value, is calculated on the input code file contents that fit within the MCU’s memory space. The second, Code value, is calculated based on Setup → Memory Options settings. If the Memory Options include the entire code file then the Source and Code values should be identical. The only exception to that is if the user configures serialization in Serialization→Serialization Setup, or custom CS in Setup→Check Sum Options (not related to programming) to be stored in a location occupied by data from the code file. Overlapping words are excluded for purposes of CS calculation and verification. For example, a constantly changing serialization number saved within code contents will not affect the Code and Memory CS values. Lastly, the third, Memory value, is calculated based on MCU memory contents. The PSA for both code and memory contents is also calculated, but is not shown in the GUI. Both the Code and Memory CS and PSA values must match for verification to pass. The checksum displayed is the arithmetic sum of the code contents. Arithmetic sum is calculated as the sum of 16-bits unsigned words - result is 32 bits unsigned. Only programmed words are taken for calculation. All other not used words are ignored. All bytes are converted to 16-bits words using Little-Endian byte order: word = data[address] + (data[address + 1] << 8) where address is even and incremented by 2. The PSA value is also calculated on words. Odd byte boundaries in the code file are filled in with default MCU empty values (0xFF or 0x00). Figure 9.1: Check Sum information compared between the file and MCU memory. In the memory line is displayed the CS result taken from the flash memory, calculated in the same way as the CS taken from the source. Only words defined in the source are taken from the flash memory for calculation. Second group of the CS is custom defined Check Sum that can be used by firmware for code verification in the ash. Up to four CS block can be specified and CS results can be saved in the flash for verification. Size of each CS block and CS result location in flash are defined by the user. The Check Sum Options dialog (Figure 9.2) is selected from following pull down menu: FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 56 FlashPro-ARM GangPro-ARM www.elprotronic.com Setup→Check Sum Options Start Address should be even, and the Stop Address should be odd. CS result address in the flash should be even. Make sure that the CS result is saved out of the CS block space. Otherwise the CS result will modify the contents of the CS inside the specified block. CS result after the second calculation would not be the same and CS result would be useless. When the CS Result Save option is not selected then the CS of the selected block is calculated and CS result displayed in the report window only (Figure 9.3). This option can be used for CS code verification defined as the code form Start to End Addresses with 0xFF data in the not specified code location. Type of the CS can be selected from the following list (Figure 9.4) Initial value for CS calculation can be selected as zero, all 0xFFs or as the Start Address from pull down menu (Figure 9.5). CS result can be used As Is or can be inverted (Figure 9.6). Data size (byte or 16 bits word) used for calculation and CS result size is displayed in the dialog screen as Data IN word size and CS Result size (Figure 9.2). Polynomial contents (if required) can be specified in the POLY edit line in HEX format ( eg. 0x1234 ). Figure 9.2: Check Sum Options. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 57 FlashPro-ARM GangPro-ARM www.elprotronic.com Figure 9.3: Check Sum Report. Figure 9.4: Check Sum Type. Figure 9.5: Check Sum Initial Value. Figure 9.6: Check Sum Inverted Option. FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 58 FlashPro-ARM GangPro-ARM www.elprotronic.com 9.1 Check Sum types Following checksum types are implemented (shown in Figure 9.4). 9.1.1 Arithmetic Sum (8b/16b) Checksum is calculated as modulo 16-bits sum of all bytes (unsigned) from Start Address to the End Address as follows: CS = CS_initial_value; for ( addr = StartAddress; addr <= EndAddress; addr++ ) { CS = CS + (unsigned int) data[addr]; } CS = 0xFFFF & CS; if( cs_inverted ) CS = 0xFFFF ^ CS; 9.1.2 Arithmetic Sum (8b/32b) Checksum is calculated as modulo 32-bits sum of all bytes (unsigned) from Start Address to the End Address as follows: CS = CS_initial_value; for ( addr = StartAddress; addr <= EndAddress; addr++ ) { CS = CS + (unsigned long) data[addr]; } CS = 0xFFFFFFFF & CS; if( cs_inverted ) CS = 0xFFFFFFFF ^ CS; 9.1.3 Arithmetic Sum (16b/16b) Checksum is calculated as modulo 16-bits sum of all 2-byte words (unsigned) from Start Address to the End Address as follows: CS = CS_initial_value; for ( addr = StartAddress; addr <= EndAddress; addr=addr+2 ) { CS = CS + (unsigned int)data[addr] + (unsigned int)data[addr+1]; } CS = 0xFFFF & CS; if( cs_inverted ) CS = 0xFFFF ^ CS; 9.1.4 Arithmetic Sum (16b/32b) Checksum is calculated as modulo 32-bits sum of all 2-byte words (unsigned) from Start Address to the End Address as follows: FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 59 FlashPro-ARM GangPro-ARM www.elprotronic.com CS = CS_initial_value; for ( addr = StartAddress; addr <= EndAddress; addr=addr+2 ) { CS = CS+(unsigned long)data[addr] + (unsigned long)data[addr+1]; } CS = 0xFFFFFFFF & CS; if( cs_inverted ) CS = 0xFFFFFFFF ^ CS; 9.1.5 CRC16 (Poly 0x11201) - (8b/16b) (Named as CRCCCITT) and CRC16 defined polynomial - (8b/16b) Checksum is calculated as CRC16 from each bytes from Start Address to the End Address as follows: CS = CS_initial_value; for ( addr = StartAddress; addr <= EndAddress; addr++ ) { CS = CS_CRC16_8to16( (long)data[addr], CS ); } CS = 0xFFFF & CS; if( cs_inverted ) CS = 0xFFFF ^ CS; where: unsigned long CS_CRC16_8to16( long data, unsigned long crc ) { unsigned long tmp; tmp = 0xFF & ((crc >> 8) ^ data ); crc = (crc << 8) ^ crc_tab32[tmp]; return( 0xFFFF & crc ); } The CRC table is generated first as follows: CS_init_crc16_tab( 0x1021 ); for CRC CCITT CS_init_crc16_tab( CRC_def_POLY ); for CRC16 defined polynomial where: void CS_init_crc16_tab( unsigned short poly ) { int i, j; unsigned short crc, c; for (i=0; i<256; i++) { crc = 0; c = ((unsigned short) i) << 8; for (j=0; j<8; j++) { if ( (crc ^ c) & 0x8000 ) crc = ( crc << 1 ) ^ poly; else crc = crc << 1; c = c << 1; } crc_tab32[i] = (unsigned long)(0xFFFF & crc); } } FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 60 FlashPro-ARM GangPro-ARM www.elprotronic.com 9.1.6 CRC32 (Poly 0x04C11DB7) - (8b/32b) (Named as IEEE 802-3) and CRC32 defined polynomial - (8b/32b) Checksum is calculated as CRC32 from each bytes from Start Address to the End Address as follows: CS = CS_initial_value; for ( addr = StartAddress; addr <= EndAddress; addr++ ) { CS = CS_CRC32_8to32( (long)data[addr], CS ); } CS = 0xFFFFFFFF & CS; if( cs_inverted ) CS = 0xFFFFFFFF ^ CS; where: unsigned long CS_CRC32_8to32( long data, unsigned long crc ) { return( ((crc >> 8) & 0x00FFFFFF) ^ crc_tab32[0xFF & (crc ^ data )] ); } The CRC table is generated first as follows: CS_init_crc32_tab( 0x04C11DB7 ) for IEEE 802-3 a polynomial of: x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 and CS_init_crc32_tab( CRC_def_POLY ) for CRC32 defined polynomial where: void CS_init_crc32_tab( unsigned long poly_in ) { int n, k; unsigned long c, poly; poly = 0L; for (n = 0; n < 32; n++) { poly <<= 1; poly |= 1L & poly_in; poly_in >>= 1; } for (n = 0; n < 256; n++) { c = (unsigned long )n; for (k = 0; k < 8; k++) c = c & 1 ? poly ^ (c >> 1) : c >> 1; crc_tab32[n] = c; } } FlashPro-ARM and GangPro-ARM Rev.1.2 Sept-2016 P a g e | 61 FlashPro-ARM GangPro-ARM www.elprotronic.com Script File An alternative to writing applications that use the FlashPro-ARM DLL, some programming sequences can be written using a script file. A script file is a text file with basic syntax that can execute all buttons available, and has rudimentary flow control such as IFs and GOTOs. Generally, buttons available on the main dialog can be used in the script file; however, other options available on screens like memory options, serialization etc., can only be changed by loading a different configuration file. A typical script file will start by loading a configuration file and code file, followed by Auto Program and an IF statement to test Auto Program result to decide what happens afterwards. The script file can be selected in the GUI, or appended as a parameter for the FlashProARM executable (usually used to create shortcuts that call a specified script file right away): 1. press the “Script” button in the main dialog, and 2. append the option -rf