Contents

1Installing
2Menu Commands
2.1File
2.1.1New Window
2.1.2Open Device File
2.1.3Open Program (FLASH) File
2.1.4Open Data (EEPROM) File
2.1.5Save Device File
2.1.6Save Device File As
2.1.7Save Program (FLASH) File
2.1.8Save Data (EEPROM) File
2.1.9Reload Files
2.1.10Print
2.1.11Close
2.1.12Exit
2.2Edit
2.2.1Edit note
2.2.2Edit security bits
2.2.3Edit buffer enabled
2.3Device
2.4Command
2.4.1Read All
2.4.2Read Program (FLASH)
2.4.3Read Data (EEPROM)
2.4.4Read Security and Configuration Bits
2.4.5Write All
2.4.6Write Program (FLASH)
2.4.7Write Data (EEPROM)
2.4.8Write Security and Configuration Bits
2.4.9Verify All
2.4.10Verify Program (FLASH)
2.4.11Verify Data (EEPROM)
2.4.12Erase
2.4.13GetInfo
2.4.14Reset
2.4.15Program
2.4.16Program Options
2.5Utility
2.5.1Clear buffer
2.5.2Fill buffer
2.5.3Double bank
2.5.4Byte swap
2.5.5Set Serial Number
2.5.6Serial Number Config
2.6Setup
2.6.1Interface Setup
2.6.2Calibration
3 Hardware interfaces
3.1SI Prog
3.1.1 The main board
3.1.2 IІCBus eeprom adapter
3.1.3 Microwire eeprom adapter
3.1.4 SPI eeprom adapter
3.1.5 SDE2506 eeprom adapter
3.1.6 NVM eeprom adapter
3.1.7 AVR micro adapter
3.1.8 PIC micro adapter
3.1.9 Jumper setting summary
3.1.10 Serial cable
3.1.11 Electric schematic
3.1.12 Mounting plan
4 Scripts
4.1Quick start
4.2Command reference
5FAQ
Appendix
A

1 Installing

Installing PonyProg depend on the system you have.
With Windows95/98/ME or NT/2000/XP just run the Setup.exe and follow the instructions.

With RedHat Linux 6.2/7.0 login as root and execute the command
# tar xvfzP ponyprog-X.XXX.tar.gz
# chmod +s /usr/local/bin/ponyprog2000(optional)

If you want to use parallel port interfaces without run PonyProg as root you need also a 2.4.x kernel and parport, parport_pc and ppdev kernel modules. insmod all three modules before to execute PonyProg.
If you want to use serial port interfaces be sure you have the rights to read/write the /dev/ttySx devices and /var/lock directory. With RedHat you may want to add your user to uucp group.

The first time you run the program remember to select the interface and port you use with the Setup. If the program report a message like "The interface don't respond" when started, it means that you not have configured the port properly, or the interface is not connected.
You need also to run Calibration in most cases.

2 Menu commands

The following is an explanation of each menu command.

2.1 File

2.1.1 New Window

Open a new window, each window display a buffer for the device selected.

2.1.2 Open Device File

Open a file by name, and read its content in the current window. You can select the file to open through a dialog or drag and drop the file to open over the PonyProg window. PonyProg recognize several different types of file format: e2p, intel hex, motorola S-record and raw binary. If the selected file doesn't seem to be a e2p, it tries to open the file as intel hex; if this operation fails, then it tries to open the file as S-Rec; if also this operation fails, then it opens the file as binary. If the file has e2p format, you don't need to worry about the device type currently selected, otherwise you first have to select the correct device type, then load the file. In case of splitted Program/Data device like AVR and PIC the content of the data eeprom will be displayed after the content of the program flash memory in the current window with a different color.

2.1.3 Open Program (FLASH) File

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command Open a file by name and load only the program memory. You can select the file to open through a dialog. The file to load may have one of these format: intel-hex, motorola S-record or raw binary.

2.1.4 Open Data (EEPROM) File

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command Open a file by name and load only the data memory. You can select the file to open through a dialog. The file to load may have one of these format: intel-hex, motorola S-record or raw binary.

2.1.5 Save Device File

Save the content of current window buffer to a file. If no name has been specified it works like Save as.

2.1.6 Save Device File As

