0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
CHIPPROG-ISP

CHIPPROG-ISP

  • 厂商:

    PHYTON

  • 封装:

    -

  • 描述:

    PROGRAMMER IN-SYSTEM UNIVERSAL

  • 数据手册
  • 价格&库存
CHIPPROG-ISP 数据手册
ChipProg Device Programmers User's Guide ChipProg-481, ChipProg-G41, ChipProg-48, ChipProg-40, ChipProg-ISP © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Device Programmers © 2015 Phyton, Inc. Microsystems and Development Tools All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the written permission of the publisher. Products that are referred to in this document may be either trademarks and/or registered trademarks of the respective owners. The publisher and the author make no claim to these trademarks. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document. Printed: May 2015 in (whereever you are located) Contents 3 Table of Contents Foreword 0 Part I Introduction 9 1 Terms ................................................................................................................................... and Definitions 9 2 System ................................................................................................................................... Requirements 11 Part II ChipProg Family Brief Description 12 1 ChipProg-481 ................................................................................................................................... 14 Major features .......................................................................................................................................................... 15 Hardw are characteristics .......................................................................................................................................................... 15 Softw are features .......................................................................................................................................................... 15 2 ChipProg-G41 ................................................................................................................................... 16 Major features .......................................................................................................................................................... 17 Hardw are characteristics .......................................................................................................................................................... 18 Softw are features .......................................................................................................................................................... 18 3 ChipProg-48 ................................................................................................................................... 19 Major features .......................................................................................................................................................... 20 Hardw are characteristics .......................................................................................................................................................... 20 Softw are features .......................................................................................................................................................... 20 4 ChipProg-40 ................................................................................................................................... 21 Major features .......................................................................................................................................................... 22 Hardw are characteristics .......................................................................................................................................................... 23 Softw are features .......................................................................................................................................................... 23 5 ChipProg-ISP ................................................................................................................................... 24 Major features .......................................................................................................................................................... 26 Hardw are characteristics .......................................................................................................................................................... 27 Softw are features .......................................................................................................................................................... 27 Part III Quick Start 29 1 Installing ................................................................................................................................... the ChipProgUSB Software 29 2 Installing ................................................................................................................................... the USB Drivers 31 3 Hardware ................................................................................................................................... installation 31 ChipProg-481 .......................................................................................................................................................... 32 ChipProg-G41.......................................................................................................................................................... 33 ChipProg-48 .......................................................................................................................................................... 33 ChipProg-40 .......................................................................................................................................................... 34 ChipProg-ISP .......................................................................................................................................................... 35 4 Getting ................................................................................................................................... Assistance 36 On-line Help .......................................................................................................................................................... 36 Technical Support .......................................................................................................................................................... 36 Contact Inform .......................................................................................................................................................... ation 37 Part IV ChipProg Control Options 37 1 Graphical ................................................................................................................................... User Interface 38 © 2015 Phyton, Inc. Microsystems and Development Tools 3 4 ChipProg Device Programmers User Interface.......................................................................................................................................................... Overview 38 Toolbars .......................................................................................................................................................... 39 Menus .......................................................................................................................................................... 39 The File Menu ......................................................................................................................................................... 40 Configuration Files ......................................................................................................................................... 41 The View Menu ......................................................................................................................................................... 41 The Project......................................................................................................................................................... Menu 42 The Project Options ......................................................................................................................................... Dialog 42 The Open Project......................................................................................................................................... Dialog 43 Project Repository ......................................................................................................................................... 43 The Configure ......................................................................................................................................................... Menu 44 The Select Device ......................................................................................................................................... dialog 45 The Buffers dialog ......................................................................................................................................... 45 The Buffer Configuration ................................................................................................................................... dialog 46 Main Buffer Layer ................................................................................................................................... 46 Buffer Layers ................................................................................................................................... 47 The Serialization,......................................................................................................................................... Checksum and Log dialog 47 General settings................................................................................................................................... 48 Device Serialization ................................................................................................................................... 49 Checksum ................................................................................................................................... 50 Signature string ................................................................................................................................... 51 Custom Shadow................................................................................................................................... Areas 51 Overlaping data ................................................................................................................................... specified in shadow areas 51 Log file ................................................................................................................................... 52 The Preferences ......................................................................................................................................... dialog 53 The Environment ......................................................................................................................................... dialog 55 Fonts ................................................................................................................................... 55 Colors ................................................................................................................................... 56 Mapping Hot Keys ................................................................................................................................... 57 Toolbar ................................................................................................................................... 57 Messages ................................................................................................................................... 58 Miscellaneous Settings ................................................................................................................................... 58 Configurating Editor ......................................................................................................................................... Dialog 59 General Editor Settings ................................................................................................................................... 59 The Editor Key Mapping ................................................................................................................................... 61 The Edit Key Command ................................................................................................................................... Dialog 61 The Commands ......................................................................................................................................................... Menu 62 Calculator ......................................................................................................................................... 62 The Script ......................................................................................................................................................... Menu 63 The Window ......................................................................................................................................................... Menu 64 The Help Menu ......................................................................................................................................................... 65 Window s .......................................................................................................................................................... 65 The Program ......................................................................................................................................................... Manager Window 65 The Program Manager ......................................................................................................................................... tab 66 Auto Programming ................................................................................................................................... 67 The Options tab ......................................................................................................................................... 68 Split data ................................................................................................................................... 69 The Statistics tab......................................................................................................................................... 70 The Device......................................................................................................................................................... and Algorithm Parameters w indow 71 Buffer Dump ......................................................................................................................................................... Window 74 The 'Configuring a ......................................................................................................................................... Buffer' dialog 75 The 'Buffer Setup' ......................................................................................................................................... dialog 76 The 'Display from......................................................................................................................................... address' dialog 78 The 'Modify Data'......................................................................................................................................... dialog 78 © 2015 Phyton, Inc. Microsystems and Development Tools Contents 5 The 'Memory Blocks' ......................................................................................................................................... dialog 78 The 'Load File' dialog ......................................................................................................................................... 80 File Formats ................................................................................................................................... 81 The 'Save File' dialog ......................................................................................................................................... 82 The Device......................................................................................................................................................... Information w indow 83 Phyton programming ......................................................................................................................................... adapters 83 Adapters for in-system ......................................................................................................................................... programming 85 The Console ......................................................................................................................................................... Window 86 Window s for ......................................................................................................................................................... Scripts 86 Sim plified User .......................................................................................................................................................... Interface 87 Settings of......................................................................................................................................................... Simplified User Interface 88 Operations......................................................................................................................................................... w ith Simplified User Interface 91 2 Operations ................................................................................................................................... with Projects 91 3 Command ................................................................................................................................... Line Control 92 Com m and line.......................................................................................................................................................... options 94 4 On-the-Fly ................................................................................................................................... Control 97 On-the-Fly com .......................................................................................................................................................... m and line options 98 On-the-Fly utility .......................................................................................................................................................... return codes 102 On-the-Fly Control .......................................................................................................................................................... exam ple 103 5 Script ................................................................................................................................... Files 105 The Script Files .......................................................................................................................................................... Dialog 105 How to create .......................................................................................................................................................... and edit script files 107 The Editor......................................................................................................................................................... Window 108 Text Edit ......................................................................................................................................................... 109 The Search for ......................................................................................................................................... Text Dialog 110 The Replace Text ......................................................................................................................................... Dialog 111 The Confirm Replace ......................................................................................................................................... Dialog 112 The Multi-File Search ......................................................................................................................................... Results Dialog 113 Search for Regular ......................................................................................................................................... Expressions 113 The Set/Retrieve......................................................................................................................................... Bookmark Dialogs 114 Condensed Mode ......................................................................................................................................... 114 The Condensed......................................................................................................................................... Mode Setup Dialog 114 Automatic Word......................................................................................................................................... Completion 115 Syntax Highlighting ......................................................................................................................................... 115 The Display from ......................................................................................................................................... Line Number Dialog 116 The Quick Watch ......................................................................................................................................... Function 116 Block Operations ......................................................................................................................................... 116 How to start .......................................................................................................................................................... and debug script files 117 The AutoWatches ......................................................................................................................................................... Pane 119 The Watches ......................................................................................................................................................... Window 119 The Display Watches ......................................................................................................................................... Options Dialog 120 The Add Watch......................................................................................................................................... Dialog 121 The User ......................................................................................................................................................... Window 121 The I/O Stream ......................................................................................................................................................... Window 122 6 Programming ................................................................................................................................... Automation via DLL 123 Application Control .......................................................................................................................................................... Interface 123 ACI Functions .......................................................................................................................................................... 125 ACI_Launch ......................................................................................................................................................... 128 ACI_Exit ......................................................................................................................................................... 128 ACI_LoadConfigFile ......................................................................................................................................................... 129 ACI_SaveConfigFile ......................................................................................................................................................... 129 ACI_SetDevice ......................................................................................................................................................... 129 © 2015 Phyton, Inc. Microsystems and Development Tools 5 6 ChipProg Device Programmers ACI_GetDevice ......................................................................................................................................................... 130 ACI_GetLayer ......................................................................................................................................................... 130 ACI_CreateBuffer ......................................................................................................................................................... 130 ACI_ReallocBuffer ......................................................................................................................................................... 130 ACI_ReadLayer ......................................................................................................................................................... 131 ACI_WriteLayer ......................................................................................................................................................... 131 ACI_FillLayer ......................................................................................................................................................... 131 ACI_GetProgrammingParams ......................................................................................................................................................... 132 ACI_SetProgrammingParams ......................................................................................................................................................... 132 ACI_GetProgOption ......................................................................................................................................................... 132 ACI_SetProgOption ......................................................................................................................................................... 133 ACI_AllProgOptionsDefault ......................................................................................................................................................... 134 ACI_ExecFunction ......................................................................................................................................................... 134 ACI_StartFunction ......................................................................................................................................................... 134 ACI_GangStart ......................................................................................................................................................... 135 ACI_GetStatus ......................................................................................................................................................... 135 ACI_TerminateFunction ......................................................................................................................................................... 135 ACI_GangTerminateFunction ......................................................................................................................................................... 135 ACI_FileLoad ......................................................................................................................................................... 136 ACI_FileSave ......................................................................................................................................................... 136 ACI_SettingsDialog ......................................................................................................................................................... 136 ACI_SelectDeviceDialog ......................................................................................................................................................... 136 ACI_BuffersDialog ......................................................................................................................................................... 137 ACI_LoadFileDialog ......................................................................................................................................................... 137 ACI_SaveFileDialog ......................................................................................................................................................... 138 ACI_SetConnection ......................................................................................................................................................... 139 ACI_GetConnection ......................................................................................................................................................... 139 ACI Structures .......................................................................................................................................................... 140 ACI_Launch_Params ......................................................................................................................................................... 141 ACI_Config_Params ......................................................................................................................................................... 141 ACI_Device_Params ......................................................................................................................................................... 142 ACI_Layer_Params ......................................................................................................................................................... 142 ACI_Buffer_Params ......................................................................................................................................................... 143 ACI_Memory_Params ......................................................................................................................................................... 145 ACI_Programming_Params ......................................................................................................................................................... 146 ACI_ProgOption_Params ......................................................................................................................................................... 148 ACI_Function_Params ......................................................................................................................................................... 152 ACI_GangTerminate_Params ......................................................................................................................................................... 154 ACI_PStatus_Params ......................................................................................................................................................... 154 ACI_File_Params ......................................................................................................................................................... 156 ACI_GangStart_Params ......................................................................................................................................................... 157 ACI_Connection_Params ......................................................................................................................................................... 158 Exam ples of .......................................................................................................................................................... use 158 7 Control ................................................................................................................................... from NI LabVIEW 160 Com m and Line .......................................................................................................................................................... Control from LabVIEW 160 Control from.......................................................................................................................................................... LabVIEW w ith DLL 163 Part V Operating with Programmers 166 1 Inserting ................................................................................................................................... devices to a programming socket 166 2 Auto-detecting ................................................................................................................................... the device 166 3 Basic ................................................................................................................................... programming functions 167 How to check.......................................................................................................................................................... if a device is blank 167 © 2015 Phyton, Inc. Microsystems and Development Tools Contents 7 How to erase.......................................................................................................................................................... a device 167 How to program .......................................................................................................................................................... a device 167 How to load ......................................................................................................................................................... a file into a buffer 168 How to edit ......................................................................................................................................................... information before programming 168 How to configure ......................................................................................................................................................... the chosen device 168 How to w......................................................................................................................................................... rite information into the device 168 How to read .......................................................................................................................................................... a device 169 How to verify.......................................................................................................................................................... program m ing 169 How to save .......................................................................................................................................................... data on a disc 169 How to duplicate .......................................................................................................................................................... a device 170 4 Programming ................................................................................................................................... NAND Flash memory 170 NAND Flash m .......................................................................................................................................................... em ory architectures 170 Invalid blocks ......................................................................................................................................................... 172 Managing invalid......................................................................................................................................... blocks 172 Skipping invalid................................................................................................................................... blocks 172 Reserved Block................................................................................................................................... Area 172 Error Checking ................................................................................................................................... and Correction 173 Invalid block map ......................................................................................................................................... 173 Marking invalid ......................................................................................................................................................... blocks 174 Program m ing .......................................................................................................................................................... NAND Flash devices by ChipProg 175 Access Mode ......................................................................................................................................................... 176 Invalid Block Management ......................................................................................................................................... 176 Spare Area Usage ......................................................................................................................................... 176 Guard Solid Area ......................................................................................................................................... 177 Tolerant Verify Feature ......................................................................................................................................... 178 Invalid Block Indication ......................................................................................................................................... Option 178 Access Mode ......................................................................................................................................................... Parameters 178 User Area ......................................................................................................................................... 179 Solid Area ......................................................................................................................................... 179 Reserved Block......................................................................................................................................... Area 180 ECC Frame size......................................................................................................................................... 180 Acceptable number ......................................................................................................................................... of errors 180 5 Multi................................................................................................................................... and Gang-programming 181 The Program.......................................................................................................................................................... Manager Window 182 The Program ......................................................................................................................................................... Manager tab 183 The Options ......................................................................................................................................................... tab 183 The Statistics ......................................................................................................................................................... tab 184 6 In-System ................................................................................................................................... Programming 186 Part VI References 187 1 Errors ................................................................................................................................... Messages 187 Error Error Error Error Error Error Error Error Error Error Error Load/ Save .......................................................................................................................................................... File 187 Addresses .......................................................................................................................................................... 187 sizes .......................................................................................................................................................... 188 com m and-line .......................................................................................................................................................... option 188 Program .......................................................................................................................................................... m ing option 188 DLL .......................................................................................................................................................... 189 USB .......................................................................................................................................................... 189 program .......................................................................................................................................................... m er hardw are 189 internal.......................................................................................................................................................... 190 confiquration .......................................................................................................................................................... 190 device .......................................................................................................................................................... 190 © 2015 Phyton, Inc. Microsystems and Development Tools 7 8 ChipProg Device Programmers Error check box .......................................................................................................................................................... 190 Error m ix .......................................................................................................................................................... 190 Warning .......................................................................................................................................................... 191 2 Expressions ................................................................................................................................... 191 Operations w.......................................................................................................................................................... ith Expressions 191 Num bers .......................................................................................................................................................... 193 Exam ples of .......................................................................................................................................................... Expressions 193 3 Script ................................................................................................................................... Language 194 Sim ple exam.......................................................................................................................................................... ple 194 Description .......................................................................................................................................................... 195 Built-in Functions .......................................................................................................................................................... 195 Built-in Variables .......................................................................................................................................................... 196 Difference betw .......................................................................................................................................................... een the Script and the C Languages 197 Script Language .......................................................................................................................................................... Built-in Functions and Variables 198 4 In-System ................................................................................................................................... Programming for different devices 206 Specific of program .......................................................................................................................................................... m ing PICm icro 206 Specific of program .......................................................................................................................................................... m ing AVR m icrocontrollers 206 Specific of program .......................................................................................................................................................... m ing Atm el 8051 m icrocontrollers 207 Index 208 © 2015 Phyton, Inc. Microsystems and Development Tools Introduction 1 9 Introduction ChipProg Device Programmers User's Guide ChipP r og- 4 8 1 C h i p P r o g - G4 1 ChipP r og- 4 8 ChipP r og- 4 0 ChipP r og- IS P Copyright © 2005-2014, Phyton, Inc. Microsystems and Development Tools, All rights reserved 1.1 Terms and Definitions Terms used in the document Target device or Target The device to be programmed by a programmer either in the programmer socket or by an additional adapter or by a cable for in-system programming. Start and End Addresses (of the Target device) A range of the device physical memory for the programming operations (Read, Write, Verify, etc.). Device package or Package Mechanical characteristics of the target device; ChipProg programmers enable operations on the devices packed in the DIP (DIL) packages with no additional adapters as well as on most non-DIP packed devices, including but not limited to the devices in the PLCC, SOIC, SSOP, TSOP, SSOP, QFP, BGA, QNF and other packages. Programming socket or A socket installed on a programmer unit or on an adapter (see below) to Programming ZIF socket accommodate the target device for programming. All ChipProg models use or ZIF socket ZIF (or Zero Insertion Force) programming sockets that allow for the temporary installation of the target device in the programmer site and easily removing it after completing the programming procedure.%CPN%>40, ChipProg-48 and ChipProg-G41 are equipped with 40- and 48-pin ZIF © 2015 Phyton, Inc. Microsystems and Development Tools 10 ChipProg Device Programmers sockets allowing operation on any DIP-packed devices with different numbers of leads and different widths and also connecting additional adapters for programming devices in other packages. Adapter or Package adapter A small transition board with dual-in-line rows of pins pluggable into the programmer ZIF socket on the bottom side and with a package-specific ZIF socket (TSOP, PLCC, etc.) on the top. The adapters for in-system programming by means of the parallel programmers are implemented as ribbon cables that connect to the target board via a special header. The adapter boards can carry passive components (ZIF sockets, pins and cables) and active components (drivers, latches, transistors, etc.). Hundreds of Phyton brand adapters as well as third party adapters are available to support devices in most types of mechanical packages. File In the ChipProg context the term file may represent: a) an image of information on a PC hard drive or other media that is supposed to be written into the target device’s physical memory or b) an image read out from the target device and then stored on the disk or other media. Files in a ChipProg can be loaded from and saved on a PC hard drive or CD. Buffer or Memory buffer A memory segment, physically assigned from the computer operational memory (RAM), for temporarily storing, editing and displaying the data to be physically written to the target device’s memory or read out from the device. The program allows opening an unlimited number of buffers of any size while it is not restricted by the computer memory. Buffer layer or sub-layer A buffer may have a few layers (in some topics also known as sub-layers) that are defined by a particular architecture and memory model of the target device. For example, for some microcontrollers one buffer can include the code and data memory layers (see more details below). Buffer size The buffers may have different sizes from 128KB to 32GB each. Buffer start address The address to display the buffer contents from. Checksum An arithmetic sum of the data located within a specified part of the buffer calculated by the programmer to control the data integrity. The program enables different algorithms for the checksum calculation and enables writing the checksum into a specified location of the target device. Parallel or In-socket programming Operations on a device being placed into the programmer’s ZIF socket or into a programming adapter (opposite to the in-system programming below). ICP or in-circuit programming Programming devices mounted on the boards (in the user’s equipment) via special adapter-cable connecting the programmer to the target. ISP or in-system programming Same as above. Programming devices mounted on the boards (in the user’s equipment) via special adapter-cable connecting the programmer with the target. © 2015 Phyton, Inc. Microsystems and Development Tools Introduction 11 ISP Mode Mode of the in-system programming that is usually defined by the programming signals voltage or the ISP interface (JTAG, UART, SPI, etc.). Distinct ISP modes are enabled for different target devices and more than one mode may exist for one device. ISP JTAG Mode In-system programming via a JTAG interface. ISP HV Mode In-system programming that requires applying a relatively high voltage to the target device, (12V for example). Command Line mode A method of the ChipProg control by means of interacting with a computer program where the user issues commands to the program in the form of successive lines of text (command lines). An integrated set of information that completely describes the target device, properties of the data buffers, programming options and settings, list of the source and destination files with all their properties, etc.. Each project, that has its own unique name, can be stored and promptly reloaded for immediate execution. Usually a user creates a project to work with one type of device. Working with projects saves a lot of time for the initial configuration of the programmer every time you start working with a new device. Project File - Buffer - Target structure Buffers are intermediate layers between the data in files and the data in the target device. The ChipProg enables no direct interaction between the files and target devices. All the file operations, such as loading and saving files are applicable to the buffers only. All the physical manipulations with the target device memory content pass through the buffers as well. This is a fundamental principle of the programmer operations with data and devices. Examples of the buffer's layer structures of different devices: 1. In the Intel 87C51FA microcontroller each opened buffer includes two layers: Code and Encryption table. 2. In the Microchip PIC16F84 microcontroller each opened buffer includes three layers: Code, Data EEPROM and Identifier locations. Each buffer layer can be opened for watching or editing by clicking its tab on the top of the buffer window. 1.2 System Requirements To run ChipProgUSB and to control a ChipProg device programmers, you need an IBM PC-compatible personal computer with the following components: © 2015 Phyton, Inc. Microsystems and Development Tools 12 ChipProg Device Programmers Pentium-V CPU or higher At least one USB port A hard drive with at least 200MB of free space Microsoft Windows XP, Windows 7 and Windows 8 operating systems. 2 ChipProg Family Brief Description ChipProg is a family of device programmers produced by Phyton, Inc. Microsystems and Development Tools (hereafter Phyton). A current ChipProg portfolio includes several device programmers that belong to the following functional groups: Universal parallel programmers for engineering and small volume manufacturing ChipProg-481, ChipProg-48 and ChipProg-40 single-site device programmers are intended for engineering and small volume manufacturing. These models allow operating on the devices before they are installed in the equipment (parallel programming or in-socket programming) as well as on the devices already installed in the user's equipment (the method known as In-System Programming, that uses serial data transmission into the programmable device). ChipProg-48 and ChipProg-40 device programmers are controlled by the ChipProgUSB software, a newer ChipProg-481 - by the ChipProgUSB-01 software pack. Since both ChipProgUSB and ChipProgUSB-01 models has the same user interface, control tools, etc. this document operates with the ChipProgUSB term applicable to both software packages. Universal parallel gang programmers for manufacturing © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Family Brief Description 13 ChipProg-G41 and ChipProg-G4 (, discontinued in 2010-2011) four-site gang device programmers are intended for mass production. The , ChipProg-G41 gang machine is based on four concurrently and independently running ChipProg-481 device programmers. The ChipProg-481 is controlled by the ChipProgUSB-01 software pack. Universal in-system device programmers for engineering and manufacturing The ChipProg-ISP is a low-cost device programmer for engineering, field service and manufacturing. Unlimited number of these device programmers can be driven from one PC and can run concurrently to program multiple devices at a time. This device programmer works under control of the ChipProgUSB software pack. How to choose a right device programmer? ChipProg-40: the least expensive Phyton device programmer, intended for working with a limited device list; it does not support PLDs. ChipProg-48: truly universal yet inexpensive device programmer; may not be fast enough for NAND programming. ChipProg-481: truly universal device programmer: extremely fast, targeted to NAND memory support. ChipProg-G41: extremely fast 4-site device programmer for production; can be controlled remotely from ATE. ChipProg-ISP: inexpensive in-system programmer; multiple ChipProg-ISPs can be driven in the gang mode. See also. © 2015 Phyton, Inc. Microsystems and Development Tools 14 2.1 ChipProg Device Programmers ChipProg-481 The ChipProg-481 universal programmer can be effectively used for both engineering and low-volume manufacturing. It supports in-socket and in-system programming of thousand of devices and has no valuable limitations in supporting future devices. The unlimited future device support differs ChipProg481 from the simplified, much slower and less expensive ChipProg-40 model. The ChipProg-481 is much faster than the ChipProg-48 model, especially on high density NAND and NOR flash memory devices (~15-20 times faster). The programmer has a 48-pin DIP ZIF socket that enables inserting any wide or narrow DIP-packed devices with up to 48 leads without the necessity to use any additional adapters. Programming of other devices requires the use of additional adapters available from Phyton and a few selected vendors. The programmer has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”) and the “Start” button for fast launch of the pre-programmed command chains. The palm-size programmer has a wall-plugged power adapter that is not shown on the picture above. Standard package contents: One programmer unit One power adapter 12V/1A+ One USB link cable One CD with the ChipProgUSB-01 software Optionally the package may include one or more programming adapters (if ordered with the programmer) and a “QuickStart” printed manual. See also for more details: Major features Hardware characteristics Software features © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Family Brief Description 2.1.1 15 Major features 1. Equipped with a 48 pin ZIF socket that allows insertion of the DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and the number of leads up to 48 without additional adapters. 2. Links to a PC USB 2.0 compatible port, e.g. slower USB connection is also supported. 3. Provides fast programming; for example, completely writes a 1Gb NAND K9F1G08U0A in 22 sec! (~640 sec by ChipProg-48) 4. Can program target devices in the programmer ZIF socket as well as the devices installed in the equipment (ISP mode). 5. An unlimited number of ChipProg-481 tools can be driven from multiple USB ports of one computer (or via a USB hub) to provide concurrent programming of multiple devices of the same type. 6. Has a button for fast manual launch of any single operation or a bunch of operations. 7. Has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”). 2.1.2 Hardware characteristics 1. The programmer has a 48-pin ZIF socket with a lever that enables the insertion and clamping of any DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and with the number of leads up to 48. 2. Adapters for programming devices in the SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP, QFP, TQFP, VQFP, QFN, SON, BGA, CSP and other packages are available from Phyton and selected third parties. 3. The programmer is built on the base of a very fast and productive 32-bit embedded microcontroller and a FPGA. These resources allow adding new targets to the device list by a simple software update. 4. Most timing-critical parts of the programming algorithms are implemented in the FPGA devices. 5. Implementation in the FPGA devices logical drivers enables outputting logical signals of any level (low, high, Pullup, Pulldown and external clock generator) to any pin of the programming ZIF socket. 6. The programmers's hardware features 10-bit digital-to-analog converters for accurate settings of the analog signals. 7. The programmers's hardware enables accurate programming of the rising and falling edges of the generated analog signals. 8. The programmers's hardware automatically adjusts the generated analog signals in accordance to the target device programming specifications. 9. The generated analog signals for both the target supplying and programming can be outputted to any pins of the device being programmed. 10.The programmers's can connect any pin of the device being programmed to the “Ground” level. 11.The programmers's hardware checks if every pin of the target device is reliably fixed by a ZIF socket’s contacts (“bad contact” checking). 12.The programmers's hardware protects itself and the target device against incorrect insertions and other issues that cause a sharp increase in the currents though the target device circuits. This “over current” protection is very fast and reliable. 13.The target device's pins are protected against the electrostatic discharge. 14.The programmers's hardware has a programmable clock generator. 15.The self-testing procedure automatically executes at any time the programmer is powered on. 2.1.3 Software features 1. The ChipProgUSB-01 software works under control of Windows XP, 7 (32- and 64-bit), 8. 2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are © 2015 Phyton, Inc. Microsystems and Development Tools 16 ChipProg Device Programmers included into the standard ChipProgUSB package. 3. Includes a set of basic commands: Blank Check, Erase, Read, Write, Verify, Lock, Set Configuration Bits, Data Memory Support, etc., executed by a single mouse click. 4. Enables presetting a batch of the commands above executed one after one either by a manual start or by a mouse click or automatically upon the device insertion into the programming socket. 5. Allows serialization of the programming devices with auto incrementing the device numbers and storing a serialization log (in the Auto Programming mode only). 6. The program can calculate checksums of the selected data array and then write the checksum into a specified memory location of the target device (in the Auto Programming mode only). Several methods of the checksum calculation can be used. 7. The program allows writing a unique signature into a specified memory location of the target device for the device identification (in the Auto Programming mode only). 8. The project support speeds up and simplifies switching between different programming tasks. 9. The software allows pre-programming a particular operation (or a chain of operations), which is supposed to be automatically triggered when the programmer hardware detects insertion of the target device into the programming socket. 10. An unlimited number of memory buffers can be opened in the main ChipProgUSB-01 window. 11. The software supports a multiple programming mode for concurrent programming of the same type of target devices on the same type of programmers connected to one computer. A number of single device programmers connected to the programming cluster does not slow down the programming speed. 12. The software includes a full-scale binary editor allowing manual modification of the data in buffers as well as such helpful functions as Search and Replace, Fill, Compare, Copy, Invert, Calculate Checksum, and OR, AND, XOR logical operations on the blocks of data. 13. Loading and saving files in several standard and proprietary formats: Binary, Standard Extended Intel HEX, Motorola S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem SAV. Special non-standard formats can be added upon request. 14. The software is featured by a script language and a mechanism of handling the script scenarios for automation of the routine operations and chip replications. 2.2 ChipProg-G41 The ChipProg-G41 is a 4-site gang programmer based on four ChipProg-481 programming modules enclosed in one case and driven from the ChipProgUSB-01 software. It is intended for middle- and lowvolume manufacturing. It supports in-socket and in-system programming of thousand of devices and has no valuable limitations for supporting future devices. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Family Brief Description 17 Standard package contents: One programmer unit One power cable One USB link cable One CD with the ChipProgUSB-01 software Optionally the package may include one or more programming adapters (if ordered with the programmer) and a “QuickStart” printed manual. See also for more details: Major features Hardware characteristics Software features 2.2.1 Major features 1. Based on four ChipProg-481 programming modules enclosed in a metal case and connected to a PC via an embedded USB hub. 2. Allows independent and concurrent programming of up to four devices of the same type. 3. A few ChipProg-G41 units can be cascaded to allow programming on 8-, 12-, 16- and more sites concurrently. 4. 48 pin ZIF sockets allow insertion of any DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and the number of leads up to 48 without additional adapters. 5. Links to a PC USB 2.0 compatible port via one link cable. 6. Provides fast programming; for example, completely writes a 1Gb NAND K9F1G08U0A flash device in 22 sec! 7. Can program target devices in its socket as well as devices installed in the equipment (ISP mode). 8. Each programming site has a 'Start' button for fast manual launch of any single operation or a batch of operations. 9. Each programming site has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”). © 2015 Phyton, Inc. Microsystems and Development Tools 18 2.2.2 ChipProg Device Programmers Hardware characteristics 1. Enclosed in a durable steel case to be used in an industrial environment. 2. The tool gets power from a standard outlet 110-240V, 50-60 Hz. 3. Each programming site based on a single ChipProg-481 programmer has a 48-pin ZIF socket with a lever that enables the insertion and clamping of any DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and with the number of leads up to 48. 4. Adapters for programming devices in the SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP, QFP, TQFP, VQFP, QFN, SON, BGA, CSP and other packages are available from Phyton and many third parties. 5. Single ChipProg-481 programmers inside of the tool enclosure are connected to an embedded USB 2.0 hub 6. Each programming site is built on the base of a very fast and powerful 32-bit embedded microcontroller and FPGA. These resources allow adding new targets to the device list by a simple software update. 2.2.3 Software features 1. The ChipProgUSB-01 software works under control of Windows XP, 7 (32- and 64-bit), 8. 2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are included into the standard ChipProgUSB package. 3. Includes a set of basic commands: Blank Check, Erase, Read, Write, Verify, Lock, Set Configuration Bits, Data Memory Support, etc., executed by a single mouse click. 4. Enables presetting a batch of the commands above executed one after one either by a manual start or by a mouse click or automatically upon the device insertion into the programming socket. 5. Allows serialization of the programming devices with auto incrementing the device numbers and storing a serialization log (in the Auto Programming mode only). 6. The program can calculate checksums of the selected data array and then write the checksum into a specified memory location of the target device (in the Auto Programming mode only). Several methods of the checksum calculation can be used. 7. The program allows writing a unique signature into a specified memory location of the target device for the device identification (in the Auto Programming mode only). 8. The project support speeds up and simplifies switching between different programming tasks. 9. The software allows pre-programming a particular operation (or a chain of operations), which is supposed to be automatically triggered when the programmer hardware detects insertion of the target device into the programming socket. 10. An unlimited number of memory buffers can be opened in the main ChipProgUSB-01 window. 11. The software supports a multiple programming mode for concurrent programming of the same type of target devices on the same type of programmers connected to one computer. A number of single device programmers connected to the programming cluster does not slow down the programming speed. 12. The software includes a full-scale binary editor allowing manual modification of the data in buffers as well as such helpful functions as Search and Replace, Fill, Compare, Copy, Invert, Calculate Checksum, and OR, AND, XOR logical operations on the blocks of data. 13. Loading and saving files in several standard and proprietary formats: Binary, Standard Extended Intel HEX, Motorola S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem SAV. Special non-standard formats can be added upon request. 14. The software is featured by a script language and a mechanism of handling the script scenarios for automation of the routine operations and chip replications. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Family Brief Description 2.3 19 ChipProg-48 The ChipProg-48 universal programmer can be effectively used for both engineering and low-volume manufacturing. It supports in-socket and in-system programming of thousand of devices and has no valuable limitations in supporting future devices. The unlimited future device support differs ChipProg-48 from the simplified and less expensive ChipProg-40 model. The programmer has a 48-pin DIP ZIF socket that enables inserting any wide or narrow DIP-packed devices with up to 48 leads without the necessity to use any additional adapters. Programming of other devices requires the use of additional adapters available from Phyton and a few selected vendors. The programmer has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”) and the “Start” button for fast launch of the pre-programmed command chains. The palm-size programmer has a wall-plugged power adapter that is not shown on the picture above. Standard package contents: One programmer unit One power adapter 12V/1A+ One USB link cable One CD with the ChipProgUSB software Optionally the package may include one or more programming adapters (if ordered with the programmer) and a “QuickStart” printed manual. See also for more details: Major features Hardware characteristics Software features © 2015 Phyton, Inc. Microsystems and Development Tools 20 2.3.1 ChipProg Device Programmers Major features 1. Equipped with a 48 pin ZIF socket that allows insertion of the DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and the number of leads up to 48 without additional adapters. 2. Links to a PC USB 2.0 compatible port, e.g. slower USB connection is also supported. 3. Provides fast programming; for example, completely writes a 64M bit NOR FLASH in less than 50 sec. 4. Can program target devices in the programmer ZIF socket as well as the devices installed in the equipment (ISP mode). 5. An unlimited number of ChipProg-48 tools can be driven from multiple USB ports of one computer (or via a USB hub) to provide concurrent programming of multiple devices of the same type. 6. Has a button for fast manual launch of any single operation or a bunch of operations. 7. Has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”). 2.3.2 Hardware characteristics 1. The programmer has a 48-pin ZIF socket with a lever that enables the insertion and clamping of any DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and with the number of leads up to 48. 2. Adapters for programming devices in the SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP, QFP, TQFP, VQFP, QFN, SON, BGA, CSP and other packages are available from Phyton and selected third parties. 3. The programmer is built on the base of a very fast and productive 32-bit embedded microcontroller and a FPGA. These resources allow adding new targets to the device list by a simple software update. 4. Most timing-critical parts of the programming algorithms are implemented in the FPGA devices. 5. Implementation in the FPGA devices logical drivers enables outputting logical signals of any level (low, high, Pullup, Pulldown and external clock generator) to any pin of the programming ZIF socket. 6. The programmers's hardware features 10-bit digital-to-analog converters for accurate settings of the analog signals. 7. The programmers's hardware enables accurate programming of the rising and falling edges of the generated analog signals. 8. The programmers's hardware automatically adjusts the generated analog signals in accordance to the target device programming specifications. 9. The generated analog signals for both the target supplying and programming can be outputted to any pins of the device being programmed. 10.The programmers's can connect any pin of the device being programmed to the “Ground” level. 11.The programmers's hardware checks if every pin of the target device is reliably fixed by a ZIF socket’s contacts (“bad contact” checking). 12.The programmers's hardware protects itself and the target device against incorrect insertions and other issues that cause a sharp increase in the currents though the target device circuits. This “over current” protection is very fast and reliable. 13.The target device's pins are protected against the electrostatic discharge. 14.The programmers's hardware has a programmable clock generator. 15.The self-testing procedure automatically executes at any time the programmer is powered on. 2.3.3 Software features 1. The ChipProgUSB software works under control of Windows XP, 7 (32- and 64-bit), 8. 2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Family Brief Description 21 included into the standard ChipProgUSB package. 3. Includes a set of basic commands: Blank Check, Erase, Read, Write, Verify, Lock, Set Configuration Bits, Data Memory Support, etc., executed by a single mouse click. 4. Enables presetting a batch of the commands above executed one after one either by a manual start or by a mouse click or automatically upon the device insertion into the programming socket. 5. Allows serialization of the programming devices with auto incrementing the device numbers and storing a serialization log (in the Auto Programming mode only). 6. The program can calculate checksums of the selected data array and then write the checksum into a specified memory location of the target device (in the Auto Programming mode only). Several methods of the checksum calculation can be used. 7. The program allows writing a unique signature into a specified memory location of the target device for the device identification (in the Auto Programming mode only). 8. The project support speeds up and simplifies switching between different programming tasks. 9. The software allows pre-programming a particular operation (or a chain of operations), which is supposed to be automatically triggered when the programmer hardware detects insertion of the target device into the programming socket. 10. An unlimited number of memory buffers can be opened in the main ChipProgUSB window. 11. The software supports a multiple programming mode for concurrent programming of the same type of target devices on the same type of programmers connected to one computer. A number of single device programmers connected to the programming cluster does not slow down the programming speed. 12. The software includes a full-scale binary editor allowing manual modification of the data in buffers as well as such helpful functions as Search and Replace, Fill, Compare, Copy, Invert, Calculate Checksum, and OR, AND, XOR logical operations on the blocks of data. 13. Loading and saving files in several standard and proprietary formats: Binary, Standard Extended Intel HEX, Motorola S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem SAV. Special non-standard formats can be added upon request. 14. The software is featured by a script language and a mechanism of handling the script scenarios for automation of the routine operations and chip replications. 2.4 ChipProg-40 The ChipProg-40 universal programmer can be effectively used for both engineering and low-volume manufacturing. It supports in-socket and in-system programming of thousand of devices. The programmer hardware has some limitations for supporting certain devices. It does not support any PLDs. This is a difference between the cheaper ChipProg-40 and the enhanced ChipProg-48 model. © 2015 Phyton, Inc. Microsystems and Development Tools 22 ChipProg Device Programmers The programmer has a 40-pin DIP ZIF socket that enables inserting any wide or narrow DIP-packed devices with up to 40 leads without the necessity to use any additional adapters. Programming of other devices requires use of additional adapters available from Phyton and a few selected vendors. The programmer has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”) and the “Start” button for fast launch of the pre-programmed command chains. The palm-size programmer has a wall-plugged power adapter that is not shown on the picture above. Standard package contents: One programmer unit One power adapter 12V/1A+ One USB link cable One CD with the ChipProgUSB software Optionally the package may include one or more programming adapters (if ordered with the programmer) and a “QuickStart” printed manual. See also for more details: Major features Hardware characteristics Software features 2.4.1 Major features 1. Equipped with a 40 pin ZIF socket that allows insertion of any DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and the number of leads up to 40 without additional adapters. 2. Links to a PC USB 2.0 compatible port, e.g. slower USB connection is also supported. 3. Provides fast programming; for example, completely writes a 64M bit NOR FLASH in less than 50 sec. 4. Can program target devices in the programmer ZIF socket as well as the devices installed in the © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Family Brief Description 23 equipment (ISP mode). 5. An unlimited number of ChipProg-40 tools can be driven from multiple USB ports of one computer (or via a USB hub) to provide concurrent programming of multiple devices of the same type. 6. Has a button for fast manual launch of any single operation or a batch of operations. 7. Has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”). 2.4.2 Hardware characteristics 1. The programmer has a 40-pin ZIF socket with a lever that enables the insertion and clamping of any DIP-packed devices with the package width from 300 to 600 mil (7.62 to 15.24 mm) and with the number of leads up to 40. 2. Adapters for programming devices in the SDIP, PLCC, SOIC, SOP, PSOP, TSOP, TSOPII, TSSOP, QFP, TQFP, VQFP, QFN, SON, BGA, CSP and other packages are available from Phyton and selected third parties. 3. The programmer is built on the base of a very fast and productive 32-bit embedded microcontroller and a FPGA. These resources allow adding new targets to the device list by a simple software update. 4. Most timing-critical parts of the programming algorithms are implemented in the FPGA devices. 5. Implementation in the FPGA devices logical drivers enables outputting logical signals of any level (low, high, Pullup, Pulldown and external clock generator) to any pin of the programming ZIF socket. 6. The programmers's hardware features 10-bit digital-to-analog converters for accurate settings of the analog signals. 7. The programmers's hardware enables accurate programming of the rising and falling edges of the generated analog signals. 8. The programmers's hardware automatically adjusts the generated analog signals in accordance to the target device programming specifications. 9. The generated analog signals for both the target supplying and programming can be outputted to any pins of the device being programmed. 10.The programmers's can connect any pin of the device being programmed to the “Ground” level. 11.The programmers's hardware checks if every pin of the target device is reliably fixed by a ZIF socket’s contacts (“bad contact” checking). 12.The programmers's hardware protects itself and the target device against incorrect insertions and other issues that cause a sharp increase in the currents though the target device circuits. This “over current” protection is very fast and reliable. 13.The target device's pins are protected against the electrostatic discharge. 14.The programmers's hardware has a programmable clock generator. 15.The self-testing procedure automatically executes at any time the programmer is powered on. 2.4.3 Software features 1. The ChipProgUSB software works under control of Windows XP, 7 (32- and 64-bit), 8. 2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are included into the standard ChipProgUSB package. 3. Includes a set of basic commands: Blank Check, Erase, Read, Write, Verify, Lock, Set Configuration Bits, Data Memory Support, etc., executed by a single mouse click. 4. Enables presetting a batch of the commands above executed one after one either by a manual start or by a mouse click or automatically upon the device insertion into the programming socket. 5. Allows serialization of the programming devices with auto incrementing the device numbers and storing a serialization log (in the Auto Programming mode only). 6. The program can calculate checksums of the selected data array and then write the checksum into a specified memory location of the target device (in the Auto Programming mode only). Several © 2015 Phyton, Inc. Microsystems and Development Tools 24 ChipProg Device Programmers methods of the checksum calculation can be used. 7. The program allows writing a unique signature into a specified memory location of the target device for the device identification (in the Auto Programming mode only). 8. The project support speeds up and simplifies switching between different programming tasks. 9. The software allows pre-programming a particular operation (or a chain of operations), which is supposed to be automatically triggered when the programmer hardware detects insertion of the target device into the programming socket. 10. An unlimited number of memory buffers can be opened in the main ChipProgUSB window. 11. The software supports a multiple programming mode for concurrent programming of the same type of target devices on the same type of programmers connected to one computer. A number of single device programmers connected to the programming cluster does not slow down the programming speed. 12. The software includes a full-scale binary editor allowing manual modification of the data in buffers as well as such helpful functions as Search and Replace, Fill, Compare, Copy, Invert, Calculate Checksum, and OR, AND, XOR logical operations on the blocks of data. 13. Loading and saving files in several standard and proprietary formats: Binary, Standard Extended Intel HEX, Motorola S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem SAV. Special non-standard formats can be added upon request. 14. The software is featured by a script language and a mechanism of handling the script scenarios for automation of the routine operations and chip replications. 2.5 ChipProg-ISP The ChipProg-ISP is an inexpensive universal device programmer for programming devices installed in the equipment. This type of programming is known as “in-system” or “in-circuit” programming. The ChipProg-ISP supports serial EPROM and EEPROM flash memory devices and embedded microcontrollers with the code and data memory programmable via different types of serial ports: UART, JTAG, SWD, SPI and other types, including proprietary interfaces. The programmer has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”) and the “Start” button for fast launch of the pre-programmed command chains. The tool shown on the picture is very small and requires no power adapter for the operations - it gets power from the USB computer port. . © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Family Brief Description 25 Connecting ChipProg-ISP to the target The programmer has a 14-pin output connector BH-14R. A variety of Phyton adapting cables allow connecting to the target. A simple pin-to-pin ribbon cable AS-ISP-CABLE is supplied with the programmer by default, and other cables (adapters) can be ordered on demand. The BH-14R connector output information signals for the chip programming and some service signals that enable using the programmer in the automated programming and testing equipment. See the BH-14R pinout: ChipProg-ISP BH14R connector Logical signal 1 Target specific* 2 Target specific* 3 Target specific* 4 Target specific* 5 Target specific* 6 Target specific* 7 Target specific* 8 Target specific* 9 GND 10 Target specific* 11 /Start 12 /Error 13 /Good 14 /Busy Signals on the pins #1 to #9 and on the pin #10 are used for transmitting and receiving information and synchro impulses to and from the target device. These signals are target specific and depend on the type of target device or a family in general (AVR, PIC, etc.) - see here. They also are shown in the adapters wiring diagrams; see the file adapters.chm included in the ChipProgUSB set. The pin #9 must be connected to the target's ground. The signals on the output pins #12, #13 and #14 represent the programmer statuses - logical '0' means an active status, logical '1' - passive. E.g.: /Error – the operation has failed; /Good – the operation completed successfully; /Busy – the programmer is in a process of executing some operation. An active signal on the input pin #11 (log.'0') starts the preset operation, the device programming by default. Activation of this signal, e.g. a falling edge, is equivalent to pushing the "Start" button on the programmer. See the diagram below: © 2015 Phyton, Inc. Microsystems and Development Tools 26 ChipProg Device Programmers Read also In-System Programming for different devices. Standard package contents: One programmer unit One universal ribbon cable wired pin-to-pin One USB link cable One CD with the ChipProgUSB software Optionally the package may include one or more programming cable-adapters (if ordered with the programmer) and a “QuickStart” printed manual. See also for more details: Major features Hardware characteristics Software features 2.5.1 Major features 1. 2. 3. 4. Has a 14 pin socket for connecting to the target equipment by means of several cable-adapters. Protects itself and the target equipment against incorrect wiring. Links to a PC USB 2.0 compatible port, e.g. slower USB connection is also supported. An unlimited number of ChipProg-ISP tools can be driven from multiple USB ports of one computer (or via a USB hub) to provide concurrent programming of multiple devices of the same type. 5. Has a button for fast manual launch of any single operation or a batch of operations. 6. Has three LEDs for displaying the programming status (“Good”, “Busy”, “Error”). © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Family Brief Description 2.5.2 27 Hardware characteristics 1. 2. 3. 4. Has a standard 14 pin connector. By default is supplied with a flat ribbon cable with dual headers - 10- and 14 pins. Optionally can be supplied with several cable adapters for programming specific device families. The programmer is built on the base of a very fast and productive 32-bit embedded microcontroller and a FPGA device. 5. Most timing-critical parts of the programming algorithms are implemented in the FPGA devices. 6. Implementation in the FPGA devices logical drivers enable outputting logical signals of any level (low, high, Pullup, Pulldown and external clock generator) to any pin of the programming connector. 7. The programmers's hardware features 10-bit digital-to-analog converters for accurate settings of the analog signals. 8. The programmers's hardware enables accurate programming of the rising and falling edges of the generated analog signals. 9. The programmers's hardware automatically adjusts the generated analog signals. 10.The generated analog signals for both the target supplying and programming can be outputted to any pins of the device being programmed. 11. The programmers's hardware protects itself and the target device against incorrect connection. 12. The target device pins are protected against the electrostatic discharge. 13. Can be started from the external signal. 14. Three status signals “Good”, “Busy”, “Error” are outputted to the programmer connector for driving ATE equipment. 15. The self-testing procedure can be executes at any time by request. 2.5.3 Software features 1. The ChipProgUSB software works under control of Windows XP, 7 (32- and 64-bit), 8. 2. Several methods of control are available: friendly and intuitive Graphic User Interface (GUI), Command Line control, Remote Control via the Application Control Interface (the DLL), on-the-fly control are included into the standard ChipProgUSB package. 3. Includes a set of basic commands: Blank Check, Erase, Read, Write, Verify, Lock, Set Configuration Bits, Data Memory Support, etc., executed by a single mouse click. 4. Enables presetting a batch of the commands above executed one after one either by a manual start or by a mouse click or automatically upon the device insertion into the programming socket. 5. Allows serialization of the programming devices with auto incrementing the device numbers and storing a serialization log (in the Auto Programming mode only). 6. The program can calculate checksums of the selected data array and then write the checksum into a specified memory location of the target device (in the Auto Programming mode only). Several methods of the checksum calculation can be used. 7. The program allows writing a unique signature into a specified memory location of the target device for the device identification (in the Auto Programming mode only). 8. The project support speeds up and simplifies switching between different programming tasks. 9. The software allows pre-programming a particular operation (or a chain of operations), which is supposed to be automatically triggered when the programmer hardware detects insertion of the target device into the programming socket. 10. An unlimited number of memory buffers can be opened in the main ChipProgUSB window. 11. The software supports a multiple programming mode for concurrent programming of the same type of target devices on the same type of programmers connected to one computer. A number of single device programmers connected to the programming cluster does not slow down the programming speed. 12. The software includes a full-scale binary editor allowing manual modification of the data in buffers as well as such helpful functions as Search and Replace, Fill, Compare, Copy, Invert, Calculate © 2015 Phyton, Inc. Microsystems and Development Tools 28 ChipProg Device Programmers Checksum, and OR, AND, XOR logical operations on the blocks of data. 13. Loading and saving files in several standard and proprietary formats: Binary, Standard Extended Intel HEX, Motorola S-record, POF, JEDEC, PRG, Holtek OTP, ASCII HEC, ASCII OCTAL, Angstrem SAV. Special non-standard formats can be added upon request. 14. The software is featured by a script language and a mechanism of handling the script scenarios for automation of the routine operations and chip replications. © 2015 Phyton, Inc. Microsystems and Development Tools Quick Start 3 29 Quick Start This chapter includes the topics that describe: How to install the ChipProgUSB software How to install the ChipProg USB drivers How to install the ChipProg hardware and to start up the ChipProg programmers of different type. It is highly recommended to read all the manual basic topics included in the chapters Graphical User Interface and Operating with ChipProg programmers before starting to use the tool. It is assumed that you are an experienced user of MS Windows and basic Windows operations. 3.1 Installing the ChipProgUSB Software Insert the distributive ChipProgUSB disc into a CD drive of your PC, click the Install ChipProgUSB button, accept the license agreement and then follow the series of prompts that will lead you through the installation process. © 2015 Phyton, Inc. Microsystems and Development Tools 30 ChipProg Device Programmers Phyton ChipProgUSB folder At the end the installer will create a folder with ChipProgUSB tools' and documents' shortcuts: The folder Quick Start Manuals includes links to PDF manuals in the destination folder where the products has been installed. The ChipProgUSB On-Line Help icon opens the programmer on-line Help document (.CHM). The ChipProgUSB User's Guide icon opens a complete programmer user's guide in the PDF format. The FTDI USB Device Driver Installer icon launches the utility allowing installing and uninstalling USB drivers. The Phyton ChipProgUSB -- Gang Mode (Diagnostic Mode) icon invokes the ChipProgUSB executable file and starts operations on multiple ChipProg programmers connected to one computer in the diagnostic mode. In the diagnostic mode the programmer works considerably slower than it works in the working mode – do not use this mode unless Phyton required special diagnostic files for the troubleshooting. © 2015 Phyton, Inc. Microsystems and Development Tools Quick Start 31 The Phyton ChipProgUSB -- Gang Mode icon invokes the ChipProgUSB executable file and starts operations for the ChipProg -G41 gang device programmer or the ChipProg-48, ChipProg-40 and ChipProg-ISP programmers working in a multiprogramming mode. The Phyton ChipProgUSB (Diagnostic Mode) icon invokes the ChipProgUSB executable file and starts operations for a single ChipProg-ISP programmer working in a single programming mode, e.g. when one programmer works on one target device. In the diagnostic mode the programmer works considerably slower – do not use this mode unless Phyton did not require special diagnostic files for the troubleshooting. The Phyton ChipProgUSB icon invokes the ChipProgUSB executable file and starts operations for the ChipProg-48, ChipProg-40 and ChipProg-ISP programmers working in a single programming mode. The Phyton ChipProgUSB Demo icon invokes a demo version of the ChipProgUSB software that allows evaluating the product without having the programmer's hardware. The Phyton WEB site icon opens the www.phyton.com website in your favorite Internet browser. The Programming Adapters icon opens the adapters.chm file that list all the Phyton programming adapters with their short descriptions and wiring diagrams. The Revision History icon opens the ChipProgUSB versions history file. The Uninstall Phyton ChipProgUSB Programmer icon starts a process of removing the ChipProgUSB program from your computer. 3.2 Installing the USB Drivers In a process of the ChipProgUSB software installation from a distributive disc the program installs the drivers for the USB devices used in all types of the ChipProg programmers working under control of the Windows XP, Windows 7 (both 32- and 64-bit versions) and Windows 8 Microsoft operating systems. 3.3 Hardware installation It is a mandatory for you to use the original power adapter 12V/1A received with the ChipProg-40 or ChipProg -48 programmer and an original power cord for the ChipProg-G41 gang programmer. Any substitutions should be agreed to with Phyton. It is also highly recommended to use the USB link cables received with the programmers. © 2015 Phyton, Inc. Microsystems and Development Tools 32 ChipProg Device Programmers The hardware installations for different programmer models vary. Select the topic to see: The ChipProg-48 hardware installation The ChipProg-40 hardware installation The ChipProg-G41 hardware installation The ChipProg-ISP hardware installation 3.3.1 ChipProg-481 For the programmer to be used in a single-programming mode: Powering the programmer Plug the power adapter to the ~110/240V outlet. Connect a plug of the power adapters to the coaxial connector on the rear panel of the programmers and make sure that the "Good" green LEDs on each of them are on. Connecting to a PC Connect the USB port of your PC to the USB connector on the rear panel of the programmer by means of the USB cable. It is recommended to connect the programmer to a USB slot on the computer main unit and do not connect it through a USB hub, especially through a passive hub. Starting up Start the Phyton ChipProgUSB-01 program; if the programmer passes the startup test successfully the ChipProgUSB-01 main window will open and you will be able to work with the tool. For the programmers to be used in a multi-programming mode, e.g. connected to one computer: Powering the programmers Plug the power adapters of each programmer to be connected in one programming cluster to the 110/240V outlets. Connect plugs of the power adapters to the coaxial connectors on the rear panels of all the programmers and make sure that the "Good" green LEDs on each of them are on. Connecting the programmers to a cluster Connect the USB ports of your PCs to the USB connectors on the rear panels of the programmers by means of the USB cables. It's recommended to connect the programmers to USB slots on the computer main unit and do not connect them through a USB hub, especially through a passive hub. Starting up Start the Phyton ChipProgUSB-01 - Gang Mode program; if all the programmers pass the startup test successfully the first dialog prompts you to assign the number from one to N to each programmer included in the cluster. To assign the number push a Start button on a top panel of each programmer one by one. Then the ChipProgUSB-01 main window will open and you will be able to work with the tool. Read about the Multi-Programming mode. © 2015 Phyton, Inc. Microsystems and Development Tools Quick Start 3.3.2 33 ChipProg-G41 Powering the programmer Plug the power cord to a power connector on the rear panel of the programmer, then plug an opposite site to the ~110/240V outlet. Make sure that all four "Good" green LEDs on the programmer are on. Connecting to a PC Connect a USB port of your PC to a USB connector on the rear panel of the programmer by means of the USB cable. It's highly recommended to connect the programmer to a USB slot on the computer main unit and not connect it through a USB hub, especially through a passive hub. Use of the passive USB hubs for connecting the ChipProg-G41 programmer is not allowed. Starting up Important! When you start the programmer first time wait for about 20 seconds to allow the USB driver to be setup. Then, every time when you start the programmer, wait for 5...10 sec before launching the ChipProgUSB-01 software. Start the Phyton ChipProgUSB-01 - Gang Mode program; if all the programmers pass the startup test successfully the first dialog prompts you to assign the number from one to N to each programming site. To assign the number push an appropriate Start button on a top panel of the programmer one by one. Then the ChipProgUSB-01 main window will open and you will be able to work with the tool. 3.3.3 ChipProg-48 For the programmer to be used in a single-programming mode: Powering the programmer Plug the power adapter to the ~110/240V outlet. Connect a plug of the power adapters to the coaxial connector on the rear panel of the programmers and make sure that the "Good" green LEDs on each of them are on. Connecting to a PC Connect the USB port of your PC to the USB connector on the rear panel of the programmer by means of the USB cable. It is highly recommended to connect the programmer to a USB slot on the computer main unit and do not connect it through a USB hub, especially through a passive hub. Starting up Start the Phyton ChipProgUSB program; if the programmer passes the startup test successfully the first dialog prompts you to choose one of the programmers to work with: ChipProg-48, ChipProg-40 or ChipProg-ISP. Select the ChipProg-48 and continue. The ChipProgUSB main window will open and you will be able to work with the tool. For the programmers to be used in a multi-programming mode, e.g. connected to one computer: © 2015 Phyton, Inc. Microsystems and Development Tools 34 ChipProg Device Programmers Powering the programmers Plug the power adapters of each programmer to be connected in one programming cluster to the 110/240V outlets. Connect plugs of the power adapters to the coaxial connectors on the rear panels of all the programmers and make sure that the "Good" green LEDs on each of them are on. Connecting the programmers to a cluster Connect the USB ports of your PCs to the USB connectors on the rear panels of the programmers by means of the USB cables. It's highly recommended to connect the programmers to USB slots on the computer main unit and do not connect them through a USB hub, especially through a passive hub. Starting up Start the Phyton ChipProgUSB - Gang Mode program; if all the programmers pass the startup test successfully the first dialog prompts you to assign the number from one to N to each programmer included in the cluster. To assign the number push a Start button on a top panel of each programmer one by one. Then the ChipProgUSB main window will open and you will be able to work with the tool. Read about the Multi-Programming mode. 3.3.4 ChipProg-40 For the programmer to be used in a single programming mode, e.g. alone: Powering the programmer Plug the power adapter to the ~110/240V outlet. Connect a plug of the power adapter to the coaxial connector on the rear panel of the programmer and make sure that the "Good" green LED on the programmer is on. Connecting to a PC Connect a USB port of your PC to a USB connector on the rear panel of the programmer by means of the USB cable. It's highly recommended to connect the programmer to a USB slot on the computer main unit and not connect it through a USB hub, especially through a passive hub. Starting up Start the Phyton ChipProgUSB program; if the programmer passes the startup test successfully the first dialog prompts you to choose one of the programmers to work with: ChipProg-48, ChipProg-40 or ChipProg-ISP. Select the ChipProg-40 and continue. The ChipProgUSB main window will open and you will be able to work with the tool. For the programmers to be used in a multi-programming mode, e.g. connected to one computer: © 2015 Phyton, Inc. Microsystems and Development Tools Quick Start 35 Powering the programmers Plug the power adapters of each programmer to be connected in one programming cluster to the 110/240V outlets. Connect plugs of the power adapter to the coaxial connectors on the rear panels of all the programmers and make sure that the "Good" green LEDs on each of them are on. Connecting the programmers to a cluster Connect USB ports of your PCs to USB connectors on the rear panels of the programmers by means of the USB cables. It's highly recommended to connect the programmers to USB slots on the computer main unit and not connect them through a USB hub, especially through a passive hub. Starting up Start the Phyton ChipProgUSB - Gang Mode program; if all the programmers pass the startup test successfully the first dialog prompts you to assign the number from one to N to each programmer included in the cluster. To assign the number push a Start button on a top panel of each programmer one by one. Then the ChipProgUSB main window will open and you will be able to work with the tool. Read about the Multi-Programming mode. 3.3.5 ChipProg-ISP For the programmer to be used in a single programming mode, e.g. alone: Connecting to a PC Connect a USB port of your PC to a USB connector on the rear panel of the programmer by means of the USB cable. Make sure that the "Good" green LED on the programmer is on. It's highly recommended to connect the programmer to a USB slot on the computer main unit and not connect it through a USB hub. Use of the passive USB hubs for connecting the ISP programmers is not allowed. Starting up Start the Phyton ChipProgUSB program; if the programmer passes the startup test successfully the first dialog prompts you to choose one of the programmers to work with: ChipProg-48, ChipProg-40 or ChipProg-ISP. Select the ChipProg-ISP and continue. The ChipProgUSB main window will open and you will be able to work with the tool. For the programmers to be used in a multi-programming mode, e.g. connected to one computer: © 2015 Phyton, Inc. Microsystems and Development Tools 36 ChipProg Device Programmers Connecting the programmers to a cluster Connect USB ports of your PCs to USB connectors on the rear panels of the programmers by means of the USB cables. Make sure that the "Good" green LEDs on all the programmers are on. It's highly recommended to connect the programmers to USB slots on the computer main unit and not connect them through a USB hub. The ChipProg programmers get power from the computer's USB port; that is why it's important not to overload the ports. Use of the passive USB hubs for clustering the ISP programmers is not allowed. Starting up Start the Phyton ChipProgUSB - Gang Mode program; if all the programmers pass the startup test successfully the first dialog prompts you to assign the number from one to N to each programmer included in the cluster. To assign the number push a Start button on a top panel of each programmer one by one. Then the ChipProgUSB main window will open and you will be able to work with the tool. Read about the Multi-Programming mode. 3.4 Getting Assistance 3.4.1 On-line Help The ChipProgUSB software has a pretty comprehensive context-sensitive on-line Help. To access it press the F1 key or use the Help menu. Almost every ChipProgUSB dialog, message box and menu has its own context-sensitive help, which can be invoked for the active dialog or menu by pressing F1. In most cases you can find the necessary topic by searching for a keyword. For example, if you type "Verify" in the first box of the Find tab, the third box will list the topics related to the programming verification. Choose an appropriate topic from this list and press Display. 3.4.2 Technical Support During a product’s warranty period Phyton provides technical support free of charge. Though we have been selling the ChipProg programmers for many years the product software may contain minor bugs and some programming algorithms may not be stable on some of the supported devices. We kindly ask you to report bugs when you get an error message or have a problem with programming a particular device or devices. We commit to prompt checking of your information and fixing the detected bugs. To minimize difficulties operating with ChipProgUSB it is highly recommended to get familiar with the manual before using the programmer. The ChipProgUSB - user interface is quite standard and intuitive, however it includes some specific functions and controls that the user should learn about. Before contacting Phyton Make sure that you use the latest ChipProgUSB version that is always available for free download from the http://www.phyton.com. Make sure the detected error can be reproduced in the same working environment and is not a casual glitch. When contacting us Please, provide our technical support specialists with the following information: Your name, the name of your company, your contact telephone number and your e-mail address. Name of the ChipProg model and its serial number, if one exists. Date of purchase, the Phyton invoice number, if available. © 2015 Phyton, Inc. Microsystems and Development Tools Quick Start 37 Software version number taken from the About information box. Basic parameters of your computer and operating system. The device type, mechanical package and the type of the adapter if one is used. Descriptions of detected errors, relevant bug reports and error screen shots. Please send your requests or questions to support@phyton.com. This is the easiest way to get professional and prompt help. Also, see Contact Information. 3.4.3 Contact Information Phyton Inc., Microsystems and Development Tools 7206 Bay Parkway, 2nd floor Brooklyn, New York 11204 USA Web address: www.phyton.com E-mail contacts: General inquiry: info@phyton.com Sales: sales@phyton.com Technical Support: support@phyton.com Tel: 1-718-259-3191 Fax: 1-718-259-1539 4 ChipProg Control Options ChipProg device programmers can be controlled either from a personal computer or remotely from Automatic Test Equipment (ATE) or any proprietary computerized environment connected to a PC directly driving a single ChipProg device programmer a gang programmer or a programming cluster comprised on multiple ChipProg units. Driving a ChipProg programmer (or multiple programmers) from a PC can be provided via a friendly and intuitive Graphic User Interface, Command Line or by launching Script Files. Driving a ChipProg programmer (or multiple programmers) remotely can be done via the DLL supplied with the ChipProgUSB software. © 2015 Phyton, Inc. Microsystems and Development Tools 38 4.1 ChipProg Device Programmers Graphical User Interface The ChipProgUSB and ChipProgUSB-01 graphical user interface (GUI) elements include: Menus - global and local Windows Toolbars - global and local Setting Dialogs Hot Keys Context-sensitive help prompts The GUI is featured with several useful additions specifically created for the ChipProg operations. To make your operations with the ChipProgUSB and ChipProgUSB-01 programs easier we highly recommend to learn the chapters Menus and Windows in full. You will be able to use the ChipProg device programmers much more effectively. 4.1.1 User Interface Overview ChipProgUSB features the standard Windows interface with several useful additions: 1. Each window has its own local menu (the shortcut menu). To open this menu, click the right mouse button within the window area or press Ctrl+Enter or Ctrl+F10. Each command in the menu has a hot key shortcut assigned to the Ctrl+ keys. Pressing the hot key combination in the active window executes the corresponding command. 2. Each window has its own local toolbar. The window’s toolbar buttons give access to most of the window’s local menu commands. The specialized window toolbar buttons operate only within the specialized window. The main ChipProgUSB window has several toolbars that can be turned on or off (in the Environment dialog, the Toolbar tab). 3. Each toolbar button has a short prompt: when you place the cursor over a toolbar button for two seconds, a small yellow box appears nearby with a short description of the button’s function. 4. To save screen space, you can hide any window’s title bar. To do this, use the Properties command of the local menu. You can identify the ChipProgUSB windows by their contents and position on the screen (and, if you wish, by color and font). When the title bar is hidden, you can move the window as if the toolbar were the title bar: place the cursor on the free space of the toolbar, press the left mouse button and drag the window to a new position. 5. You can open any number of windows of the same type. For example, you can open several Buffer windows. 6. Every input text field of any dialog box has a history list. ChipProgUSB saves them when you close a development session. Then a previously entered string can be picked from the history list. 7. All input text boxes in the dialogs feature automatic name completion. 8. All check boxes and radio buttons in the dialogs work in the following way: a double-click on the check box or radio button is equivalent to a single click on the box or button, followed by a click on the OK button. This is convenient when you need to change only one option in the dialog and then close it. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 4.1.2 39 Toolbars The ChipProgUSB program opens a few toolbars on top of the main window (see below). The top line, shown right under the ChipProg main window title, includes the Main menu submenus. A second line under the Main menu line displays icons and buttons of most frequently used commands on files and target devices (Open project, Load file, Save file... Check, Program, Verify, etc.). There is an indicator of the ChipProgUSB status (Ready, Wait, etc.). The third line displays a target device selector. The fourth line, which is not displayed by default, includes an embedded editor options and commands for scripts. The default toolbars can be customized. Read also the topics: The Configure Menu, The Environment dialog, Toolbar. Besides the toolbars positioned on a top of the main window, each particular window has its own local toolbar with the buttons presenting the most popular commands associated with the window. See for example the Buffer window's toolbar below. 4.1.3 Menus The ChipProgUSB Main menu bar includes the following pull-down sub-menus: File menu View menu Project menu Configure menu Commands menu Scripts menu Window menu Help menu To access these menus, use the mouse or press Alt+letter, where "letter" is the underlined character in the name of the menu item. © 2015 Phyton, Inc. Microsystems and Development Tools 40 4.1.3.1 ChipProg Device Programmers The File Menu The File menu's commands control the file operations. For those commands that have a toolbar button, the button is shown in the first column of the table below. If there is a shortcut key for a command, the shortcut key is shown at the right of the command in the menu. Button Command Description Load ... Opens the Load file dialog that specifies all the parameters of the file to be loaded and the file destination. Reload Reloads the most recently loaded file. Save... Saves the file from the currently active window to a disk. Opens the Save file from buffer dialog. Configuration Files Gives access to operations with configuration files. Exit Closes ChipProgUSB. Alternatively, use the standard ways to close a Windows application (the Alt+F4 or Alt+X keys combination). © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 41 4.1.3.1.1 Configuration Files On exit ChipProgUSB automatically saves its configuration data in several configuration files with the name UPROG. On start, it restores its configuration from the last saved configuration files. In addition, you can save and load any of these files at any time using the Configuration Files command of the File menu. You can have several sets of configuration files for different purposes. The Desktop file contains data about the display options and the screen configuration, and the positions, dimensions, colors and fonts of all the opened windows. The extension of this file is .dsk. The default file name is UPROG.dsk. The Options file stores the target device type, file options, etc. The extension of this file is .opt. The default file name is UPROG.opt. The Session file, which stores session data and specifies the desktop and options; it can also be saved and loaded by means of the Save session or Load session sub command of the Configuration Files command. The extension of this file is .ses. The default file name is UPROG.ses. The History file, which contains all the settings entered in the text boxes of all the ChipProgUSB dialogs. This file is hidden from users, but the settings stored earlier are available for prompt pick up from the History lists. The extension of this file is .hst. The default file name is UPROG.hst. 4.1.3.2 The View Menu This menu controls access to the ChipProgUSB windows: Button Command Program Manager Description Opens the Program Manager dialog. Device and Algorithm Parameters Opens the Device and Algorithm Parameters dialog. Buffer Dump Opens the Buffer dialog. Device Information Opens the Device Information dialog. Console Opens the Console dialog. Local window menus Each window has its own local (shortcut) menu. To open a local window menu, either click the right mouse button within the window or press Ctrl+Enter or Ctrl+F10. © 2015 Phyton, Inc. Microsystems and Development Tools 42 ChipProg Device Programmers Most, but not all, of the local menu commands are duplicated by local toolbar buttons that are usually displayed at the top of every window. 4.1.3.3 The Project Menu This menu contains commands for working with projects. Button Command Description New Opens the Project Options dialog. Open Opens the Open Project dialog for loading an existing project file. Close Saves and closes a currently opened project. Save Saves a currently opened project with all its settings. Save As Opens the Save project dialog. Duplicating projects under different names and/or in different folders is helpful for cloning similar projects. Repository Opens the Project Repository dialog for storing a current project in a special data base for convenient handling. Options Opens the Project Options dialog for the project options editing. Note! The ChipProgUSB software does not automatically save changes of the project options upon quitting the program. You must execute the Save or Save as command from the Project menu to preserve project changed made in all user interface setting dialogs since opening this project. 4.1.3.3.1 The Project Options Dialog This dialog is used for initial setting and editing the project options. Element of dialog Project File Name Permissions... Description Specifies the project file name and path. The extension may be omitted. when you close the dialog by clicking the OK button the program save the project file with the extension .upp. Opens the Editing Permission Settings dialog. Here you can protect the project file against unauthorized editing. By checking appropriate boxes in this dialog you can lock major groups of project options. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Project Description (optional) Desktop 43 Here you can enter your custom comments for the project. Two radio buttons which allow you to choose if a current project has its own desktop or if all ChipProgUSB projects will use the same desktop settings. Files to Load to Buffers File or list of files to be loaded into the buffers upon opening the project. Add file Opens the Load File dialog for adding this file to the Files to Load to Buffers. Remove file Remove the selected file from field Files to Load to Buffers. Edit file options Opens the Load File dialog for editing a file highlighted in the Files to Load to Buffers list . Script to execute before loading files: Here you can enter the script name to be executed before loading the Script to execute after loading files: Here you can enter the script name to be executed after loading the files files to the project. to the project. The dialog should be completed by clicking the OK button. Then a specified project file with the extension .upp will appear in a specified folder. 4.1.3.3.2 The Open Project Dialog This dialog is used to open a previously created project. Element of dialog Project File Name Description Here you can type in a full path to the project file name or to browse for the project file to be open. The ChipProgUSB project files have extensions .upp. Project Open History Lists previously opened projects. Double-clicking a line in the list opens a corresponding project. Remove from list Deletes a selected project from the Project Open History list. 4.1.3.3.3 Project Repository The Project Repository is a small database that stores records with links to the project files. Here you can see the ChipProg projects in a tree form similar to the Windows File Explorer, to sort and group the projects as needed for better presentation and convenient access. Operations with the repository do not change the project files themselves - the repository works only with records about the projects (links to the project files). A tree branch may show projects and other branches. Any branch may contain different projects with the same names. Different branches may contain links to the same project. To open the Project Repository tree with associated commands call the Repository command of the Project menu. Each tree branch displays the name of a particular project file (without a path) and the project description shown in square brackets. The ChipProgUSB remembers the state of the tree © 2015 Phyton, Inc. Microsystems and Development Tools 44 ChipProg Device Programmers branches (expanded / collapsed) and restores it next time you open the dialog. When you install a new version of the ChipProgUSB software and copy the working environment from the previously installed version, the new version will inherit the existing project repository (the repos.ini file). Element of dialog Description Add New Branch Opens the Add New Branch dialog in which you can specify the name of a new branch. Add a Project to Branch Opens the Open Project dialog to select a project to be added. Clicking the Open button adds the selected project to the selected branch. Add Current Project to Branch Remove Project/Branch Adds the currently opened project to the selected branch. Deletes the selected project or branch from the repository. All the child branches will be also deleted. When deleting a project from the repository, the ChipProgUSB deletes only the repository record about the project, and does not delete the project from the disc. Edit Branch Name Opens the Edit Branch Name dialog for the selected branch. Move Up Moves a selected project or branch up within the same level of hierarchy. The branch moves together with all its child branches . Move Down Moves the selected project or branch down within the same level of hierarchy. The branch moves together with all its child branches . Save Repository Writes or updates the repository to the disc file repos.ini in the ChipProg working folder. 4.1.3.4 Browse Project Folder Opens MS Windows Explorer with the opened folder of the selected project. Open Project Writes the repository to the disk file and opens a selected project. Close Closes the dialog. If the repository is changed, ChipProgUSB will prompt to save it. The Configure Menu This menu gives access to all the ChipProgUSB configuration dialogs. Button Command Description Select device ... Opens the Select Device dialog. Device selection history Lists the previously selected devices. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Buffers Opens the Buffers dialog. Serialization, Checksum, Log file Opens the Serialization, Checksum, Log File Preferences Opens the Preferences dialog. Environment Opens the Environment dialog with tabs: the Fonts tab, the Colors tab, the Key Mappings tab, the Toolbar tab and the Misc tab. 45 4.1.3.4.1 The Select Device dialog The dialog allows specification of the device to work with; it has a few groups of settings. Element of dialog Devices to list: Description In this field you can check the box or boxes to specify the target device type. All the devices are divided in three functional groups: a) EPROM, EEPROM, FLASH; b) PLD, PAL, EPLD; c) Microcontrollers - check one, two or all three boxes. Two check boxes below specify a method of programming - in the programmer socket or in the target system - some devices can be programmed in either way, some only in one certain way. It is recommended to narrow down the searchable database and speed up the search by specifying the device properties if possible. Manufacturer Search mask: Devices The box lists the device manufacturers in alphabetic order. Here you can enter a mask to speed up the device search. The character '*' masks any number of any characters in the device part number. For example, the mask 'PIC18*64' will bring up all the PIC18 devices ending with the '64'. The file displays all the devices for a chosen manufacturer that match to the search criteria specified in the Devices to list, Search mask and Packages/Adapters fields. Packages/Adapters This field lists all types of the chosen device's mechanical packages that can are supported by the the ChipProg and appropriate adapters. 4.1.3.4.2 The Buffers dialog Element of dialog Description Buffer list: Displays names, sizes and sub-layers of all currently open buffers © 2015 Phyton, Inc. Microsystems and Development Tools 46 ChipProg Device Programmers Add... Opens the Buffer Configuration dialog to create a new buffer Delete Deletes the buffer highlighted in the 'Buffer list' box. Edit... Opens the Buffer Configuration dialog for editing. View Memory Allocation Swap Files Switches control to window displaying the buffer highlighted in the 'Buffer list' box. If this window is hidden under others it will be brought to the foreground. This drop down menu allows limiting the memory size allocated from the computer RAM to each buffer. The free memory currently available for the allocation is shown here in this screen area. If the RAM space is limited the ChipProgUSB can use some space on the PC drives by temporary writing the buffer image to the drive. You can select the drive or allow the program to swap the files automatically. Use network drives Checking this box enables you to swap files on the network drives connected to your computer. Amount of space to leave free on each drive (GB): Here you can limit the space on the drive which will be never affected by the file swapping. 4.1.3.4.2.1 The Buffer Configuration dialog The Buffer Configuration dialog allows the setup of sub-layers in the buffers and to make their presentation easier to work with. The dialog includes as many tabs as number of sub-layers exist for a particular device. Every buffer has at least one main layer, so the tab 'Code' is always displayed on the dialog foreground. If a chosen device has other address spaces ('Data', 'User', etc.) the buffer has additional sub-layers available for setting up by clicking the appropriate tabs. The tab opens the dialog for configuring the main buffer layer - the 'Code' layer. Element of dialog Buffer Name Size of sub-layer 'Code' Fill sub-layer 'Code' with data: Description Here you can type in a name for the buffer or pick it from the history list. By default the first opened buffer gets the name "Buffer #0". Then you can open the "Buffer #1", etc. or give the buffer any name you wish. Here you can assign a size of the 'Code' layer from the drop-down menu - from 128KB to 32MB. The program fills the buffer sub-layers with some default information, usually by the 'FF's or zeros. By checking these boxes you specify when the layer 'Code' should be filled with the default information before loading the file or right after the device type has been chosen. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Data to fill sub-layer with: Shrink buffer size when device is selected 47 These two toggled radio buttons define if the sub-layer 'Code' will be filled with some default information, specific for the selected device, or by the custom bit pattern. The buffer size usually exceeds the target device 'Code' size. By checking this box you downsize the buffer to match the target device and to free some computer memory. The tab opens the dialog for presetting the buffer sub-layers . Element of dialog Description Fill sub-level 'ID location' with data: By checking these boxes you specify when the chosen sub-layer should be filled with the default information - before loading the file or right after the device type has been chosen.. Data to fill sub-level with: These two toggled radio buttons define if the chosen sub-layer will be filled with some default information, specific for the selected device, or by the custom bit pattern.. 4.1.3.4.3 The Serialization, Checksum and Log dialog The dialog allows writing serial numbers, unique signatures, checksums and user-specified information into the target device memory and logging a process of the mass production device programming. Important Notice! All the functions available with these dialogs: Serialization, writing in Checksums, Signatures, etc. work ONLY when you use the Auto Programming mode for mass production. Concept of shadow areas Shadow areas are special memory locations that do not belong to the buffer; they locate in a separate part of the computer's RAM. The content of the shadow areas that may include: individual chip serial numbers, the buffer checksums, special signatures, constancies, etc., is not specified in the source file loaded to the buffer. It can be set either manually in the ChipProg user interface or remotely via the Application Control Interface. There are several shadow areas for each buffer layer - three for dedicated parameters: Serial Number, Checksum, and Signature String plus multiple Custom Shadow Areas can be specified in this dialog. Tabs of the dialog below enable manually setting the parameters and methods of their calculation: © 2015 Phyton, Inc. Microsystems and Development Tools 48 ChipProg Device Programmers General Serial Number Checksum Signature String Custom Shadow Areas Log File When one launches the Program a command the ChipProgUSB merges: a) the data loaded to buffers and b) special data set in the shadows areas and then writes the merged data array into the target memory device. If some addresses of the merged data overlap each other then the data taken from the shadow areas overwrite ones taken from the memory buffer and the merged data physically move to the target device memory. 4.1.3.4.3.1 General settings The tab opens the dialog allowing to handle serialization of the devices failed in a process of the device programming. There are two options (see below in the picture below): © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 49 4.1.3.4.3.2 Device Serialization The Serial Number dialog tab specifies a procedure of assigning a unique number to each single device belonging to a series of devices being programmed. By default serial numbers starts from 0, increments by 1 and are displayed as a byte. Element of dialog Write S/N to address: Description If this box is checked the programmer will write a serial number into a specified address of a specified memory layer of a target device in accordance to the parameters below. Current serial number: Specify the current (start) serial number in this box. By default it is 0. S/N size, in byte: Specify a size of the serial number in bytes; for example: 1, 2, 4, etc. By default one byte is set here. Byte Order These two toggled radio buttons define an order of bytes that represent the serial number (if it occupies more than one byte) either the least significant byte (LSB) follows the most significant byte (MSB) or vise versa. Display S/N as: These radio buttons set the serial number display format - decimal or hexadecimal. Increment serial number by: By checking this radio button you set incrementing the serial number by the fixed value specified here; for example: 1, 2, 10, etc. Use script to increment serial number: By checking this radio button you specify the increment value as a result of executing a chosen script file. © 2015 Phyton, Inc. Microsystems and Development Tools 50 ChipProg Device Programmers 4.1.3.4.3.3 Checksum The Checksum dialog allows auto calculating checksums of the data in buffers and writing this checksum into the target device's memory. The dialog enables you to specify either a "standard", widely used algorithm or a custom, complex algorithms by using a script. Element of dialog Description address: If this box is checked the programmer will write a checksum into a specified address of a specified memory layer of a target device in accordance to the parameters below. Address range for checksum calculation: There are two options for setting the address range: Auto and Userdefined. Write checksum to Auto: The address is defined as a full range of the selected device's memory layer. It is set by default. User-defined: Here you can specify the start and end addresses of the selected device memory layer, for which the program calculates the checksum. Use algorithm to calculate checksum: Here you can pick one from the drop down menu of several algorithms. By default it sets the "Summation, discard overflow". Use script to calculate checksum: By checking this radio button you specify a method of the checksum calculation as a result of executing a chosen script file. Size of calculation result: These radio buttons allow to choose a size of the checksum calculation: one, two or four bytes. Size of data being summed: These radio buttons allow to choose a size of the data being summed: one, two or four bytes. Operation on summation result: These radio buttons allow either to apply no operation on the calculated checksum or to negate or to complement the result. Byte Order: Exclude the following areas from checksum calculation: These two toggled radio buttons define an order of bytes that represent the checksum - either the least significant byte (LSB) follows the most significant byte (MSB) or vice versa. If the box is checked you can specify several memory ranges that will be skipped by any algorithm that calculate the checksum. To specify these ranges specify the start and end addresses and click the 'Add' button. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 51 4.1.3.4.3.4 Signature string The dialog specifies a procedure of writing a user-defined signature string into the target device. The signature may include some generic data like the date when the device has been programmed and some unique data like the project name, the operator name, etc.. Element of dialog Write Signature String to address: Description If this box is checked the programmer will write a specified signature into a specified address of a specified memory layer of a target device in accordance to the parameters below. in sub-layer: Max. size signature string: This field reserves a maximum length of the signature string in the number of characters. Use Signature String template: One of two toggled radio buttons. If checked, the string pattern visible in the Template String Specifiers drop down menu box will be programmed into the target device. Use script to create Signature String: This radio button sets an alternative method of composing the signature string by means of a custom made script. Template String Specifiers: This window lists the parameters (specifiers) to be placed into the Use Signature String template field above as you wish they would be written into the device. Each parameter starts with the symbol '$'. 4.1.3.4.3.5 Custom Shadow Areas The dialog specifies a procedure of writing a user-defined data into the target device. A user can specify an unlimited number of custom shadow areas. The data can be either entered manually or built by a script. 4.1.3.4.3.6 Overlaping data specified in shadow areas Before programming a device the ChipProgUSB merges: a) the data loaded to buffers and b) special data set in the shadows areas and then writes the merged data array into the target memory device. If some addresses of the merged data overlap each other then the data taken from the shadow areas overwrite ones taken from the memory buffer as it is shown below: ______________________ Custom shadow area N ? Custom shadow area N-1 ? Custom shadow area N-2 ? .... .... Custom shadow area 2 ? Custom shadow area 1 ? _______________________ © 2015 Phyton, Inc. Microsystems and Development Tools 52 ChipProg Device Programmers Signature string ? _______________________ Checksum ? _______________________ Serial Number ? _______________________ Data in memory buffer _______________________ Note! It is important to carefully check correctness of the addresses set in the the Serialization, Checksum and Log File dialog to prevent spoiling data in the mistakenly overlapped areas! 4.1.3.4.3.7 Log file The dialog allows set up of a log or logs of the device programming. Element of dialog Description Enable log file Checking this box enables logging the device programming sessions and setting the log parameters below: Separate log file for each device These two toggled radio buttons set if the logs will be separated by a manufacturer or by the target device type or a single log that will be kept for all the devices being programmed. File Name (Generated Automatically) Another two toggled radio buttons that set what specifier will be included into the log file name: both the manufacturer and device type (for example: Atmel AT89C51, Microchip PIC18F2525, etc.) or just the device type (for example: AT89C51, PIC18F2525, etc.). Folder for log file: This is a field for entering a full path to the folder where the log file will be kept. There is also a button for the path browsing. Single log file for all device types By checking this radio button you select keeping one common log for all types of the devices being programmed. File Name This is a field for entering a full path to the folder where the common log file will be kept. There is also a button for the path browsing. Log File Contents Gang mode: Socket # Date/Time A set of the log file options. If the device programming was conducted in the Gang (multiprogramming) mode and if this box is checked the socket number will be logged. By checking this box you enable logging the date and time of the device programming. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 53 Events (device type change, file names, etc.) By checking this box you enable logging of all the events associated with the device programming, e.g. the target device replacement, loaded file names, etc. Device operation By checking this box you enable logging of all the events associated with the device manipulations. Detailed Device operation By checking this box you enable more detailed logging of all the events associated with the device manipulations. Operation Result By checking this box you enable logging the results of the programming operations. Device #/Good devices/Bad devices By checking this box you enable logging a full number of the devices programmed, number of successfully programmed devices and number of failed ones. Serial Number By checking this box you enable logging the serial number read from the device. Signature string By checking this box you enable logging the signature string read from the device. Checksum By checking this box you enable logging the checksum value read from the device. Buffer name By checking this box you enable logging the buffer name. Programming address By checking this box you enable logging the ranges of the device locations which have been programmed. Programming options By checking this box you enable logging all the programming options. Log File Format Log File Overwrite Mode A pair of toggled radio buttons: one sets the plain text format of the log file, the second sets the tabulated text to be viewed in the Microsoft Excel format. A pair of toggled radio buttons, checking the top one sets the mode of appending new records to a specified log file and checking the second overwrites the old log every time the ChipProg re-starts. Warn if size exceeds If this box is checked then every time when the log size exceeds a user-specified value the ChipProgUSB issues a warning. Immediately write log file to disk, no buffering If this box is checked then the ChipProgUSB does not buffer the log to the computer RAM but writes it straight to the drive. 4.1.3.4.4 The Preferences dialog This dialog gathers settings for some miscellaneous options. © 2015 Phyton, Inc. Microsystems and Development Tools 54 ChipProg Device Programmers Element of dialog Options Description Not all the dialog options are described here. Reload last file on start-up By checking this box you enable re-loading to the open buffer(s) the last loaded file every time when you start the ChipProg. Execute Power-On test on start-up This box is checked by default. By un-checking this box you skip executing the start-up ChipProg self-testing Terminate device operation... By checking this box you stop the programmer operations operations on any error and suppress displaying error messages in the user interface. Log operations in the Console window By checking this box you enable dumping the programming session trace to the Console window. Deny computer power suspension While the programmer does not operate with the target device the computer may switch to the sleep mode. By checking this box you © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 55 disable Windows to enter the sleep mode. This does not protect a PC against falling asleep when an operator intentionally closes a notebook lid or intentionally shut down the computer by pressing the button Start > Shut down. This option neither blocks a screen saver nor disable switching off the monitor power. While the ChipProg executes any command on the target device falling PC asleep is disabled regardless of the check box status because switching power of the USB port may cause destroying a target device. If this check box is unchecked then waking up the computer will cause the ChipProgUSB software crashes. If the crash happens it is necessary to cycle the ChipProg power and to launch the ChipProgUSB application. Sounds All programmable sounds can be picked from the preset ChipProgUSBsounds Device operation error: Select the sound for error operations. Device operation complete: Select the sound for successful completion of the programming operations in a single programming mode (one ChipProg is in use). Device operation complete (Gang Mode): Programming start (AutoDetect Mode): Select the sound for successful completion of the programming operations in a gang programming mode (either a few single site programmers are connected to one PC for multi-device programming or when the ChipProg gang programmer is in use). Select the sound for indicating the start of the device programming when the ChipProg automatically detects the device insertion into the programming socket. 4.1.3.4.5 The Environment dialog The Environment dialog includes the following tabs: Fonts tab, Colors tab, Mapping Hot Keys tab, Toolbar tab, Miscellaneous Settings tab. 4.1.3.4.5.1 Fonts The Fonts tab of the Environment dialog opens a sub dialog for setting fonts and some appearance elements in the ChipProgUSB windows. Only mono-spaced (non-proportional) fonts (default is Fixedsys) are used to display information in windows. To improve appearance of the windows, you can set up either another font for all windows, or individual fonts for each particular window. The Windows area lists the types of windows. Select a type to set up its options. The set options are © 2015 Phyton, Inc. Microsystems and Development Tools 56 ChipProg Device Programmers valid for all windows of the selected type, including the already opened windows. Element of dialog Description Window Title Bar Toggles the title bar for windows of the selected type. If the box is checked it adds a toolbar at the position specified by the Windows Toolbar Location option. To save screen space uncheck the box. Also, see notes below. Window Toolbar Location Sets the toolbar location for the selected window. Grid Turns on/off the display of the vertical and horizontal grids in some window types, and permits adjusting the column width (when the vertical grid is allowed). Additional Line Spacing Provides additional line spacing, which will be added to the standard line spacing. Supply a new value or choose from the list of most recently used values. Define Font Opens the Font dialog. The selected font is valid for all windows of the selected type. Use This Font for All Windows Notes Applies the font of the chosen window type to all ChipProgUSB windows. 1. To move a window without the title bar, place the cursor on its toolbar, where there are no buttons, and then operate as if the toolbar were the window title bar. Also, you can access the window control functions through its system menu by pressing the Alt+ keys. 2. Each window has the Properties item in its local menu, which can be invoked by a right click. The Title and Toolbar items of the Properties sub-menu toggle the title bar and toolbar on/off for the individual active window. 4.1.3.4.5.2 Colors The Colors tab of the Environment dialog opens a sub dialog for setting colors of such window elements as window background, font, etc.. By default, most colors are inherited from MS Windows; however you can set other colors if you prefer them. Element of dialog Description Color Scheme Specifies the color scheme name. Your can type in a name or choose a recently used one from the list. The Save button saves the current scheme to the disc; later you can restore color settings by just a mouse click. The Remove button removes the current scheme. Colors Lists the names of color groups. Each group consists of several elements. Inherit Windows Color When this box is checked, the selected color is taken from MS Windows. If later you change the MS Windows colors through the Windows Control Panel, this color will change accordingly. This option is available only for the background and text colors. Use Inverted Text/ Background Color When this box is checked, the program inverts the selected window colors (for text and background). For example, if the Watches window background color is white and the text color is black, then the line with the selected © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 57 variable will be highlighted with black background and white text. Edit Opens the Color dialog if the Inherit Windows Color and Use Inverted Text/ Background Color boxes are unchecked for this type of window. The Color dialog also opens if you double-click a color in the Colors list. Spread Sets the selected color for all windows. This option is useful for text and background colors. For example, if you choose blue background and yellow text for the Source window and then click the Spread button, these colors will be set as the text and background colors for all windows. Font For syntax highlighting in the Source window, you can specify additional font attributes - Bold and Italic. In some cases when synthesizing bold fonts, MS Windows increases the size of characters and the font becomes unusable, because the bold and regular characters should be of the same size. In these cases, the Bold attribute is ignored. Sometimes this effect occurs with the Fixedsys font. If you need to use Bold fonts, choose the Courier New font. 4.1.3.4.5.3 Mapping Hot Keys The Key Mapping tab of the Environment dialog opens a sub dialog for assigning hot keys for all commands in the ChipProgUSB. The Menu Commands Tree column displays a tree-like expandable diagram of all commands. The Key 1 (Key 2) columns contain the corresponding hot–key combinations for the commands. The actions apply to the currently selected command. Element of dialog Description Define Key 1 Define Key 2 Opens the Define Key dialog. In the dialog, press the key combination you want to assign to the selected command, or press Cancel. Alternatively, double-click the "cell" in the row of this command and the Key 1 (Key 2) column. Erase Key 1 Erase Key 2 Deletes the assigned key combination from the selected command. Alternatively, right click the "cell" in the row of this command and the Key 1 (Key 2) column. 4.1.3.4.5.4 Toolbar The Toolbar tab of the Environment dialog controls the presence and contents of toolbars of the windows. © 2015 Phyton, Inc. Microsystems and Development Tools 58 ChipProg Device Programmers Element of dialog Description Toolbar Bands Lists the ChipProgUSB toolbars. To enable/disable a toolbar check its box. Buttons/Commands Lists the buttons for the toolbar selected in the Toolbar Bands list. To enable/ disable a button on the toolbar check its box. "Flat" Local Window Toolbars Toggles between the "flat" and quasi-3D appearance of the local toolbar buttons for the specialized windows. Toolbar Settings are the Same for Each Project/Desktop File Employs the current settings from this dialog for other projects or files opened later. 4.1.3.4.5.5 Messages Check messages that program should display, uncheck messages that you do not want to be displayed. 4.1.3.4.5.6 Miscellaneous Settings The Miscellaneous tab of the Environment dialog allows the setting of miscellaneous parameters of the ChipProgUSB windows and messages. Element of dialog Description Main Window Status Line Controls presence and location of the window status line. Quick Watch Enabled Turns the Quick Watch function on or off. Highlight Active Tabs Turns highlighting on/off for the currently active tab (the MS Windows-style) in windows that have tabs. Double Click on Check Box or Radio Button in Dialogs Sets the mouse’s double click function equal to a single click, plus pressing the OK button in that dialog. Show Hotkeys in Pop-up Descriptions Turns the Hotkeys display on/off in the short prompts for toolbar buttons. Do not Display Box if Console Window Opened If the Console window is open, messages will be displayed there. Otherwise, the message box will display messages. Always Display Message Box All issued messages will be displayed in the message box. The Console window also displays these messages. Automatically Place Cursor at OK Button The cursor will always be on the OK button when the message box opens and this box is checked. If you prefer you may press the Enter key instead of using the mouse to click OK. Audible Notification If you select this option, there will be a beep along with the error message. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 59 for Error Messages Information (as opposed to error) messages are always displayed without the beep. Log Messages to File Specifies the log file name. All messages will be written to this file. The method of writing is controlled by the radio button with two options: Overwrite Log File After Each Start Specifies erasing the previous log file, if it exists, and creates it afresh for every session. Append Messages to Log File Specifies appending messages to the end of an existing log file. In this case, the log file size will grow endlessly. 4.1.3.4.6 Configurating Editor Dialog The ChipProgUSB software includes a built-in editor that is used for editing one type of the objects of the ChipProgUSB - Scripts Files. The Editor Options dialog includes the following tabs: General Editor Settings tab, Key Mapping tab. 4.1.3.4.6.1 General Editor Settings The General tab of the Editor Options dialog sets up all common options applicable to every Source window opened. Element of dialog Description Backspace Unindents Checking/clearing this box toggles the Backspace Unindent mode. See below for explanations. Keep Trailing Spaces When this box is checked, the editor does not remove trailing spaces in lines when copying text to the buffer or saving it to a disk. Spaces are removed when the box is unchecked. Vertical Blocks If the box is checked, the Vertical Blocks mode is enabled for block operations. Persistent Blocks If the box is checked, the Persistent Blocks mode is enabled for block operations. Create Backup File If the box is checked then creates a *.BAK file each time a file is saved in the Source window. Horizontal Cursor If the box is checked it sets the cursor as a horizontal line, like the DOS command prompt. CR/LF at End-of-file If the box is checked, it adds an empty line to the file end when saving the file to disk (if there is no one yet). Syntax Highlighting If the box is checked, it forces syntax highlighting of language constructions. © 2015 Phyton, Inc. Microsystems and Development Tools 60 ChipProg Device Programmers Highlight Multi-line Comments If the box is checked it enables highlighting of multi-line comments. By default, the window highlights only single-line comments. Auto Word/AutoWatch Pane If the box is checked, any new Source window will open with the Auto Word/AutoWatch pane at its right and the automatic word completion function will be enabled. Full Path in Window Title If the box is checked, the Source window caption bar displays the full path to the opened file. Empty Clipboard Before Copying If the box is unchecked, then previously kept data remains retrievable after copying to the clipboard. Convert Keyboard Input to OEM If the box is checked, the Source window converts the characters that you input in the window from the MS Windows character set to the OEM (national) character set corresponding to your national version of the Windows operating system. Also, see note below. AutoSave Files Each … min If the box is checked, will save the file being edited every ‘X’ minutes, where ‘X’ is a settable constant chosen by the user. Tab Size Sets the tabulation size for the text display. The allowable value ranges from 1 to 32. If the file being edited contains ASCII tabulation characters, they will be replaced with a number of spaces equivalent to the tabulation size. Undo Count Sets the maximum number of available undo steps (512 by default). If this does not suffice, you can set a value of up to 10000 steps. However, larger values increase the editor’s memory requirement. Automatic Word Completion If the Enable box is checked, it allows the automatic word completion function. The Scan Range drop-down list sets the number of text lines to be scanned by the automatic word completion system. Indenting Toggles automatic indenting on/off for a new line that is created when you press Enter. Note. You should check the Convert Keyboard Input to OEM box only if you are going to type something in the Source window when working with a file coded in the OEM character set. If you need only to display such a file, specify the Terminal font for the Source window in the Fonts tab of the Environment dialog: select Editor in the Windows list and press the Define Font button. The Backspace Unindent mode establishes the editing result from pressing the Backspace key in the following four cases, when the cursor is positioned at the first non-space character in the line (there are several spaces between the first column of the window and the first non-space character): Backspace Unindent enabled Backspace Unindent disabled Insert mode Any preceding blank spaces in the line are deleted. The rest of the line shifts left until its first character is in the first column of the window. One space to the left of the cursor is deleted. The cursor and the rest of the line to the right of the cursor shift one position left. Overwrite mode The cursor moves to the first column of the window. The text in the line remains in place. Only the cursor moves one position left. The text in the line remains in place. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 61 4.1.3.4.6.2 The Editor Key Mapping You can manage the list of available editor commands with the Key Mappings tab of the Editor Options dialog. You can add and delete editor commands, assign (or reassign) hot keys for new commands and for built-in ones. The left column of the list contains command descriptions. Command types, corresponding to the command descriptions, are in the second column. (Command means a built-in ChipProgUSB command; Script ‘XXX’ means an added user-defined command). Two columns on the right specify the hot key combinations to invoke the command, if any. Element of dialog Description Add Opens the Edit Command dialog for adding a new command to the list and setting up the command parameters. Delete Removes a selected user-defined command from the list. Any attempt to remove a built-in command is ignored. Edit Opens the Edit Command dialog to change the command parameters. For built-in commands, you can only reassign the hot keys (the Command Description and Script Name boxes are not available). Edit Script File Opens the script source file of this command in the Script Source window. Creating new commands To create a new command, you should develop a script for it. In fact, you add this script to the editor, not the command. This means that your command is able to perform much more complex, multi-step actions than a usual editor command. Moreover, you can tailor this action for your convenience, or for a specific work task or other need. Your scripts may employ the capabilities of the script language with its entire set of built-in functions and variables, text editor functions and existing script examples. A script source file is an ASCII file. To execute your command, the editor compiles the script source file. Note that before you can switch to using the script which you have been editing, you must first save it to the disk so that ChipProgUSB can compile it. Script source files for new commands will reside only in the KEYCMD subdirectory of the ChipProgUSB system folder. Several script example files are available in KEY CMD. For more information about developing scripts, see Script Files. This dialog Edit command sets parameters for a new command or for existing ones. Element of dialog Description Command Description Enter the command description here (optional). Text placed in this box will be displayed in the list of commands for easier identification of the command. Script Name The name of the script file that executes this command. Define Key 1 Define Key 2 Opens the specialized dialog box where you can assign two key combinations to a couple of hot keys. © 2015 Phyton, Inc. Microsystems and Development Tools 62 ChipProg Device Programmers The script source files for commands will reside only in the KEYCMD subdirectory of the ChipProgUSB system folder. Enter the file name only, without the path or extension. Notes 1. You should not specify the combinations reserved by Windows (like Alt+– or Alt+Tab). 2. We do not recommend assigning the combinations already employed by commands in the Source window or ChipProgUSB, because then you’ll have fewer ways to access these commands. Some examples are Alt+F, Shift+F1, Ctrl+F7, which are commands that open the application menus. Others are the local menu hot keys of the editor window. 3. You can use more than one control key in the keystroke combinations. For example, you can use Ctrl +Shift+F or Ctrl+Alt+Shift+F as well as the Ctrl+F combination. 4. For some built-in commands, the hot keys cannot be reassigned (for example, the keys for moving the cursor). 4.1.3.5 The Commands Menu This menu invokes main commands (or functions) that control the programming process, as well as some service commands. Command Description Auto Programming This command invokes the procedure of checking the target device before programming to make sure that it is really blank. Programming of some memory devices does not require erasing them before reprogramming. For such devices the Blank Check command is blocked and it is shown grayed out on the screen. This command invokes the procedure of programming the target device, e.g. writes the contents of the buffer into the target device’s cells. This command invokes the procedure of comparing the information taken from the target device with the corresponding information in the buffer. This command invokes the procedure of reading the content of the target device’s cells into an active buffer. This command invokes the procedure of erasing the target device. Some memory devices cannot be electrically erased. In this case the Erase command is blocked and is grayed out on the screen This command invokes the procedure of AutoProgramming. Local menu Opens the local menu of active window. Calculator Opens the Calculator dialog, which performs calculator functions. Blank Check Program Verify Read Erase 4.1.3.5.1 Calculator A prime purpose of the embedded calculator is to evaluate expressions and to convert values from one radix to another. You can copy the calculated value to the clipboard. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Element of dialog Description Expression The text box for entering an expression or number. Copy As Specifies the format of results that will be copied to the clipboard. Signed Values If this box is checked the result of a calculation will be interpreted and displayed as a signed value (for the decimal format only). Display Leading Zeroes If this box is checked, binary and hexadecimal values retain leading zeroes. Copy Copies the result to the clipboard in the format set by the Copy As radio button. Clr Clears the Expression text box. Bs Deletes one character (digit) to the left of the insertion point (Backspace). 0x Inserts "0x". >> Shifts the expression result to the right by the specified number of bits. tab Program Manager > the Edit Auto dialog - configure the Auto Programming batch of functions; Windows Program Manager > tab Options - set the programming options; Windows Program Manager > tab Statistics - set a number of chips to be programmed and other options Working in the SUI mode disables counting down the programmed chips (this option can be set in the tab Statistics), an operator can watch only numbers of successfully programmed and failed chips. Other options set in this tab remain in force. Second, create the project. Select the menu Project > New. In the Project Options dialog specify the project name, file name and format and other options; then click the OK button to store the project. It is absolutely crucial to store the project. Then follow to setting the SUI options. Under the Configuration menu click the command Simplified mode editor. This will open the Simplified Mode Setup window with the SUI window docked to the first window at left (see below). Any changes made in the Simplified Mode Setup window immediately become visible in the SUI window. Clicking the OK button in the Simplified Mode Setup window completes the SUI setup, the window closes and the button Return to editing appears in the SUI window. This allows quick switching back and forth from SUI session editing to programming chips. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 89 The General Settings Tab The Current configuration field displays the name of the currently chosen SUI configuration. The configuration files with the extension .smc are located in the folder SMConfig; this folder is located in the working ChipProgUSB folder. The Save button allows saving the configuration under the name entered in the field Current configuration; the Save as... button allows saving it under another name. If the Auto-save configuration on 'OK' button box is checked then clicking the OK button at the bottom of this tab will automatically save the current configuration and close the dialog. The Projects pane lists all the projects associated with the current configuration. When you open the Simplified Mode Setup window for the first time, the Projects list is blank. To add a project use the + Add button. One configuration may include more than one project if it is necessary to enable an operator to change projects without restarting the programmer. If Allow operator to select project from the list box is checked, then the SUI window displays all the projects associated with the current configuration; otherwise, it displays only one project selected from the Use project list. To remove a project from the Use project list, highlight it and click the x Remove from list button. This will remove the project from the list but not from the disc. The Open project button loads a selected project and does not close the editor. The Start Programming pane gathers appropriate settings. By checking the When the device has been automatically detected in the socket radio button you allow immediate launching of the programming operation upon detecting the chip in the ChipProg socket. If this option is checked, the Start button (or buttons in the gang mode) in the SUI window will be replaced with the auto detect acknowledgment indicator. Alternatively, the programming operation can be initiated by operator manipulation. Check the Explicitly by the 'Start' button radio button and, if you use the gang programming mode, check one of two radio buttons: Its own 'Start' button for each socket or Single 'Start' button for all sockets. Checking the Its own Start button for each socket option radio button allows an operator to replace a chip in a © 2015 Phyton, Inc. Microsystems and Development Tools 90 ChipProg Device Programmers socket and immediately press the 'Start' button so the chips are programmed asynchronously. Checking the Single 'Start' button for all sockets option radio button allows an operator to insert as many chips as desired in programming sockets at once (for example, 4 chips when using the ChipProgG41 gang programmer) and then to press any 'Start' button to initiate concurrent chip programming on all programming sites. In this mode, replacing the target chips is possible only upon completing the programming procedures on all sites. The only Auto Programming command batch can be initiated by pressing the Start button. This command can be executed either by pressing the mechanical button on the ChipProg unit or by clicking the 'Start' virtual button in the SUI window. If the box Allow programming termination by operator is checked, an operator is able to stop the programming by clicking the Exit button in the SUI window, otherwise the operator can only initiate device programming. The Appearance Tab Here you can individually choose the type, size and color of the Default Font for each element that can be displayed in the SUI window: Project name, Device part number, Statistics, Device operation status, and "Start" button. Move up and Move down allow customization of the element position in the SUI window. By checking appropriate boxes under the Display elements titles you can enable displaying them in the SUI window. Then, by highlighting an element enabled for display in the SUI window, you can individually set an appearance of each element if you wish its appearance to differ from the default and from other elements. Checking the Frame box causes a thin blue frame to appear around the element's field. Radio © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 91 buttons Font, Font color at left and Font color at right enable the creation of appearances that distinguish the elements displayed in the SUI windows. When the Statistics element is highlighted, the box Allow operator to reset statistics appears. Checking this box enables an operator to clear the current programming statistics. When the Device operation status element is highlighted, two extra boxes: Serial number and Checksum appear. Checking these boxes enables the serial number and the check sum written into the last programmed device to be displayed below the status line. 4.1.5.2 Operations with Simplified User Interface To launch the ChipProgUSB with the Simplified User Interface (or in the Simplified Mode) in the Command line mode use the key /Y . The key /Y and the should not be separated by a space. If the includes spaces the name should be quoted. For example: C:\Program Files\ChipProgUSB\5_22_00\UprogNT2.exe /Y"DS89C430 - Release" , where the DS89C430 - Release is the configuration name. When launched in the Simplified Mode the ChipProgUSB displays only the SUI window. The main ChipProgUSB window remains invisible until an error occurs. When a programming operation fails, the programmer behaves in accordance with the settings that control errors. These settings are available through the menu Configure > Preferences. If the box Terminate device operation on error and do not display error message... in the Preference dialog is unchecked (default setting) the ChipProgUSB will issue an error message and prompt to either ignore the error and resume operation or to terminate it. If this box is checked, any error will cause the programming session to come to a complete stopp., The error message will not be issued. 4.2 Operations with Projects Usually, operating with a device programmer includes a lot of preparations, such as: choosing a target device, loading a file to be programmed into the device, customizing the programming algorithm, preprogramming a batch of commands for the Auto Programming procedure, configuring the ChipProg user interface, etc. These preparations involve opening tens of dialogs spread in several ChipProgUSB windows, menus and sub-menus. The ChipProgUSB program enables storing all the settings in one file known as a project. You can create and set up an unlimited number of projects for programming of different devices, with different files and different parameters, and store them in the project repository from where you can load them for execution by clicking your mouse, or by including the project name in the command line. Operating with projects saves time and simplifies the programming job. Use of projects is especially beneficial for production programming when a typical scenario includes replication of a lot of chips programmed with the same data but different serial numbers. In this case it is very convenient to create and lock a project that completely defines the programming session and then allow a programming operation to a worker who will simply replace the chips being programmed and watch the programming progress and results. The matrix below lists major project options. Option group Major properties Project options Project name; Description; Permissions © 2015 Phyton, Inc. Microsystems and Development Tools Where to set up... Menu Project - Options - Dialog Project Options 92 ChipProg Device Programmers Option group Device Buffers Serialization, Check sum, Log files Actions on events Project options Where to set up... (password, selected locking options); Files to be programmed into the device, File format, Start and end address for file loading, Destination buffers; Scripts to be preloaded; Desktop. Device type; Auto Detect; Insert test; Check device ID; What to do when the device insertion is detected; Device parameters (fuses, lock bits, special function registers, etc.); Programming algorithm (applicable chip sectors, voltages, oscillator frequency, etc.) Buffer name; Buffer size; Default fill value; Swap file settings. Algorithm for programming serial numbers; Custom signature patterns; Algorithm of the check sum calculation; Check sum formats; Parameters and locations of log files to be saved. Actions on certain events, issuing error messages and sounds, logging results. Graphical User Interface Screen configuration, fonts and colors in windows, key mappings, messages and miscellaneous settings. Statistics Number of chips to be programmed and associated settings. Menu Configure - Dialog Select Device; Check box AutoDetect; Window Program Manager - tab Options Windows Device and Algorithm Parameters Editor Menu Configure – sub menu Buffers; Window Buffer – toolbar; Dialog Buffer Configuration; Window Buffer – toolbar; Dialog Memory Dump Windows Setup Menu Configure – tabs of the sub menu Serialization, Check sum, Log files Menu Configure – sub menu Preferences Menu Configure – sub menu Environment Window Program Manager - tab Statistics You can create, edit and save projects within the ChipProg Graphical User Interface - read about the Project Menu and associated dialogs. The project files have the extension .upp. Note! The ChipProgUSB software does not automatically save changes of the project options upon quitting the program. You must execute the Save or Save as command from the Project menu to preserve project changed made in all user interface setting dialogs since opening this project. 4.3 Command Line Control The ChipProg programmers can be driven in the Command Line mode. A command line begins with the registered application name UPROGNT2.EXE followed with a number of options that specify certain ChipProg functions and settings. Sometimes these options may be also called keys. The command line may also optionally include a name of the project file that controls the programmer operations. Here is the command line format: UProgNT2.exe [option 1] [option 2]...[Name of the project file] [option © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 93 3] [option 4]… , where the command line elements in square brackets (options and project name) are optional and may follow in any order separated by spaces. The square brackets characters are not parts of the option or project name. Each option begins with one of two characters: either ‘/’ (slash) or ‘-‘ (hyphen) followed by the reserved names listed in the Command line options table. The ‘/’ (slash) and ‘-‘ (hyphen) characters in command line options are absolutely equivalent. For example: ‘/L’, is the same as ‘-L’. Characters in the command line options, project names and the application executable name are caseinsensitive, so there is no difference between the ‘/A’ and ‘/a’ options. If the file name includes spaces the file name should be quoted. For example: -L”Data file 5.hex”. Some options in the Command line options table require additional parameters; these are shown in this table in angle brackets (< >). These parameters specify file names, devices, text strings, serial numbers, etc. that should follow options without a space. For example: "/LData file 5.HEX" (load the Data file 5.HEX to the b uffer right after launching the programmer) or ”/FH” (the file format is hexadecimal). Upon executing a command line the ChipProgUSB checks whether a project loaded before the program has been closed at the previous programming session. If it has, the program automatically reloads this old project unless a new project name is specified in the command line. There is no difference between loading a project by executing a command line, or loading it manually by means of the ChipProgUSB user interface menus. Here are a few command lines examples: 1) UProgNT2.exe -C"Atmel^AT89C51ED2 [ISP BL Mode]" -L"C:\Work\Output Files\Bin\Serial.bin" FB0x2000 -A -I2 Right after launching the ChipProgUSB application: -C"Atmel^AT89C51ED2 [ISP BL Mode]" - select the Atmel AT89C51ED2 [ISP BL Mode] device; -L"C:\Work\Output Files\Bin\Serial.bin" - then load the file C:\Work\Output Files\Bin\Serial.bin into the buffer #0; -FB0x2000 - specify the binary format for the Serial.bin file with the start address 0x2000 in the buffer; -A - then begin the Auto Programming session using the default set of commands programmed in the Auto Programming menu; -I2 - make the ChipProgUSB main window invisible, when the Auto Programming session completes. if an error occurs, copy the error message to the clipboard and close the ChipProgUSB application. 2) UProgNT2.exe "C:\Work\Programmer Projects\Nexus.upp" /A1 Right after launching the ChipProgUSB application load the project file ‘Nexus.upp’ from the folder C:\Work \Programmer Projects\ and launch the Auto Programming session from buffer #1. If the programming was successful, close the ChipProgUSB application. The ChipProg main window remains visible. 3) UProgNT2.exe Launch the ChipProgUSB with no options. © 2015 Phyton, Inc. Microsystems and Development Tools 94 4.3.1 ChipProg Device Programmers Command line options An option name begins with one of two characters: either ‘/’ (slash) or ‘-‘ (hyphen), followed by the reserved names listed below. The ‘/’ (slash) and ‘-‘ (hyphen) have the same effect; there is no difference whatever. For example, ‘/F’, ’-L’. Options -GANG[:] Description This option launches the ChipProgUSB in the multi-programming (gang) mode. In this mode the ChipProgUSB software drive multiple programmers, i.e. either a ChipProg-G4 or ChipProg-G41 gang programmer or multiple single-site ChipProg programmers connected to one computer. You must use this key to control the ChipProg-G4 or ChipProg-G41 gang programmers. The -N, -P and -R keys below may not be included in the same command line with the -GANG key. The /GANG key can be supplemented by a parameter [:] that specifies a number of programming modules in the controlled gang machine or a programming cluster. For example, the /GANG[:] key says that USB communication will be established only with two first programming modules in the gang machine. This allows to expedite establishing USB communication with the gang programmer. If the ChipProgUSB has been launched with the -GANG key the program waits up to 16 sec or until all multiple of 4 device programmers were detected, whichever happens earlier. For example, the -GANG[:] key stops establishing USB communication when first two programming modules were detected. - C"" -L -F This option opens the ChipProgUSB program with a device specified as a combination of the device manufacturer and device part number separated by the ^ character. The device specified in a previously loaded project will be replaced by a device specified by the -C"" key. For example: /C"Atmel^AT89C51". This option loads the file into the ChipProg buffer immediately after launching the ChipProgUSB program. If other files were previously loaded with some project then a new one will be loaded in accordance with the file format and start address. The loader automatically recognizes the file format in accordance with the file extension. If an actual file format differs from one listed in the file format list, use the option -F; this option enables you to explicitly specify the file format (see below). This key explicitly sets the format of the file specified by the option -L above. The is specified by one of the following letters: H - standard or extended Intel HEX format B - binary format M - Motorola S record format P - POF (Portable Object Format) J - JEDEC format G - PRG format O - Holtek OTP format © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 95 V - Angsrem SAV format For example: the option -FH loads a file in the HEX format, which defines the start destination address in the ChipProg buffer. If the binary format (B) is specified by the option -F then it may be accomplished by a hexadecimal value that specifies the destination start address of the file to be loaded. For example: the option /FBFF04 loads a binary file and places the data at the address FF04h in the buffer. If a command line includes a key -F but does not include a key -L; i.e., it specifies the file format but does not specify the file name itself, the -F option will be ignored. Note that use of the -C, -L, -F command line keys is less beneficial than use of projects, which allows much more flexible and effective control of device programming. It is highly recommended, and especially for mass production, to open, configure and store as many projects as you need and launch them from a command line. . -A[buffer number] This option initiates the Auto Programming session in accordance with other command line options immediately after launching the ChipProgUSB application. It closes this application in case of successful completion. In case of error the ChipProgUSB application remains suspended until it is closed manually. If the [buffer number] is omitted then the data for Auto Programming are taken from buffer #0; otherwise from the buffer number that follows the -A. For example: the option -A2 specifies that data for the Auto Programming session will be tak en from the buffer number 2.. It makes sense to use the -A option only when including in the command line a project name or the -L option. -I This key makes the ChipProgUSB application main window invisible until a programming error occurs. In case of error the window appears on the PC screen along with the error message. Use of this option makes sense only if the option -A (Auto Programming) is included in the same command line. Otherwise the -I option will be ignored. -I1 This key is similar to the -I key but use of the -I1 holds the ChipProgUSB application main window invisible even if a programming error occurs. The first occurrence of a programming error returns the error code 1 and closes the ChipProgUSB program. (A successful Auto Programming session ends with returning the code 0). These return codes can be conveniently used by an external application that controls the ChipProg remotely; for example, LabVIEW, similar programs or batch files. -I2 This key is similar to the -I key, but use of -I2 holds the ChipProgUSB application main window invisible, suppresses displaying error messages, but copies them to the Windows clipboard. © 2015 Phyton, Inc. Microsystems and Development Tools 96 ChipProg Device Programmers -M Including this key in the command line launches the ChipProgUSB software in the demo mode, which does not require use of the ChipProg hardware and real data exchange between a computer and the programmer hardware. Use of this mode is convenient for product evaluation without the ChipProg hardware. Important! The three keys below - -N, P and -R - allow control of one single-site programming module, either from a cluster of similar multiple programmers or inside a gang device programmer, but only when the programmers are not driven in the gang mode. These three keys may not be used with a combination of the key -GANG. Use of these keys may be convenient when, for example, it is necessary to program two different files into two different device types on two pairs of programming sites of the Phyton gang machine. In this case each pair of programming modules specified by the -R or -P keys can perform two different programming jobs simultaneously. -N This key enables operations with a particular single-site ChipProg programmer from a cluster of multiple programmers driven from one PC but only when these programmers are not controlled in the gang mode (with the key -GANG). Each single programmer has its own unique serial number () enabling you to address it by this serial number. A serial number can be found on the bottom of the programmer case or, better, by opening the menu Help > About... . Serial numbers of all single programmers connected to one PC are also available in the "Choose programmer" dialog that the ChipProgUSB program opens if the command line does not include the options -N or -P. For example, the option -NPHP10012A apecifies that all other command line options are applicab le to the programmer with a serial numb er PHP10012A only. -P This key is similar to the -N above but it defines a single module in the gang machine or in a programming cluster by setting the site number following a reserved text identifier "Phyton Gang Programmer" for the programmers driven by the ChipProgUSB software and "Phyton Fast Gang Programmer" for the programmers driven by ChipProgUSB-01. For example, the option P"Phyton Gang Programmer #2" defines that all other command line options are applicab le exclusively to the programming module #2. -R This key is applicable only for operations with Phyton gang programmers (ChipProg-G41 and ChipProg-G4) but only when it is necessary to operate with a particular programming module inside of these gang machines; i.e., not in the gang mode. Since all single programming modules belonging to each ChipProg gang programmer have the same serial number it is impossible to address the programming site by a serial number (key -N). When one of the mentioned gang programmers is launched from the © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 97 command line, including the -R option, this opens the dialog prompting a user to specify a particular number of the programming module inside of the gang machine. It is possible to use the key -P for choosing a programming module with a specified socket number. 4.4 -S This key replaces a default session configuration file UPROG.ses by a new one with the name and the extension .ses. The session configuration file stores major ChipProg settings, and includes a name of the last working project; it resides in the ChipProgUSB folder. The new session settings will be used by the ChipProgUSB right after the command line execution. -O This key replaces a default option configuration file UPROG.opt by a new one with the name and the extension .opt. The option configuration file stores the target device type, file options, etc.; it resides in the ChipProgUSB folder. The new options will be used by the ChipProgUSB right after the command line execution. -D This key replaces a default desktop configuration file UPROG.dsk by a new one with the name and the extension .dsk. The desktop configuration file stores the computer screen configuration, i.e., positions, dimensions, colors and fonts of all opened windows; it resides in the ChipProgUSB folder. The new ChipProgUSB desktop configuration will be in force right after the command line execution. -ES This key executes a script file, whose name follows the key -ES, right after launching the ChipProgUSB application. If the command line does not include the -ES key, the ChipProgUSB application searches for the script file named ‘Start.cmd’ in the programmers’s working folder and, if such a script file exists, it executes this script. On-the-Fly Control The On-the-Fly Control feature was introduced in the ChipProgUSB software version 6.00.00 and does not exist in older software versions. Use of the On-the-Fly Control is very similar to command line control but this utility enables controlling a ChipProg programmer that is already launched and running, without stopping and restarting it. On-theFly Control can issue commands allowing any operation that can be executed on the target the device, including Read, Program, load a project, launch a script, etc. With the On-the-Fly Control utility you can control a working ChipProg from the Windows batch files of third-party graphical packages such as LabVIEW. The On-the-Fly Control utility is an alternative to the more advanced Application Control Interface (DLL control); use of the latter requires some programming skills. The OFControl.exe executable file resides in the folder where the ChipProgUSB is installed. It is recommended that you keep it in this folder and launch it from this folder. Once launched, the utility © 2015 Phyton, Inc. Microsystems and Development Tools 98 ChipProg Device Programmers does not modify its working directory.. After completion, the On-the-Fly Control utility issues return codes. The code will be 0 (zero) in case of success. Specific error codes are listed in the UPControl return codes section. The program dumps error descriptions to the Console window and, optionally, to the log file and/or Windows clipboard. Upon completing the On-the-Fly Control job the ChipProg keeps working unless the utility has not been launched with the key -X. You may re-launch the On-the-Fly Control utility to control the same device programmer but remember that only one On-the-Fly Control utility can feed each working device programmer at a time. So, if you launch a second copy of the OFControl.exe file while the ChipProg device programmer is under control of a previously launched copy of the utility, the second copy will not "find" the device programmer. The On-the-Fly Control command line format: OFControl.exe [Options] [@] [Options] An option begins with one of two characters: either ‘/’ (slash) or ‘-‘ (hyphen), followed by the reserved names listed below. The ‘/’ (slash) and ‘-‘ (hyphen) have the same effect; there is no difference whatever. For example, ‘/L’, ’-P’. Though the options in the command line may follow each other in any order, the utility will execute them in a certain logical order. For example, operations with a target device will be executed only after loading a project and launching a script, regardless of the option order in the command line. There is one exception for the -F and -A options. These options define an order of operations with the target device and so they must be executed in accordance with their order in the command line. Note: In the descriptions of the command line option formats, optional parameters are shown in square brackets []; in the actual option notation these brackets should be omitted. The angle brackets below serves for a clearer presentation only and should be omitted in the option notation. For example, instead of -G[+] use -G+; instead of -G[+][ control of the PC in the gang mode, connect and drive the unit whose serial number is specified by this option. This option is incompatible with use of the -L option. If more than one programmer is working under control of the PC and the On-the-Fly Control utility does not include the -R option, the utility returns an error (#14). -C Copy an error text to the Windows clipboard. If the On-the-Fly Control utility completes and returns the code = 0, then an error has taken place (with the exception of the reaction to the -T option, see below). If the command line includes the -C option, the error description will be copied to the clipboard; otherwise the clipboard contents remain unchanged. © 2015 Phyton, Inc. Microsystems and Development Tools 100 ChipProg Device Programmers If more than one operation on the target device specified in the On-theFly Control command line returns errors, then, if the command line also includes the -I option (ignore errors), descriptions of all the errors will be copied to the Windows clipboard. -M[=] Specify a timeout in seconds of waiting for readiness of the device programmer before certain events: loading the project, launching scripts and a chain of the programming operations and quitting triggered by the -X option. If the -M option is not specified, the On-the-Fly Control utility does not check whether the ChipProgUSB is in the stop mode so an attempt to launch a programming function will cause quitting the utility with an error. If the -M option is specified without the [=] parameter then the On-the-Fly Control utility will indefinitely wait for the programmer readiness. In this case you can break the utility execution and quit by pressing the Ctrl+C keys. -B Stop an operation with the device. If the ChipProg executes a programming function (Read, Program, Verify, etc.), the operation will be interrupted. This action takes place prior to all the actions specified by the options -P, -S, -F, -X. It is possible, however, that the -B option does not cause a break of an operation on the target device. This happens when the utility issues an interactive operation error dialog that requires an action of the operator. In this case, the On-the-Fly Control utility exits with an error code. -P Load a specified project file. Project files with .UPP extensions include all the information and settings for a programming session (device type, file(s) to be written to the device, customized device and algorithm parameters, interface settings, device serialization options, scripts, etc.). Before loading the project the On-the-Fly Control utility waits until the programmer stops the operations on the device (see the -M option). If the -P option is specified in the On-the-Fly Control command line along with the -S and/or -F options, then the project loads before launching scripts and any operations with the target device. Example: -P"C:\Prog\Projects\Antenna-01 Test.upp" -S Launch a specified script. Before starting a script the On-the-Fly Control utility waits until the programmer stops the operations on the device (see the -M option). By default the On-the-Fly Control utility waits for the the script completion. To allow the On-the-Fly Control utility to continue working while the script is running, add the -NWS option to the option list. Example: -S"D:\Prog Scripts\Checksum.cmd" -NWS Do not wait for completion of the script specified by the -S option. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options -F 101 Execute listed operations (functions) with the target device. Names of the functions in the list should be separated by semicolons (;). In order to execute the Auto Programming function the -F option should be followed by an asterisk character (*). If the command line includes more than one -F option they will be executed in the order in which they are specified in the command line. If the -F option(s) is (are) specified in the command line along with the options -P (load project) and/or -S (launch script) then all the functions specified by the -F option(s) will start after loading the project and/or launching the script. By default the On-the-Fly Control utility waits for function completion. To enable the utility to keep running while the function specified by the F option is also executing, add the -NWF option to the command line. In this case you may include only one -F option in the command line. If the -F option specifies a sub-function displayed in the drop-down menus of the Program Manager function tree, then specify both the menu name and the function itself, separated by the '^' character. For example: -FProgram (for the Code Memory chip layer) but -FData Memory^Program (for the Data Memory) . Examples: -F* - launch the Auto Programming function. -FErase;Blank Check;Program;Verify - erase the device, check if it is blank, write the file from the programmer buffer and compare the buffer and device memory contents. "-F*;Verify;Device Parameters^Program HSB and XAF" - execute the Auto Programming function, then compare the buffer and device memory contents, then launch the function Program HSB & XAF from the Device Parameters sub-menu. -NWF Do not wait for completion of the function specified by the -F option. This option is incompatible with the -X option. -I Ignore errors that occur during programming operations. By default the On-the-Fly Control utility stops operations with the target device in case of any error. The -I option enables the operations regardless of the result that allows logging of all the errors that occurred. -T[+][W=] Get the programmer status ["Ready" or "Busy"]. The On-the-Fly Control utility returns the code 0 (zero) if the ChipProg stops and is ready for executing a programming operation, or 1 if the programmer is in the process of operating with the target device ("Busy"). If the '+' sign is present in the -T option declaration then, if the programmer operates on the target device, a current function name (Read, Program, etc.) will be output to the Console window along with the percentage of the function being executed. For example: Program, 87%. © 2015 Phyton, Inc. Microsystems and Development Tools 102 ChipProg Device Programmers The optionally specified [W=] parameter sets a delay before getting the programmer status. Delays allow checking the programmer status within a settable period of time. Examples: -T - get the programmer status "Ready" or "Busy" -TW=1000 - wait for 1 sec, then get the programmer status "Ready" or "Busy" -T+ - get the programmer status "Ready" or "Busy". Then output to the Console window the name of the currently executed function and the percentage of its completion. An example of the function status string: Read 56%. -V=[0 | 1] Hide (-V=0) or make it visible (-V=1) in the ChipProgUSB main window. If the ChipProgUSB main window is hidden, the programmer will be invisible among other open applications in the Applications tab of the Windows Task Manager. So, in order to close the running ChipProgUSB program you will have to open the Process tab of the Task Manager, then locate and highlight the programmer executable name (UprogNT2.exe) and click the End Process button. 4.4.2 -X Stop the programmer and quit the program. To quit the ChipProgUSB program, the programmer must complete all the previously launched operations on the device. So the On-the-Fly Control utility waits for completing the current programming operation for a timeout period specified by the -M option. If this option is omitted or the timeout period expired the On-the-Fly Control returns an error code. -? or -H Output a brief description of the On-the-Fly Control utility options and quit. On-the-Fly utility return codes After completion, the On-the-Fly Control utility issues a return code of 0 (zero) in case of success. Otherwise it issues one or more of the error codes listed below. It returns the codes to the application or to a batch-file that called the utility. There is one exception that is associated with the option –T. Then the utility returns 0 if the programmer was stopped and 1 if it is operating on the target device. The utility prints errors on the Console and, optionally, writes them to the log file and/or Windows clipboard. Return codes: 0 Successful completion. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 1 The –T option was specified and the programmer is busy executing an operation on device. 2 Wrong option, parameter or parameter format in the command line. 3 Error calling a Windows API function; it could be caused by an abnormal exit of the programmer software. 4 The programmer application was closed while the On-the-Fly Control utility has been waiting for a response. Possibly a user has forced closing the program. The timeout, which was set by the -M option for stopping the programmer, has expired. 5 6 7 The programmer was launched in the gang mode but an option in the On-the-Fly Control utility tried launching a function not applicable for gang programmers. Cannot execute a required action because the programmer is busy with operation on the target device. 8 Failed to load the project specified by the -P option. 9 Failed to launch the script specified by the -S option. 10 General error. 11 The programming function specified in the -F option does not exist for the selected device. 12 An error occurred while the programmer operated with the target device. 13 14 4.4.3 103 The programmer could not complete an operation and close the program after receiving the -X option request. More than one device programmers is running. This requires the -R option use. On-the-Fly Control example ; Launch the programmer in the diagnostic mode unless it is already working -L"C:\Program Files\ChipProgUSB\5_25_00\UProgNT2.exe /g1" ; Append records to the log -G+ ; If the programmer is busy wait for 30 seconds max -M=30 ; Load the project. The FuelPump-08.upp project file locates in the folder D:\Projects -PD:\Projects\FuelPump-08.upp ; Execute the csm-16.cmd script located in the folder D:\Scripts -SD:\Scripts\csm-16.cmd © 2015 Phyton, Inc. Microsystems and Development Tools 104 ChipProg Device Programmers ; Execute auto programming using parameters defined by the FuelPump-08.upp project -F* © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 4.5 105 Script Files The ChipProgUSB program can execute so-called script files in a way similar to how the MS DOS executes the batch files. The script file mechanism was implemented in the ChipProgUSB in order to automate usage of the ChipProg programmers. By means of script files you can, for example, automate loading files to the programmer buffers, calculating checksum, launching device programming, pausing programming in case of an error, manipulating windows and performing many other operations. It is also possible to display various messages in the Console window or other special windows generated by the script itself, including displaying graphical data in special windows; to create user's custom menus, etc. The script language is similar to C program language; almost all C constructions are supported, except for structures, conjunctives and pointers. There are also many built-in functions available, such as printf(), sin() and strcpy(). The extension of script source file is .CMD. When the ChipProgUSB program starts, it searches for the script with the reserved name START.CMD. So, if you wish the ChipProgUSB program would automatically perform some operations immediately after you launch the program, you can create a special script. The ChipProgUSB program begins searching for the START.CMD in the current directory on the disc, then it searches for this script in the directory where the ChipProgUSB.exe file resides. If the START.CMD is not located then a default ChipProg shell will open. The scrips controls and associated dialogs and windows are concentrated under the Script menu. The major dialog that controls scripts is the Script Files dialog. See also: Simple example of a script file How to write a script file How to start a script file How to debug a script file Description of Script Language Script Language Built-in Functions Script Language Built-in Variables Difference Between the Script Language and the C Language Alphabetical List of Script Language Built-in Functions and Variables 4.5.1 The Script Files Dialog This dialog is used for controlling the Script Files, it allows to start, stop and debug scripts. © 2015 Phyton, Inc. Microsystems and Development Tools 106 ChipProg Device Programmers In the upper window of this dialog you see the list of loaded script files with the current state of each file. Any script can be in one of the following states: State of File Description Stopped Execution of the script file is temporarily stopped. Running The script file is being executed. Waiting The script is waiting for an event. This state is initiated by calling certain wait functions in the script file text (for example, Wait). Cancelled The script execution is terminated, but the script file is not yet unloaded from the memory. To select a script file, highlight its name in the window. The four buttons on the right of the list control the highlighted script: Button Description Terminate Unloads the selected script file if it can be unloaded. Otherwise, it sets up the Unload Request flag for the selected script that then goes to the Canceled state. Terminate All Unloads all script files visible in the window. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Restart Restarts a highlighted script file. Debug Switches to the Debugger mode for the highlighted script file. This command stops execution of the script and opens it in the source window of the script for debugging. If the script is in the wait state, then execution will immediately stop after the script returns from the Waiting status. 107 When you use several script files simultaneously and unload or restart some of them, remember that script files can share global data and functions. If one script accesses data or the functions belonging to another one that is already unloaded, then the script interpreter will issue error messages and the active script file will be also be unloaded (terminated). The buttons and fields in the lower part of the dialog box control the script files starting: Element of dialog Description Script File Name Specifies a name of the script file to be loaded. You can either typed in the file name with a full path to the box or to take it from the drop-down history list or browse it from a computer disc. Browse Opens the Load/Execute Script File dialog for locating and loading script files into the Script File Name box. Defines Defines the processor text variables for compilation. For more information, see below the Processor text variables. #include-file Directories Specifies the directories in which the script file will search for the files specified in the #include directive(s). To specify more than one directory, separate them by semicolons. The current directory is scanned as well. Debug (open Script Source window) If this box is unchecked, a script file automatically starts execution upon the file loading. If the box is checked, then upon loading a script file, the program immediately opens the window for debugging the script. See also How to Debug a Script File. Auto-save Script File Sources If this box is checked when you click the Start button ChipProgUSB automatically saves the source texts of all script files visible in the Script Source windows. Start Starts the script file specified in the Script File Name box. Processor text variables The content of the Defines text box is equivalent to the #define directive in the C language. For example, if you type DEBUG in this text box, the result will be as if the #define DEBUG directive is placed in the first line of the script source text. You can specify values for variables. For example, DEBUG=3 is equivalent to #define DEBUG 3. You can list several variables in a line and separate them with semicolons. For example: DEBUG;Passes=3;Abort=No Also, see Predefined Symbols at the Script File Compilation. 4.5.2 How to create and edit script files A script file is similar to a source program text written in programming language (C, for example), e.g. a © 2015 Phyton, Inc. Microsystems and Development Tools 108 ChipProg Device Programmers script file can be created and edited either in the Editor window by the ChipProgUSB built-in editor or by any other editor. You can allocate script files in your work directory or in the directory where the ChipProgUSB program is installed. Normally the Editor toolbar that collects all the edit function buttons is hidden. To create a customized editor toolbar right click on the blank area of the main toolbar, select the Customize line in the drop-down menu and check the boxes of the editor functions which you would like to make visible. To open a new script file for editing open the Script menu > Editor window > New. This will open a blank window below. Right clicking within the window pops up the Editor command menu that includes the buttons which you can bring up to the local Editor toolbar. Here the toolbar is shown above the window. Now you can compose your script right in the window. Note that you should not use the punctuation characters (braces, dash, etc.) in the script file name. When you complete the file composing click on the Save button on the window local toolbar or on the Editor toolbar and the program will prompt you to name the script file and to specify its location. 4.5.2.1 The Editor Window Commands of this menu refer to the currently active Edit window. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Button 4.5.2.2 Command Description New Opens the Editor window for a new script file. Open... Opens the Open file dialog to load a script file for editing. The file name and path can be either entered or browsed here. Save Saves the file from the currently active window to a disc. Save As... Opens the Save file as... dialog. Print Opens the standard Print dialog for the default printer. You can print an entire file or a selected text block. Properties.. The common properties for open files. 109 Text Edit Commands of this menu refer to the currently active Edit window. Button Command Description Undo Undoes the last text editing action executed in this window. For example, if the last action deleted a line, then the deleted line will be restored. The number of steps provided by the Undo function is set in the of the Configure > Editor Options > General tab. Copy Copies the marked block to the clipboard. The text format in the clipboard is standard and the copied block is accessible to other programs. Cut Removes the marked block to the clipboard.. Paste Copies the block from the clipboard, starting at the cursor position. Clipboard History/ Repository Opens the Clipboard History/Repository dialog. Append to Clipboard Copies and appends the marked block of text to the block in the clipboard. Cut & Append to Clipboard Cuts the marked block of text and appends it to the block in the clipboard. Fast Copy Copies a block to a specified position in the same window. Fast Move Moves a block from one position in the window to another position in this window. Block Off Unmarks a marked text block. Search Opens the Search for Text dialog. Next Search Repeats search with the parameters used in the previous search. © 2015 Phyton, Inc. Microsystems and Development Tools 110 ChipProg Device Programmers Replace Opens the Replace Text dialog. Display Multi-file Search Results Re-opens the last multi–file search results in the Multi-File Search Results dialog. Display from line number... Opens the Display from Line Number dialog for you to specify a line number. Source text will be displayed from this line. Set bookmark... Opens the Set Bookmark dialog to set a local bookmark. Retrieve bookmark Opens the Retrieve Bookmark dialog to retrieve a local bookmark. Condensed mode Toggles the Condensed display mode on and off. Condensed mode setup Opens the Condensed Mode Setup dialog. Line numbers on/off Toggles the availability of the line numbers on and off. Return to last editing context Activates the most recently edited Source window, and places the cursor in its final position during the edit. 4.5.2.2.1 The Search for Text Dialog This dialog sets complex criteria and parameters for searching text in files. This dialog and the Replace Text dialog have a number of common parameters, which function in the same way in both dialogs. To specify file names, you can use one or several wildcards. Also, the names may contain paths. You can search in more than one file at once by using parameters of the Multi-File Search area. Element of dialog Description String to Search for Specifies the text string to search for. Case Sensitive This box is unchecked by default. Checking this box specifies that the case of the string is to be matched. Whole Words Only This box is unchecked by default. If checked, the editor will search only for whole words: the string will be found only if it is enclosed between punctuation or separation characters (spaces, tabulation symbols, commas, quotation marks, etc.). Regular Expressions This box is unchecked by default. Checking of this box specifies that the search string is a regular expression. Global Search the entire file for the string. Enabled by default. Selected Text Search the string in the selected block. From Cursor Search from the current cursor position. Entire Scope Search from the beginning or end of the file (depending on the search direction). Enabled by default. Perform Multi-File Search If this box is checked the editor will search in all project files (see the notes below). If the box is unchecked, then the search will be performed in the current Source window only. Search All Source If this box is checked the editor will search in all the source files included in © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 111 Files in Project the project. Include Dependency Files If this box is checked the editor will search in all the source files included in the project and all files on which the source files depend, whether explicitly or implicitly. For C language, these are the header files (*.h). Search Wildcard(s) Check this box to search for one or several wildcards specifying the files to be searched. Separate wildcards with semicolons. No quotes are required to denote Windows-style long names. Example: *.txt;*.c;c:\prog\*.h. This option and the Search All Source Files in Project option act independently of each other: you can search in all files of the project AND in other files that comply with the specified wildcard(s). Search Subdirectories If this box is checked the editor will search in subdirectories of all the directories specified by the Search All Source Files in Project option and by wildcards. Starting Path Begin search from the directory specified in this text box. This directory serves as the common path and is useful when there are several wildcards such as the following ones: c:\prog\text\source\*.txt;c:\prog\text\source\*.doc In this case, make use of wildcards (*.txt;*.doc) and common path (c:\prog\text\source). Notes 1. When you search in the file opened in the Source window, then only the window buffer will be searched, not the file on disk. 2. Multi-file search is performed in all source files of the project. Upon finishing, the Multi-File Search Results dialog remains open. 4.5.2.2.2 The Replace Text Dialog This dialog sets the parameters for the search-and-replace operation. This dialog and the Search for Text dialog have a number of common parameters, which function in the same way in both dialogs. To specify file names, you can use one or several wildcards. Also, the names may contain paths. You can search in more than one file at once by using parameters of the Multi-File Search area. Element of dialog Description Text to Search for Specifies the text string to look for (search string). Replace with Specifies the text string to replace the found one. Case Sensitive This box is unchecked by default. Checking this box specifies that the case of the string is to be matched. Whole Words Only This box is unchecked by default. If checked the editor will search only for whole words: the string will be found only if it is enclosed between punctuation or separation characters (spaces, tabulation symbols, commas, quotation marks, etc.). Regular Expressions This box is unchecked by default. Checking of this box specifies that the search string is a regular expression. Prompt at Replace This box is checked by default and if it is checked the editor will always pop up the Confirm Replace dialog requiring your permission to replace the found text. If unchecked the editor will automatically replace the searched-and © 2015 Phyton, Inc. Microsystems and Development Tools 112 ChipProg Device Programmers found text. Global Search the entire file for the string. Enabled by default. Selected Text Search the string in the selected block. From Cursor Search from the current cursor position. Entire Scope Search from the beginning or end of the file (depending on the search direction). Enabled by default. Perform Multi-File Search and Replace This box is checked by default and if it is checked the editor will search in all project files (see the notes below). If the box is unchecked, then the search will be performed in the current Source window only. Search All Source Files in Project If this box is checked the editor will search in all the source files included in the project. Include Dependency Files If this box is checked the editor will search in all the source files included in the project and all files on which the source files depend, whether explicitly or implicitly. For C language, these are the header files (*.h). Search Wildcard(s) Check this box to search for one or several wildcards specifying the files to be searched. Separate wildcards with semicolons. No quotes are required to denote Windows-style long names. Example: *.txt;*.c;c:\prog\*.h. This option and the Search All Source Files in Project option act independently of each other: you can search in all files of the project AND in other files that comply with the specified wildcard(s). Search Subdirectories If this box is checked the editor will search in subdirectories of all the directories, which are specified by the Search All Source Files in Project option and by wildcards. Starting Path Begin search from the directory specified in this text box. This directory serves as the common path and is useful when there are several wildcards such as the following ones: c:\prog\text\source\*.txt;c:\prog\text\source\*.doc In this case, make use of wildcards (*.txt;*.doc) and common path (c:\prog\text\source). Notes 1. When you search in the file opened in the Source window, then only the window buffer will be searched, not the file on disk. 2. Multi-file search is performed in all source files of the project. Upon finishing, the Multi-File Search Results dialog remains open. 4.5.2.2.3 The Confirm Replace Dialog This dialog requires your permission to replace a found string. You can turn the prompt on/off by checking/ clearing the Prompt at Replace box in the Replace Text dialog. Button Function Yes Replace the found string. No Cancel this replacement. If the procedure is started with the Change All button for all occurrences in the search area, then the search-and© 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 113 replace process will continue. Non-Stop From this moment, replace all found strings in this file without prompt. Cancel Cancel the search-and-replace process. Skip this File Stop search in this file and switch to the next one. Replace in All Files Replace all occurrences in all other files without confirmation. Move cursor to the Yes/No Buttons When this box is checked the cursor will be automatically placed on the Yes button on each inquiry for confirmation. 4.5.2.2.4 The Multi-File Search Results Dialog This dialog displays the multi-file search results. To learn about the multi-file search, see the Search for Text dialog. The List of Matched Files shows the files where the search string is found. The file name is on the left and its directory is on the right. The line with green text right under this box displays information about the file selected in the box. "File in memory" means that the file is opened in the Source window. General information from FAT means the file is on disk, not loaded. The Preview area shows the source line with the found text string. The Sort Files by area includes a radio button with four file sorting options. When the Consider Directory box is checked, the files are sorted with respect to their directories. The Edit button opens the selected file in the new Source window and places the cursor on the line with the found string. The found string is marked with the background color. To check if there are other occurrences of the sought string in this file, press Ctrl+R or use the Next Search command of the Edit menu. The Close button closes the dialog but the results are not lost. To reopen the dialog use the Display Multifile Search Results button. You can also use the same command of the Edit menu or press Shift+F5. The files in the List of Matched Files box, which are opened in the Source window, will be marked with asterisks on the left. 4.5.2.2.5 Search for Regular Expressions The text editor supports "regular expressions," which can be used to search for special cases of text strings. Regular expressions contain the control characters in the search argument string: ? Means any one character in this place. Example: if you specify ?ell as the search string, then "bell," "tell," "cell," etc. will be found. % Means the beginning of line. The characters following '%' must begin from column 1. Example: %Counter - find the word "Counter," which begins at the first column. $ The end of line. The characters preceding the '$' should be at the last positions of the line. Example: Counter$ - find the word "Counter" at the line end. @ Match the next character literally; '@' lets you specify the control characters as usual letters. Example: @? - search for the question mark character. \xNN The hexadecimal value of the character. Example: \xA7 - find the character with the hexadecimal code of A7. + Indefinite number of repetitions of the previous character. For example, if you specify 1T +2, then the editor will find the lines containing "1" followed by "2", which are separated with any number of repetitions of the letter T. [c1-c2] Match any character in the interval from c1 to c2. Example: [A-Z] means any letter from A to Z. © 2015 Phyton, Inc. Microsystems and Development Tools 114 ChipProg Device Programmers [~c1-c2] Match any character whose value is outside the interval from c1 to c2. Example: [~A-Z] means any character except for the uppercase letters. text1|text2 The "|" character is the logical "OR" and the editor will look for either text1 or text2. Example: LPT|COM|CON means search for "LPT" or "COM" or "CON." 4.5.2.2.6 The Set/Retrieve Bookmark Dialogs Bookmarks help you to return to a marked cursor position in a source file. You can set and retrieve up to 10 local bookmarks. Every local bookmark has an individual numbered button assigned to it. To open the Set Bookmark dialog, press Alt+[. To open the Retrieve Bookmark dialog, press Alt+]. To set/retrieve a bookmark, press its numbered button. The number of the bookmarked line, the bookmark position in the line (in brackets) and the text of the line are shown at the right of the button. Local bookmarks are stored in the configuration file and you can work with them in the next session. 4.5.2.2.7 Condensed Mode In the Condensed mode, only lines that satisfy a specified criterion are displayed in the window. There are two available criteria: the line must contain a given sub-string; the first non-space character in a line must be at a specified position (column). Examples: (a) with the sub-string criterion and the sub-string set to "counter," only the lines containing the word "counter" will be displayed; (b) with the second criterion and the position set to four, only the lines in which text begins at column 4 will be displayed. The Condensed mode brings the lines having some common feature to "one place." If you attentively follow a rule to begin the declaration of data at position 2, procedures at position 3, and interrupt handlers at position 4, then the Condensed mode will help you to find a necessary declaration. If you comment certain lines with the same or similar comments and use the Condensed mode with sub-string, you will be able to benefit from your composing style. In the Condensed mode, you can move the cursor just as in the normal mode. How to control The criterion for display is set in the Main menu > Script > Text Edit > Condensed Mode Setup dialog. To toggle the Condensed mode on/off, use the Edit menu command, the Condensed Mode command of the local menu or the F12 hotkey. To exit the Condensed mode, press Esc. When you exit, the cursor returns to the position at which it was before the mode was turned on. To exit the mode and remain in the line from which you moved the cursor while in the mode, press Enter or begin editing the line. 4.5.2.2.8 The Condensed Mode Setup Dialog This dialog sets up the parameters for the Condensed mode of the Source window. The Display Lines of Text area has radio buttons for switching between two alternative criteria for condensing text in the Source window: Containing String and Where First Non-blank Column Is: 1. If you check the Containing String radio button the Source window will display only the lines with text that match the sub-string specified in the text box at the right. Additionally, you can specify that the case should be matched the case, that whole words only should be used, and that the sub-string is a regular expression. 2. If you check the Where First Non-blank Column Is radio button, the Source window will display the lines © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 115 where text begins from the position specified in the Column box. Then you should select one of four options by checking an appropriate radio button: Equal to - the first non-space character should be exactly in the specified column. For example, if you specify position number 2, the window will display only the lines whose text begins in column 2. Not Equal to - the first non-space character should be in any column except the position specified here. For example, if you specify position number 2, the window will not display all the lines beginning in this column. All other lines will be displayed. Less than - display only the lines in which text begins at a position less than the specified one. Greater than - display only the lines in which text begins at a position greater than the specified one. When you have completed setup click OK to switch the Source window to the Condensed mode. 4.5.2.2.9 Automatic Word Completion It is normal for words (labels, names of variables) to be repeated within a limited part of a file. In such cases, the Source window helps you finish typing the whole word. If the cursor is at the end of line that is being composed, then upon typing a letter, the editor scans the text above and below the current line. If a word beginning with the letters that you have just typed is found in these lines, then the editor will "complete" this word for you by writing the remaining part of the word from the current cursor position. If this word suits you, press Alt+Right (Alt+) and the editor will append the remaining part of the word to the text as if you have typed it yourself. If the word doesn’t suit you, just continue typing and the editor will accept whatever you type. At any point during the typing, you may press Alt+Right to accept the editor’s completion suggestion. You can press Alt+Right at any time and not only when the editor offers you to complete a word. In this case, the editor will open a list of words that begin with the typed letters. If the list does not include an applicable word, just ignore the prompt. The right pane of the Source window, if it is open, also displays the word completion list. How to control To disable automatic word completion, uncheck the Automatic Word Completion box in the Main menu > Configure>Editor Options> General tab. When the box is checked, a number placed in the Scan Range box defines the number of lines for the editor to scan. The default is 24 lines below and 24 lines above the current line. When this parameter is greater than the total number of lines in the file (for example, 65535), then program composing will become slower because the whole file will be scanned. 4.5.2.2.10 Syntax Highlighting When the Source window displays the source text, it marks different C language constructions with different colors. This feature improves readability. The following constructions are highlighted separately: Punctuation and special characters: ( ) [ ] { } . , : ; and so on. Comments that begin with // are highlighted. Comments enclosed in the /* */ character pairs are highlighted, if the opening and closing pairs are placed in the same line. Strings enclosed in double or single quotation marks. Keywords of the C language (for, while, and so on). Type names of the C language (char, float, and so on). Library function names of the C language (printf, strcpy, and so on). How to control You can disable syntax highlighting through the Main menu > Configure>Editor Options> General tab>Syntax Highlighting flag In addition, you can change the color for each construction. To do the latter, use any of the following items: Main menu > Configure> Environment > Colors tab. © 2015 Phyton, Inc. Microsystems and Development Tools 116 ChipProg Device Programmers 4.5.2.2.11 The Display from Line Number Dialog Use this dialog to display the source file in the active Source window starting with a specified line. Enter the line number or select any previous number from the History list. The number of the first line is 1. 4.5.2.2.12 The Quick Watch Function The Quick Watch function works as follows: if you roll the mouse pointer over a variable name in the Source window or the Script Source window, a small box containing the value of the variable will be opened. This box disappears upon moving the mouse off the object. 4.5.2.2.13 Block Operations Block operations apply an editing action to more than one character at once. The Source window supports persistent blocks and performs a full range of operations with standard (stream), vertical (column) and line blocks of text. Non-persistent blocks In this mode, once a block is marked, you have to immediately carry out an operation with it (delete, copy, etc.), because any movement of cursor takes the marking off the block. If a block is marked, then any entered text will replace the block with the typed text. Persistent blocks In this mode, the block remains marked until the marking is explicitly removed (hot key Shift+F3) or the block is deleted (Ctrl+X). The Paste operation for persistent blocks has specifics. Two additional block operations are available for persistent blocks: fast copy and fast move. These operations do not use the clipboard and require fewer manipulations of the keyboard. To enable the persistent block mode check the namesake box on the Main menu > Configure>Editor Options> General tab. Standard blocks The standard (stream) block contains a "text stream" that begins from the initial line and column of the block and ends at the final line and column. The Standard blocks is enabled by default. Line blocks The line block contains whole lines of text. To mark a line block, put the cursor anywhere in the first line and press Alt+Z; then put the cursor anywhere in the last line of the block and press Alt+Z once more (the latter is not necessary if the block is to be immediately deleted or copied to the clipboard). Line blocks are always available. Vertical blocks The vertical block contains a rectangular text fragment. Characters within the block, which goes beyond the end of the line, are considered to be spaces. Vertical blocks are convenient in cases like the following example of source text: char char char char Timer0 far ; Timer1 far ; Int0 far ; Int1 far ; Assume the word "far" is to be moved to the place right after the word "char" in each line. The stream blocks are of little help here. However the task can be easily done with one vertical block. Mark the persistent vertical block containing the word "far" in each line, place the cursor on the first letter of word "Timer0" and press Shift+F2 (fast move the block): © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 117 Checking/Clearing the Vertical Blocks box toggles between the vertical block and the stream block modes in the the Main menu > Configure>Editor Options> General tab. The standard blocks are enabled by default; i.e. the Vertical Blocks box in the Editor Options dialog is unchecked by default. The line blocks are always accessible, irrespective of the status of the Vertical Blocks box. To mark a block, either move the mouse while pressing its left button or use the arrow keys of the keyboard while pressing the Shift key. To unmark the block, press Shift+F3. Copying / moving blocks A marked block can be copied or moved within the same Source window in two ways: directly (fast copying, fast moving) and through the clipboard (Copy/Cut-n-Paste). Copying and moving blocks between the Source windows, or to another application should always be made through the clipboard. Note. The result of copying the stream or vertical non-persistent block depends on the INSERT mode. If the mode is enabled, then the block is inserted into the text, starting at the cursor position; otherwise the copied block overwrites the text on an area of equivalent size. Fast copying / moving Fast copying (moving) the blocks in the same window directly (without the clipboard) is convenient because it requires pressing of keys only once per operation. Mark a persistent block, then place the cursor at the destination position and press Shift+F1 to copy, or Shift+F2 to move. 4.5.3 How to start and debug script files Starting scripts Scripts can be started and restarted in several ways. The easiest one uses the commands of the Script Files dialog: to start a new script enter the file name into Start new script file box and click the Start button in the bottom part of the dialog box; to restart a stopped script highlight its name in the dialog window that displays all the loaded scripts and click the Restart button. A script can be also started by means of the StartCommandFile() function executed by another running script. Debugging scripts A script can be started for an immediate execution (read above) and can be launched in the Debug mode that usually is necessary while you master the script and need to check if it properly works and make necessary corrections in it. To start the script debugging highlight its name in the Script Files dialog window and click the Debug button - the program opens the window with the script file's editable text. The window is split in two panes: the left pane displays the script text, the right one is the AutoWatches pane. If you check the Debug box then every time when you start a script it will automatically switch to the Debug mode, stop the script execution and open the window with the script file. © 2015 Phyton, Inc. Microsystems and Development Tools 118 ChipProg Device Programmers Syntax constructions and the lines, which correspond to the current PC value (blue strip) and the breakpoints (red strips), are highlighted in the script file text (for more information, see Syntax Highlighting). Local menu and toolbar The local menu window contains the following commands, most of which are duplicated by the corresponding buttons on the window toolbar: Command Window Toolbar Description Step Step Executes one operator of the script. Run Run Starts continuous execution of the script in the window. Then the script execution can be broken either by hitting a set breakpoint or by the command Stop. Run to Cursor Executes the script up to the line where the caret is positioned (the corresponding address). Alternatively, you can double-click the line to carry out this command. Stop Stops the running script. Origin Origin Displays the source text from the line whose address corresponds to the script file Program Counter. This operation is not available when source text lines do not exist for the program addresses. New PC New PC Sets the script file’s Program Counter value to the address corresponding to the line where the caret is positioned. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Toggle Breakpoint Break Sets up or clears the breakpoint at the address corresponding to the line where the caret is positioned. When you execute the Run or Run to cursor command the program execution will be stopped at the breakpoint. Add to Watches Window +Watch Opens the Watches window (if not yet opened) and places the name at the caret position into it. Restart Restart Restarts the highlighted script. 119 Note. To get help on a function or variable, point to the function or variable with the cursor and click. For more information, see How to Debug a Script File and Script Files. For customizing the ChipProg user interface and debugging purposes scripts themselves can open two types of additional windows: the User window and the I/O Stream window. 4.5.3.1 The AutoWatches Pane The ChipProgUSB program displays a visible portion of the script in the Script window. The names of variables, called AutoWatches, which belong to the visible script lines, are listed together with their current values in the right pane of the window. When you scroll through the Script window the contents of the AutoWatches pane automatically refreshes. The AutoWatches can be presented in the pane in the binary, hexadecimal, decimal or ASCII formats. To set the format you need to click the Setup button on the pane local toolbar or right click on the pane space to open the local menu. 4.5.3.2 The Watches Window While the AutoWatches pane of the Script window displays values of the script variables visible in the current window scope you may want to monitor changing other explicitly specified script variables and expressions. To do so the ChipProgUSB allows opening the Watches windows. For each variable, the window displays its name, value, type and address, if any. A newly opened Watches window has one Main tab. You can add custom tabs (with the Display Options command of the local menu) or rename any existing tabs. The tabs operate independently of each other; each tab is functionally equivalent to a separate Watches window. However, if needed, you can open several Watches windows. Each of the above windows has the +Watch button on its toolbar. Clicking this button opens a dialog for adding a selected object to the Watches window. Grids in the Watches window For better readability the Watches window can be divided in cells by vertical and horizontal grid lines. Enable the grids to be visible within the Watches window by checking the corresponding boxes in the © 2015 Phyton, Inc. Microsystems and Development Tools 120 ChipProg Device Programmers Configure menu > Environment > Fonts tab. Local menu The window local menu contains the following commands, most of which are duplicated by corresponding buttons on the window toolbar. Command Description Add Watch Adds one or more objects to the window. Opens the Add Watch dialog to choose an object by name. Also, you can enter an expression as a name. Delete Watch Deletes a selected object from the Watches window. Delete All Watches Deletes all watches from the window. Modify Opens the Modify dialog to set a new value for a selected variable. Alternatively, just enter the new value. Move Watch Up Moves a selected watch up the list. Move Watch Down Moves a selected watch down the list. Display Options Opens the Display Options dialog to change the display settings for a selected object and also to add/delete tabs to/from the window. 4.5.3.2.1 The Display Watches Options Dialog Use this dialog to set the display options for the selected variable or expression in the Watches window. Element of dialog Description Watch Expression Contains a selected expression. The drop–down list contains the previously used expressions. Display Format Specifies the format for displaying a selected expression (binary, hexadecimal, decimal or ASCII). Pop-up Description Contains check boxes that let you choose formats for displaying popup SFR descriptions. Display Bit Layout If this box is checked the SFR bits will be displayed in the pop-up layout descriptions. Display Bit Descriptions Checking this box enables displaying the pop-up descriptions for the SFR bits, if any. Auto-size Name Field When this box is checked and when the vertical grid is visible (see note below), the window automatically adjusts the Name column width to fit the longest record in the column. Tabs Lists all the tabs present in the window. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Add Tab Opens the Add New Tab to Watches Window dialog for entering a new tab’s name. The window adds this new tab upon pressing OK. Remove Tab Removes the tab selected in the Tabs list. Edit Tab Name Opens the Edit Watch Window Tab Name dialog for editing the tab name. Global Debug/ Display Options Opens the Debug Options dialog. 121 Note. To make grids visible in the Watches window open the Configure menu, the Environment dialog, the Fonts tab and check corresponding boxes in the Grid field. 4.5.3.2.2 The Add Watch Dialog Use this dialog box to add symbol names (for example, a variable name or an expression) to the Watches window. The dialog contains a list of the symbol names defined in or known to the program. 4.5.3.3 Element of dialog Description Name or expression to watch: Enter into this box the symbol name or expression to be added. You can specify several names and expressions either manually (separated with semicolons) or by selecting in the list with the Ctrl key pressed. History The list of previous names and expressions. The User Window The User window is a window that can be created by means of the built-in OpenUserWindow function executed from the script itself. The User windows enable: drawing graphical objects (indicators, LEDs, buttons, arrows, etc. by means of the built-in graphical output functions; displaying texts in the window; responding to the events displaying in the User windows (see WaitWindowEvent). With this capability, you can organize window operations in the interactive mode. For more information, see Script Files. All functions working with windows (including the User window) obtain the window identifier (handle) as a parameter. Therefore, you can have several windows of this type opened at the same time. The User windows do not have a local menu. They only have toolbars with 16 buttons (0...F), and each button can be programmed to perform a certain function. Pressing a button generates the WE_TOOLBARBUTTON event. © 2015 Phyton, Inc. Microsystems and Development Tools 122 4.5.3.4 ChipProg Device Programmers The I/O Stream Window The I/O Stream window is a window that can be created by means of the built-in OpenUserWindow function executed from the script itself. Script files use windows of this type to display I/O streams in the form of text. The most usual examples of I/O streams are displaying the characters inputted from the PC keyboard and text messages outputting by the scripts. Also, you can reassign I/O streams to files and input data from files. The functions, which operate with windows (including the I/O Stream window), receive the window identifier (handle) as a parameter. Therefore, several windows of this type can be open at the same time. When the text display function sends text to this window, the window displays the text from the current cursor position. To begin the next line, this function outputs '\n' (the line feed character). The window features two text display modes: with the automatic line advance (Wrap) and without it. In the automatic line feed mode, every text line that does not fit in the window is wrapped to the next line. In the other mode, if the line does not fit in the window, its end will lie beyond the window border and will be invisible. The Wrap button in the toolbar toggles the window between these modes. The Clear button clears the window contents. Windows of this type do not have a local menu. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 4.6 123 Programming Automation via DLL Any ChipProg programmer can be controlled not only from the ChipProgUSB user interface but also from an external computerized environment, which is appropriate for programming automation. This chapter describes how to integrate a ChipProg programmer into an external environment by means of Phyton's proprietary Application Control Interface (hereafter ACI). Remember that use of the Application Control Interface requires the ChipProg to be driven from a PC under Windows XP, 7 or 8. 4.6.1 Application Control Interface What is the Application Control Interface? The ACI is a set of proprietary Phyton software elements that allows integration of the ChipProg programmers into an external computerized environment, for example Automated Test Equipment (ATE). The ChipProgUSB software includes three Application Control Interface components: 1) The ACI.DLL file that specifies a set of ACI functions, which can be invoked from external applications to perform programming operations. This DLL conforms completely to Microsoft's dynamically-linked shared library concept. 2) The aciprog.h header file written in the C/C++ language that lists all the ACI functions exported to the ACI.DLL.DLL and the structures associated with these functions. 3) A few program examples that control ChipProg programmers from external applications Requirements 1) The ChipProgUSB software must be installed on the computer that controls the ChipProg operations (hereafter the instrumental or host computer). The latest ChipProgUSB software version is available for free download from the http://www.phyton.com/htdocs/support/update.shtml webpage. 2) The ACI.DLL.DLL requires the Windows XP, Windows 7, or Windows 8 operating system. 3) It is necessary to position the windows.h file before the aciprog.h file in the application program. 32- and 64-bit Microsoft Windows OS - specific of use There is the difference in Application Control Interface use under control of the 32- and 64-bit Windows. 32-bit applications should use the ACI.DLL dll and the ACI.lib export library; 64-bit - ACI64.DLL and ACI64.lib respectfully. 32-bit applications can be used for working with Application Control Interface under control of either Windows versions: 32- and 64-bit. How does the Application Control Interface works? The ACI.DLL launches the programmer’s executable file by means of the ACI_Launch() function and then controls the ChipProgUSB software by calling other ACI functions. The ChipProgUSB executable, universal for all Phyton USB-hosted programmers, is UProgNT2.exe. Each ACI function, being called by an external application, sends back to this application a unique function return code. The return code constants - ACI_ERR_xxx - are defined into the aciprog.h file included in the ACI software set. © 2015 Phyton, Inc. Microsystems and Development Tools 124 ChipProg Device Programmers The ACI.DLL launches the programmer executable file by means of the ACI_Launch() function and then controls the ChipProgUSB software by calling other ACI functions. The ChipProg executable, universal for all USB-hosted programmers, is the UProgNT2.exe. Each ACI function, being called by an external application, sends back to this application a function return code. The return code constants - ACI_ERR_xxx - are defined into the aciprog.h file included into the ACI software set. An external application can call either an ACI function without any parameter (just by the function name) or by the function name with an added pointer to the parameter structure. The very first member of any structure is always the 'UINT size' parameter that defines the structure size. This insures compatibility of different ACI.DLL versions. The only exception is the ACI_IDECommand() function. Here we sacrificed uniformity of the structure format in behalf of simplicity of the pseudo-function declaration. Names of all the ACI objects (functions and structures) always begin with the prefix ACI. Names of the structure patterns complete with the suffix _Params. Numbers of the memory buffers and layers in memory buffers begin from zero. All addresses have a 64bit format and consist of two 32-bit halves (low and high), in order to be compiler-independent. For example, if the compiler recognizes the uint64 type of data, then the function call for the function that assigns a 64-bit memory buffer address in the structure ACI_Memory_Params, can be presented as: ACI_Memory_Params params; *((uint64 *)params.AddressLow) = 0x123456789ABC; Note! All addresses in the structures are shown in the format specified by the device manufacturer, i.e. in Bytes, Words, etc. For example, for any 16-bit microcontroller the address format is always a Word, not a Byte. In most cases, in a process in which the programming is under control of an external application, it is not necessary to make visible the ChipProgUSB graphical user interface (GUI). The ACI allows you to hide the ChipProgUSB GUI. However, it may be necessary to unhide the programmer GUI, or just some windows and dialogs, for setting up the programming environment and for debugging purposes (for example, for selecting the target device, loading the file, etc.). When the programming environment is set up, the ChipProgUSB user interface can be hidden to free more display space for the controlling application. How to control multiple device programmers by means of the Application Control Interface? It is possible to remotely launch an unlimited number of ChipProg programmers and to drive each of them individually via ACI. After launching a programmer, the ACI creates in the ACI.DLL a special unique object - "a connection". A particular connection is defined by the ConnectionID parameter that defines a particular device programmer running under ACI control. The ACI_SetConnection function allows for selection of a particular device programmer among others. Then, after the programmer is selected, all the ACI functions will serve only one of these connections; i.e. they all will affect one selected device programmer. If only one programmer is under control, the connection will be set automatically. It is important to remember that more than one ChipProgUSB can be launched in either the Singleprogramming or the Multi-programming or Gang-programming mode. If, for example, a cluster of six ChipProg programmers was launched in the gang mode, then a whole cluster driven by the ACI will represent a single connection, not six connections. So, in terms of the ACI, this cluster will have one ConnectionID. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 125 for example Automated Test Equipment (ATE) 4.6.2 ACI Functions In order to set up and control a ChipProg tool, the program running on the instrumental computer calls the Application Control Interface functions listed in the matrix below. Most of these functions are grouped in "bidirectional couples" (In-Out or Get-Set). Calling some Application Control Interface functions requires structures that specify memory locations, pointers and other objects affiliated with the called function, while other functions do not require any structures. Here is the list of the ChipProg Application Control Interface functions: © 2015 Phyton, Inc. Microsystems and Development Tools 126 ChipProg Device Programmers Application Control Interface function nam e Brief description Associated w indow s and dialogs Associated Application Control Interface structures 1. ACI functions that start and stop programming sessions ACI_Launch Starts the ChipProgUSB program. This function must alw ays be the very first in the chain of other Application Control Interface functions that form the programming session. NA ACI_Launch_Params ACI_Exit Closes the ChipProgUSB program. This function must alw ays be the last one in the chain of other Application Control Interface functions. It completes the external control session. NA NA 2. ACI functions that configure the programmer or get its current configuration ACI_LoadConfigFile ACI_SaveConfigFile Loads the programmer configuration parameters from the host computer to the programmer. Saves the programmer's current configuration parameters to the host computer. NA ACI_Config_Params NA ACI_Config_Params 3. ACI functions that get the target device properties or set them ACI_GetDevice ACI_SetDevice Gets the manufacturer's name (brand) and the part number of the device currently being programmed from the programmer to the host Select Device ACI_Device_Params computer. Sets the manufacturer's name and the part number of the device to be programmed in the programmer. Select Device ACI_Device_Params 4. ACI functions that get current parameters of the buffers and layers or configure them ACI_GetLayer Gets the parameters of a specified memory buffer and layer from the programmer to the host computer. Buffer Dump ACI_Layer_Params ACI_CreateBuffer Creates a memory buffer w ith specified parameters in the programmer. Buffer Dump ACI_Buffer_Params ACI_ReallocBuffer Changes a size of the layer #0 in a specified memory buffer in the programmer. Buffer Dump ACI_Buffer_Params 5. ACI functions that read the content of the buffer layer or write into it ACI_ReadLayer ACI_WriteLayer Reads data from a specified memory buffer in the programmer to the host computer. Writes data into a specified memory buffer of Buffer Dump ACI_Memory_Params Buffer Dump ACI_Memory_Params © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options Application Control Interface function nam e Brief description 127 Associated w indow s and dialogs Associated Application Control Interface structures Buffer Dump ACI_Memory_Params the host computer to the programmer memory buffer. Fills a w hole selected layer of a specified memory buffer w ith a specified data pattern. ACI_FillLayer 6. ACI functions that get programming parameters from the programmer or set them in the programmer ACI_GetProgrammingParams Gets current programming parameters from the programmer to the host computer. Program Manager > Options ACI_Programming_Params ACI_SetProgrammingParams Sets programming parameters from the host computer to the programmer. Program Manager > Options ACI_Programming_Params 7. ACI functions that get device-specific programming options from the programmer or set them in the programmer ACI_GetProgOption Gets current programming options from the programmer to the host computer. Device and Algorithm Parameters ACI_ProgOption_Params ACI_SetProgOption Sets programming options from the host computer to the programmer. Device and Algorithm Parameters ACI_ProgOption_Params Device and Algorithm Parameters ACI_ProgOption_Params ACI_AllProgOptionsDefault Sets default programming options and programming algorithms in the programmer. 8. ACI functions that control programming operations Initiates a specified programming operation, keeping under control its successful completion or failure. It controls a single programmer. Program Manager ACI_Function_Params Initiates a specified programming operation and then does not check the operation result. It controls a single programmer. Program Manager ACI_Function_Params Used to control multiple device programmers. Initiates auto programming in the gang (multi-programming) mode. Program Manager ACI_GangStart_Params ACI_GetStatus Gets a current programmer status information. Program Manager ACI_PStatus_Params ACI_TerminateFunction Terminates a current programming operation. Program Manager NA ACI_GangTerminateFunction Terminates a current programming operation Program ACI_GangTerminate_Para ACI_ExecFunction ACI_StartFunction ACI_GangStart © 2015 Phyton, Inc. Microsystems and Development Tools 128 ChipProg Device Programmers Application Control Interface function nam e Brief description Associated w indow s and dialogs on a specified site of the gang programmer. Manager Associated Application Control Interface structures ms 9. ACI functions that save files from the programmer and load files to the programmer ACI_FileSave Saves a specified file from a specified buffer's layer of the programmer into the instrumental computer. Buffer Dump ACI_File_Params ACI_FileLoad Loads a specified file from the instrumental computer to a specified buffer's layer in the programmer. Buffer Dump ACI_File_Params 10. ACI functions that display programmer's windows and dialogs for setting up and debugging external programming sessions 4.6.2.1 ACI_SettingsDialog Displays the programmer Preferences dialog. Configure > Preferences ACI_SelectDeviceDialog Displays the Select Device dialog. Select Device NA ACI_BuffersDialog Displays the memory buffers setting dialog. Buffer Dump NA ACI_LoadFileDialog Displays the file loading dialog. Buffer Dump NA ACI_SaveFileDialog Displays the file saving dialog. Buffer Dump NA NA ACI_Launch ACI_FUNC ACI_Launch(ACI_Launch_Params * params); Description This function launches the ChipProgUSB software. Optionally this ACI function can launch the programmer with a specified command line key and load the file that will configure the ChipProg hardware. Note! This ACI function must always be called before any other ACI function ! 4.6.2.2 ACI_Exit ACI_FUNC ACI_Exit(); Description Call of this function stops the ChipProgUSB software. In most cases the programmer practically immediately stops running. Sometimes, after calling the ACI_Exit function, it continues working for a while to correctly complete an earlier launched process. After all, the ChipProg will stop and quit itself after finding that the controlling process has ended. It is possible, however, that the ChipProgUSB software will keep running even after the control process © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 129 has completely stopped. This is an abnormal situation and, as a result, it will be impossible to reestablish communication with the programmer hardware by launching the ACI_Launch function. In this case you should manually close the ChipProgUSB program via the Windows Task Manager. . 4.6.2.3 ACI_LoadConfigFile ACI_FUNC ACI_LoadConfigFile(ACI_Config_Params * params); Description This function loads the ChipProg configuration parameters that include all the settings available via the ChipProgUSB dialogs (memory buffer configurations, programming options, test of the device insertion, etc.). The ChipProgUSB program automatically saves some programming options and settings, including the type of selected device, the device parameters, the start and end addresses of the device being programmed, the buffer start address, and a set of the Auto Programming commands. Then it automatically restores these parameters when the user changes the device type. See also: ACI_SetProgrammingParams, ACI_SetProgOption, ACI_GetProgrammingParams, ACI_GetProgOption, ACI_SaveConfigFile 4.6.2.4 ACI_SaveConfigFile ACI_FUNC ACI_SaveConfigFile(ACI_Config_Params * params); Description This function saves the ChipProg options specified in the tab Option of the Program Manager window (memory buffer configurations, programming options, test of the device insertion, etc.). The ChipProgUSB program automatically saves some programming options and settings including a type of the selected device, the device parameters, the start and end addresses of the device being programmed, the buffer start address, and a set of the Auto Programming commands and then automatically restores these parameters when the user changes the device type. См . также: ACI_SetProgrammingParams, ACI_SetProgOption, ACI_GetProgrammingParams, ACI_GetProgOption, ACI_LoadConfigFile 4.6.2.5 ACI_SetDevice ACI_FUNC ACI_SetDevice(ACI_Device_Params * params); © 2015 Phyton, Inc. Microsystems and Development Tools 130 ChipProg Device Programmers Description This function chooses the device to be programmed. Along with the device type, the function automatically loads the device parameters, start and end addresses and the buffer start address. Also, it restores the Auto Programming command list if the selected device type has ever been selected earlier, but the parameters listed above were changed during the programming session. 4.6.2.6 ACI_GetDevice ACI_FUNC ACI_GetDevice(ACI_Device_Params * params); Description This function gets the device's part number (name) and the name of the manufacturer of the device being programmed now (for example: AT89C51, Atmel; 28F128J3C, Numonyx, etc.). 4.6.2.7 ACI_GetLayer ACI_FUNC ACI_GetLayer(ACI_Layer_Params * params); Description This function gets the parameters of a specified memory buffer and buffer's layer. See also the ACI_Layer_Params structure description. 4.6.2.8 ACI_CreateBuffer ACI_FUNC ACI_CreateBuffer(ACI_Buffer_Params * params); Description This function creates a buffer with the parameters specified by the ACI_Buffer_Params structure. The ChipProgUSB program automatically assigns the buffer #0 so it is not necessary to create this buffer by a separate command. See also the ACI_Buffer_Params structure description. 4.6.2.9 ACI_ReallocBuffer ACI_FUNC ACI_ReallocBuffer(ACI_Buffer_Params * params); Description © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 131 This function changes the size of the layer #0 in the memory buffer specified in the ACI_Buffer_Params structure. See also the ACI_Buffer_Params structure description. 4.6.2.10 ACI_ReadLayer ACI_FUNC ACI_ReadLayer(ACI_Memory_Params * params); Description This function reads data from a specified memory buffer. The data size is limited by 16M Bytes. Note! This function reads the data from the programmer's memory buffer but does not physically read out the content of the selected target device. In order to physically read out the device memory content, execute the programmer command (function) Read by means of the ACI_ExecFunction or ACI_StartFunction with appropriate attributes. 4.6.2.11 ACI_WriteLayer ACI_FUNC ACI_WriteLayer(ACI_Memory_Params * params); Description This function writes data to a specified memory buffer. The data size is limited by 16M Bytes. Note! This function writes the data to the programmer's memory buffer but does not physically program the device. In order to physically write data from the buffer to the device's memory, execute the programmer command (function) Program by means of the ACI_ExecFunction or ACI_StartFunction with appropriate attributes. 4.6.2.12 ACI_FillLayer ACI_FUNC ACI_FillLayer(ACI_Memory_Params * params); Description This function fills a whole active layer of a specified memory buffer with a specified data pattern. This function works much faster than the ACI_WriteLayer function which writes data to the buffer layer. Note! This function fills the programmer's memory buffer with a specified data pattern but does not physically write them to the device being programmed. In order to physically write data from the buffer to the device execute the programmer command (function) Program by means of the ACI_ExecFunction or ACI_StartFunction with appropriate attributes. © 2015 Phyton, Inc. Microsystems and Development Tools 132 ChipProg Device Programmers 4.6.2.13 ACI_GetProgrammingParams ACI_FUNC ACI_GetProgrammingParams(ACI_Programming_Params * params); Description This function gets current programming parameters specified in the tab Option of the Program Manager window (memory buffer configurations, programming options, test of the device insertion, etc.). See the ACI_Programming_Params structure description. 4.6.2.14 ACI_SetProgrammingParams ACI_FUNC ACI_SetProgrammingParams(ACI_Programming_Params * params); Description This function sets programming parameters specified in the tab Option of the Program Manager window (memory buffer configurations, programming options, test of the device insertion, etc.). See also the ACI_Programming_Params structure description. 4.6.2.15 ACI_GetProgOption ACI_FUNC ACI_GetProgOption(ACI_ProgOption_Params * params); Description This function gets current settings from the Device and Algorithm Parameters Editor window. As an example see this window for one of the microcontrollers below. Note! This function does not physically read the specified information from the device being programmed. It reads from some virtual memory locations in the host PC's RAM, associated with physical locations in the target device's memory and registers. If the option that you would like to check is a property of the device's memory or registers, then first you have to execute the programmer © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 133 command (function) Read in the command group Device Parameters by means of the ACI_ExecFunction or ACI_StartFunction with appropriate attributes. Then you can read the execute the ACI_GetProgOption function. See also the ACI_ProgOption_Params structure description. 4.6.2.16 ACI_SetProgOption ACI_FUNC ACI_SetProgOption(ACI_ProgOption_Params * params); Description This function sets device-specific options and parameters, which are specified in the Device and Algorithm Parameters Editor window. As an example see this window for one of the microcontrollers below. Note! This function does not physically write the specified information into the device being programmed. It actually writes to some virtual memory locations in the host PC's RAM, associated with physical locations in the target device's memory and registers. In order to complete programming the device parameters and to physically program them into the device's memory you should execute an appropriate Program command (function) in the command group Device Parameters, by means of the ACI_ExecFunction or ACI_StartFunction with appropriate attributes. See also the ACI_ProgOption_Params structure description. © 2015 Phyton, Inc. Microsystems and Development Tools 134 ChipProg Device Programmers 4.6.2.17 ACI_AllProgOptionsDefault ACI_FUNC ACI_AllProgOptionsDefault(); Description This function sets default device-specific options and parameters specified in the Device and Algorithm Parameters Editor window. These default parameter sets vary. They are defined by the device manufacturers in the device data sheets. Note! This function does not physically restore the default settings into the device being programmed. It actually writes to some virtual memory locations in the host PC's RAM, associated with physical locations in the target device's memory and registers. In order to complete programming the device parameters and to physically fix them in the device's memory you should execute an appropriate Program command (function) in the Device Parameters command group by means of the ACI_ExecFunction or ACI_StartFunction with appropriate attributes. 4.6.2.18 ACI_ExecFunction ACI_FUNC ACI_ExecFunction(ACI_Function_Params * params); Description This function launches one of the programming operation (Read, Erase, Verify, etc.) specified by the ACI_Function_Params. During execution the ACI_ExecFunction does not allow calling any other ACI function until the programming operation, initiated by the ACI_ExecFunction function, completes the job. The ACI_ExecFunction from the ACI_StartFunction that returns control immediately after it was called. 4.6.2.19 ACI_StartFunction ACI_FUNC ACI_StartFunction(ACI_Function_Params * params); Description This function launches one of the programming operation (Read, Erase, Verify, etc.) specified by the ACI_Function_Params and immediately returns control to the external application no matter whether the programming operation, initiated by the ACI_StartFunction, has or has not completed. The ACI_StartFunction is different from the ACI_ExecFunction. It is possible to check if the operation has completed by the ACI_GetStatus function call. This allows monitoring the execution of programming operations if they last for a long time. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 135 4.6.2.20 ACI_GangStart ACI_FUNC ACI_GangStart(ACI_GangStart_Params * params); Description This function is used to control multiple device programmers only when the ChipProgUSB program was launched from the command line with the /gang key to drive a ChipProg gang programmer or a cluster of multiple programmers connected to one PC! See also the ACI_Launch function. For controlling a single ChipProg device programmer use ACI_StartFunction or ACI_ExecFunction. The ACI_GangStart function launches Auto Programming on multiple ChipProg device programmers for the programming socket specified in the SiteNumber parameter of the ACI_PStatus_Params structure. The function returns control immediately. In order to detect the ending time of the ACI_GangStart execution, use the ACI_GetStatus function. 4.6.2.21 ACI_GetStatus ACI_FUNC ACI_GetStatus(ACI_PStatus_Params * params); Description This function gets the programmer status that includes: 1) The status of the programming operation initiated by the ACI_StartFunction call (whether it has completed or it is still in progress); 2) The device insertion status (certainly if this option is enabled in the tab Option of the Program Manager window). 4.6.2.22 ACI_TerminateFunction ACI_FUNC ACI_TerminateFunction(); Description This function terminates a current programming operation initiated by the ACI_StartFunction call. 4.6.2.23 ACI_GangTerminateFunction ACI_FUNC ACI_GangTerminateFunction(ACI_GangTerminate_Params * params); Description This function, similar to the ACI_TerminateFunction which is applicable for stopping a single device programmer, is intended for terminating a current programming operation on one programming site belonging to the multiprogramming cluster or a gang programmer. The programming site (or socket) © 2015 Phyton, Inc. Microsystems and Development Tools 136 ChipProg Device Programmers number is specified by the SiteNumber parameter from the ACI_GangTerminate_Params structure. This function can be used only for the ChipProg programmers launched in the gang mode (see the / gang parameter among other command line keys for the ACI_Launch function). In order to terminate an operation for a running single-site ChipProg programmer use the ACI_TerminateFunction. When the ACI_GangTerminateFunction initiates stopping a current operation it returns the control either when the operation was successfully stopped or with a delay defined by the Timeout parameter. 4.6.2.24 ACI_FileLoad ACI_FUNC ACI_FileLoad(ACI_File_Params * params); Description This function loads a specified file into a specified buffer's layer. The control program running on the host PC should not worry about the file's format settings - the ChipProgUSB software takes care of this. 4.6.2.25 ACI_FileSave ACI_FUNC ACI_FileSave(ACI_File_Params * params); Description This function saves a specified file from a specified buffer's layer. The ChipProgUSB software enables saving files in all popular formats: HEX, Binary, etc.. 4.6.2.26 ACI_SettingsDialog ACI_SettingsDialog(); Description This macro opens the Configure > Preferences setting dialog. The dialog will be visible irrespective of the ChipProgUSB main window status; the main window can remain closed but the Configure > Preferences setting dialog will appear on the computer screen, thus allowing manipulations in the dialog. 4.6.2.27 ACI_SelectDeviceDialog ACI_SelectDeviceDialog(); Description This macro sends a command that opens the Select Device dialog. The dialog will appear on the screen irrespective of the ChipProgUSB main window status; the main window can remain closed but the Select Device dialog will appear on the computer screen. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 137 4.6.2.28 ACI_BuffersDialog ACI_BuffersDialog(); Description This macro opens the Memory Dump Window Setup dialog. The dialog will be visible irrespective of the ChipProgUSB main window status; the main window can remain closed but the Memory Dump Window Setup dialog will appear on the computer screen to allow the buffer setup. See the dialog example below. 4.6.2.29 ACI_LoadFileDialog ACI_LoadFileDialog(); Description This macro opens the Load File dialog. The dialog will be visible irrespective of the ChipProgUSB main window status; the main window can remain closed but the Load File dialog will appear on the computer screen. See the dialog example below. © 2015 Phyton, Inc. Microsystems and Development Tools 138 ChipProg Device Programmers 4.6.2.30 ACI_SaveFileDialog ACI_SaveFileDialog(); Description This macro sends a command that opens the Save File dialog. The dialog will be visible irrespective of the ChipProgUSB main window status; the main window can remain closed but the Save File dialog will appear on the computer screen. See the dialog example below. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 139 4.6.2.31 ACI_SetConnection ACI_FUNC ACI_SetConnection(ACI_Connection_Params * params); Description This function identifies a current device programmer connection. Use this function when you control a number of device programmers by means of multiple calls of the ACI_Launch function. Each connection gets its own unique identifier. Executing of the ACI_Launch function returns the ConnectionId as part of the ACI_Launch_Params structure. After establishing the connection, all the ACI functions following the ACI_SetConnection function will work exclusively with the established connection. When ACI controls only one ChipProg programmer it is not necessary to execute the ACI_SetConnection function; the ACI_Launch function automatically assigns a ConnectionId that is the next one in order. The ConnectionId can be always checked by executing the function ACI_GetConnection. 4.6.2.32 ACI_GetConnection ACI_FUNC ACI_GetConnection(ACI_Connection_Params * params); Description This function allows getting the identifier of a current device programmer connection. If a number of single ChipProg programmers were launched, one after another, by multiple executions of the © 2015 Phyton, Inc. Microsystems and Development Tools 140 ChipProg Device Programmers ACI_Launch function, then executing the ACI_GetConnection function returns a current ConnectionId parameter as a part of theACI_Launch_Params structure. See also ACI_SetConnection. 4.6.3 ACI Structures This chapter describes the structures used by the ACI functions. Structure The ACI function that uses the structure ACI_Launch_Params ACI_Launch ACI_Config_Params ACI_LoadConfigFile, ACI_SaveConfigFile ACI_Device_Params ACI_GetDevice, ACI_SetDevice, ACI_Layer_Params ACI_GetLayer ACI_Buffer_Params ACI_CreateBuffer, ACI_ReallocBuffer ACI_Memory_Params ACI_ReadLayer, ACI_WriteLayer, ACI_FillLayer ACI_Programming_Params ACI_SetProgrammingParams, ACI_GetProgrammingParams ACI_ProgOption_Params ACI_GetProgOption, ACI_SetProgOption ACI_Function_Params ACI_ExecFunction, ACI_StartFunction ACI_PStatus_Params ACI_GetStatus ACI_File_Params ACI_FileLoad, ACI_FileSave ACI_GangStart_Params ACI_GangStart, ACI_GetStatus ACI_GangTerminate_Params ACI_GangTerminateFunction Here is an example of the structure syntax: typedef struct tagACI_Buffer_Params { UINT Size; // (in) Size of structure, in bytes DWORD Layer0SizeLow; // (in || out) Low 32 bits of layer 0 size, in bytes DWORD Layer0SizeHigh; // (in || out) High 32 bits of layer 0 size, in bytes // Layer size is rounded up to a nearest value supported by programmer. LPCSTR BufferName; // (in) Buffer name UINT BufferNumber; // For ACI_CreateBuffer(): out: Created buffer number // For ACI_ReallocBuffer(): in: Buffer number to realloc UINT NumBuffers; // (out) Total number of currently allocated buffers UINT NumLayers; // (out) Total number of layers in a buffer } ACI_Buffer_Params; Each structure includes a number of parameters (here Size, Layer0SizeLow, NumBuffers, etc.). The parameter's name follows its format (UINT, DWORD, LPCSTR, CHAR, BOOL, etc.). The comment on the parameter begins from a bracketed symbol showing the sending direction of this parameter: © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 141 (in) - the parameter is sent from the instrumental computer to the programmer; (out) - the parameter is sent from the programmer to the instrumental computer; (in || out) - the parameter can be sent in either direction, depending on the ACI function context. 4.6.3.1 ACI_Launch_Params typedef struct tagACI_Launch_Params { UINT Size; // (in) LPCSTR ProgrammerExe; // (in) LPCSTR CommandLine; // (in) BOOL DebugMode; // (in) } ACI_Launch_Params; Size of structure, in bytes Programmer executable file name Optional programmer command-line parameters Debug mode. Programmer window is not hidden This is the name of the programmer executable file. If the parameter does not include a full path then the program will search for the UprogNT2.EXE file into the folder where the ACI.DLL resides. ProgrammerExe The target folder name, where the the UprogNT2.EXE file resides, is defined by the parameter "Folder" of the ""HKLM\SOFTWARE\Phyton\Phyton ChipProgUSB Programmer\x.yy.zz" key. It is supposed that multiple ChipProgUSB versions can be installed on the host computer. CommandLine This structure member specifies the command line options. One of the option is NULL (no keys). If the host computer drives a cluster of multiple programmers then the only way to launch a certain programmer is to specify the /N for the CommandLine structure member. DebugMode This key controls the ChipProgUSB main window visibility. Setting TRUE for this structure member makes the ChipProgUSB main window visible. Then you can manipulate with the programmer using its user interface - open windows, set any programmer resources, execute programming operations, etc.. See also: ACI_Launch 4.6.3.2 ACI_Config_Params typedef struct tagACI_Config_Params { UINT Size; // (in) Size of structure, in bytes LPCSTR FileName; // (in) Options file name to load/save configuration } ACI_Config_Params; FileName This is the name of the file that configures the programmer. See also: ACI_LoadConfigFile, ACI_SaveConfigFile © 2015 Phyton, Inc. Microsystems and Development Tools 142 4.6.3.3 ChipProg Device Programmers ACI_Device_Params typedef struct tagACI_Device_Params { UINT Size; // (in) Size of structure, in bytes CHAR Manufacturer[64]; // (in || out) Device Manufacturer CHAR Name[64]; // (in || out) Device Name } ACI_Device_Params; Manufacturer The manufacturer of the device being programmed Name The device part number as it is displayed in the programmer's device list See also: ACI_SetDevice, ACI_GetDevice 4.6.3.4 ACI_Layer_Params typedef struct tagACI_Layer_Params { UINT Size; // UINT BufferNumber; // buffer number is 0 UINT LayerNumber; // number is 0 DWORD LayerSizeLow; // DWORD LayerSizeHigh; // DWORD DeviceStartAddrLow; // layer DWORD DeviceStartAddrHigh; // this layer DWORD DeviceEndAddrLow; // layer DWORD DeviceEndAddrHigh; // layer DWORD DeviceBufStartAddrLow; // in buffer for this layer DWORD DeviceBufStartAddrHigh; // in buffer for this layer UINT UnitSize; // BOOL FixedSize; // ACI_ReallocBuffer() CHAR BufferName[64]; // CHAR LayerName[64]; // UINT NumBuffers; // UINT NumLayers; // } ACI_Layer_Params; (in) (in) Size of structure, in bytes Number of buffer of interest, the first (in) Number of layer of interest, the first layer (out) Low 32 bits of layer size, in bytes (out) High 32 bits of layer size, in bytes (out) Low 32 bits of device start address for this (out) High 32 bits of device start address for (out) Low 32 bits of device end address for this (out) High 32 bits of device end address for this (out) Low 32 bits of device memory start address (out) High 32 bits of device memory start address (out) Size of layer unit, in bits (8, 16 or 32) (out) Size of layer cannot be changed with (out) (out) (out) (out) Buffer name Layer name, cannot be changed Total number of currently allocated buffers Total number of layers in a buffer © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 143 BufferNumber The ordinal number of the memory buffer, content of which is required by the ACI_GetLayer function. Numbers of ChipProg memory buffers begin from #0. LayerNumber The ordinal number of the layer in the memory buffer, the content of which is required by the ACI_GetLayer function. The layer numbers begins from #0. LayerSizeLow, LayerSizeHigh Here the function returns the range of the memory layer's addresses in bytes. Here the function returns the device's start address for the selected memory layer. This address is the device's property and strictly depends DeviceStartAddrLow, on the device type; usually this value is zero. Do not mix it up with the DeviceStartAddrHigh start address of a programming operation that can be shifted by a certain offset value. DeviceEndAddrLow, DeviceEndAddrHigh Here the function returns the device's end address for the selected memory layer. This address is the device's property and strictly depends on the device type. Do not mix it up with the end address of a programming operation editable in the setup dialog. The selected layer's address range can be defined as a difference between the end address and the start address plus 1. DeviceBufStartAddrL Here the function returns the start address for the selected memory buffer ow, usually this value is zero. DeviceBufStartAddrH igh UnitSize This structure member specifies formats of the data in a memory layer: 8 for the 8-bit devices, 16 - for 16-bit devices and 32 for 32-bit devices. FixedSize This flag, if TRUE, disables resizing the memory layer by the ACI_ReallocBuffer function. There is one restriction on use of this flag: since the layer #0 is always resizeable the FixedSize is always FALSE for the layer #0. BufferName The name of the memory buffer as it was defined in the ChipProg interface or by the ACI_CreateBuffer function call. LayerName Reserved name of the memory buffer's layer. It cannot be changed by the ACI.DLL user. NumBuffers The number of the assigned memory buffers. NumLayers The number of layers in the programmer's memory buffers. This is a predefined device-specific value that is the same for all memory buffers. See also: ACI_GetLayer 4.6.3.5 ACI_Buffer_Params typedef struct tagACI_Buffer_Params © 2015 Phyton, Inc. Microsystems and Development Tools 144 ChipProg Device Programmers { UINT DWORD DWORD Size; Layer0SizeLow; Layer0SizeHigh; supported by programmer. LPCSTR BufferName; UINT BufferNumber; UINT NumBuffers; UINT NumLayers; } ACI_Buffer_Params; // (in) Size of structure, in bytes // (in/out) Low 32 bits of layer 0 size, in bytes // (in/out) High 32 bits of layer 0 size, in bytes // Layer size is rounded up to a nearest value // // // // // (in) Buffer name For ACI_CreateBuffer(): out: Created buffer number For ACI_ReallocBuffer(): in: Buffer number to realloc (out) Total number of currently allocated buffers (out) Total number of layers in a buffer Layer0SizeLow, Layer0SizeHigh This structure member represents buffer layer #0's size in Bytes. This size lies in the range between 128K Bytes and 32G Bytes (may be changed in the future). The ChipProgUSB allows assigning buffers with fixed sizes only (see the list on the picture below). Any intermediate value will be automatically rounded up to one of the reserved buffer sizes. For example, if you enter '160000' the programmer will assign a 1MB buffer layer. BufferName Since it is used with the ACI_CreateBuffer function this structure member represents the name of the buffer that will be created. If used with the ACI_ReallocBuffer function will be ignored. BufferNumber After calling the ACI_CreateBuffer function this structure member returns the created buffer's number. After calling the ACI_ReallocBuffer function the number of the buffer, size of which should be changed (re-allocate). NumBuffers This structure member represents the current number of memory buffers being opened. NumLayers This structure member represents the number of layers in memory buffers. This value is the same for all opened buffers. © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 145 See also: ACI_CreateBuffer, ACI_ReallocBuffer 4.6.3.6 ACI_Memory_Params typedef struct tagACI_Memory_Params { UINT Size; // (in) Size of structure, in bytes UINT BufferNumber; // (in) Number of buffer of interest, the first buffer number is 0 UINT LayerNumber; // (in) Number of layer of interest, the first layer number is 0 DWORD AddressLow; // (in) Low 32 bits of address, in layer units (natural to device address) DWORD AddressHigh; // (in) High 32 bits of address, in layer units (natural to device address) PVOID Data; // (in || out) Buffer to data to read to or write from DWORD DataSize; // (in) Size of data to read or write, in layer units, max. 16 MB (0x1000000) DWORD FillValue; // (in) Value to fill buffer with, used by ACI_FillLayer() only } ACI_Memory_Params; BufferNumber The ordinal number of the buffer to read from or to write into. The buffer numerical order begins from zero. LayerNumber The ordinal number of the memory buffer's layer to read from or to write into. © 2015 Phyton, Inc. Microsystems and Development Tools 146 ChipProg Device Programmers The layer numerical order begins from zero. AddressLow, AddressHigh The start address in the memory layer to read from or to write into represented in the units specified by the chosen device manufacturer - Bytes, Words, Double Words. This structure member is ignored in case of use with the ACI_FillLayer function. Data Since these are used with different ACI functions this structure member has different meanings.In case of use with the ACI_ReadLayer function it represents the pointer to the data read out from the ChipProg buffer's layer. In case of use with the ACI_WriteLayer - the pointer to the data to be written to the ChipProg buffer's layer. The Data is ignored if it is used with the ACI_FillLayer function. DataSize This structure member represents the data format given in memory units specified by the device manufacturer (Bytes, Words or Double Words). The program ignores the DataSize if it is used with the ACI_FillLayer function. FillValue This is the data pattern that fills an active ChipProg buffer's layer by means of the ACI_FillLayer function. If, for example, the FillValue is presented in the DWORD format then the 8-bit memory layers will be filled with the lower byte of the FillValue pattern, the 16-bit layers - with the lower 16-bit word and the 32-bit layers - with a whole FillValue pattern. See also: ACI_ReadLayer, ACI_WriteLayer, ACI_FillLayer 4.6.3.7 ACI_Programming_Params typedef struct tagACI_Programming_Params { UINT Size; // (in) BOOL InsertTest; // (in || BOOL CheckDeviceId; // (in || BOOL ReverseBytesOrder; // (in || BOOL BlankCheckBeforeProgram; // (in || programming BOOL VerifyAfterProgram; // (in || BOOL VerifyAfterRead; // (in || BOOL SplitData; // (in || BOOL DeviceAutoDetect; // (in || all of the programmers provide this feature) BOOL DialogBoxOnError; // (in || UINT AutoDetectAction; // (in || autodetect or 'Start' button, see ACI_AD_xxx DWORD DeviceStartAddrLow; // (in || for programming operation DWORD DeviceStartAddrHigh; // (in || for programming operation DWORD DeviceEndAddrLow; // (in || for programming operation out) out) out) out) Size of structure, in bytes Test if device is attached Check device identifier Reverse bytes order in buffer Perform blank check before out) out) out) out) Verify after programming Verify after read Split data: see ACI_SP_xxx constants Auto detect device in socket (not out) On error, display dialog box out) Action to perform on device constants out) Low 32 bits of device start address out) High 32 bits of device start address out) Low 32 bits of device end address © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options 147 DWORD DeviceEndAddrHigh; // (in || out) High 32 bits of device end address for programming operation DWORD DeviceBufStartAddrLow; // (in || out) Low 32 bits of device memory start address in buffer for programming operation DWORD DeviceBufStartAddrHigh; // (in || out) High 32 bits of device memory start address in buffer for programming operation } ACI_Programming_Params; InsertTest This is the command to check the device insertion before starting any programming operations on the device. The procedure will check if every chip leads have good contact in the programming socket. CheckDeviceId This is the command to check a unique internal device identifier before the device programming. ReverseBytesOrder This is the command to reverse the byte order in 16-bit words when programming the device, reading it or verifying the data. This structure member does not effect the data value in the ChipProg memory buffers - these data remain the same as they were loaded. BlankCheckBeforeProg This is the command to check whether the device is blank before executing the Program command. ram VerifyAfterProgram This is the command to verify the data written into the device every time after executing the Program command. VerifyAfterRead This is the command to verify the data written into the device every time after executing the Read command. SplitData This is the command to split data in accordance with the value of the constants ACI_SP_xxx* in the aciprog.h file (see below). This allows 8-bit memory devices to be cascaded in multiple memory chips to be used in the systems with 16- and 32-bit address and data buses. DeviceAutoDetect This is the command to scan all the device's leads in a process of the device insertion into the programming socket. If the DeviceAutoDetect is TRUE the programmer will check whether all of the device's leads are reliably gripped by the programmer socket's sprung contacts. Only when the reliable device insertion is acknowledged, the program launches a chosen programming operation, script or a batch of single operations programmed in the Auto Programming dialog. DialogBoxOnError If this structure member is TRUE then any error that occurs in any programming operation will generate error messages and will open associated dialogs. If this attribute is FALSE the error messages will not be issued. If the DeviceAutoDetect is TRUE then values of the ACI_AD_xxx** constants in the aciprog.h file define a particular action triggered either on manual pushing the Start button or upon auto detection of reliable insertion of the device into the programmer's socket (see below). AutoDetectAction value AutoDetectAction What to do (action) ACI_AD_EXEC_FUNC Launch the programming operation (function) currently highlighted TION in the Program Manager tab. ACI_AD_EXEC_AUT O Launch a batch of single operations programmed in the Auto Programming dialog. ACI_AD_EXEC_SCRI Perform the script specified in the Script File dialog. PT © 2015 Phyton, Inc. Microsystems and Development Tools 148 ChipProg Device Programmers ACI_AD_DO_NOTHIN Do not act (ignore). Then it is possible to resume operations only by G executing either the ACI_ExecFunction or ACI_StartFunction. DeviceStartAddrLow, DeviceStartAddrHigh DeviceEndAddrLow, DeviceEndAddrHigh This structure member defines a physical start address of the device to perform a specified programming operation (function). For example: "...read the chip content beginning at the address 7Fh". Not all the functions use this parameter. This parameter defines a physical end address, beyond which a specified programming operation (function) will not proceed. For example: "...program the chip until the address 0FFh". Not all the programmer functions use this parameter. This structure member defines the buffers layer's start address from which to DeviceBufStartAddrLo perform a specified programming operation (function). For example: "...read the w, DeviceBufStartAddrHi chip and move the data to the buffer beginning at the address 10h". Not all the programmer functions use this parameter. gh This is the bit definition from the aciprog.h header file: * // ACI Data Split defines #define ACI_SP_NONE #define ACI_SP_EVEN_BYTE #define ACI_SP_ODD_BYTE #define ACI_SP_BYTE_0 #define ACI_SP_BYTE_1 #define ACI_SP_BYTE_2 #define ACI_SP_BYTE_3 ** // ACI Device Auto-Detect or 'Start' #define ACI_AD_EXEC_FUNCTION #define ACI_AD_EXEC_AUTO #define ACI_AD_EXEC_SCRIPT dialog #define ACI_AD_DO_NOTHING 0 1 2 3 4 5 6 button action 0 // Execute the function currently selected in the list 1 // Execute the Auto Programming command 2 // Execute the script chosen in the programmer Script File 3 // Do nothing See also: ACI_SetProgrammingParams, ACI_GetProgrammingParams 4.6.3.8 ACI_ProgOption_Params typedef struct tagACI_ProgOption_Params { UINT Size; // (in) Size of structure, in bytes LPCSTR OptionName; // (in) Name of the option. For lists, it should be in the form "List array name^List Name", e.g. "Configuration Bits^Oscillator" CHAR Units[32]; // (out) Option measurement units ("kHz", "V", etc.) CHAR OptionDescription[64]; // (out) Description of the option CHAR ListString[64]; // (out) For ACI_PO_LIST option: Option string for Value.ListIndex © 2015 Phyton, Inc. Microsystems and Development Tools ChipProg Control Options UINT OptionType; BOOL ReadOnly; union { LONG LongValue; FLOAT FloatValue; LPSTR String; ULONG CheckBoxesValue; UINT StateIndex; LPBYTE Bitstream; ACI_PO_BITSTREAM option } Value; UINT VSize; 149 // (out) Option type: see ACI_PO_xxx constants // (out) Option is read-only // (in || out) Option value // // // // // // (in (in (in (in (in (in || || || || || || out) out) out) out) out) out) Value for ACI_PO_LONG option Value for ACI_PO_FLOAT option Pointer to string for ACI_PO_STRING option Value for ACI_PO_CHECKBOXES option State index for ACI_PO_LIST option Pointer to bitstream data for // For ACI_SetProgOption(): // in: Size of Bitstream if OptionType == ACI_PO_BITSTREAM // For ACI_GetProgOption(): // in: Size of buffer pointed by Bitstream if OptionType == ACI_PO_BITSTREAM // in: Size of buffer pointed by String if OptionType == ACI_PO_STRING // out: Size of buffer needed for storing Bitstream data if OptionType == ACI_PO_BITSTREAM. // Set Value.Bitstream to NULL to get buffer size without setting the bitstream data // out: Size of buffer needed for storing String if OptionType == ACI_PO_STRING, including the terminating NULL character. // Set Value.String to NULL to get buffer size without setting the string UINT Mode; // (in) For ACI_SetProgOption(): SEE ACI_PP_MODE_... constants } ACI_ProgOption_Params; OptionName The name of the programming option - for example "Vcc". For the ACI_PO_LIST - type options, where the options are grouped into a list, you should specify both the list name and the option name in the following way: ^ (For example, Configuration_bits^Generator. There are no restrictions on use of uppercase and lowercase characters in the option names. Units After executing the ACI_GetProgOption function this structure member returns an abbreviation of the units, in which the programmer represents or measures the OptionName. For example, for the Vcc structure member, Units = "V". OptionDescription After executing the ACI_GetProgOption function this structure member returns the option description. ListString After executing the ACI_GetProgOption function for the ACI_PO_LIST - type options this structure member returns a string that describes the current option's value or status. For example, XT - Standard Crystal for the option Configuration bits^Generator. OptionType After executing the ACI_GetProgOption function this structure member returns the option's presentation format - for example: integer, floating point, list, bitstream, etc.. See the ACI_PO_xxx* constant description in the aciprog.h © 2015 Phyton, Inc. Microsystems and Development Tools 150 ChipProg Device Programmers header file below. ReadOnly Setting ReadOnly=TRUE disables modification of the option specified by the ACI_GetProgOption function. Use of this union depends on the ACI_PO_LONG* option type as it is shown in the matrix below: Option type Use of the Value union ACI_PO_LONG The option is in the Value.LongValue ACI_PO_FLOAT The option is in the Value.FloatValue ACI_PO_STRING The option is represented as a string, the pointer on w hich is in the Value.String. See the note below . ACI_PO_CHECKBOXES The option represents a 32-bit integer w ord, in w hich you can individually toggle each bit that represents a particular flag in the option setting dialog. The option is in the Value.CheckBoxesValue. See, for example, the Fuse setting dialog for the ATtiny45 MCU implemented as an array of check boxes. ACI_PO_LIST It represents a list of alternative choices. Only one of them can be selected at a time, so the parameter changes its value in a range 0, 1, 2 to N. The option is in the Value.CheckStateIndex. See, for example, the Oscillators setting dialog for the PIC12F509 MCU implemented as an alternatively chosen radio buttons ACI_PO_BITSTREAM Stream of bits. This option type is not in use yet but can be used for future applications. Value VSize Size of the buffer assigned for storing the string if the option type is the ACI_PO_STRING. See the note below. Mode of using of the structure member Value (See the description of the ACI_PP_xxx** constants in the aciprog.h Configure > Select device. 2. Insert a device of the selected type into the programmer socket or into the adapter socket. 3. a) Click the Check button on the main toolbar or b) Double click on the Blank check function line in the Function list of the Program Manager window or c) Select the Blank check function line in the Function list of the Program Manager window and click the Execute button or d) Select the Main menu > Commands and click on the Blank check line then wait for the message Checking … OK in the Program Manager window, or for the warning message if the device is not blank 5.3.2 How to erase a device 1. Make sure the device is electrically erasable. Some devices are not erasable; these may be programmable once, UV erasable, or over-writable – in this case the Erase button is blocked (grey out). 2. If the device is electrically erasable: a) Click the Erase button on the main toolbar or b) Double click on the Erase function line in the Function list of the Program Manager window or c) Select the Erase function line in the Function list of the Program Manager window and click the Execute button or d) Select the Main menu > Commands and click on the Erase line then wait for the message Erasing … OK in the Program Manager window or for the warning message if the device is not blank after erasing. 5.3.3 How to program a device In order to program a blank device you need to perform a few consecutive operations: load the file, that you want to write to the device; edit the file (if necessary); configure the device to be programmed (if necessary); write the prepared information into the device and verify the programming. © 2015 Phyton, Inc. Microsystems and Development Tools 168 5.3.3.1 ChipProg Device Programmers How to load a file into a buffer 1. Select the Main menu > File > Load or click the Load button on the local toolbar of the Buffer window. 2. In the pop-up dialog box enter the source file name, select the file format, addresses, buffer and sub-level to load the file to. 3. Wait for the message File loaded: "......" in the Program Manager window or for a warning message if the file cannot be loaded for some reason. 5.3.3.2 How to edit information before programming 1. If you need to modify source data before writing into the target device, then open the Buffer Damp window. Never forget that the View button should be released to enable editing. 2. Make necessary changes in the window via the Modify dialog or appoint the data to be modified and type the new data over the old data. 5.3.3.3 How to configure the chosen device 1. If any parameters displayed in the Device and Algorithm Parameters window can be changed by editing, their names are shown in blue. 2. Click on the name of the parameters to be changed to open an appropriate dialog. Set a new value for the parameter or check/uncheck appropriate boxes and click OK. The parameter value will change its color to red. 3. Continue for other parameters that should be changed. All preset changes will become effective in the target device only upon programming via the Program Manager programming function. 5.3.3.4 How to write information into the device 1. Click the Options tab in the Program Manager window. Check the options you need. We recommend that you always check the Blank check before programming and the Verify after programming check-boxes to make programming more reliable. 2. Click the Program Manager tab. Select the Program line in the Function box, and double click it to start programming of the primary memory layer (Code) or click the Execute button to do so. Alternatively, you can do the same by clicking the big Program button or selecting the command Menu > Commands > Program. 3. Wait for the message Programming … OK in the Operation Progress box of the Program Manager tab. If an error has occurred the ChipProgUSB issues an error message. 4. Execution of the main Program function (always shown in the beginning of the Function list) writes a specified buffer layer content to the Code device memory. However, other buffer layers may exist for the selected device (Data, User, etc.). If more than one buffer layer exists for the selected device go down to the list of functions, expand those that are collapsed and execute the Program functions for as many types of memory as the device has (Data, User, etc.). Skip this if just one memory layer Code exists for the device. © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 169 5. IMPORTANT! After programming of all the memory layers (Code, Data, User, etc.) you need to program the options preset in the Device and Algorithm Parameters Editor window, if they have been modified. Go down to the Device parameters & ID line, expand it if collapsed, select the Program function and double click it. Continue until every parameter that was changed in the Device and Algorithm Parameters window is successfully programmed. 6. Some microcontrollers can be protected against unauthorized reading of the written code by setting a set of Lock bits. Go down to the Lock bits line, expand it if collapsed and double click the lock bit# lines one by one. You can optionally lock only certain parts of the device memory. Continue until every lock bit is set. 7. After every operation above make sure that you watch the Ok [xxxxx... Ok] message in the Operation Progress box of the Program Manager tab. In case you get an error message stop the programming and troubleshoot the issue. 5.3.4 How to read a device There are several ways for reading the device content to an active buffer: a) Click the Read button on the main toolbar or b) Double click on the Read function line in the Function list of the Program Manager window or c) Select the Read function line in the Function list of the Program Manager window and click the Execute button or d) Select the Main menu > Commands and click on the Read line then wait for the message Reading … OK in the Program Manager window or for the warning message if the device could not be read out. 5.3.5 How to verify programming There are several ways for checking if the device was programmed correctly: a) Click the Verify button on the main toolbar or b) Double click on the Verify function line in the Function list of the Program Manager window or c) Select the Verify function line in the Function list of the Program Manager window and click the Execute button or d) Select the Main menu > Commands and click on the Verify line then wait after that which wait for the message Verifying … OK in the Program Manager window or for the warning message if the device failed during the verification process. 5.3.6 How to save data on a disc 1. After you have read out the device content into the Buffer or a specified Buffer layer you may need to save the read data on a PC disc. To save the data: a) Click the Save button on the local toolbar of the Buffer window or b) Select the Main menu > File > Save © 2015 Phyton, Inc. Microsystems and Development Tools 170 ChipProg Device Programmers 2. In the pop-up dialog specify the destination file name, format, start and end addresses of the source (the buffer), and the source sub-level, and click OK. 5.3.7 How to duplicate a device 1. 2. 3. 4. 5. 5.4 Insert the master device to be copied (duplicated) into the programmer socket. Read it to an active buffer Wait for the message Reading… OK in the Operation Progress box of the Program Manager tab in the Program Manager window. Make sure the master device content is in a current buffer. Remove the master device from the socket and replace it with a blank device to be programmed. If necessary, check to see if it is blank. Program the device. If you need to make more than one copy of the master device repeat the operations #4 and #5 as may times as necessary. Programming NAND Flash memory This chapter describes some peculiarities of the NAND Flash memory devices programming. The NAND Flash and NOR Flash memory architectures and physical implementations are very different and, therefore, operations with NOR and NAND Flash devices have their own peculiarities. In terms of the programmer setup and operations, working with the NAND Flash devices is more complex and the programming results are very sensitive to the accuracy of the programming options setup. Inaccurate setup causes wrong device programming. 5.4.1 NAND Flash memory architectures The NAND Flash memory array comprises of the blocks of pages. Each block usually includes 16, 32, 64 and more pages. Conditionally, the NAND Flash devices can be divided in two groups: the "small page" and "large page" devices. The "small page" size is 512 bytes for the 8-bit devices and 256 bytes for the 16-bit devices; the "small page" NAND Flash memory devices' capacity varies from 128K to 512K bits. The picture below shows the "small page" NAND Flash memory architecture of the © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 171 The "large page" size is 2048 bytes for the 8-bit devices and 1024 bytes for the 16-bit devices; the "large page" NAND Flash memory devices' capacity varies from 256K to 32G bit capacity and higher. The NAND devices. The latest "large page" NAND Flash devices have as large as 4096 byte page size. © 2015 Phyton, Inc. Microsystems and Development Tools 172 ChipProg Device Programmers Read also about bad blocks in the NAND Flash memory devices. 5.4.1.1 Invalid blocks NAND Flash memory devices have invalid memory blocks that cannot be used for storing data because some memory cells inside of the device have physical defects - either inherent in a process of the device manufacturing or acquired in a process of the device exploitation and reprogramming in the user's equipment. Since a percentage of invalid blocks is pretty small inside of the chip (usually less than 1%) it is possible to use the device for data storing. In order to use NAND devices with bad blocks these blocks should be marked in a certain way to prevent fetching data from these blocks or writing in it. This document equally uses both known terms for such blocks: invalid and bad. Locations of the invalid blocks or the invalid blocks map should be accessible by the application for skipping the bad blocks or handling them in other way. To keep the invalid block map every NAND Flash device has a special cell array, known as the Spare Area, for storing addresses of invalid blocks. See the Spare Area location in the NAND Flash memory architecture diagrams. The Spare Area in "small page" 8-bit devices is 16 large, 16-bit devices - 8 Words. The Spare Area in "large page" devices - 64 Bytes and 32 Words respectfully. Though the Spare Area is dedicated for marking bad blocks it can be also used as a general purpose memory for storing the user's data. To avoid accidental losing of the bad block map it is recommended to assign a whole entire Spare Area for storing the invalid block map and do not write in this area anything else. 5.4.1.1.1 Managing invalid blocks There are three mostly used methods of handling invalid memory blocks: Skip Block method Reserved Block Area method Error Checking and Correction The ChipProg programmers support all the methods above. 5.4.1.1.1.1 Skipping invalid blocks This is the simplest method of managing invalid blocks. The programming algorithm first reads the entire Spare Area to collect the addresses of invalid memory blocks. Then, the programming equipment writes data to the device page by page with checking the block addresses. If the current block's number is marked as bad the programmer skips this block and write into the next valid one. 5.4.1.1.1.2 Reserved Block Area This method is based on the idea of replacing invalid blocks with good blocks by re-directing reading and writing operations to these good blocks. To implement this method the programming equipment splits the entire memory in three linear memory areas following each other from the start address of the memory device. Each of these areas may include both good and bad blocks: The User Block Area (UBA) - a linear memory array for storing the user's data; © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 173 The Block Reservoir - a linear memory array that follows right after the User Block Area; good blocks from the Block Reservoir replaces invalid blocks from the User Block Area; The Reserved Block Area (RBA) - this part of the device's memory stores the information about bad blocks in the User Block Area replaced by good blocks from the Block Reservoir. This map is represented by pair of addresses of the invalid UBA's blocks and corresponding good blocks from the data reservoir. The first good block in the RBA stores the the RBA map table, the second a duplicate of it in case of the RBA table corruption. The programming algorithm works in the following way: 1) it splits blocks of the device in three areas: User Block Area, Block Reservoir and Reserved Block Area; 2) it reads the Spare Area and builds the RBA map table with the following structure of the data fields: Field: RBA Marker Count Field Invalid Block Replaced Invalid Block Block Size: 2 байт а 2 байт а 2 байта 2 байта 2 байта Replaced Block 2 байта ....... Invalid Block ....... 2 байта Replaced Block 2 байта where: RBA Marker - is 0FDFEh (there is an equivalent term for this parameter used in some NAND Flash device data sheets: Transition Field). Count Field - starts from 1 and increments by one for each page of the map table. Invalid Block - Number of the invalid block in the UBA being replaced. Replaced Block - Number of the valid block in the Block Reservoir that replaces the invalid block above. The Invalid Block - Replaced Block pairs follow each other till the page break. When the programming equipment detects an invalid block in the User Block Area it appoints the first available valid block in the Block Reservoir and updates the RBA table to keep track of relation between invalid blocks in the User Block Area and replaced good ones in the Block Reservoir. 5.4.1.1.1.3 Error Checking and Correction To maintain the stored code integrity it is recommended to use known Error Checking and Correction (ECC) algorithms. Most NAND Flash device manufacturers publish application notes that describe the ECC algorithms suitable for using their devices in different applications. To implement a particular ECC algorithm please check the manufacturer's website. All the ECC-related information are written into the Spare Area. 5.4.1.1.2 Invalid block map ChipProg programmers create the invalid block map into the buffer layer Invalid Block Map as a continues bit array. Valid (good) blocks are represented by zeros (0), invalid (bad) - by ones (1). See the tab Invalid Block Map in the memory buffer: © 2015 Phyton, Inc. Microsystems and Development Tools 174 ChipProg Device Programmers For example above: the value 02h (or 00000010B) at the address 0 means that the blocks #0, 2, 3, 4, 5, 6, 7 are valid while the block #1is invalid; the value 01h (or 00000001B) at the address 1 means that all the blocks in the range #9 to #15 are valid while the block #8 is invalid. 5.4.1.2 Marking invalid blocks After the device final testing the device manufacturer' programming equipment fills the working memory cells with the FFh value. Blocks that are considered to be invalid are marked by writing a non FFh value (usually 00h) at a certain address in first page (page #0). This address in the NAND Flash Spare Area is the device dependant; it is specified in the manufacturer data sheet. Memory organization The marker address in the Spare Area 8-bit array, page size - 512 Byte. 5 16-bit (word) array, page size - 512 Words. 0 8-bit array, page size - 2048 Byte. 0 or 5 16-bit (word) array, page size - 1024 Words 0 Take in account that the device itself has no special protection against occasional erasing of the Spare Area cells when you intentionally erase a whole memory array. However, these Spare Area cells may store the bad blocks markers written ether by the chip manufacturer or by the chip user after reprogramming. Being lost the bad block map cannot be restored unless you keep the invalid block map as a file, etc. It is important to keep track of the invalid block map changes by storing the markers before the memory erasing and restoring them after the chip erasing. The ChipProg programmers automatically restore the invalid block map unless the Invalid Block Management is not the Do Not Use. The ChipProg creates the invalid block map into the buffer layer Invalid Block Map as a continues bit array. Valid (good) blocks are represented by zeros (0), invalid (bad) - by ones (1). For example: the value 02h at the address 0 means that the blocks #0, 2, 3, 4, 5, 6, 7 are valid while the block #1is invalid; the value 01h at the address 1 means that all the blocks in the range #9 to #15 are valid while the © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 175 block #8 is invalid. 5.4.2 Programming NAND Flash devices by ChipProg Programming NAND Flash memory devices by a Phyton ChipProg programmer begins from accurate setting of the programming options and parameters in the Device and Algorithm Parameters window. The screen capture below shows the window for the NAND04GW3B2BN device. The Device Parameters are divided in two setting groups: Access Mode and Access Mode Parameters. IMPORTANT NOTE! Any changes made in the ‘Device and Algorithm Parameters’ window do not immediately cause corresponding changes in the target device. Parameter settings made within this window just prepare a configuration of the device to be programmed. Physically, the programmer makes all these changes only upon executing an appropriate command from the ‘Program Manager’ window. © 2015 Phyton, Inc. Microsystems and Development Tools 176 5.4.2.1 ChipProg Device Programmers Access Mode The Access Mode line, normally collapsed, can be expanded to invoke setting dialogs for one of the following modes: Invalid Block Management Spare Area Usage Guard Solid Area Tolerant Verify Feature Invalid Block Indication Option 5.4.2.1.1 Invalid Block Management Here you can specify the algorithm of managing invalid blocks. Clicking the Invalid Block Management menu line opens the pop-up dialog: Select one of four options: Do Not Use Ignore information about invalid blocks and do not care of the invalid block management. Writing into invalid blocks is enabled. Skip IB Skip invalid blocks Skip IB with Map in 0-th Block Skip invalid blocks, put the Invalid block map in the block #0. RBA (Reserved Block Area) Use the RBA algorithm 5.4.2.1.2 Spare Area Usage Here you can specify of how to use the Spare Area. Clicking the Spare Area Usage menu line opens the pop-up dialog: © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 177 Select one of three options: Do Not Use This default option means: "in no case do not use Spare Area for storing user's data". Choosing this default option prevents overwriting invalid block markers in the Spare Area by the user's data. After erasing the device Flash memory markers of the invalid blocks will be restored in the Spare Area. User Data The Spare Area can be used for storing the user's data; the invalid block markers written into the Spare Area will not be protected against overwriting by user's data. If this option is chosen the programmer writes the data from its buffer into the major device memory and when this memory is completely full the programmer begins writing into the Spare Area. The programmer buffer displays merged memory pages, including the Spare Area. User Data with The Spare Area can be used for storing the user's data but the invalid block markers IB Info Forced written into the Spare Area will be protected against overwriting by user's data. Even if the programmer had overwritten the invalid block markers in the Spare Area it will restore these markers after completion of the programming operation. 5.4.2.1.3 Guard Solid Area Some applications require fetching the information with strictly linear address range, e.g. the memory must be free of invalid blocks in this range. In particular, initialization of a microcontroller is possible only if the loading code is fetching from the memory device with continiously linear address space, so the source memory must not have invalid blocks. By default the ChipProgUSB disables guarding the memory area. Clicking the Guard Solid Area menu line opens the pop-up dialog where you can toggle the options: When you select Enable in the dialog above you should specify this area by setting two parameters in the Solid Area setting dialog: Start Block - the address of the first memory block that does not include invalid blocks Number of Blocks - the number of valid blocks in the specified memory area © 2015 Phyton, Inc. Microsystems and Development Tools 178 ChipProg Device Programmers If in a process of the programming verification the ChipProg locates an invalid block within the specified Solid Area it will issue an error message and stop the current programming operation. 5.4.2.1.4 Tolerant Verify Feature Here you can enable working with the memory having a certain number of errors within a specified memory range or disable this feature. By default is is disabled. Clicking the Tolerant Verify Feature menu line opens the pop-up dialog where you can toggle the options: Usually this option is applicable in case of use the Error Checking and Correction (ECC) method of managing invalid blocks when you can tolerate with some errors in the data fetched from the memory device. When you select Enable in the dialog above you should specify two parameters in the Acceptable number of errors dialog: ECC Frame size (Bytes) - Size of the memory array where you allow to have errors, in Bytes. Acceptable number of errors - Acceptable number of single bit errors. 5.4.2.1.5 Invalid Block Indication Option Here you can choose the invalid block presentation in the ChipProgUSB memory buffer. Clicking the Invalid Block Indication Options menu line opens the pop-up dialog where you can select either the '00h' value (default) or the '0F0h': 5.4.2.2 Access Mode Parameters This Access Mode Parameters submenu of the Device Parameters menu allows to invoke setting dialogs for the following parameters: User Area Solid Area RBA Area ECC Frame size Acceptable number of errors © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 179 Some of the parameters above are associated with appropriate Access Modes. 5.4.2.2.1 User Area Some basis programming operations, including Program, Read, and Verify can be set applicable not to an entire NAND Flash memory device but to a specified part of the device memory - the User Area. The Erase and Blank Check operations are applicable only to the entire device. The User Area's boundaries are set by individual setting of a pair of the following parameters: User Area - Start Block - the first memory block of the User Area. User Area - Number of Blocks - the number of blocks in the User Area. To set the User Area first click the User Area - Start Block submenu line. The setting dialog will pop up: Type the value and click OK. Then click the User Area - Number of Blocks submenu line and enter the number of blocks into the pop-up dialog; then click OK to complete the User Area settings. 5.4.2.2.2 Solid Area The Solid Area's boundaries are set by individual setting a pair of the following parameters: Solid Area - Start Block - the first memory block of the memory area free of invalid blocks. Solid Area - Number of Blocks - the number of blocks in the Solid Area. To set the Solid Area first click the Solid Area - Start Block submenu line. The setting dialog will pop up: © 2015 Phyton, Inc. Microsystems and Development Tools 180 ChipProg Device Programmers Type the value and click OK. Then click the Solid Area - Number of Blocks submenu line and enter the number of blocks into the pop-up dialog; then click OK to complete the Solid Area settings. 5.4.2.2.3 Reserved Block Area The Reserved Block Area (RBA) boundaries are set by individual setting a pair of the following parameters: RBA Area - Start Block - the first memory block of the RBA. RBA Area - Number of Blocks - the number of blocks in the RBA. To set the RBA first click the RBA - Start Block submenu line. The setting dialog will pop up: Type the offset value and click OK. Then click the RBA Area - Number of Blocks submenu line and enter the number of blocks into the pop-up dialog; then click OK to complete the RBA settings. 5.4.2.2.4 ECC Frame size This parameter of the Tolerant Verify Feature mode defines a size of the memory array where you allow to have errors. To set a parameter click the ECC Frame size submenu line. Then specify the parameter in bytes and click OK to complete the setting. 5.4.2.2.5 Acceptable number of errors This parameter, associated with the Tolerant Verify Feature mode, defines an acceptable number of single bit errors in the the memory array defined by the ECC frame size. To set the parameter click the Acceptable number of errors submenu line. Then enter the number and click OK to complete the setting. © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 5.5 181 Multi- and Gang-programming NOTE: All the statements below refer only to the ChipProg device programmer control via the ChipProgUSB user interface and not in the remote mode via the Application Control Interface. ChipProg programmers can be launched in two programming modes: Single-programming mode, than means programming one device at a time by means of one ChipProg programmer. Multi-programming or Gang-programming mode that means concurrent programming of multiple devices at a time by: -- either a multiple single site programmers of one type connected in one programming cluster driven from one computer; -- or a special 4-site ChipProg-G41 gang programmer. The Multi-programming mode differs from the Single-programming mode in the following items: 1. Only the same type of programmers can be used in this mode - either ChipProg-40 or ChipProg-48 or ChipProg-481 or ChipProg-ISP programmers; 2. Only the same type of the device may be selected for every single programmer connected in one programming cluster; 3. Only the same set of buffers can be opened for every single programmer connected in one programming cluster; 4. Only the AutoProgramming function can be executed by the ChipProgUSB in this mode. There is however one exception - ChipProg-G41 gang programmers can be combined with ChipProg-481 tools; 5. The Program Manager tabs and dialogs are very different. The Multi-programming mode is intended for small- and middle-volume manufacturing. The programmers in the Multi-programming mode work concurrently, e.g. you can start programming on one site, insert a new device into a second socket, start the programming, insert a new device into a third socket, start the programming, remove the first programmed device, etc.. An ability to linearly increase the programming system productivity by adding a new ChipProg programmer gives you flexibility and save money. In terms of the control there is no difference whether the ChipProgUSB controls a ChipProg-G41 gang programmer or the program drives a cluster of multiple single ChipProg-40 or ChipProg-48 or ChipProgISG programmers connected to one PC. To launch ChipProgUSB program in the Multi-programming mode it should be invoked either by using the ChipProgUSB-GANG shortcut in the ChipProgUSB folder or from the command line with the key /GANG. The first dialog that appears when you started the ChipProgUSB-GANG shortcut (for the case when only two programmers forms a two-site programming cluster): © 2015 Phyton, Inc. Microsystems and Development Tools 182 ChipProg Device Programmers Now you should press the Start button on the programmer to which you would like to assign the site #1. Then the ChipProgUSB will prompt to assign the site #2 to another programmer (in case there are more than two programmers in the programming cluster), etc. After assigning numbers to the programmers you will get the Program Manager window that differs from the same window that you get when you work with one programmer. 5.5.1 The Program Manager Window The Program Manager window is the major control object on the screen from which an operator controls the ChipProg . While some windows can be closed in a process of programming this one is supposed to be always open and visible. The window appearance differs from the same Program Manager window that you get when you work with one programmer. The window includes three tabs, opening three groups of settings and status indicators: The Project Manager tab The Options tab The Statistics tab The Project Manager and Options tabs look differently and enable different settings for the ChipProg programmers working in the single-programming and multi-programming modes. These tabs are identical for the ChipProg-G41 gang programmer and for the ChipProg-481, ChipProg-48, ChipProg-40 and ChipProg-ISP programmers when they are configured to work in the multi-programming mode. © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 5.5.1.1 183 The Program Manager tab Since the only AutoProgramming is available in the multi-programming mode this tab serves for manual AutoProgramming initiation, displaying the site statisticsand information messages generated by the ChipProgUSB program. 5.5.1.2 The Options tab The tab serves for setting all programming parameters and options for multi-programming mode. Element of dialog Buffer: Description The field Buffer displays the active buffer to which the programming operations (functions) will be applied. A full list of open buffers is available here via the drop-down menu. Addresses Here you can set the addresses for the buffer and the target device to which the programming functions will be applied. Device start: The very first address in the target device's physical memory which will be programmed. Device end: The very last address in the target device's physical memory which will be programmed. Buffer start: The very first address in the buffer memory from which the data will be written to the target device. Split Data The group of radio buttons in the Split data field allows to program 8bit memory devices to be used in the microprocessor systems with the 16- and 32-bit address and data buses. To do this the buffer content should be properly prepared to split one memory file into © 2015 Phyton, Inc. Microsystems and Development Tools 184 ChipProg Device Programmers several smaller files. Options: Device-Auto-Detect If this box is checked then AutoProgramming will start immediately after the ChipProg programmer has detected that the device is in the programming socket. Check device ID By default this option is always on and the ChipProg always verifies the target device identifier given by the device manufacturer. If the box is unchecked the program will skip the device ID checking. Insert test If this box is checked the ChipProgUSB will test whether each of the device leads is reliably squeezed by the programming socket contact. If some contact is bad a current operation will be blocked. Reverse bytes order If this box is checked the ChipProgUSB will sweep the byte order in the 16-bit word while it executes the Read, Program and Verify operations. This option does not affect the data in the ChipProg buffers, they remain the same after the file loading. Blank check before program If this box is checked the ChipProgUSB will always check if the target device is blank before programming it. 5.5.1.3 Verify after program If this box is checked the ChipProgUSB will always verify the device content right after it has been programmed. Verify after read If this box is checked the ChipProgUSB will always verify the device content right after it has been read out. The Statistics tab This tab opens the field displaying the programming session statistical results for each programming site - Total number of devices that were programmed during the session, what was the yield (Good) and how many devices have failed (Bad). © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers Element of dialog Description Clear statistics This button resets the statistics.. Device Programming Countdown Enable countdown Display message when countdown value reaches zero Reset counters when countdown value reaches zero 185 Normally the Total counter increments after each Auto Programming; the, Good and Bad counters also count up. The ChipProgUSB reverses the counters to decrement their content (to count down). If the box is checked the ChipProgUSB will count the number of the programmed devices down. If the box is checked the ChipProgUSB will issue a warning when the counter Total is zeroed. If the box is checked the ChipProgUSB will reset all the counters when the counter Total is zeroed. Count only successfully programmed devices If the box is checked the ChipProgUSB will count only the successfully programmed (Good). All other statistics will be ignored. Set initial countdown value Clicking on the button opens the box for entering a new Total number that then will be decremented after each Auto Programming. © 2015 Phyton, Inc. Microsystems and Development Tools 186 5.6 ChipProg Device Programmers In-System Programming The ChipProg programmers generate all the signals necessary for programming devices installed in the user's equipment (in-system). In order to program devices in-system the programmers connect to the target via special adapters. When a device to be programmed is chosen, the ChipProgUSB software displays a part number of the appropriate cable-adapter in the Device Information window. The adapters.chm file includes wiring diagrams for all cable-adapters, that allows use of the adapters made by customers themselves. General requirements for connecting ChipProg programmers to the target system Connections 1. Connections must be done in accordance to the adapter's wiring diagram published in the adapters.chm file. 2. The target system should not shunt or overload the logical signals generated by the programmer. 3. Some IPS algorithms require generating logical signals with the voltage levels of 10 to 15V exceeding normal voltages used in electronic systems (3 to 5V). The target system should be tolerant to applying such "high voltages". Powering There are two alternative options for powering the targets: 1. The target gets power from the ChipProg. This is possible only if the target does not consume too much energy. The current supplied from the programmer may not exceed 80 mA, a capacity of the target power circuitry should not exceed 50 uF. 2. The target gets power from a built-in or external power supply. In this case the power output from the ChipProg should not be connected with the target. The target system should be tolerant to applying logical signals with the voltage levels exceeding the voltages on the target. NOTE! It is strictly prohibited to power the target from both the programmer and built-in or external power supply simultaneously. Electrical characteristics of the ChipProg signals Max current load for the logical signals - 5 mA. Max current load for the Vcc line - 80 mA. Max current load for the Vpp line - 80 mA. NOTE! Always carefully check connecting your ChipProg programmer to the target. Wrong connecting may, and probably will cause destruction of the programmer's and/or the target system's hardware. © 2015 Phyton, Inc. Microsystems and Development Tools Operating with Programmers 187 Most embedded microcontrollers have different algorithms for the ISP procedure. See the following topics regarding the ISP for popular microcontrollers: Specifics of the in-system programming of the Microchip PICmicro Specifics of the in-system programming of the Atmel AVR microcontrollers Specifics of the in-system programming of the Atmel 8051 microcontrollers 6 References 6.1 Errors Messages 6.1.1 Error Load/ Save File 5005 "Error reading file" 5004 "CRC mismatch, loading terminated" 5003 "Invalid .HEX file format" 5043 "Address out of range" 5078 "End address should be greater than start address" 5151 "Invalid file format" 5007 "Error writing file" 6899 "Cannot load file '%s': buffer #%u does not exist" 6900 "Cannot load file '%s': sub-level #%u does not exist" 7019 "Unable to open project file: '%s'.\n\nAfter start, the programmer attempts to load the most recent project. This error means that the project file does not exist on disk." 6.1.2 Error Addresses 5189 "Device start address (0x%LX) is too large.\nMax. address is 0x%LX." 5190 "Device end address (0x%LX) is too large.\nMax. address is 0x%LX." 5191 "Buffer start address is too large" 4024 "Address %s is out of range (%s...%s)" © 2015 Phyton, Inc. Microsystems and Development Tools 188 ChipProg Device Programmers 4106 "File format does not allow addresses larger than 0xFFFFFFFF" 4019 "Address in device: 0x%08X, Address in buffer: 0x%08X\n" 6626 "Buffer start address must be even" 6627 "Device start address must be even" 6628 "Buffer end address must be odd" 8002 "Buffer named '%s' already exists. Please choose another name for the buffer." 6.1.3 Error sizes 6372 "Buffer size is too small for selected split data option" 6495 "Requested buffer size (%lu) is too large" 6441 "Size of file is greater than buffer size:\nAddr = %08lX, length = %u" 6431 "Source block does not fit into destination sub-level" 6859 "File size is %u bytes that is less than header size (%u bytes), loading terminated. Probably, you have specified an invalid file format." 4107 "Cannot allocate %Lu MBytes for the buffer, maximal buffer size is %Lu MBytes" 5192 "Invalid number: '%s'" . 6.1.4 Error command-line option 5329 "/%s command-line option: Device name required" 5330 "/%s command-line option: Missing file name" 5331 "/%s command-line option: Missing file format tag" 5332 "/%s command-line option: Invalid file format tag" 5333 "Command line: unable to determine the file format" 5334 "/%s command-line option: Invalid address value" 4104 "Command-line option /I ignored because /A option is not specified" 6.1.5 Error Programming option 6409 "Invalid programming function or menu name:\n'%s'" 6410 "Invalid programming option name '%s'" 6902 "Invalid '%s' programming option value string: '%s'" © 2015 Phyton, Inc. Microsystems and Development Tools References 189 6411 "Programming option '%s' cannot be changed" 6412 "Programming option string is too long.\nMax. length is %u." 6854 "Programming option '%s' has type of '%s'. Use '%s()' script function to get the value of this option." 5188 "Value %.2f is out of range of %.2f...%.2f for programming option '%s'" 6561 "Value %ld is out of range of %ld...%ld for programming option '%s'" 4001 "Not all of the saved auto-programming functions were restored. Check the auto-programming functions list." 6.1.6 Error DLL 6499 "Cannot find bit resource with id 0x%X in DLL:\n'%s'" 6500 "Error handling bit resource with id 0x%X in DLL:\n'%s'" 6502 "Unable to find device '%s' in DLL:\n'%s'" 6.1.7 Error USB 4015 "USB device driver error 0x%04X in '%s'.\n\nCannot recover from this error, exiting.\n\nPlease check if the programmer power is on. If yes, disconnect the USB cable from computer and connect it again, then restart the %s shell." 4016 "All sites reported USB device driver error.\n\nCannot recover from this error, exiting.\n\nPlease check if the programmer(s) power is on. If yes, disconnect the USB cable from computer and connect it again, then restart the %s shell." 4017 "The following site(s):\n\n%s\n\nreported USB device driver error.\n\nThese site(s) will be removed from the gang programming process.\n\nPlease check if the programmer(s) power is on. If yes, disconnect the USB cable from computer and connect it again, then restart the %s shell." 6.1.8 Error programmer hardware 6546 "Source area does not fit into destination address space" 4005 "Attempt to read memory beyond buffer end: Addr = %s, len = %u bytes" 6988 "Unable to establish connection with programmer hardware. Please check if:\n\n" 4006 "Attached programmers have duplicate serial number '%s'" 4010 "This programmer with serial number '%s' has been already assigned the site number = %u" 4011 "This gang programmer with serial number '%s' has been already assigned the site numbers = %u..% u" 4013 "The programmers attached are of different types and cannot be used for gang mode.\n\nExiting." © 2015 Phyton, Inc. Microsystems and Development Tools 190 ChipProg Device Programmers 4014 "ExecFunction() does not work in Gang mode" 4020 "%s reported hardware error 0x%X, error group 0x%X. If problem persists, please contact Phyton." 4000 "The attached programmer with id = %u is not supported" 4102 "Device programming countdown value is zero%s" 6.1.9 Error internal 6527 "Internal error:\nCORE() for %s %s returned NULL.\nPlease contact your %s distributor." 4025 "Internal Error: Unable to allocate %u bytes for the buffer. Please contact Phyton." 6.1.10 Error confiquration 6503 "No programmer configuration files found (prog.ini)" 5325 "The device type '%s %s' stored in configuration " "or choosen from script file function 'SetDevice()' is not supported by %s.\n" "The device '%s %s' will be selected.\n" "Use 'Configure / Select device' to choose the device " "you need to operate on." 4002 "The '%s' configuration option has been set to an illegal state due to the data read from file. Setting this option to its default state ('%s')." 6.1.11 Error device 5326 "Device selection error" 4018 "Device '%s' is not supported by the %s. Please choose another device." 6.1.12 Error check box 6852 "Error in check box option specification string: '=' expected" 6853 "Cannot find check box option string '%s'" 6.1.13 Error mix 5195 " Number of repetitions cannot be zero" 5206 "The 'View only' option is on; editing disabled. Click the 'View' button on toolbar to enable editing." 6501 "No power-on tests defined in:\n'%s'" 6903 "'%s' is a sub-menu name, not a function name" © 2015 Phyton, Inc. Microsystems and Development Tools References 191 6401 "No more occurences" 6387 "Invalid fill string" 5172 "Checksum = %08lX" 5311 "No more mismatches" 6.1.14 Warning 5338 "Warning: JEDEC file has no file CRC" 5339 "Warning: JEDEC file has invalid CRC" 6933 "Warning: no 'file end' record in file" 6845 "Attention! The %s %s device must be inserted into the programmer's socket shifted by %d row(s) relative to the standard position as shown in the Device Information window." 6846 "Attention! Insert device into socket shifted by %d row(s) as shown on the picture." 6.2 Expressions Expressions in the program are the mathematical constructions for calculating results with the use of one or more operands. It supports various operations on expressions. The following operands are used: numbers example of expressions When a number is required, you may use an expression; will accept the value of the expression. For example, when using the Modify command in the Buffer window, you can enter the new value in the form of a number or arithmetic expression. Interpreting the expression result The expression result is interpreted in accordance with the context in which it is used. In the dialog box, when an address is required, the program tries to interpret the expression’s value as the address. If you enter a variable name, the result of the expression will be the variable’s address but not the value of the variable. If the dialog expects a number to be entered, the expression’s value will be interpreted as a number (for example, the Modify Memory dialog box of the Buffer Dump window). If you enter a variable name there, then the result will be the value of the variable, but not its address. Nonetheless, you can follow the default rules: If you need to use the variable’s value, where an address is expected, then you can write something like var + 0. In this case, the variable’s value will be used in the expression. If you need to use the variable address, apply the & (address) operation, that is, &var. 6.2.1 Operations with Expressions The program supports all arithmetic and logical operations valid for the C language, as well as pointer © 2015 Phyton, Inc. Microsystems and Development Tools 192 ChipProg Device Programmers and address operations: Designation Description ( ) Brackets (higher priority) [ ] Array component selector . Structure component or union selector -> Selection of a structure component or a union addressed with a pointer ! Logical negation ~ Bitwise inversion - Bitwise sign change & Returns address * Access by address (type) Explicit type conversion (sizeof) (returns size of operand, in bytes) * Multiplication / Division % Modulus operator (produces the remainder of an integer division) + Addition - Subtraction > < Left shift Right shift Less than Greater than >= Greater than or equal to == Equal to != Not equal to & Bitwise AND ^ Bitwise XOR | Bitwise OR © 2015 Phyton, Inc. Microsystems and Development Tools References && Logical AND || Logical OR = Assignment 193 The types of operands are converted in accordance with the ANSI standard. The results of logical operations are 0 (false) or 1 (true). Allowed type conversions: Operands can be converted to simple types (char, int, ... float). Pointers can be converted to simple types (char *, int *, ... float *) and to structures or unions. The word "struct" is not necessarily (MyStruct *). 6.2.2 Numbers By default, numbers are treated as decimals. Integers should fit into 32 bits; floating point numbers should fit into the single precision format (32 bits). The following formats are supported: 1) Decimal integer. Example: 126889 2) Decimal floating point. Examples: 365.678; 2.12e-9 3) Hexadecimal. understands numbers in C format and assembly format. Examples: 0xF6D7; 0F6D7H; 0xFFFF1111 4) Binary. Binary numbers must end with 'B'. Examples: 011101B; 111111111111111000011B 5) Symbol (ASCII). Examples: 'a'; 'ab'; '$B%8'.'. 6.2.3 Examples of Expressions Examples of expresions #test#i + #test#j 200 © 2015 Phyton, Inc. Microsystems and Development Tools 194 ChipProg Device Programmers main i + j 200 (a == b && a '3' sptr -> Member1 -> a[i] *p *((char *)ptr) 6.3 Script Language The program ChipProgUSB can execute so-called script files in a way similar to how DOS executes the batch files. The main objective of script files is to automate usage of the emulator. Using script files makes it possible to load programs, set up breakpoints, start program execution, manipulate windows and perform any actions available to you in automatic (batch) mode. It is also possible to display various messages in the Console window or other special windows, to create user's custom menus, etc. There is the option of displaying any graphical data in special windows. The script language is similar to C: almost all C constructions are supported, except for structures, conjunctives and pointers. However, there are some differences. There are also many built-in functions available, such as printf(), sin() and strcpy(). The extension of script source file is .CMD. Simple example of a script file How to write a script file How to start a script file How to debug a script file Description of Script Language Script Language Built-in Functions Script Language Built-in Variables Difference Between the Script Language and the C Language Alphabetical List of Script Language Built-in Functions and Variables 6.3.1 Simple example This example shows how to load a file and automatically program it and display the result. #include #include void main() © 2015 Phyton, Inc. Microsystems and Development Tools References 195 { LoadProgram("test.hex", F_HEX, SubLevel(0, 0)); file to buffer 0, sub-level 0 InsertTest = TRUE; if (ExecFunction("Auto Programming") == EF_OK) { if (ExecFunction("Verify", SubLevel(0, 0), 10) != EF_OK) { printf("Verify failed: %s", LastErrorMessage); return; } printf("Verify ok."); } else printf("Programming failed: %s", LastErrorMessage); } 6.3.2 // load file "test.hex" that is an Intel HEX // // set testing of chip presence to "on" // perform an automatic programming // verify 10 times // display error message if verify failed // terminate script // display Ok result // display error message Description The language used for writing the script files is similar to the C language. If you are familiar with the C language, you can skip this chapter and switch to reading about the differences between the script language and the C language. This manual contains just a few examples of programming in the script language. To find more examples, refer to books on the C language. General Syntax of Script Language Basic Data Types Data byte order Operations and Expressions Operators Functions Descriptions Directives of the Script File Language Preprocessor Predefined Symbols in the Script File Compilation 6.3.3 Built-in Functions The script file system provides you with a large set of built-in functions intended for work with lines, files, for mathematical calculations, and access to the processor resources. The system.h file contains descriptions of these built-in functions. You should include the system.h file in the script file source text with the #include directive: #include You can use these built-in functions in the same way you use any function that you have defined. Buffer access functions Device programming control functions Mathematical Functions © 2015 Phyton, Inc. Microsystems and Development Tools 196 ChipProg Device Programmers String Operation Functions Character Operation Functions Functions for File and Directory Operation Stream File Functions Formatted Input-Output Functions Script File Manipulation Functions Text Editor Functions Control Functions Windows Operation Functions and Other System Functions Graphical Output Functions I/O Stream Window Operation Functions Event Wait Functions Other Various Functions Note. To get help on a function or variable, while editing the script source with the built-in editor, point that function/variable name with the cursor and hit Alt+F1. 6.3.4 Built-in Variables You can access script language built-in variables in the same way as regular global variables. However, some built-in variables are accessible only for reading, and in case of attempt to write to such variable. The built-in variables are declared in the system.h header file. Programming variables: InsertTest ReverseBytesOrder BlankCheck VerifyAfterProgram VerifyAfterRead ChipStartAddr ChipEndAddr BufferStartAddr LastErrorMessage DialogOnError Text editor built-in variables: InsertMode CaseSensitive WholeWords RegularExpressions BlockCol1 BlockCol2 BlockLine1 BlockLine2 BlockStatus CurLine CurCol LastFoundString Miscellaneous variables: © 2015 Phyton, Inc. Microsystems and Development Tools References 197 WorkFieldWidth WorkFieldHeight ApplName[] DesktopName[] SystemDir[] errno _fmode MainWindowHandle NumWindows WindowHandles[] SelectedString[] LastMessageInt LastMessageLong 6.3.5 Difference between the Script and the C Languages The script files are written in a C-type language and you should not expect it to meet standards. Many features are not supported because they are not necessary and complication of the language can cause compiler errors (the script file language compiler is not a simple thing). • Pointers are not directly supported. But arrays are supported, therefore a pointer can always be built from an array and element number. Note that, for example, string operation functions, such as strcpy, receive a string and a byte number (index) as parameters, which form the pointer. In function declarations, index is equal to zero by default. • Pointers to functions are not supported. If necessary, a table call can always be replaced with the switch operator. • Multidimensional arrays are not supported. If it is necessary, you can write a couple of functions, such as: • • • • int GetElement(int array[], int index1, int index2); void SetElement(int array[], int index1, int index2, int value); Structures (and unions) are not supported. In fact, you can always do without structures. Structures may be required for API Windows and user DLLs operations, but as a rule only experienced programmers should do it, such as those who know how to reach structure elements. As a tip, there are functions, such as memcpy, which receive a void "pointer"). Enumerated types (enum) are not supported #define. Preprocessor macros, such as #define half(x) (x / 2), are not supported. The same operations can be done with functions. Conditional operators such as x = y == 2? 3 : 4;, are not supported; the operator "comma" outside © 2015 Phyton, Inc. Microsystems and Development Tools 198 ChipProg Device Programmers variable declaration is not supported. For example, int i = 0, j = 1; is supported, but for (i = 0, j = 1; ...) is not supported. • User functions with a variable amount of parameters are not supported. However, there are many system functions, such as printf, with a variable number of parameters. • Declaration of user function parameters such as void array[] is not supported. The system functions such as memcpy, have such parameters. • Logical expressions are always fully computed. It is very important to remember it, as a situation like char array[10]; if (i < 10 && array[i] != 0) array[i] = 1; will cause an error at the execution stage, if i is greater than 9, because the expression of array[i] will be computed. In a standard compiler such an expression is not computed, because the condition of i > 10 would cancel any further processing of the expression. • Constant expressions are always computed during execution. For example, int i = 10 * 22 will be computed not during compilation, but during execution. • The const key word is absent. • Static variables cannot be declared inside functions. But • • • • • Variables can be declared anywhere, not just in front of the first executed operator. For example: void main() { GlobalVar = 0; int i = 1; // will be OK as in C++ } Nested comments are allowed. Expressions like array = "1234" are allowed. Default parameter values in declared functions, as in C++, are allowed. For example, void func (char array[],int index = 0);. Expressions can also serve as default values, for example void func(char array[], int index = func1() + 1);. Expressions in global variable initializers are allowed. For example: float table[] = { sin(0), sin(0.1) }; void main() { ... } 6.3.6 Script Language Built-in Functions and Variables The list below includes all the names of the script language built-in functions and variables: AllProgOptionsDefault API ActivateWindow AddButton AddWatch ApplName[] © 2015 Phyton, Inc. Microsystems and Development Tools References BackSpace BlankCheck BlockBegin BlockCol1 BlockCol2 BlockCopy BlockDelete BlockEnd BlockFastCopy BlockLine1 BlockLine2 BlockMove BlockOff BlockPaste BlockStatus BufferStartAddr CaseSensitive CheckSum ChipEndAddr ChipStartAddr ClearWindow CloseProject CloseWindow Cr CurChar CurCol CurLine Curcuit DelChar DelLine DesktopName[] DialogOnError DisplayText DisplayTextF Down Ellipse Eof Eol ExecFunction ExecMenu ExecScript ExitProgram Expr FileChanged FillRect FindWindow FirstWord © 2015 Phyton, Inc. Microsystems and Development Tools 199 200 ChipProg Device Programmers FloatExpr ForwardTill ForwardTillNot FrameRect FreeLibrary GetByte GetDword GetFileName GetLine GetMark GetMemory GetProgOptionBits GetProgOptionFloat GetProgOptionList GetProgOptionLong GetProgOptionString GetScriptFileName GetWindowHeight GetWindowWidth GetWord GotoXY InsertMode InsertTest Inspect InvertRect LastChar LastErrorMessage LastEvent LastEventInt{1...4} LastFoundString LastMessageInt LastMessageLong LastString Left LineTo LoadDesktop LoadLibrary LoadOptions LoadProgram LoadProject MainWindowHandle MaxAddr MessageBox MessageBoxEx MinAddr MoveTo MoveWindow © 2015 Phyton, Inc. Microsystems and Development Tools References NumWindows OpenEditorWindow OpenStreamWindow OpenUserWindow OpenWindow Polyline ProgOptionDefault Rectangle RedrawScreen RegularExpressions ReloadProgram RemoveButtons ReverseBytesOrder Right SaveData SaveDesktop SaveFile SaveOptions Search SearchReplace SelectBrush SelectFont SelectPen SelectedString[] SetBkColor SetBkMode SetByte SetCaption SetDevice SetDWord SetFileName SetMark SetMemory SetPixel SetProgOption SetTextColor SetToolbar SetUpdateMode SetWindowFont SetWindowSize SetWindowSizeT SetWord SystemDir[] TerminateAllScripts TerminateScript Text Tof © 2015 Phyton, Inc. Microsystems and Development Tools 201 202 ChipProg Device Programmers Up UpdateWindow VerifyAfterProgram VerifyAfterRead WaitEprTrue WaitGetMessage WaitSendMessage WaitWindowEvent WholeWords WindowHandles[] WindowHotkey WordLeft WordRight WorkFieldHeight WorkFieldWidth _GetWord _ff_attrib _ff_date _ff_name _ff_size _ff_time _fmode _fullpath _printf abs acos asin atan atof atoi ceil chdir chsize clearerr close cos creat creatnew creattemp delay difftime dup dup2 eof errno exec exit © 2015 Phyton, Inc. Microsystems and Development Tools References exp fabs fclose fdopen feof ferror fflush fgetc fgets filelength fileno findfirst findnext floor fmod fnmerge fnsplit fopen fprintf fputc fputs fread freopen frexp fscanf fseek ftell fwrite getc getcurdir getcwd getdate getdfree getdisk() getenv getftime gettime getw inport inportb isalnum isalpha isascii isatty iscntrl isdigit isgraph © 2015 Phyton, Inc. Microsystems and Development Tools 203 204 ChipProg Device Programmers islower isprint ispunct isspace isupper isxdigit itoa lock locking log log10 lseek ltoa memccpy memchr memcmp memcpy memicmp memmove memset mkdir movmem mprintf open outport outportb peek peekb poke pokeb pow pow10 printf pscanf putc putenv putw rand random randomize read rename rewind rmdir scanf searchpath setdisk © 2015 Phyton, Inc. Microsystems and Development Tools References setftime setmem setmode sin sprintf sqrt srand sscanf stpcpy strcat strchr strcmp strcmpi strcpy strcspn stricmp strlen strlwr strncat strncmp strncmpi strncpy strnicmp strnset strpbrk strrchr strrev strset strspn strstr strtol strtoul strupr tan tanh tell toascii tolower toupper ultoa unlink unlock wgetchar wgethex wgetstring wprintf write © 2015 Phyton, Inc. Microsystems and Development Tools 205 206 6.4 ChipProg Device Programmers In-System Programming for different devices NOTE! Always carefully check connecting your ChipProg programmer to the target. Wrong connecting may and probably will cause destruction of the programmer's and/or the target system's hardware. Most embedded microcontrollers have different algorithms for the ISP procedure. See the following topics regarding the ISP for popular microcontrollers: Specific of the in-system programming of the Microchip PICmicro Specific of the in-system programming of the Atmel AVR microcontrollers Specific of the in-system programming of the Atmel 8051 microcontrollers 6.4.1 Specific of programming PICmicro 1. Most of the PIC microcontrollers produced by Microchip Technology Corporation require a special HV ISP Programming Mode (High-Voltage in-System Programming Mode). In this mode a relatively high voltage of 13V is applied to the MCLR device pin. The user's equipment to be programmed should be designed in the way tolerating a 13V signal to be applied to the MCLR device pin - in particular this pin should not be connected to the Vcc pin of the device. 2. Though the PIC microcontrollers are capable to work in a certain range on the Vcc voltage (the range varies from 2 to 5V for some PICmicro derivatives) the device being under programming must have the 5V voltage level applied to the Vcc device pin. If in the working mode the target microcontroller works under the Vcc lower than 5V and the target cannot tolerate applying the 5V voltage to the Vcc pin, then, if the user needs to program the PICmicro device in-system, it is necessary to change the schematic to have an ability to connect 5V to the Vcc pin while the target is under the programming. However, verification of the correct programming can be conducted under the voltages allowed by the manufacturer (Vcc min - Vcc max). 6.4.2 Specific of programming AVR microcontrollers Microcontrollers of the Atmel AVR series can be programmed in-system being under a normal Vcc voltage. Practically all AVR microcontrollers require clocking while they are under in-system programming. ChipProg programmers are capable to send clocks to the target microcontroller but sometimes the systems based on AVR microcontrollers have their own built-in clock generators. 1. If the system has its own built-in clock generator then make sure that the clock line of the ChipProg cable adapter is not connected to the clock input pin of the target microcontroller, otherwise it may destroy either the target or programmer hardware. What you need in this case is just to enter a value of the generator clock frequency in the Algorithm Parameters > Oscillator Frequency field in the Device and Algorithm Parameters Editor window (see on the picture below). By default the Oscillator Frequency value is 2.5 MHz. To change it double click the Oscillator Frequency line displayed in blue color and enter the Fclk value into the popped up dialog. If the actual clock frequency differs from the value set in the window the correct programming will be impossible. © 2015 Phyton, Inc. Microsystems and Development Tools References 207 2. If the target system does not have its own built-in clock generator then, the target AVR device needs to get clocks from the ChipProg built-in generator; thus the clock output wire of the cableadapter should be connected to an appropriate clock input pin of the target device. By default the Fclk= 2.5 MHz. It can be set in the range of the Fclk allowed for a particular selected target AVR device in the Algorithm Parameters > Oscillator Frequency field in the Device and Algorithm Parameters Editor window (see the picture above). 6.4.3 Specific of programming Atmel 8051 microcontrollers Microcontrollers of the Atmel 8051 family (AT89 series) can be programmed in-system being under a normal Vcc voltage. Practically all these microcontrollers require clocking while they are under insystem programming. ChipProg programmers are capable to send clocks to the target microcontroller but sometimes the systems based on the Atmel 8051 microcontrollers have their own built-in clock generators. 1. If the system has its own built-in clock generator then make sure that the clock line of the ChipProg cable adapter is not connected to the clock input pin of the target microcontroller, otherwise it may destroy either the target or programmer hardware. 2. If the target system does not have its own built-in clock generator then, the target device needs to get clocks from the ChipProg built-in generator; thus the clock output wire of the cableadapter should be connected to an appropriate clock input pin of the target device. © 2015 Phyton, Inc. Microsystems and Development Tools 208 ChipProg Device Programmers Index -AAbout software version 65 Acceptable number of errors Tolerant Verify Feature 180 Access mode Device and Algorithm Parameters 176 Device Parameters 176 Access Mode Parameters 178 ACI 160, 163 DLL 123 External application 123 External control 123 ACI examples 158 ACI functions ACI structures 125 ACI structures ACI functions 140 Adapters 83 Adapters attachment list 85 Adapters Connections List 83 Add Watch dialog 121 Algorithm Parameters 71 Alphabetical List of Script Language Built-in Functions and Variables 198 Angstrem SAV 81 Application Control Interface ACI 123 ACI functions 123 ACI header 123 ACI structures 123 DLL 123 External application 123 External control 123 Programming automation 123 Application Control Interface exaples 158 ASCII Hex 81 Auto Programming 67 Auto-detect device in a socket 166 Auto-detect device in a socket 166 Automatic Word Completion AutoWatches pane 119 AutoWatches pane 119 AVR microcontroller 206 115 -BBackspace unindents 59 Bad Block Management 176 Bad block map Bad blocks 173 Invalid blocks 173 Bad blocks 172, 174 Binary image 81 Block Operations 116 Blocks copying / moving 116 line blocks 116 non-persistent blocks 116 persistent 59 persistent blocks 116 standard blocks 116 vertical 59 vertical blocks 116 Buffer 10 Buffer Configuration dialog 46 Buffer Dump window 74 Buffers dialog 45 memory allocation 45 -CCalculator dialog 62 Check Blank 167 Checksum 50 ChipProg main menu 39 ChipProg programmers 12 ChipProg-40 34 brief characteristics 22 bundle 21 hardware characteristics 23 © 2015 Phyton, Inc. Microsystems and Development Tools Index ChipProg-40 34 software characteristics 23 ChipProg-48 33 brief characteristics 20 bundle 19 hardware characteristics 20 software characteristics 20 ChipProg-481 32 brief characteristics 15, 17 bundle 14 hardware characteristics 15 software characteristics 15 ChipProg-G4 hardware characteristics 18 ChipProg-G41 17, 33 bundle 16 software characteristics 18 ChipProg-ISP 35 brief characteristics 26 bundle 24 hardware characteristics 27 software characteristics 27 CLI 11 Colors 56 tab 56 Command line 11, 160 Command Line Interface 11 Command Line Keys 92, 94 Command Line Mode 11 Command Line Options 94 Command Line Parameters 94 Commands menu 62 Commands Menu 62 Condensed Mode 114 Condensed Mode Setup dialog 114 Configurating Editor dialog 59 Configuration 44 buffer 46 editor Options 44 environment 44 Configuration Files 41 Configuration Menu 44 Configure the device to be programmed Configuring a Buffer dialog 75 Confirm Replace dialog 112 Console window 86 Window Console Contact Information 209 86 37 -DDefine Font 55 Define key 57 Definitions adapter 9 buffer 9 memory buffer 9 sub-level 9 Description of Script Language 195 Detect device in a socket 166 Device set into a socket 166 Device and Algorithm Parameters window 71 Device Information window 83 Device Parameters 71 Device programmer ChipProg-481 14 Device serialization 48 Difference Between the Script Language and the C Language 197 Discard device 48 Discard serial numbers 48 Display from address dialog 78 Display from Line Number dialog 116 Display Watches Options dialog 120 DLL 160, 163 Drivers USB 31 Duplicate a device 170 -E168 © 2015 Phyton, Inc. Microsystems and Development Tools ECC 173 ECC frame 180 210 ChipProg Device Programmers Edit Information to be programmed 168 Edit Key Command dialog 61 Editor Key Mapping tab 61 Editor window 108 Environment dialog 55 Erase 167 Error Checking and Correction 173, 180 Even byte 69 Examples of ACI use 158 Examples of Expressions 193 Expressions 191 -FFile format 81 File Menu overview 40 Fonts 55 tab 55 -GGang 16 Gang machine 16 Gang programmer 16 General Editor settings 59 Guard Solid Area 177 GUI 38 How to start a script file How to write a script file -II/O Stream window 122 ICP 9 Insert DIP in socket 166 Install ChipProg 29 Install the ChipProg Software 29 Installing the USB Drivers 31 In-System programming 186, 206 Introduction 9 Invalid block Array 172 Spare area 172 Invalid Block Indication IB displaying 178 Invalid Block Management 176 Invalid block map 173 Invalid blocks ECC 172 Error Checking and Correction 172 Reserved Block Area method 172 Skip Block method 172 ISP ISP HV Mode 9 ISP Mode 9 -JJEDEC -HHelp menu 65 On-line 36 Highlight multi-line Comments 59 Highlight Active Tabs 58 Highlighting Syntax 59, 115 History file 41 Holtek OTR 81 Hot Keys 57 How to Get On-line Help 36 117 107 81 -LLabVIEW 160, 163 List Adapters connections Load file dialog 80 Load session 41 Load the file into the buffer Log file 52 83 168 © 2015 Phyton, Inc. Microsystems and Development Tools Index NAND Flash programming Access mode 175 Device and Algorithm Parameters Device Parameters 175 Numbers 193 -MMain menu commands 39 Main menu bar 39 Mapping hot keys 57 Marking bad blocks 174 MCS-51 microcontroller 207 Memory Dump Window Setup dialog 76 Memory Blocks operations 78 Menu Project 42 View 41 Menu File 40 load file 40 save file 40 Menu Help 65 Menu Script 63 Message box always display 58 Messages tab 58 Microchip PICmicro microcontroller Miscellaneous Settings 58 Modify Address dialog 78 Modify Memory dialog 78 Motorola S-record 81 Multi-File Search Results dialog 113 Multi-programming mode 181 175 -O- 206 -NNAND 170 NAND Flash 170 Block 170 Large page 170 NAND Flash architecture 170 Small page 170 NAND Flash memory Programming NAND devices 170 © 2015 Phyton, Inc. Microsystems and Development Tools Odd byte 69 On-line Help 36 On-the-Fly On-the-Fly Command Line Options On-the-Fly Options 98 On-the-Fly Control Example 103 On-the-Fly Control utility 97 On-the-Fly utility return codes return codes 102 Open Project 43 dialog 43 Operations with Expressions 191 Operations with Memory Blocks 78 Options dialog 53 Options&split dialog 68, 183 Overview User Interface 38 -PPackages/Adapters 45 POF 81 Preferances 53 PRG 81 Program a Device 167 Program Manager 66 Auto Programming 66, 183 dialog 66, 183 Operation Progress 66, 183 window 65, 182 Programmer 9 ChipProg-40 34 ChipProg-48 33 ChipProg-481 32 ChipProg-G41 33 ChipProg-ISP 35 98 211 212 ChipProg Device Programmers Programmer 9 work with 166 Programmers ChipProgUSB 12 Programmers ChipProg-40 21 Programmers ChipProg-48 19 Programmers ChipProg-481 14 Programmers ChipProg-G41 16 Programmers ChipProg-ISP 24 Programming check blank 167 configure the device 168 duplicate a device 170 edit Information 168 erase 167 load the file 168 program a Device 167 program functions 167 read a device 169 save the data 169 verify 169 write Information into the Device 168 Programming adapters 83 Programming automation 123 Programming characteristics AVR microcontroller 206 MCS-51 microcontroller 207 PICmicro microcontroller 206 Programming in target board 186, 206 Project 91 Project Menu 42 Project options 42, 91 dialog 42 Project Repository dialog 43 Projects 91 -QQuick Start 29 Quick Watch enabled 58 Quick Watch Function -RRead a Device 169 116 Regular Expressions search for 113 Remote control 92 Replace Text dialog 111 Repository 43 Reserved Block Area 172 Reserved Block Area Parameters RBA 180 RBA parameters 180 Reserved Block Area 180 Run ChipProg 11 -SSave file from buffer dialog 82 Save session 41 Save the data read out from a device 169 Script 105, 194 menu 63 Script Files 105, 194 dialog 105 Script Language Built-in Functions 195 Script Language Built-in Variables 196 Script source window open 105 Search for Regular Expressions 113 Search for Text dialog 110 Search mask 45 Select color 56 Select device 45 dialog 45 Serial number 48 Serialization 49 Serialization, Checksum, Log file dialog 47 Set device into a socket 166 Set/Retrieve Bookmark dialog 114 Signature String 51 Simple example of a script file 194 Skip Block method Bad blocks 172 Invalid blocks 172 Skipping invalid blocks 172 Solid Area 177 © 2015 Phyton, Inc. Microsystems and Development Tools Index overview Solid Area Parameters Number of Blocks 179 Start Block 179 Sounds 53 Spare Area Usage SpareArea 176 Split data 69 Standard/Extended Intel HEX Statistics dialog 70, 184 Sub-layer additional 47 main 46 Sub-Layer 'Code' 46 Sub-layer 'ID location' 47 Support 36 Syntax Highlighting 115 System Requirements 11 -V81 Verify programming View 41 View Menu 41 169 -W- -TTab Size 59 Technical Support 36 Terminology 9 Terminology and Definitions Text Edit 109 Tolerant Verify Feature Tolerant Verify 178 Toolbar tab 57 38 9 -UUndo Count 59 USB Drivers 31 User window 121 User area Number of blocks 179 Start block 179 User Block Area Bad blocks 172 Block reservoir 172 Invalid blocks 172 RBA 172 UBA 172 User Interface 38 © 2015 Phyton, Inc. Microsystems and Development Tools Watches window 119 Watches Window add Watch 121 display Watches Options 120 Window menu 64 Menu Window 64 Window Device Information 83 Window Dump Setup dialog 76 Window Editor 108 Window I/O Stream 122 Window Program Manager 65, 182 Window User 121 Window Watches 119 Windows 65 Word Completion 115 Work with Programmer 166 Write Information into the Device 168 213 Back Cover
CHIPPROG-ISP 价格&库存

很抱歉,暂时无法提供与“CHIPPROG-ISP”相匹配的价格&库存,您可以联系我们找货

免费人工找货