Enhanced/Dual Powered

Willem EPROM Programmer

User Guide  


Willem Package Item Image

Supported IC List

Installation & Configuration

Jumper Configuraton

Self Test Function

Software Interface

FLASH Chip Programming

EPROM Chip Programming

EEPROM Chip Programming

ATMEL Chip Programming

PIC Chip Programming

AVR Chip Programming

ATMEL AT89 Adapter

ATMEL PLCC44 Adapter

TSOP48 Adapter


Willem Package Item Image  

Main Board / Cables

Main Board PCB3.5


Main Board PCB4E


Main Board PCB5.0


Main Board PCB5.5C


Parallel Data Cable (Printer extension cable, with male-female 25 pin connector, and pin to pin through)

A-A type USB cable(for power)



Optional Items:

ATMEL 89 Adapter

ATMEL PLCC 44 Adapter

TSOP 48 Adapter


PLCC32 Adapter

SOIC Adapter(Simplified)



AC or DC Power Adapter (9V or 12V, 200mA)

SOIC Adapter(Professional)




Supported Device List



Model #


(Not include 13.5V Vpp chip)

27C16, 27C32,27C64,27C128, 27C256,27C512,27C010,27C020, 27C040, 27C1001
M27C1001,M27C2001, M27C4001
2716(Vpp25V), 2732, 2764, 27128, 27256, 27512, 27010

16 bit EPROM(DIP40) (1-4Mbit)

27C1024 (27C210), 27C2048 (27C2002), 27C4096 (27C4002)
Eprom 16bit DIP40 adaptor is needed

16 bit EPROM(DIP42) (4-32Mbit)

M27C400(DIP40), 27C800, 27C160, 27C322
Eprom 16bit DIP42 adaptor is needed

Erasable EPROM

W27E512, W27E010, W27C010, W27C020, W27C040
SST27SF256, SST27SF512, SST27SF010, SST27SF020
Vcc = 3.3-3.6V SST37VF512, SST37VF010, SST37VF020, SST37VF040


28C65, 28C64, 28C128, 28C256, 28C512, 28C010, 28C020, 28C040
M28C16A/17A (DIP28)
28C16, XLS2816 (DIP24)
AT28C64B, AT28C256, AT28C512, AT28C010, AT28C020, AT28C040

FLASH Memory

28F64, 28F128, 28F256, 28F512, 28F010, 28F020
MX26C1000, MX26C2000, MX28F1000, MX28F2000
Am28F256A, Am28F512A, Am28F010A, Am28F020A
i28F001BX, 28F004, 28F008, 28F016
SST28SF040A, LE28F4001
29F64, 29F128,  29F256, 29F512, 29F010, 29F020, 29F040, 29F080
29F001,29F002, 29F004, 29F008, 29F016, 29F032
AT29C256, AT29C512, AT29C010A, AT29C020, AT29C040, AT29C040A
W29EE512, W29EE011, W29EE012, W29C020(128),W29C040
ASD AE29F1008 (AT29C010), AE29F2008 (AT29C020)
AT49F512, AT49F010, AT49F020, AT49F040
SST39SF010, SST3S9F020, SST39SF040
AT49F001, AT49F002, AT49F008A
Am29F512, Am29F010, Am29F020, Am29F040.HY29F080
29F002, 29F002T, Pm29F002T

with TSOP48 Adapter:

Am29F400, Am29F800, 29F160, 29F320 (read/write byte mode)
HY29F200, HY29F400, HY29F800, AT49F2048A, AT49F4096A,  AT49F8192A

with TSOP48 Adapter (Vpp12V):

i28F200,i28F400, i28F800, i28F160 (TSOP48)
28F001(DIP32 or PLCC32)

with TSOP48LV Adapter:

29LV200, 29LV400, 29LV800, 29LV160, 29LV320 (read/write byte mode)

with Firmware Hub/LPC (PLCC32) adapter

Firmware Hub:
82802AB, 82802AC, AT49LW040, AT49LW080
SST49LF002A, SST49LF003A, SST49LF004A, SST49LF008A
LPC flash:
SST49LF020, SST49LF040

Serial (I2C)EEPROM

24C02, 24C04, 24C08, 24C16, 85C72, 85C82, 85C92
24C32, 24C64, 24C128, 24C256, 24C512 (allC/LC series)
PCF8572,8572, PCF8582, 8582, PCF8592, 8592

