Index

Introduction

ORANGE - Universal programer for Serial EEPROM and MCU. Programer is designed to read/verify/write data in diferent series of programable devices..

Features

  • Read/write/verify chips and microcontrollers.
  • Aside from other programmers all read/write algorithms are written with special HPL macrolanguage which enables not only to study and correct transfer protocols, but to add any types of SEEPROM and MCU.
  • Read/write files in bin and hex formats. Read files in format e2p.
  • Buffer edit in HEX and ASCII mode.
  • Feature to write selected area of the buffer in EEPROM.
  • Supports system transfer buffer (clipboard).


System Requirements

PC system requirements

ORANGE5 programmer can be used on a PC with the following minimum configuration

  • IBM PC/AT or compatible;
  • Processor Pentium or higher;
  • VGA (SVGA) - compatible video adapter;
  • Free USB 2.0 port
  • Mouse device - (recommended);
  • Operational system MS Windows XP (tm);
  • 64+ Mb RAM;
  • At least 1Mb free space available on hard disk.


Install

Programmer connection And Program Installation

  1. Turn off PC
  2. Turn on PC
  3. Copy the program from CD and paste on HDD or extract downloaded from our site archive.
  4. The switch on the case of the programmer must be in position "N" (near the USB out)
  5. Connect cables included in the set with the programmer and PC's USB port
  6. When Windows detects the new device it will ask to install driver USB Driver is located in folder DRIVER. For Windows 64-bit select folder X64.
  7. After driver installation is complete restart PC
  8. The led Mode on the programmer must be lid.
  9. Run Orange.exe
  10. Programmer is ready to use
  11. When it is started for first time it is recommended to check programmers' serviceability and if it is connected right For this in menu Options - Press Test button. During the proccess there must be no chip in the panel. If error occures a corresponding message appears.


Menu

Work with the menu

To use menu hold Alt button and move the marker to the needed item using cursor control arrow buttons or just select it with mouse
  • File
    - New - new file.
    - Open file - read file into the buffer.
    - Save - save file.
    - Save as - save file with different name.
    - Descriptions - review and edit descriptions.
    - Recent - Show the last 4 names of files to load.
    - Exit - End of work.
  • Buffer - I/O buffer operations:
    - Copy - copy the selection from the buffer to clipboard.
    - Paste - paste the selection from clipboard.
    - Search - search the hex string in I/O buffer. You can use '?' wild character to replace any byte or half-byte.
    - Replace - replace, the string can have the same wild character as in Search.
    - Select Block - selecting block using specified addresses.
    - Fill Buffer - using a constant or string to fill the buffer.
    - Xor Buffer - exclusive OR for a constant and buffer.
    - Swap bytes - swapping adjacent bytes.
    - Swap nibbles - swapping half bytes in a byte.
    - Swap bits - swapping bits in a byte.
    - Checksum - 3 algorithms to calculate a checksum.
    - Registers - edit user registers (if specified).
  • Device
    - Read - read EEPROM
    - Write - write EEPROM
    - Modify - write the marked bytes only.
    - Compare - compare the buffer and EEPROM (flagging the differences).
    - Difference - compare the buffer and EEPROM (building a table).
  • Tools
    - Calculator - starts the built-in Calculator
    - Pin Tester - window for manual pin operation
    - Statistic - Statistical analyzer for buffer data
    - Debug - Debug mode.
  • Options
    General - general setting.
    - Force write - writing complete buffer (otherwise the specified bytes only).
    - Verify during write - test reading during the write (for every word).
    - Verify after write - test reading after the write (not done in Modify mode).
    - Block mode enable - allow block read/write.
    - Confirmation - Confirm the actions.
    - Button Bar - additional buttons bar (for user sections of HPL).
    - Auto save - automatic save of the options.

    Hardware - select Programmer type and USB port. Testing the installed Programmer
    Remove chip from socket before test!
    Editor - settings for the hex editor.
    - Mark clear - remove selection after the action.
    - 16 bit editor - 16-bit editor mode.
    - ANSI-OEM conversion - character conversion for the editor ASCII field.
    - Show gridlines - show grid.
    - Read only - read only buffer.
    - Default buffer value - hex number to fill the buffer by default.

    Files - file settings.
    - Check file size - check file size during load.
    - Mark load data - mark load data in editor.
    - Descriptions - support description file.
    - Swap 16-bit files - swap high and low bytes in binary files for 16-bit ICs.
    Caution! Files created with this option will be incompatible with the Orange standard files.
    - Backup files - number of backup files stored in BACKUP folder during EEPROM reading. 0 - no backups.
    Device - settings for the current device.
    Colors - color settings.
    Language - user interface language (Russian, English). Language is switched after software reload.
    Calculator - built-in calculator call.
    Compare mode - Compare mode in the Editor.
  • Type - Select device type

    • Help
    Help - program help.
    Chip info - additional info for device (INFOFILE).
    Chip pinout - device pinout.
    System info - system info.
    About Orange - Software version.
