#------------------------------------------------------------ # atmega165a #------------------------------------------------------------ part id = "m165a"; desc = "ATMEGA165A"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x94 0x10; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 6; togglevtg = 0; poweroffdelay = 0; resetdelayms = 0; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x4000; page_size =0x80; num_pages =0x80; min_write_delay = 4500; max_write_delay = 4500; read_lo = "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"; read_hi = "0 0 1 0 1 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"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x x x a12 a11 a10 a9 a8 a7 a6 x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0200; page_size =0x04; num_pages =0x80; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 20; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega165pa #------------------------------------------------------------ part id = "m165pa"; desc = "ATMEGA165PA"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x94 0x07; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 6; togglevtg = 0; poweroffdelay = 0; resetdelayms = 0; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x4000; page_size =0x80; num_pages =0x80; min_write_delay = 4500; max_write_delay = 4500; read_lo = "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"; read_hi = "0 0 1 0 1 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"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x x x a12 a11 a10 a9 a8 a7 a6 x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0200; page_size =0x04; num_pages =0x80; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 20; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega165p #------------------------------------------------------------ part id = "m165p"; desc = "ATMEGA165P"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x94 0x07; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7; bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 6; togglevtg = 0; poweroffdelay = 0; resetdelayms = 0; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; # rampz = num ; # IO addr of RAMPZ reg eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x4000; page_size =0x80; num_pages =0x80; min_write_delay = 4500;#t_wd_flash max_write_delay = 4500; read_lo = "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"; read_hi = "0 0 1 0 1 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"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x x x a12 a11 a10 a9 a8 a7 a6 x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0200; page_size =0x04; num_pages =0x80; min_write_delay = 3600;#t_wd_eeprom max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 x a8 a7 a6 a5 a4 a3 a2 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 20; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega3250a #------------------------------------------------------------ part id = "m3250a"; desc = "ATMEGA3250A"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x95 0x0e; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 6; togglevtg = 0; poweroffdelay = 0; resetdelayms = 0; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x8000; page_size =0x80; num_pages =0x100; min_write_delay = 4500; max_write_delay = 4500; read_lo = "0 0 1 0 0 0 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_hi = "0 0 1 0 1 0 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0400; page_size =0x04; num_pages =0x100; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega3250pa #------------------------------------------------------------ part id = "m3250pa"; desc = "ATMEGA3250PA"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x95 0x0e; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 6; togglevtg = 0; poweroffdelay = 0; resetdelayms = 0; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x8000; page_size =0x80; num_pages =0x100; min_write_delay = 4500; max_write_delay = 4500; read_lo = "0 0 1 0 0 0 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_hi = "0 0 1 0 1 0 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0400; page_size =0x04; num_pages =0x100; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega325a #------------------------------------------------------------ part id = "m325a"; desc = "ATMEGA325A"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x95 0x05; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 6; togglevtg = 0; poweroffdelay = 0; resetdelayms = 0; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x8000; page_size =0x80; num_pages =0x100; min_write_delay = 4500; max_write_delay = 4500; read_lo = "0 0 1 0 0 0 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_hi = "0 0 1 0 1 0 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0400; page_size =0x04; num_pages =0x100; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega325pa #------------------------------------------------------------ part id = "m325pa"; desc = "ATMEGA325PA"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x95 0x05; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 6; togglevtg = 0; poweroffdelay = 0; resetdelayms = 0; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x8000; page_size =0x80; num_pages =0x100; min_write_delay = 4500; max_write_delay = 4500; read_lo = "0 0 1 0 0 0 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_hi = "0 0 1 0 1 0 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x x a13 a12 a11 a10 a9 a8 a7 a6 x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0400; page_size =0x04; num_pages =0x100; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 a2 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega6450a #------------------------------------------------------------ part id = "m6450a"; desc = "ATMEGA6450A"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x96 0x06; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x10000; page_size =0x100; num_pages =0x100; min_write_delay = 4500; max_write_delay = 4500; read_lo = "0 0 1 0 0 0 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_hi = "0 0 1 0 1 0 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 x x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0800; page_size =0x08; num_pages =0x100; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 a2 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 0 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega6450p #------------------------------------------------------------ part id = "m6450p"; desc = "ATMEGA6450P"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x96 0x06; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x10000; page_size =0x100; num_pages =0x100; min_write_delay = 4500; max_write_delay = 4500; read_lo = "0 0 1 0 0 0 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_hi = "0 0 1 0 1 0 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 x x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0800; page_size =0x08; num_pages =0x100; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 a2 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 0 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega645a #------------------------------------------------------------ part id = "m645a"; desc = "ATMEGA645A"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x96 0x05; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x10000; page_size =0x100; num_pages =0x100; min_write_delay = 4500; max_write_delay = 4500; read_lo = "0 0 1 0 0 0 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_hi = "0 0 1 0 1 0 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 x x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0800; page_size =0x08; num_pages =0x100; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 a2 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 0 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ; #------------------------------------------------------------ # atmega645p #------------------------------------------------------------ part id = "m645p"; desc = "ATMEGA645P"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x96 0x05; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = io; 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 ";#AC53 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";#AC80 chip_erase_delay=9000; #STK500 parameters, from datasheet, parralel programming pagel = 0xd7;# pin name in hex, i.e., 0xD7 bs2 = 0xa0; #STK500v2 parameters, from Atmel's XML files timeout = 200; stabdelay = 100; cmdexedelay = 25; synchloops = 32; bytedelay = 0; pollindex = 3; pollvalue = 0x53; predelay = 1; postdelay = 1; pollmethod = 1; # STK500v2 HVSP/PP programming parameters, from XML hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; resetdelayus = 0; hvleavestabdelay = 15; resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; #PP only pp_controlstack = 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x57 ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x10000; page_size =0x100; num_pages =0x100; min_write_delay = 4500; max_write_delay = 4500; read_lo = "0 0 1 0 0 0 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_hi = "0 0 1 0 1 0 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; loadpage_lo = "0 1 0 0 0 0 0 0 0 0 0 0 x x x x x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_hi = "0 1 0 0 1 0 0 0 0 0 0 0 x x x x x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; writepage = "0 1 0 0 1 1 0 0 x a14 a13 a12 a11 a10 a9 a8 a7 x x x x x x x x x x x x x x x"; mode = 0x41; blocksize = 128; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x0800; page_size =0x08; num_pages =0x100; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 0 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; write = "1 1 0 0 0 0 0 0 0 0 0 0 0 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; loadpage_lo = "1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 a2 a1 a0 i i i i i i i i"; writepage = "1 1 0 0 0 0 1 0 0 0 0 0 0 0 a9 a8 a7 a6 a5 a4 a3 0 0 0 x x x x x x x x"; mode = 0x41; blocksize = 4; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "lfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "hfuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "efuse" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 x x x x x x x x i i i i i i i i"; ; memory "lock" size = 1; min_write_delay = 4500; max_write_delay = 4500; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 x x x x x x x x i i i i i i i i"; ; memory "signature" size = 3; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x a1 a0 o o o o o o o o"; ; memory "calibration" size = 1; read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x o o o o o o o o"; ; ;