Az AT89S52-es MCU-t az avrdude program nem támogatja alapesetben. Szerencsére elég a konfigurációs fájlt kiegészíteni és lehet égetni. Az \~/.avrduderc fájlhoz vagy az /etc/avrdude.conf -hoz kell az alábbi sorokat hozzáfűzni (Linux ill. BSD-k alatt). Ezután egy usbasp programozóval lehet beégetni a programunkat. A chip_erase_delay nekem 20000 -el nem működött, 100000 már jó volt. Nem minden usbasp tud AT89S mikrovezérlőt programozni. Ez az USBasp biztosan. Talán elég a megfelelő verziójú firmware-t beégetni a programozóba, ennek nem néztem utána.
#------------------------------------------------------------# Below chips by added by me .. Joy Shukla(joy_shukla@yahoo.in)
# these chips can be programmed with my usbasp programmer(changed atmega8 program)
# after adding avrdude support in this file ..
#------------------------------------------------------------
#------------------------------------------------------------# AT89S52
#------------------------------------------------------------
part
id = "8052";
desc = "AT89S52";
signature = 0x1E 0x52 0x06;
# chip_erase_delay = 20000;
chip_erase_delay = 500000;
pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";
chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x","x x x x x x x x x x x x x x x x";
timeout = 200;stabdelay = 100;
cmdexedelay = 25;
synchloops = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
predelay = 1;
postdelay = 1;
pollmethod = 0;
memory "flash"size = 8192;
paged = no;
min_write_delay = 4000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 0 0 1 0 0 0 0 0",
" x x x a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 0 1 0 0 0 0 0 0"," x x x a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
mode = 0x21;
delay = 12;
;
memory "signature"size = 3;
read = "0 0 1 0 1 0 0 0 x x x 0 0 0 a1 a0",
"0 0 0 0 0 0 0 0 o o o o o o o o";
;
;