Most frequently used functions may be called using the following hotkeys:

F1 | Help.
Shift-F1 | Device pinout.
F5 | Read.
Shift-F5 | Read marked block.
F6 | Write.
Shift-F6 | Write marked block.
F7 | Compare device and buffer.
Shift-F7 | Compare as table.
Ctrl-F7 | Compare files
Ctrl-A | Delete whole buffer
Ctrl-C | Copy in transfer buffer
Ctrl-M | Jump to next selected byte
Ctrl-N | New file (clear buffer)
Ctrl-O | Open file
Ctrl-P | Power control mode
Ctrl-S | Save file
Ctrl-V | Paste from transfer buffer
Ctrl-F1..F5 | Call user functions


Editor

Editor will modify the hex and ASCII content of the buffer. The upper window column shows the byte addresses in the line. The right column shows the editor addresses. The current byte address is the sum of the line and column addresses. You can see it in the additional info line as well. Left mouse button click opens the window to jump to the specified address.

Main window shows two areas, left for hex values and right - for the corresponding ASCII codes. A block can be selected by holding left mouse button and moving the cursor. Context menu is open by the right mouse button click.

8 or 16-bit mode is set automatically following the selected EEPROM type. These modes show different hex and ASCII content!

Editor "hotkeys"

Tab | HEX/ASCII switch
Ins | Byte select (set/reset) (or left mouse button double click)
Gray - | Remove select.
Gray + | Select (highlight) the whole buffer.
Gray * | Invert selection.
Ctrl-B | block start
Ctrl-C | copy block
Ctrl-E | block end
Ctrl-M | jump next selection
Ctrl-T | instqallation check
Ctrl-V | insert block
PageUp | page up
PageDown | page down
Ctrl PgUp | buffer begining
Ctrl Home | buffer begining
Ctrl PgDn | buffer end
Ctrl End | buffer end
Home | line start
End | line end
BackSpace | Go to the previous byte (character).

Status line

Status line is at the screen bottom. It shows the device type, settings panel and special button states.


About security in Motorola MCU

Setting the device type

You can set device type using menu command Type or "Type select" button on the toolbar.

Selection window has two columns: Group and Device. All devices are shown in groups following the manufacturer or functions. Changing group automatically updates the device list in the right window. Mouse and cursor buttons control are supported.
Fast jump to the name is done by typing the name first letter on keyboard. Selection is confirmed by mouse left button double click or OK button.

In "Search" mode enter the numbers and/or characters of the device name the cursor will be set on the first found device with the similar name.

Types and parameters are set in Orange.cfg file.
Type and parameters for the current device are shown in the lower information window.


cfg

Configuration file

Text configuration file Orange.cfg includes:

GROUP - group name:
(*) GROUP=MicroWire
All devices described up to the following division are from the current group.

CHIP - Device description:
(*) CHIP=93C56,128x16,93c66.hpl

where: 93C56 - device name.
128x16 - memory capacity and width. If the width is 8-bit, it can be omitted. Capacity can be also specified in Kilobytes.
93c66.hpl - name of HPL file.
In case the device supports block read/write mode, the block size is shown in parenthesis following the capacity:
(*) CHIP=24C64,8K(16/8),24c512.hpl
Where 16 - read block size,
8 - write block size.
If the sizes are the same, only one number can be specified.

 AREA - memory range description:
(*) AREA=DATA,128,0,0x4200,b
Where DATA - area name,
128 - capacity,
0 - address in the device.
0x4200 - address in the buffer,
OPTIONS - options field:
b - Conversion of memory (for PIC microcontrollers)
f - skip write empty blocks (containing 0FFh)
r - reading area is prohibited.
m - the modification area is prohibited.
w - a record field is prohibited.

VCC - power supply in millivolts:
(*) VCC=5000

BAUD - transfer speed by UART, with two set values, first is starting, second - working. (Orange5 only)

IMAGE - name of the picture or description file. One chip can have up to four different bodies.

All HPL files are stored in HPL\ directory. The file is loaded after selecting the corresponding type in menu. The same module may be used for many device types of different capacity.
Windows-based program can work with many configuration files. They may have any names and be stored in the working directory. The working configuration file is selected in menu device type.


