Sample Electronics ISP programmer

Top  Previous  Next

The simple cable programmer was submitted by Sample Electronics.

They produce professional programmers too. This simple programmer you can make yourself within a 10 minutes. And only a few resistors are needed.

The operation is the same a for the STK200/300 programmer.


What you need is a DB25 centronics male connector, a flat cable and a connector that can be connected to the target MCU board.


The connections to make are as following:


DB25 pin

Target MCU pin(AT89S8252)


2, D0

MOSI, pin 6

J5, pin 4

4, D2

RESET, pin 9

J5, pin 8

5, D3

CLOCK, pin 8

J5, pin 6

11, BUSY

MISO, pin 7

J5, pin 5



J5, pin 1



The MCU pin numbers are shown for an 8252!

Note that 18-25 means pins 18,19,20,21,22,23,24 and 25

You can use a small resistor of 100 ohm in series with the D0, D2 and D3 line in order not to short circuit your LPT port in the event the MCU pins are high.

But it was tested without these resistors and my PC still works :-)


Tip : when testing programmers etc. on the LPT it is best to buy an I/O card for your PC that has a LPT port. This way you dont destroy your LPT port that is on the motherboard in the event you make a mistake!


The following picture shows the connections to make. Both a setup for the DT104 and stand alone PCB are shown.




I received the following useful information :

Hi Mark,


I have been having spurious success with the simple cable programmer from

Sample Electronics for the AVR series.


After resorting to hooking up the CRO I have figured it out (I think). When

trying to identify the chip, no response on the MISO pin indicates that the

Programming Enable command has not been correctly received by the target.

The SCK line Mark/Space times were okay but it looked a bit sad with a slow

rise time but a rapid fall time. So I initially tried to improve the rise

time with a pullup. No change ie still could not identify chip. I was about

to add some buffers when I came across an Atmel app note for their serial



"During this first phase of the programming cycle, keeping the SCK line

free from pulses is critical, as pulses will cause the target AVR to loose

syncronisation with the programmer. When syncronisation is lost, the only

means of regaining syncronisation is to release the RESET line for more

than 100ms."


I have added a 100pF cap from SCK to GND and works first time every time

now.  The SCK rise time is still sad but there must have been enough noise

to corrupt the initial command despite using a 600mm shielded cable.


This may be useful to your users.



Mark Hayne