#------------------------------------------------------------ # atmega1284 #------------------------------------------------------------ part id = "m1284"; desc = "ATMEGA1284"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x97 0x06; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = dedicated; 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 = 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, 0x02; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x37 ; rampz = 0x3b ; eecr = 0x3f ; allowfullpagebitstream = no; is_avr32 = no; #memory information, adapt the commands with datasheet memory "flash" paged =yes; size =0x20000; page_size =0x100; num_pages =0x200; min_write_delay = 4500; max_write_delay = 4500; read_hi = "0 0 1 0 1 0 0 0 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; read_lo = "0 0 1 0 0 0 0 0 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; 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"; 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"; writepage = "0 1 0 0 1 1 0 0 a15 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 = 128; ; memory "eeprom" paged =no;#leave this no size =0x1000; page_size =0x08; num_pages =0x200; min_write_delay = 3600; max_write_delay = 3600; read = "1 0 1 0 0 0 0 0 0 0 0 0 a11 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 a11 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 a11 a10 a9 a8 a7 a6 a5 a4 a3 0 0 0 x x x x x x x x"; mode = 0x41; blocksize = 8; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 128; ; 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"; ; ; #------------------------------------------------------------ # atmega164a #------------------------------------------------------------ part id = "m164a"; desc = "ATMEGA164A"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x94 0x0f; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = dedicated; 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 = 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 = 0x37 ; rampz = 0x3b ; 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_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"; 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"; 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"; 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"; 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 =0x200; 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 x x 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 x x 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 x x 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"; ; ; #------------------------------------------------------------ # atmega164pa #------------------------------------------------------------ part id = "m164pa"; desc = "ATMEGA164PA"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x94 0x0a; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = dedicated; 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 = 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 = 0x37 ; rampz = 0x3b ; 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_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"; 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"; 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"; 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"; 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 =0x200; 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 x x 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 x x 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 x x 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"; ; ; #------------------------------------------------------------ # atmega324a #------------------------------------------------------------ part id = "m324a"; desc = "ATMEGA324A"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x95 0x15; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = dedicated; 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 = 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 = 0x37 ; rampz = 0x3b ; 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_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"; 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"; 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"; 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"; 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 =0x400; 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 x x 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 x x 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 x x 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 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"; ; ; #------------------------------------------------------------ # atmega644a #------------------------------------------------------------ part id = "m644a"; desc = "ATMEGA644A"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x96 0x09; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = dedicated; 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 = 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, 0x02; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x37 ; rampz = 0x3b ; 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_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"; 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"; 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"; 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"; 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 = 256; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x800; 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 x 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 x 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 x a10 a9 a8 a7 a6 a5 a4 a3 0 0 0 x x x x x x x x"; mode = 0x41; blocksize = 8; 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 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"; ; ; #------------------------------------------------------------ # atmega644pa #------------------------------------------------------------ part id = "m644pa"; desc = "ATMEGA644PA"; has_jtag = yes; has_debugwire = no; has_pdi = no; has_tpi = no; signature = 0x1e 0x96 0x0a; # stk500_devcode = 0x??; # avr910_devcode = 0x??; reset = dedicated; 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 = 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, 0x02; progmodedelay = 0; chiperasepulsewidth = 0; programfusepulsewidth = 0; programlockpulsewidth = 0; # JTAG ICE mkII parameters, from datasheet, register summary idr =0x31; spmcr = 0x37 ; rampz = 0x3b ; 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_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"; 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"; 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"; 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"; 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 = 256; delay = 10; readback_p1 = 0x00; readback_p2 = 0x00; readsize = 256; ; memory "eeprom" paged =no;#leave this no size =0x800; 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 x 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 x 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 x a10 a9 a8 a7 a6 a5 a4 a3 0 0 0 x x x x x x x x"; mode = 0x41; blocksize = 8; 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 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"; ; ;