Security organization

Security organization in Motorola MCU.

HC05

In chips HC05 series security is activated via setting zero value of the SEC bit in Options register (OPTR). For 05B and 05x this register is located in first slot EEPROM (address $0100).
After activating SEC the processor can't be run in Serial RAM loader mode, thus rendering read/write impossible. For work with locked proccessors the function Skip SEC of Orange5 must be used. WARNING! In some cases loader is modified by manufacture and erases EEPROM in mode SERIAL RAM loader. In this cases user must use Skip SEC at start instead of Boot!
Skip SEC function is not changing the condition of the SEC bit. To unlock the security register OPTR has to be modified.

HC08

In HC08 FLASH area and sometimes EEPROM is secured by 8-bite password. Password is located in FLASH at addrresses $FFF6-$FFFD. When wrong password is inserted all data cells will read constant 0xAD or chaotic information. To work with the security chose Skip SEC in menu. If password is already know insert it in SSCode or choose from the list of known passwords ( this list is saved in file hc08sec.ini). To get unknown password for 908AS60(A)/908AZ60(A) press key Scan. This proccess takes around 10 min. If it is successful in the window the found password is displayed. During Scan operation, processor must be power supplied by the programmer.v

HC11

In microcontrollers HC11 series security is activated via zero bit in CONFIG register ( address $003F).
After SEC activation attempts to read erase EEPROM and CONFIG. To work with secured chips use Skip SEC of Orange5. Before skipping the programmer checks SEC condition and shows corresponding message, this operation is save and doesn't lead to data deletion.
In some types as 11PA8, SEC bit works as in HC05 i.e. EEPROM is not erased.
Skip SEC function is not changing the value of SEC bit. After loading processor via Skip SEC it is not possible to read the real data of CONFIG. If it is needed to define CONFIG the following steps must be performed:
1. Run Skip SEC, read EEPROM and save the file.
2. Perform Boot, right after that read data in CONFIG and save.
3. Repeat Boot, and write EEPROM and CONFIG.

HC12

In HC12 there is possible block of BDM interface. Intraschematic read/write in this case is impossible. In HCS12 series there is possible password protected FLASH AND EEPROM data. To define the security type in 9S12 it is needed to read the value of register FSEC. Junior 2 bits of this register SEC[1:0] correspond to:
00 secured
01 secured
10 unsecured
11 secured.

Senior bit KEYEN define password protection:
1 = backdoor to Flash is enabled.
0 = backdoor to Flash is disabled.


Calculator

Built-in calculator executes arithmetic operations with 32-bit data and supports direct formula presentation, values in hex, decimal and binary. It may be called in two ways:
1 - Standard: Menu>Options>Calculator.
2 - Context Menu: Right mouse button in Editor>Edit. The calculated result is inserted in the current edit address (in case there is no errors).

Number types:
0xNN,0NNH - hex
NN - decimal
NNb - binary
[NN] - Byte (word) from the buffer at address NN.

Arithmetic and logic operations:
+ - add
- - subtract
* - multiply
/ - divide
% - remainder
& - AND
| - OR
^ - XOR

Zero divide and remainder are prohibited. Operation priority is controlled by parenthesis.

Examples:
12+20/2 = 22
0x16&01111b = 6
[10]+[0Bh] = sum of the buffer cells 10 and 11


HPL

HPL language description. rev 2.7

06.05.2011

HPL language (Hardware Programming Language) is developed to describe the low level data interfaces with different devices.

(*) marks the examples in the document.

';' is the comment tag - the remainder of the line is not compiled.

All spaces are removed except in the strings.
Keywords should be in upper case.

  • Numbers can be specified in binary, decimal and hexadecimal:
    (*) 1234 - decimal constant
    (*) 010101B - binary
    (*) 0x1234 or 01234H - hexadecimal.
  • Strings are the character sequences enclosed in double quotes
    (*) "Test"
    Spaces in strings are not removed. If double quote is needed inside string use two single quotes: ''.
  • Address. Keyword ADR contains the current value of the address register (32-bit ) on which to perform read/write data. The address register can be used for settings (in user sections only) and increments (in READBLOCK/WRITEBLOCK sections).
  • Data. Keyword DATA is used to access the buffer at the current address. Data can be retrieved by words (8 or 16 bits following the selected memory) or by bits.
    (*) R0=DATA
    (*) DATA[I]=PININ
  • Registers. 32 32-bit registers R0..R9, RA..RF, R10..R1F can be used for math and logic operations, to store constants and data. Registers R0...R9 are universal; registers RA...RF are special. They are used to pass parameters:
    RA - parameters
    RB - I/O block size
    RC - address of the current area
    RD - area number for the multiple area devices (micro controllers).
    RE - global opcode (1-READ,2-VERIFY,3-WRITE,4-USER)
    RF - total memory size.

    Parameters are set automatically at the section start. If the value of special register is not used, the register can be used in section as a universal one. Register declare format is shown below.
    Special registers can be accessed using the names as well: $SIZE, $BLOCKSIZE, $VERIFY, $CDELAY, $WDELAY, $AREA, $VERSION.