Microwire EEPROM

8 mode:93C06, 93C46, 93LC46, 93C56, 93C57,
93C66, 93C76, 93C86,93C13,93C14
16 mode:AT59C11, AT59C22, AT59C13
CAT35C102, CAT35C104, CAT35C108
93C06A ,93C46X,93C56,93C66,93C76,93C86 (NS)

PIC embedded MCU

16C5X,17XXX,18XXX series

with PIC embedded MCU  adapter:

12C508,12C508A,12C509,12C509A 12CE518,12CE519 12C671,12C672,12CE673,12CE674 16C505 16C61,16C620,16C621,16C622A 16F627,16F628,16C71,16C715 16C84,16F83,16F84,16F84A 16C64A,16C65A,16C65B,16C67 16C74A,16C74B,16C77 16F871,16F874,16F877 16C62A,16C62B,16C63,16C63A,16C66 16C72,16C72A,16C73A,16C73B,16C76 16F870,16F872,16F873,16F876


Atmel:AT25010,020, 040 (A8-A0)
AT25080, 160, 320, 640, 128, 256 (A15-A0)
ST:W95010....256, Microchip 25x010 - 25x640
CAT64LCxxx (16 Data I/O)
CAT64LC010, CAT64LC020, CAT64LC040

Test SRAM,Lossless SRAM Function

DS1220,DS1225Y, DS1230Y/AB, DS1245Y/AB, DS1249Y/AB
6116, 6264, 62256, 62512, 628128

Embedded MCU
with Atmel AT89 dapter

89 series:
Atmel:AT89C51,52,55, AT89LV51,52,55
AT89S8252 (8K+2K), AT89S53, AT89LS8252,AT89LS53
AT89C1051,AT89C2051,AT89C4051 (20pin)
AT89C51RC (32KB), AT89C55WD (6.2V)
SST89C54/58, SI89C52
Intel:i87C51, i87C51FA, i87C51FB

90 series:

Embedded MCU with 51-AVR+ dapter

89 series:
Atmel:AT89C51,52,55, AT89LV51,52,55
AT89S8252 (8K+2K), AT89S53, AT89LS8252,AT89LS53
AT89C1051,AT89C2051,AT89C4051 (20pin)
AT89C51RC (32KB), AT89C55WD (6.2V)
SST89C54/58, SI89C52
Intel:i87C51, i87C51FA, i87C51FB

90 series:

90S2333, 90S4433, 90S4414, 90S8515, 90S4434, 90S8535,AT90S2313

with Atmel AT89 PLCC44

P8048AH, P8049AH,P8050AH, P8042AH (Vea = 12V)
P8041, P8042
OTP (read/verify/Progam)
P8748,P8749H,P8742H(Vea = 18V)
EPROM (read/verify/Progam)
D8748,D8749,D8742,D8741, D8742(Vea = 18V)



Hardware Installation & Configuration

Installation Steps

  • Check the parallel printer port setting in the bios, it should be EPP or Normal.
  • Check there are any active resident programs that use the printer port, such as TWAIN drivers. You may have to remove it.
  • Connect one end of the 25 pin SubD parallel cable  to PC printer port
  • Connect the other end  of parallel cable to 25 Pins port of the programmer
  • Connect USB power cable or AC adaptor (Note: if you are working on the EPROM programming. You may need use a AC adaptor, so that you can get Vcc 5.6V and 6.2V when doing programming)
  • The yellow power normal indicator of the programmer should light up, then the programmer power supply is normal.
  • Run the software
  • Select devices type
  • Click the Willem in toolbar to change to PCB3
  • Set the DIP switch based on the displayed pattern.

          (Note: the LPT port of PC MUST set to ECP or ECP+EPP during BIOS setup. To enter the BIOS setting mode, you need press "Del" key or "F1" key during the computer selftest, which is the moment of computer just power up.)


Software Version To Use

The software can be download from download.mcumall.com  

There are board hardware selection jumper on the board. When set the jumper to PCB3B, then user have to use 0.97ja and before version software.

If the board selection set to PCB3.5, PCB5.0, PCB5.5C, then the software 0.98D6 should be used.


          The software interface:



Hardware Check

