Home Contact Microcontroller Serial PROM Programmer Services

Xilinx Serial PROM Programmer Technical Notes
(A few words of wisdom for those of us who frustrate easily.)

Getting started: Determining if the programmer is working and if the software sees it.

To use the Roman-Jones SPROM32-TZS PROM programmer, simply plug it into the parallel port and run the software application, SPROM32.exe. If you are using WinNT, Win2K, or WinXP, remember that you must install the sprom-nt_2k_xp.exe driver available here.

The following tests can be used to determine if the SPROM32 application software sees the programmer:

  1. Connect the programmer to the PC directly without a cable, if possible. If a cable must be used, use a flat ribbon cable type with all pins connected straight through. In a flat cable, every other wire is a signal ground which helps to reduce coupling between the signal wires.
  2. With the programming socket empty, start the SPROM32 software.
  3. Click the "Identify PROM" button, and after a few seconds the message "No Device found" should appear in the PROM information area next to "PROM name:". This is normal and indicates that the application software is communicating with the programmer.

A note about Windows NT-4, Windows 2000, and Windows XP:

These operating systems require a separate driver for the application software, SPROM32.exe to see the parallel port. This is a one time installation and the driver will always be active when you boot your computer. The driver is small and there is no reported problems with it ever having interferred with any other driver or program. The installation of the driver is outlined in readme-nt_2k_xp.txt. Because Win95 and Win98 give SPROM32 direct access to the parallel port, they do not require this driver.

A Few Things to Consider:

  • The SPROM32 program uses the parallel printer port of the PC to communicate with and control the programmer. If another program is monitoring the printer port (like a FAX program for a multi-function FAX/Printer device), and tries to use the port at the same time that the programmer is using it, the programmer may not work properly.
  • On SPROM-MPS (discontinued model with 8 pin IC socket) programmers, pin 1 of the programming socket is marked on both the top and bottom of the board, but for clarification, it is the pin closest to the edge of the board at the end of the socket closest to the battery.
  • On SPROM-TZS programmers, pin 1 of the programming socket is the pin closest to the socket handle. This means that the part is top justified in the socket.
  • The various socket adapters have pin 1 labeled on the top, bottom, or both.

The 9 Volt Battery

  • The nine volt battery draws microamps of current when your programmer is not in use. However, if left plugged into your parallel port, it may go dead in a matter of hours depending on any other software that may be talking to the parallel port. It is a good idea to unplug the programmer from the parallel port when not in use. If you are not going to be using the programmer for a couple of weeks or more, you may want to unplug the battery.
  • Feel free to use a 9 volt(DC) battery eliminator. The programmer can handle a maxium of 15VDC on the battery input. Radio Shack sells a nice wall plug battery eliminator with 9 volt battery clips on the end, catalog number 273-2552B.

Parallel Port Extension Cable

It is perfectly understandable why one may not desire to craw underneath one's desk to access the Xilinx PROM programmer hooked directly to the parallel port. Why not use an extension cable to the parallel port? Great idea, but a couple of things to keep in mind:

  • Keep the cable as short as possible, some signals are edge sensitive. Three feet is good, more than six gets difficult.
  • Make sure all connector pins are populated with wires, some printer extension cables cheat in this area.
  • Use a flat ribbon extension cable as opposed to a round cable. Every other conductor in the ribbon will be a ground that gives good adjacent signal isolation.

Error Messages:

  • "Programmer not present. If programmer is connected, check battery and cable (if used)"
    If this message box appears, there is something wrong either with the connection to the programmer, or the parallel port it is connected to. Make sure that the correct LPT port is selected in the list box at the bottom of the SPROM32 window. Also check your parallel port settings for your operating system. If you are using WinNT, Win2K, or WinXP, remember that you must install the sprom-nt_2k_xp.exe driver available here.
  • "Incompatible NT or Win2K Driver Version"
    This message appears when the version of the WinNT, Win2K, or WinXP parallel port driver is not the same as the software application, SPROM32.exe. Perhaps you updated either the driver or application without updating the other. Both are available here. Note that not every new version of SPROM32 will require a new revision of the parallel port driver. Also, this parallel port driver is not used for Win '95 or Win'98.
  • "Programmer microcontroller error, pulse not found"
    Typically, if this message is seen, the cause is that the cable being used is not fully populated with wires to all the pins of the parallel port connector, or the part to be programmed is inserted incorrectly, or there is something wrong in the power supply section of the programmer. The following tests can be used to determine the actual cause. If you are using an extension cable on the parallel port, try removing it and plug the programmer directly into the parallel port. If all else fails give us a call or try the "Electrical Tests" below.

Electrical Tests

If problems still exist, and you want to try debugging yourself, then continue with the following electrical tests. A voltmeter and a jumper wire are required. Perform these tests with the programmer by itself, not connected to the PC, and with no Xilinx part in the programming socket. Make sure that a good battery is connected. A schematic of the SPROM32-TZS PROM programmer, Version 5, in PDF form is available here.

  1. With the battery connected, measure the voltage across the battery tabs. It should be 8.5 volts or more.
  2. Locate the jumper wire labeled R11 (0 ohm resistor) on the component side of the programmer that is physically located between Q4 and RN4. Hook one end of your jumper wire to the R11 jumper
  3. Connect the other end of your jumper wire to the negative battery terminal to force the main power supply ON while performing the voltage tests. Only keep it on monentary while performing the voltage reading below.
  4. Using the negative battery terminal as the reference (GND), measure the following voltages with a voltmeter:
  • Voltage across the battery should be
    a few tenths less than before power was turned ON.
  • Voltage at U6 pin 7 should be
    a few tenths less than the battery voltage.
  • Voltage at U6 pin 8 should be near 15 volts.
  • Voltage at U3 pin 7 should be near 5 volts.
  • Voltage on pin 8 of the programming socket should be
    near 3.3 volts.
  • Voltage on pin 7 of the programming socket should be
    near 3.7 volts.

    If all of these voltages are correct, then the power supply section is OK, (unless Q4 is bad, which is used by the PC to turn on the power supply section). If the 15 volts are not present, then Q5 or U6 is bad.

If you have problems with your programmer, please contact us at info@roman-jones.com. Your feedback helps us to determine if a design or software problem exists that can be fixed. Fixes to known problems will be posted on the Roman-Jones website. Thank you for your help.