Interface description can include many sections. Three of them are required: initial, [READ] - read word and [WRITE] - write word.

Optional sections can be used as well:

[SETUP] - initial settings, called once at the module load
[INIT] - initialization, called once before all operations.
[WRITEINIT] - write initialization, called once before EEPROM write.
[WRITEEND] - write completion, called once after programming all EEPROM words.
[READBLOCK] - reading block
[WRITEBLOCK] - writing block
[END] - operation completion, called once for any operation.

Additional user sections can be declared in menu. Their names are enclosed in brackets []. Names inside double quotes can include spaces:
(*) ["Test 1"]
Section named [---] can be used as a separator in menu. It can not be called.

In order to function run without power at the chip before the function name insert the character '!'.
'#' character means that the function will be executed on the CPU PC (implementation depends on hardware platform). For functions for mathematical processing buffer is recommended to use both characters:

(*) [!#Calculator]

Local sections (functions) are supported. Function name starts with '_' :

(*) [_START]

Function should be described before usage. Function is called by its name:

(*) _START.

Parameters can be passed using registers. Function call from inside another function is supported. Recursive calls are not recommended.

Sections READ and WRITE are called for Read and Write operations for every word.

Section calls in read mode:

[INIT]
FOR (ADR=0,ADR<SIZE;ADR++){
[READ]
}
[END]

Section calls in write mode:

[INIT]
[WRITEINIT]
FOR (ADR=0,ADR<SIZE;ADR++){
[WRITE]
IF (test read)
[READ]
}
[WRITEEND]
[END]

User section call:
[INIT]
[USERSECTION]
[END]

Modification of ADR inside section does not change its global value.

Initial section describes:

  • Input and Output signals to connect to chip (pins):
    (*) PINO=SCL,0 - Output, SCL signal name, 0 - bit number for driver
    (*) PINI=SDA,1 - Input, SDA signal name, 1 - bit number for driver
    (*) PING=SDA,1 - I/O signal name, Open Collector type.

    Input and Output signals can have the same names. Name length should not exceed 8 characters. Reserved keywords can not be used as names: "PINO", "PINI", "BUSO", "BUSI", "CDELAY", "SOCKET", "CONST", "REG", "GET", "LOOP", "ADR", "DATA", "MARK", "POWER". # before name describes inverted signal:

    (*) PINO=#DTA,0

    Device output pin can be assigned to a signal:

    (*) PINO=SDA,1,5

    This can be used to create the graphic presentation for devices connected using adapter.

  • Time delay after every pin set (in milliseconds):

    (*) CDELAY=10

    Used to control I/O speed. Real delays can be a little bit longer.

  • Socket number to connect EEPROM (Orange-1 scheme)

    (*) SOCKET=1

    If SOCKET parameter is not specified, it is taken as 0. You can create your own new Socket, but for the conditional device graphic presentation to be shown in Chip Info window, output pin table should be known in driver or described in the module.
    Socket numbers are arbitrary, as in Orange1 scheme:
    1 I2C
    2 MicroWire
    3 SDA2506
    4 SPI
    5 NVM3060
    6 S2100R
    7 AT17XXX
    In Orange4/5/SE programmers the output pin numbers for the specified socket are automatically translated by the driver.

  • Module additional information is shown in the lower window. One line only.

    (*) INFO="New module "

  • Additional help file (called from menu). Recommended file format - chm.

    (*) INFOFILE="megahelp.chm"

  • Total number of chip pins (8 by default for EEPROM)
    (*) ALLPINS=14

  • Declaration of the Registers, accessible for GET command and edit using menu (Buffer->Registers). Register names should not be repeated. If the registers are local in section, their declaration is optional.

    (*) R0=Protect - where "Protect" - register name

    Register name can be followed by comma and the register mode (display): H - hex, D - Dec, B - Bin, L - List, C - CheckBox.
    If the mode is specified in lower case, the register is not shown in edit window.

    (*) R1=CODE,h

    Number of displayed digits can be specified for H,D,B,C modes:
    (*) R2=FLAGS,B8
    (*) R3=Box,C4

    List of strings can be specified for L mode.
    Register value is equal to the sequence number of selected string, starting with zero.
    (*) R0=Mode,L,On,Off

  • Arrays are designed to work with blocks of memory of a given length. Array names must start with '@' character.
    (*) @AR1=25 - an empty array (25 elements).
    (*) @AR2={1,2,3,4,5,6,7,8,9,10,11,12,13} - filled array.

  • POWER - power control mode:
    1 - automatic on/off
    0 - controlled from module.
All other sections have the same format. One line can have many instructions separated by commas.
Instructions are briefly described below:

  • Pin set by constant, data bit, address or register:
    (*) SDA=1
    (*) SDA=DATA[2]
    (*) SCL=ADR[3]
    (*) PIN=R2[3]

  • Pin state (input line) or register bit R0..R1F can be checked:
    (*) DAT?1
    (*) R2[4]?0
    or the whole register:
    (*) R4?0x1234

If the compare operation is followed by an instruction block in braces { }, it is executed if the compare result is equal for bit (register) and constant, otherwise the instruction after braces is executed. If such a block is missing and the compare is failed, the execution is stopped and the display includes the message "Error: Chip not respond!" and HPL file error line number.

(*) R2[4]?0 {P1=0}, P2=1
If bit 4 of R2 register is equal to 0, P1=0 instruction is executed followed by P2=1, if the bit is equal to 1 execution jumps to P2=1

If the number to be compared is preceded by "!", the condition is inversed. (the block is executed in case of not equal).

(*)R2?!1234H {P1=0}
If R2 is not equal 1234H, P1=0 instruction is executed, if R2 = 1234H, next instruction is executed.

  • Setting constant value. It should be in the range 0...65535.(Old command)
    (*) CONST=159

  • Operations with registers.
    Assignment (copy):
    Register-Register (*) R2=R5
    Register-Data (*) R2=DATA
    Data-Register (*) DATA=R3
    Data width depends on the device type (8 or 16 bits).

    Arithmetic and logic operations
    (Constant or another register can be used):
    assign "=" (*) R0=356H
    add "+" (*) R0=+123 ; R0=R0+123
    subtract "-" (*) R0=-R1 ; R0=R0-R1
    multiply "*" (*) R0=*R1 ; R0=R0*R1
    divide "/" (*) R0=/5 ; R0=R0/5
    remainder "%" (*) R0=%10 ; R0=R0%10
    round shift ">" (*) R0=>>1 ; R0 right shift 1 bit
    Logical AND - AND "&" (*) R0=;&R2 ; R0=R0 and R2
    Logical OR - OR "|" (*) R0=|R2 ; R0=R0 or R2
    XOR - XOR "^" (*) R0=^R2 ; R0=R0 xor R2
    Division and remainder operations can not use constant 0 or register containing 0! Bit operations with registers
    (*) R0[R1]=1 - R0 bit which is equal to R1 bit, is set to 1.

  • LOOP - Loops. Loop variable can be: address, I/O data or constant. A universal loop can be described without variable specified. In this case access is controlled by the counter (index) of the loop I. Universal loops can be nested. The inner loop can directly access its own counter only. The boundaries for the universal loops can be set using registers. It is recommended to use the universal loops for compatibility with future versions!

    Constant should be assigned before the loop start using CONST instruction. Loop boundaries should be inside the range:
    0...32767 ? for universal loops
    0...32767 - for CONST loops
    0...1023 - for DATA loops
    0...31 - for ADR loops
    Index out of boundaries (for real DATA, ADR or CONST values) condition is not verified for universal loops.

    Loop body is included inside the braces "{","}".

    (*) LOOP=(15,0) {DI=R0[I],...}
    DI output line is assigned the value of 15..0 bits of R0 register.
    (*) LOOP=(7,0) {DI=ADR[I],...} (*) LOOP=ADR(7,0) {DI=I,...} - DI output line is assigned the value of 7..0 bits of address the current value (old version).

    (*) LOOP=0,15) {DATA[I]=DO,..} (*) LOOP=DATA(0,15) {I=DO,..} - reading 0..15 bits of the word from input line DO (old version).

    (*) R1=10H, LOOP=(5,0) {D=R1[I],..}
    (*) CONST=10H, LOOP=CONST(5,0) {D=I,..} - output line D is assigned the value of 5..0 bits from (10H) constant (old version).

    (*) LOOP=(R1,R2) {R3[I]=DATA[I]}
    Copy the bits from R1 to R2 of address word to the corresponding bits of R3 register.

    (*) LOOP=(0,7){ P1=0,LOOP=(6,1){P1=0,P1=1} }
    Nested loops.

  • BREAK - jump out from the current loop.
    (*) LOOP=(7,0) {PI?0{BREAK}}

  • Time delay (in microseconds). Delay value can be in the range 1microsecond...65sec.
    (*) P=200

  • PRINT Message display. Screen shows the window with the message; the string should be included in double quotes. The string can include the standard modifiers supported by C language for printf().

    • %X - hex value
    %u - decimal value

    To use % (percent) in the string, it should be repeated twice %%. Compiler does not check the validity and the number of the passed parameters!

    (*) PRINT=("Hello, World")
    (*) PRINT=("Code=%04lX",R1) ? Display the value of R1 register in hex mode - 4 digits minimum.

    Additional modifiers can be used to define the window type:
    E - Error - error message
    (*) PRINT=E("Hello, Mr. Bug!")

    S - Status - show in the status window
    (*) PRINT=S("Progress %03lu",R0)

    L - Log - insert into the log window
    (*) PRINT=L("Operation %02lu",R0)

    A - Ask - asking user confirmation
    Value is returned in RA register (Ok=1,Cancel=0)
    (*) PRINT=A("Are you ready ?")

  • GET - Get input values. The screen shows the window asking for data. The string in parenthesis sets the widow title. Many different values can be entered in the specified registers at the same time. Register names and data format are defined in the INIT section.
    (*) GET=("Enter value",R7,R8)

  • MARK - Set and get the marks (selection) of the current word. Address takes the value of ADR.
    (*) MARK=R1
    (*) R2=MARK

  • EXIT - End current section.

  • VCC  - Power