After start the program, click test hardwar under Help menu. If the connection and power supply is normal, then appears: "Hardware present"   Otherwise check if the programmer connects well with PC, or power supply is normal.


Jumper Configuration



(Two PLCC32 adapter is not applied on the PCB4E)






Note: the Vcc setting jumper only has effect when you are using AC adaptor as power source. For the USB power only 5V Vcc is available.

For the PCB5.5C, set DIP steps:

1. press DIP Set button twice to check current DIP bit position. Then set it again for ON or OFF.

2. press DIP Bit shift button to shift the DIP bit position to where need to set. And then press DIP Set button twice to check current DIP bit position. Then set it again for ON or OFF.

3. Repeat those steps till all DIP bit ae set  same as software indicated.

For PCB5.5C voltage and Special chip selection:

1. Put back the safety jumper.

2. Press the voltage button and hold for 1 second, the voltage LED should move to next. Repeat till desired voltage LED light up.

3. Press the chip selection button and hold for 1 second, the chip LED should move to next. Repeat till desired LED light up.

4. Remove the safety jumper to lock the selected voltage and chip selection


DIP Switch (PCB3.5, PCB5.0)


When programming one chip,  follow the program prompt to set DIP switch . 



Self Test Function 

The screen :



  • Before test, set the DIP switch, jumper setup to software prompted
  • Address Pin Test: click the one of the push button in the Address Out group, use multimeter detect output signal in the ZIF32 socket. Or directly input the adress data, the range is:0--7FFFFH A0-PIN 12, A1-PIN 11, A2-PIN 12, A3-PIN 9, A4-PIN 8, A5-PIN 7, A6-PIN 6, A7-PIN 5, A8-PIN 27, A9-PIN 26,A10-PIN 23, A11-PIN 25, A12-PIN 4, A13-PIN 28, A14-PIN 29,A15-PIN 3, A16-PIN 2, A17-PIN 30
  • Data Pin Test: click one of the push button in Data Out group, use multimeter confirm the data from ZIF socket. Alternatively, input the test data, the range is: 0--FFH; D0-PIN 13, D1-PIN 14, D2-PIN 15, D3-PIN 17, D4-PIN 18, D5-PIN 19, D6-PIN 20, D7-PIN 21
  • VPP (programming voltage) Test: Turn on the programming voltage by click on pin 1 (1-Vpp) check box, measure the voltage between PIN 16 and PIN 1. It should show the Vpp voltage your set. (12V, 15V, 21V, 25V. Note : there mybe  0.5V tolerance of voltage reading)
  • Clear All: Clear the whole control signal, address and data output. Then you measure should be all 0V.

    Software Interface & Function


    The software interface :


    Tool bar:

      Read data file to buffer, it can be : Intel HEX (*.hex); Binary (*.bin); Motorola S Record (*.s); ALL Eprom File (*.bin, *.hex, *.s)
      Save data to a file from buffer

     Clear buffer of programmer software
      Read data from chip to programmer buffer

     Blank verify. Verify the chip if it is blank

     Display chip's factory ID

     Programming/Test. Programm the chip or test the SRAM.

     Erase. Erase content of chip.

     Programming bit control. For MCS51, AVR



    File : Open, Save, Exit.

    Edit: Edit buffer
    Device: Selection of target device/chip.

    Action: The operations for the taget device/chip.

    Help: Help infomation.

    Main area in software: From left to right there are four sections

    1, chip selection and parameterrea

    2, hardware jumper and setting indication picture.

    3, MCU chip's parameter setting,  such as lock bit.

    4, programming parameter setting and fine adjustment. Normally a default value can be used.


    Tab page selection:

    The bottom of main program screen is series tab window button.



    Click "Buffer" button,display buffer content. The first column of data is data address, last column is the data ASCII code, the middle is data hex value. If internal EEPROM exists in PIC MCU, the EEPROM data content displays automatically.


    Status bar : Displays programmer's current status: the chip write in is not correct, wrong programming position, programmer problem and so on.


    BIOS/Flash Setting & Programming


    Programming the BIOS on Willem programmer is easy, as long as we selected right chip type and right jumper. Here is an example for programming on a N82802AB of Intel845 mother board(3.3V):


    1, select chip type and software setting


    now you can see following setting:

          DIP position: OFF,ON,ON,OFF,ON,ON,OFF,ON,OFF,ON,OFF,ON

    Chip's parameter is showed below the Chip  Select  Button. Normaly, those parameters are no need to adjusted, using default value.
    Size&checksum:  shows chip's capacity and data buffer's checksum.
    Shift&pattem adress: shows chip's address line to be used and highest address bit.
    tWP/WC: shows programming  pulse width and delay time.


    2. check chip's position

      After DIP set, check the chip's position. For BIOS chip, it should be placed in the 32 pins ZIF socket. For N82802AB chip, the program prompt user need a FWH/LPC adaptor.

    Please make sure the pin one position on the FWH/LPC adaptor.



      Note: 1,Displayed chip's parameter is no need to be ajusted.
            2, DIP is different when programming different chip
            3, For EPROM chip, we need resetting the DIP, speicial chip and special valtage follow the prompt of software.


    3, read from chip

    After selected the chip, we can click on the "Read" button. All data will be put into the buffer.

    When reading the chip, the yellow LED will be light up, indicats that the valtage is been applied on the chip.

    4, Programming

      After insert the chip, click on "Open file" to open your data file. Then click on "Programm Chip" button.  Note,  some of chip  need erase before write.
      When programming, the yellow LED will be on. If the chip need a Vpp programming voltage, the red LED will be on.

    5, copy a chip:
      1), Select the chip type and then put in the original chip. 

      2), "read" the data into buffer.

       3), Put in the target chip and then click "Programm Chip".


    Note: the chip may be damaged if wrong chip type selectd or chip in a wrong direction in socket.


     The following parameter is for advanced user only.

    R/C delay time: programming pulse delay. If your computer is too fast, you may need increase the delay.

    Skip Write 0xFF: Enable this setting will skip the 0xFF when programming.
    Fast Programming: For a fast programming mode if it is enabled.
    Printer Port:  LPT1(0X378), printer port selected.
    Offset: setting programming start offset affress.
    Check Type: You can select the way to check  either 32 bit CRC or 16 bit add.


    1, some of chip need to be erased in order to programming. Such as SST39SF020.

    2  Always put the chip in the programmer at the last step. Because the programmer is in a unstable state then windows is starting.

    3, Do not interrupt the programming procedure. Press the "Stop" button if needed.



    EPROM Chip Programming

    The operation to EPROM chip is similar to general BIOS chip. The main diffrence is: the programmer jumper needs relevant ground setup. As an example: write a 27C16(programming voltage is 12.5V), also you need change the Vcc voltage setting accordingly. Some chips need the Vcc set to 6.2V when doing programming.


    1. Select the chip and configuration

    Set the chip and make sure the jumper for that chip is correct , the program displays the DIP switch setting. Follow the figure to set up the DIP switch, includes the jumper next to DIP switch.



    The DIP switch setup is: toward to upper side is on, toward to bottom side is off. As to above figure, the DIP switch is: ON, ON, OFF, OFF, OFF, ON, OFF, ON, ON, OFF, OFF, OFF.


    2. Fix the chip position

    After DIP switch set-up, insert the chip to 32 PIN ZIF socket, check the special chip setting is correct. 



    For the chips have capacity less than 1M, PIN fewer than 32 PIN, the chip installation is shown the right figure, align with the bottom of ZIF socket:


    The follows operation is read in data file, programming. When programming, the red indicator lights up. This shows the programmer has corect voltage Vpp.



    Note:if wrongly selected the chip type, the EPROM chip may be damaged.


    Some EPROM chip, like W27C512 or W27C512,they are 27series, but no erasing window on the top. Then, they have to be erased electronically. When programming this type, besides the DIP setup and insert tion of IC to 32 PIN ZIP socket, the special chip and special voltage button have to be adjusted accordingly.


    1. WinBond EEPROM

    The programmer supports: W27E512,W27E010,W27C010,W27C020,W27C040

    Operation steps: 

    1) Setup the 12 bit DIP, select the chip model W27CXX

    2) Set the programming voltage VPP to 15V, special model jumper to W27C position

    3) Insert W27CXX to 32PIN ZIP socket, click the software upper right corner erase button, the program indicator lamp flashs and progress bar is not moving, then directly press reset button, the chip starts to erase. 

    4) Verify the result.



    This programmer supports: 27SF256, 512, 010, 020, 040;37VF512, 010, 020, 040.

    Operation steps (Vpp keeps as 12V):

    1) Setup the 12 bit DIP, select the chip model W27CXX

    2) Set the programming voltage VPP auto to 15V, special chip jumper to W27C position.

    3) Insert W27CXX to 32PIN ZIP socket, click the software upper right corner erase button, the program indicator lamp flashs and progress bar is not moving, then directly press reset button, the chip starts to erase.

    4) Verify the result.


    3. MX26C4000 EEPROM

    Operation steps (VPP keeps as 12V):

    1) Setup the 12 bit DIP, select the chip model W27CXX

    2) Set the programming voltage VPP to 15V, special model jumper to W27C position.

    3) Insert W27CXX to 32PIN ZIP socket, click the software upper right corner erase button, the program indicator lamp flashs and progress bar is not moving, then directly press reset button, the chip starts to erase.

    4) Verify te result.


    ATMEL Chip Programming


    Select the target MCU chip, the program prompts the relevant adapter. Meanwhile, dispaly the options to select the lock bit:




    MCS-51encryption setup, lock bit functions:
    No LockBit:no
    LockBit1:forbiden MOVC instruction and programming again. 
    LockBit1+2:include the above functions and forbiden test (forbiden readout FLASH)
    LockBit1+2+3:include the above functions and forbiden external program memory


    PIC Chip Programming


    After select the relevant PIC chip type, the program prompts the needed socket:



    Meanwhile, in the chip setup area, display the relevant setup to select PIC MCU configuration parameters



    PIC MCU configuration parameters:

    Oscillator types: 
    LP:low power consumption

    HS:high speed crystal/ceramic
    IntRC:internal 4Mhz resistant 
    ExtRC:external resistant
    ExtClock:external clock(24Mhz)
    E4:external clock with PLL(6Mhz)
    H4:crystal/ceramic with PLL(6Mhz)
    IntRC RB4:internal resistant
    IntRC CLKOUT:internal resistant,RB4 output clock ExtRC RB4:external resistant
    ExtRC CLKOUT:external resistant,RB4 output clock 
    IntRC I/O:internal resistant 
    intRC CLKOUT:internal resistant, output clock
    ER I/O:external resistance
    ER CLKOUT:external resistance,output clock 

    Code protect:encrypt PIC MCU program, prevent read out
    Watch Dog:turn on/off watch dog

    Power-up Time:upper power delay selection


    AVR Chip Programming


    As to AVR chip, choose the target chip,the program prompts the correct adapter socket.


    Meanwhile, at the chip configuration area, display the right setup list in order to choose PIC MCU configuration parameters.

    CKSEL0...2:Reset delay selection
    BODEN:BOD(power off test)permission
    BODENLEVEL:BOD strike voltage selection
    FSTRT:upper start time selection
    RCEN:internal RC oscillation permission
    SPIEN:SPI serial programming permission


    ATMEL89 Adapter

    By using this adapter, it is able to program MCS-51 series MCU. The MCU includes ATMEL & INTEL.

    It supports: 

    • 89 series MCU:  AT89C1051,AT89C2051,AT89C4051,AT89C51,AT89LV51,AT89C52,AT89LV52,AT89C55,AT89LV55,AT89S8252,AT89LS8252,AT89S53,AT89LS53 AT87F51,AT87F52 i87C51,i87C51FA,i87C51FB,i87C51FC,i87C52,i87C54,i87C58 (*)AT89C51RC (32KB), AT89C55WD
    • 90 series AVR 8-bit RISC: AT90S1200,AT90S2313


    Other AVR chips need 51-AVR+ adator, such as 90S2333, 90S4433, 90S4414,90S8515, 90S4434, 90S8535



    ATMEL PLCC44 Adapter



    This adaptor is able to program  MCS-51 series PLCC MCU, such as 89C51PLCC44. Please note, it is used with ATMEL89 Adapor.


    TSOP48 Adapter


    This adaptor is able to program  TSOP48 flash chip. More details please see supported device list.  The default jumper setting on the base board is above. Please change it as needed.  JP2 jumper keep it close normorlly. It will increase the compatibility betwwen the similar device . Only try to open it for some chip if programming fail. The JP2 jumper is not in the original design and it also not documented for the most of chip.

    Bellow is the TSOP48 adaptor on board, please reffer to jumper setting section for A19 and A20 connection: