AT89S8253 vs AT89S52 programmer

Thread Starter


Joined Feb 21, 2020
I'm trying to figure out why I can read the signature bytes of an AT89S52, an AT89LP52, but I can't get the correct signature bytes for an AT89S8253

When I send the data out from the PC, its serially with MSB first to all micros.
When I receive data, its serially with MSB first into the PC.

Basically I made a cheap serial programmer using data lines of a parallel port. One line controls the reset (programming) VS normal state, one line connects to the micro's clock, one line is data in, and one line is data out.

On each micro, 50mS later from power on, I send the following bytes: 0xAC, 0x53, 0x00, 0x69

Then I attempt to receive the signature by sending the following bytes:

0x28 0x0 0x0 (to assume micro is AT89S52 or AT89LP52)


0x28 0x0 0x0 (to assume micro is AT89S8253)

In the first case, for AT89S52 and AT89LP52, the correct data is always returned of 0x1E, but the AT89S8253 never returns 0x1E. It returns 0x3C, yet I use the exact same circuit for all 3 micros and each micro is brand new. The only pins connected on the micro is the VPP pin to VCC and the CLK, MOSI, MISO and SS pins are connected.

I did however read in the data sheet that for AT89S8253, the pins 3.6 and pins 3.7 need to be grounded to read the signature bytes correctly but it did not specifiy whether that rule applies to serial or parallel mode programming.

Also, I did not adjust any fuse settings in any test.

If anyone has successfully programmed an AT89S8253 in serial mode, please let me know how you did it.