supply voltage control (on, off, set):
(*) VCC=1 - turn on
(*) VCC=0 - turn off
(*) VCC=3000 - set the voltage to 3,0 V (value in mV)
  • IDISABLE/IENABLE Disable/Unable interrupts. Used for the time critical operations.

More detailed information on the language implementation can be found in *.hpl files included with the programmer.


FileType

File types

BIN - binary data file

ROM - binary data file

EEP - binary data file

HEX - Intel HEX

S19 - Motorola S-records

E2P - PonyProg format file

DIZ - description file

HPL - algorithm description in HPL language

HPX - encoded HPL file

ORG - Orange registry files

PIN - Description of bodies and pins

Files with extensions BIN, HEX, S19, ROM, EEP can be automatically found in programmer's editor from Windows Explorer. For this from menu: Settings - Files - Extensions and put needed ticks. If they already were ticked remoeve all, restart program and put again.


descriptions

Description File

Descriptions are the text files named as work files with file name extension *.diz. Description file is saved and loaded at the same time as the main file. "Description file" tag in the program options should be set in order to work with descriptions.


HardWare

Sockets and Connectors of the Programmer

External connector SE

A:Vpp | x | 1:GND | 2:P0 | 3:P1 | 4:P2 | 5:P3 | 6:P4 | 7:P5 | 8:VCC
B:VppR | x | 9:GND | 10:P6 | 11:P7 | 12:P8 | 13:P9 | 14:P10 | 15:P11 | 16:P12