Open a dialog box where you can specify the name of the file. In the bottom of the dialog box you can select the file format for the file to save (indicated by the extension). If you press OK the content of the current window will be saved in the file specified. I suggest to save always in e2p format, doing so the device type and the notes will be recorded in the file. The .bin format is raw binary format, it's commonly used to export the file to other programs.

2.1.7 Save Program (FLASH) File

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command save the content of current window buffer program memory to a file. A dialog box asks you the name of the file to save and the file format by selecting the extension. 2.1.8 Save Data (EEPROM) File

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command save the content of current window buffer data memory to a file. A dialog box asks you the name of the file to save and the file format by selecting the extension.

2.1.9 Reload Files

This command reload last opened files in the current window buffer. It's useful when you need to edit/build the files from an external program (assembler/compiler) and you need to repeat the same cycle: compile - load file - write device more than one time.

2.1.10 Print

Open a dialog box where you can select the printer name and options. If you press OK the content of the current window will be printed.

2.1.11 Close

Close the current window, if there is only one opened window a dialog window asks you if you want to exit; you can choose Yes or No. If the current window buffer is modified a dialog window asks you if you want to save the content in a file before to close the window.

2.1.12 Exit

Close all the opened window and exit the program. If there is a modified window buffer a dialog window asks you if you want to save the content to a file before to close the window.

2.2 Edit

2.2.1 Edit note

Open a dialog box where you can edit a Chip id and a note. These two fields are saved within the window buffer if you use the e2p file format (see Open). These two fields are free text editing, and are useful for a description of the device programmed and the meaning of its content.

2.2.2 Security Bits

Open a dialog box where you can edit a device specific Configuration and Security bits. This dialog is especially useful for microcontrollers, because they could not work at all without set these bits in a correct way. The following screen dumps show the configuration bits for some microcontroller families. Note that disabled bits (grayed) are not used or not modificable.

AVR AT90S4433 Security and Fuse bits

PIC 16F84

  • CP: if checked all memory is code protected
  • PWRTE: if checked power-up timer is enabled
  • WDTE: if checked watchdog timer is disabled
  • FOSC1,FOSC0: oscillator selection bits

FOSC1 / FOSC0 / Status
not checked / not checked / RC resistor/capacitor oscillator
not checked / checked / HS high speed crystal/resonator oscillator
checked / not checked / XT crystal/resonator oscillator
checked / checked / LP low power oscillator

AT89S8252

The dialog ask you to insert the first block and the number of blocks to lock. When the device is locked you can't do a "write security" or a "write high endurance" anymore. To lock the device the number of blocks must be greater than 0.

Microchp 24C65

2.2.3 Edit buffer enabled

You can toggle this item either to enable or disable the edit mode. If the edit mode is enabled you can modify the buffer content by clicking on a location of the current window. Two editing modes are available: hexadecimal editing and text editing. If you click on the HEX (center) part of the screen or press ENTER you open a dialog where you can insert the new value for that byte in decimal, hexadecimal, or character. If you click on the ASCII (right magenta) part of the screen you open a dialog where you can insert or modify a text starting from that location. You can CUT & PASTE in the text entry dialog by the use of the right mouse button. Note that you can enable/disable only the edit mode of the current window, so if there are more than one buffer window opened, the edit mode of other windows are left unchanged.

2.3 Device

Select the type of current device. You have to select the device type before any commands (read, writing, open, save, ...). Selecting an "Auto XXX" type means that the device type is determined by the program during the read or write operation, this feature is useful when you need to query a device to know if it works and which device it is. There are some different device family: the IІC Bus eeproms that are addressed with 8 bit word, the IІC Bus eeproms that are addressed with 16 bit word, the Microwire eeproms with 8 bit organization, the Microwire eeproms with 16 bit organization, the SPI eeproms, the AVR microcontrollers, the PIC 16 microcontrollers, the IMBus eeproms and SDE2506 eeprom. You can select the device family in the tool bar with the combo-box, or directly the device type in the menu. The current device type is stored in the .INI file, so the next time you run the program it's recalled. To read and write IІC Bus eeproms other than 24xx (i.e. the SDE2526, SDA2546, SDA2586, SDA3546, SDA3586) select the type "24XX Auto".
The 24C01 can be readed but not writed, you can read it as a 2402 or 24XX Auto device. Note that you can often replace a 24C01 eeprom with a new 24C02 eeprom, because it's fully compatible to the 24C01.
Several microwire eeproms support two types of word organization: 16 bit organization and 8 bit organization. The organization is selected with a pin connected to VCC or GND. SI-Prog adapter connect this pin for 16 bit organization, however some devices support only 8 bit organization.

2.4 Command

2.4.1 Read All

Read the content of a device in the current window buffer. This operation can take a while to execute, so a dialog box shows the operation progression. If you want to stop the current read just press the "Abort" button.
Finally a dialog box showing the result of the operation appears.
If the program report the message "Device not responding" means that you missed to connect the device to read, or the interface is not configured properly (see the Setup). Note that only the devices that support probing report this type of message, other device simply read all 0's of FF's (if the device is missed). The devices that support probing are the 24XX, the AVR and some PIC. In the case ofAVR device selected, the program can report the message "Device locked" in case of the locked bits was programmed. Even some preproduction devices don't support auto probing. You can't read a locked device, to program it see Write.
Since version 1.15c if you select an AVR device (AT90S2313 for example) and read it, the program try to probe the device first. If the device is missing, or the device is locked, or the device is a preproduction device a dialog box appears. It asks you if you want to abort operation, retry or ignore the error. In case of a preproduction device just select "Ignore".

2.4.2 Read Program (FLASH)

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command read only the program memory from the device, and leave the data memory intact.

2.4.3 Read Data (EEPROM)

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command read only the data memory from the device, and leave the program memory intact.

2.4.4 Read Security and Configuration bits

Read security and configuration bits from the device. Note that this command is implemented only for some devices. To modify the security and configuration bits refer to edit command.

2.4.5 Write All

Write the content of the current window buffer to a device. A dialog box ask you to confirm this unrecoverable operation. This operation can take a while to execute, so a dialog box shows the operation progression. If you want to stop the current write just press the "Abort" button. After the write operation an automatic verify is executed. Finally a dialog box showing the result of the operation appears.
Before to perform a write I suggest to select the exact device type, not the "24XX Auto" or "AVR Auto".
Note that both the program (FLASH) and data (EEPROM) memory are writed (only if the device is a splitted device like the AVR or PIC), and then verified.
Since the version 1.15c a probe is performed on every AVR device (see Read).

2.4.6 Write Program (FLASH)

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command write only the program memory to the device, and leave the data memory intact. The exception is the AVR device: to write the program memory an erase is needed, so the data memory is erased too. Some AVR devices have EESAVE fuse bit, when programmed the EEPROM is preserved during a flash erase.

2.4.7 Write Data (EEPROM)

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command write only the data memory to the device, and leave the program memory intact.

2.4.8 Write Security and Configuration bits

Write security and configuration bits to the device. Note that this command is implemented only for some devices. To modify the security and configuration bits refer to edit command.

2.4.9 Verify All

Verify the content of a device, compares it to the content of the current window buffer. This operation can take a while to execute, so a dialog box shows the operation progression. If you want to stop the verify just press the "Abort" button. Finally a dialog box showing the result of the operation appears.

2.4.10 Verify Program (FLASH)

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command verify only the program memory from the device, and ignore the data memory.

2.4.11 Verify Data (EEPROM)

This command is available only for splitted Program/Data devices. The buffer is splitted in two different part for these devices: the first part for program memory and the second part for data memory. This command verify only the data memory from the device, and ignore the program memory.

2.4.12 Erase

Erase all the content of a device to FF's (both program and data memory). Note that this command is implemented only for AVR and PIC devices.

2.4.13 GetInfo

Shows some informations about the device. Some of these informations are showed also in the status bar at the bottom of the main window.

  • Size of the buffer, it's equal to the size of the device in bytes. In the case of AVR or PIC devices, it's equal to the sum of the program memory size plus the data memory size.
  • CRC calculated on the content of the buffer.
  • Bank roll over. It's a characteristic of some old IІC Bus eeprom (24XX). In some case uou can't replace a "roll-over eeprom" with a "no roll-over eeprom".
  • Security and High endurance block. The Microchip 24C65 has a feature to protect some block from writing, or enable some block to have 10 milions writing cycles. (see edit to change it).

2.4.14 Reset

Reset the device. It's useful with in-system applications.

2.4.15 Program

Execute a customizable sequence of commands. You can select the commands to execute with program options

2.4.16 Program Options

Select the commands to execute with the Program command.