External Connector MT

2 - GND | 4 - RXD | 6 - TXD | 8 - RST | 10 - OSC | 12 - PDX | 14 - V10V | 16 - VCC | - | 20 - GND
1 - GND | 3 - RXD | 5 - TXD | 7 - RST | 9 - OSC | 11 - AS | 13 - V10V | 15 - VCC | 17 - VL | 19 - GND

Programmer has one socket with 16 outs. All 8 pin chips are inserted in the front side of the socket. Out one is next to the ZIF leaver. In the back side of the socket adapter SOIC8DIP which is for Microwire Rotaded (MWR) is inserted.


FAQ

Frequently Asked Questions

for Orange programmer

Version 2.5 (17.11.2015)

Q: With what OS can the programmer work ?
A:It is recommended to use Windows XP (SP2,SP3). It may be possible to work under Windows7/8 (32 and 64 bit), although it is not fully tested yet. For driver installation administrator rights are needed.

Q: What cable is needed?
A: Programmer uses standard USB cable A-B not longer than 1.8m. It is recommended to use high quality one because from it depedns work stability. Quality can be tested with the help of the programmer itself. In option menu - > Test , the higher the value in the VccUSB field is the better.

Q: For what is needed the power supply plug ?
A: It is a support option. For normal work when the programmer is connected via USB the PC supplies it with power and there is no need for additional. In case when additional power is needed you may use outer power supply 5V and not less than 500mA.

Q: How to check if the programmer works ok?
A: In menu Options - Programmer press "Test". During this there must be no chip in the socket. If error occures appropriater error message will be displayed.

Q: Why LEDs are needed?
A: Red LED is used for indication when power is supplied to the chip and lids only during work. Green LED indicates programmers readiness to work via USB it is blinking driver is missing or not working correct.

Q: How to Uninstall the program?
A: Windows-version of Orange doesn't create writings in system registry and doesn't deploy own libraries, thus for uninstall it is enough to delete the folder where program is located.

Q: After uninstall and installing new version in another folder association of BIN and HEX files is not working
A: - In menu Settings - Files.
- In section "Extensions" remove tics from all types.
- Press Ok.
- Enter in menu Settings - Files once more.
- In section "Extensions" put tics on needed file types.

Q: How to find programmer's serial number?
A: To get the serial number of Orange choose Help - System. Programmer must be connected before this.

Q: What is the difference between"Verify during write" and "Verify After write"?
A: First makes check after each symbol is written, second after whole memory are is writtend down. Verify after write is more reliable, while verify during write can show faster if there are errors. Usually there is no need to use both options at the same time.

Q: Why Orange swaps high and low bytes while writing the file for 93ñ46 and other 16-bit EEPROM?
A:As opposed to some other programmers, Orange uses Intel-like format (low byte at low address). It is more justified in this case and is confirmed by the fact that the devices having both 8 and 16 bit modes are read the same way. If you are not satisfied, there are 3 ways to correct the behavior:
1) Set swap bytes in the file options. It is not recommended to use such mode for the compatibility reasons.
2) Use ?Swap bytes? command, it works in the buffer.
3) Modify the corresponding HPL.

Q: My module XX with EEPROM YY manufactured by ZZ does not work, what is to be done?
A:1) Make sure the programmer is working properly.
2) Try to verify the device on another programmer.
3) Compare the module I/O algorithm with the manufacturer recommendations. The same EEPROM types from different manufacturers can be quite different.

Q: How can I make my own HPL module and add it to menu?
A:Make sure first it does not already exist :)

  1. Find out EEPROM pinout ? if it is the same as some existing device, take it as a prototype, and otherwise start from scratch. Do not forget to make the backup copy first before edit any module. Next choose the new module name. As a rule there are many EEPROM of different capacity with compatible set of commands. It is recommended to use the name of the EEPROM with the largest capacity. For example the group 24C04 (512x8), 24C08 (1024x8), 24C16 (2048x8) will get 24C16.HPL as the best name. All modules are stored in \HPL directory.
  2. Add new module to menu. Insert the new description line into Orange.cfg, for example: CHIP=93C46,64x16,93C46.hpl. EEPROM name, capacity, module name.
  3. Describe INIT section. If output pinout is not standard, set the parameter SOCKET=0 and let the author know about it ? he will include the output table in the next version of the driver and will assign the number. Describe the programmer outputs and the corresponding device input pins. Set CDELAY parameter, it will control the maximum clock frequency. It is not recommended to make too many experiments to minimize the parameter ? the real time delay depends on CPU speed and LPT port performance. The manufacturer recommended value is the best choice.
  4. Create [INIT] and [END] sections if needed, describe the initial settings as well as the actions after power on and before power off events.
  5. Describe [READ] section. It includes usually command generate loop, one or more loops to generate the address and a loop to read the data.
  6. [WRITE] section is to be done after the READ is implemented and debugged.

Q: What is the general purpose of user sections and what am I supposed to do with them?
A:To perform "non standard" operations. Remove, read/write of additional registers as an example.

Q: What is "Pin Tester"?
A:It is the mode to manually set/test the pins. It is useful to setup the programmer. It can also be used to verify different devices.

Q: Why Orange2-4 modules can't work Orange5?
A:Programmer schematics are a little bit different from Orange2. In the old version Microwire and SPI interfaces used the common data bus, DI and DO where connected through a resistor. Orange3 uses an additional pin for data input. Compatibility is achieved by a transparent redirection of the queries in the driver. Correct set of SOCKET parameter in the module is required.

Q: How to get Orange split one file in two different files with even and odd bytes?
A:Load file (Open File), select even bytes (Buffer - Select - Even), save the selected block (File - Save block), select and save odd bytes the same way.
Select and Load commands can also be used to merge two files in one

Q: Why current settings are not saved at next launch of the program?
A: It is possible that the program is run from CD or other read olny device. Or the program was copied from such device , in this case the option "read only" must be removed from orange.dat.

Q: Lock bits are not cleared for AT90S2313 device
A:1. If the serial programming mode is disabled, it could be done using the parallel programmer only.
2. Try to clear at lower power supply voltage (4.0...4.5V), this is a bug acknowledged by Atmel.

Q: How to set right config bits (FUSES) for AVR?
A: All fuses in the programer are made correspoding to datasheet Bird = 1 is not bird=0 MSB on the left. As a rule 0 equals active value of the bit.

Q: How to make automatic loading configuration for AVR?
A: Atmel has not developed standard method of saving fuses in HEX files as Microchip did. A possible solution for this is:
- Select controller type
- Run command Write Fuses and enter needed values bites
- Save register values - File - Export - Orange Registers. Files name must be same as firmware file, extension will be set ORG.
- At next launch register values will be loaded automatically.

Q: What means I2c, MW, SPI writings in the information line of the program?
A: In programmer Orange 3 for different series chips , different panels are used.
In programmer Orange5 panels I2C, MW, SPI are merged in one.

Q: Read and Write for 93c46 (..93c86) devices do not work in SOIC8 case
A:These devices are manufactured in two pinout versions MW è MW-R. You can find out the device type from the included documentation or check the power supply pin connection in the unit.

Q: How to change font size in hex editor?
A: Open file Orange.ini with a text editor (like Notepad) and ind the section [Options] add line FontSize=20. Instead of 20 specify the desired size. If this line already exists, correct the value.


For Beginners

Work with the programmer
First Steps

1. Installation

  1. Turn on PC
  2. Copy the program from CD and paste on HDD or extract downloaded from our site archive. The program can work from USB/flash card.
  3. Connect cable to the programmer and PC's USB port
  4. When Windows detects the new device it will ask to install USB Driver is located in folder DRIVER
  5. After driver installation is complete restart PC
After successful installation the green LED 'MODE' on the programmer must be lid continuously when there is no data transfer. If the led is blinking it means that driver is not installed, or there is problem with either PC, programmer or the USB cable.

2. Turning on

  1. Run Orange.exe
  2. To switch between languages: â menu Options - Language . Restart program.
  3. When it is started for first time it is recommended to check programmers' serviceability and if it is connected right For this in menu Options - Press Test button. During the proccess there must be no chip in the panel. If error occures a corresponding message appears.

3. Programming

  1. Select needed type controller in the menu. Most of 24 25 and 93 series microcontrollers have unified command system and outs location. This means for example that chip AT24C02 can be selected either as Atmel AT24C02 or as I2C 24C02 Although if the exact name appears in the list is must be selected, because in this case the programmer chooses optimal programming parametres
    Chip manufactured can be learned either by the logo on the body or from first letters of the marking. It is also possible to search for it in the choose type window.
  2. Switch the ZIF leaver in upper position and insert chip in the socket. Hold down the chip by turning the lever in lower position. Programmer Orange5 has one socket with 16 outs. Basically all SEEPROM chips with 8 pins are inserted in the front part of the socket (first outs are on the side of the ZIF leaver).
    Chips with Microwire interface in SOIC8 casing have two types with different pin location.
    Standard type is inserted in the left side of the socket.
    "Rotated" type is inserted in right side - pin 1 gets in place 5 of the socket.
    Chip variant can be learned either from documentationn or from power supply wiring of the scheme.

    For unsoldered microschemes pins must be cleansed first, otherwise it will lead to programming problems and filling the socket with dirt.
  3. Some types of chips require additional adapters in order to be programmed. Information about needed adapter is displayed in the info line of the programmer. Insert the adapter in expansion slot and put chip in it.
  4. to read data press F5 or choose in the menu Commands - Read. During this the led on the programmer must start blinking and a window indicationg the processes appears. For chips with big amount of processes read/write time may be long.
  5. After reading is done the led turns off and in the buffer panel of the program appers the data For more reliability reading stability may be checked by running few times compare command (F7). There must be no differences.
  6. Don't forget to save the read data in a file. (File - Save as).
  7. To write new data in the chip open it in the program's buffer. (File - Open).
  8. Press the key Write (F6).During this the led on the programmer must start blinking and a window indicationg the processes appears. The programmers makes automatic check of the written data. It is also possible to check wether the written data is correct using the command Compare.
  9. After work is done turn the leaver up and plug out the chip.
    10. Before starting work with chips that have read/write protection read coresponding section of the Help.

4. Storage.

  1. Disconnect the programmer for PC if you are not currently working with it. Cover the sockets to exclude dust insertion. Don't let the cable get broken.