diff --git a/mote/v2/openwrt/package/avrdude/patches/130-remove_small_and_old_AVRs.patch b/mote/v2/openwrt/package/avrdude/patches/130-remove_small_and_old_AVRs.patch new file mode 100644 index 0000000..d8a4ebb --- /dev/null +++ b/mote/v2/openwrt/package/avrdude/patches/130-remove_small_and_old_AVRs.patch @@ -0,0 +1,5437 @@ +diff -urNad /tmp/avrdude-5.10/avrdude.conf.in avrdude-5.10/avrdude.conf.in +--- /tmp/avrdude-5.10/avrdude.conf.in 2010-08-06 20:59:43.611964678 +0200 ++++ avrdude-5.10/avrdude.conf.in 2010-08-06 21:27:10.270965007 +0200 +@@ -329,1686 +329,6 @@ + # + + #------------------------------------------------------------ +-# ATtiny11 +-#------------------------------------------------------------ +- +-# This is an HVSP-only device. +- +-part +- id = "t11"; +- desc = "ATtiny11"; +- stk500_devcode = 0x11; +- signature = 0x1e 0x90 0x04; +- chip_erase_delay = 20000; +- +- timeout = 200; +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00, +- 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78, +- 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 0; +- resetdelayus = 50; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 64; +- blocksize = 64; +- readsize = 256; +- delay = 5; +- ; +- +- memory "flash" +- size = 1024; +- blocksize = 128; +- readsize = 256; +- delay = 3; +- ; +- +- memory "signature" +- size = 3; +- ; +- +- memory "lock" +- size = 1; +- ; +- +- memory "calibration" +- size = 1; +- ; +- +- memory "fuse" +- size = 1; +- ; +-; +- +-#------------------------------------------------------------ +-# ATtiny12 +-#------------------------------------------------------------ +- +-part +- id = "t12"; +- desc = "ATtiny12"; +- stk500_devcode = 0x12; +- avr910_devcode = 0x55; +- signature = 0x1e 0x90 0x05; +- chip_erase_delay = 20000; +- 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; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00, +- 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78, +- 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; +- hventerstabdelay = 100; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 0; +- resetdelayus = 50; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 64; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 x x x x x x x x", +- "x x a5 a4 a3 a2 a1 a0 o o o o o o o o"; +- +- write = "1 1 0 0 0 0 0 0 x x x x x x x x", +- "x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 8; +- blocksize = 64; +- readsize = 256; +- ; +- +- memory "flash" +- size = 1024; +- min_write_delay = 4500; +- max_write_delay = 20000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x x x 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 x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 5; +- blocksize = 128; +- readsize = 256; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +- memory "lock" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x o o x"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- +- memory "fuse" +- size = 1; +- read = "0 1 0 1 0 0 0 0 x x x x x x x x", +- "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 x x x x x", +- "x x x x x x x x i i i i i i i i"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +-; +- +-#------------------------------------------------------------ +-# ATtiny13 +-#------------------------------------------------------------ +- +-part +- id = "t13"; +- desc = "ATtiny13"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x0E, 0x1E; +- eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x0E, 0xB4, 0x0E, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +- stk500_devcode = 0x14; +- signature = 0x1e 0x90 0x07; +- chip_erase_delay = 4000; +- 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 = 1; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, +- 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, +- 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 0; +- resetdelayus = 90; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 64; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", +- "x x 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 x x x x x", +- "x x 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 x x x x x x", +- " x x a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 5; +- blocksize = 4; +- readsize = 256; +- ; +- +- memory "flash" +- paged = yes; +- size = 1024; +- page_size = 32; +- num_pages = 32; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " 0 0 0 0 0 0 0 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", +- " 0 0 0 0 0 0 0 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 x x x x x", +- " x x x x 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 x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 0 0 0 a8", +- " a7 a6 a5 a4 x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- +- 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 x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- ; +- +- memory "calibration" +- size = 2; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 a0 o o o o o o o o"; +- ; +- +- memory "lfuse" +- size = 1; +- min_write_delay = 4500; +- max_write_delay = 4500; +- +- 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"; +- +- 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"; +- ; +- +- memory "hfuse" +- size = 1; +- min_write_delay = 4500; +- max_write_delay = 4500; +- +- 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"; +- +- 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"; +- ; +- +-; +- +- +-#------------------------------------------------------------ +-# ATtiny15 +-#------------------------------------------------------------ +- +-part +- id = "t15"; +- desc = "ATtiny15"; +- stk500_devcode = 0x13; +- avr910_devcode = 0x56; +- signature = 0x1e 0x90 0x06; +- chip_erase_delay = 8200; +- 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; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00, +- 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78, +- 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; +- hventerstabdelay = 100; +- hvspcmdexedelay = 5; +- synchcycles = 6; +- latchcycles = 16; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 0; +- resetdelayus = 50; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 64; +- min_write_delay = 8200; +- max_write_delay = 8200; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 x x x x x x x x", +- "x x a5 a4 a3 a2 a1 a0 o o o o o o o o"; +- +- write = "1 1 0 0 0 0 0 0 x x x x x x x x", +- "x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 10; +- blocksize = 64; +- readsize = 256; +- ; +- +- memory "flash" +- size = 1024; +- min_write_delay = 4100; +- max_write_delay = 4100; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x x x 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 x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 5; +- blocksize = 128; +- readsize = 256; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +- memory "lock" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x o o x"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- +- memory "fuse" +- size = 1; +- read = "0 1 0 1 0 0 0 0 x x x x x x x x", +- "x x x x x x x x o o o o x x o o"; +- +- write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x", +- "x x x x x x x x i i i i 1 1 i i"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +-; +- +-#------------------------------------------------------------ +-# AT90s1200 +-#------------------------------------------------------------ +- +-part +- id = "1200"; +- desc = "AT90S1200"; +- stk500_devcode = 0x33; +- avr910_devcode = 0x13; +- signature = 0x1e 0x90 0x01; +- pagel = 0xd7; +- bs2 = 0xa0; +- chip_erase_delay = 20000; +- 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 0 0 0 0 0", +- "x x x x x x x x x x x x x x x x"; +- +- timeout = 200; +- stabdelay = 100; +- cmdexedelay = 25; +- synchloops = 1; +- bytedelay = 0; +- pollindex = 0; +- pollvalue = 0xFF; +- predelay = 1; +- postdelay = 1; +- pollmethod = 0; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 15; +- chiperasepolltimeout = 0; +- programfusepulsewidth = 2; +- programfusepolltimeout = 0; +- programlockpulsewidth = 0; +- programlockpolltimeout = 1; +- +- memory "eeprom" +- size = 64; +- min_write_delay = 4000; +- max_write_delay = 9000; +- readback_p1 = 0x00; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 x x x x x x x x", +- "x x a5 a4 a3 a2 a1 a0 o o o o o o o o"; +- +- write = "1 1 0 0 0 0 0 0 x x x x x x x x", +- "x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 20; +- blocksize = 32; +- readsize = 256; +- ; +- memory "flash" +- size = 1024; +- min_write_delay = 4000; +- max_write_delay = 9000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x x x 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 x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x02; +- delay = 15; +- blocksize = 128; +- readsize = 256; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- ; +- memory "lock" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90s4414 +-#------------------------------------------------------------ +- +-part +- id = "4414"; +- desc = "AT90S4414"; +- stk500_devcode = 0x50; +- avr910_devcode = 0x28; +- signature = 0x1e 0x92 0x01; +- chip_erase_delay = 20000; +- 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 0 0 0 0 0", +- "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; +- +- 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, 0x01; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 15; +- chiperasepolltimeout = 0; +- programfusepulsewidth = 2; +- programfusepolltimeout = 0; +- programlockpulsewidth = 0; +- programlockpolltimeout = 1; +- +- memory "eeprom" +- size = 256; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0x80; +- readback_p2 = 0x7f; +- read = " 1 0 1 0 0 0 0 0 x x x x 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 x x x x x x x a8", +- "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 64; +- readsize = 256; +- ; +- memory "flash" +- size = 4096; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0x7f; +- readback_p2 = 0x7f; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x 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 x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 64; +- readsize = 256; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90s2313 +-#------------------------------------------------------------ +- +-part +- id = "2313"; +- desc = "AT90S2313"; +- stk500_devcode = 0x40; +- avr910_devcode = 0x20; +- signature = 0x1e 0x91 0x01; +- chip_erase_delay = 20000; +- 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 0 0 0 0 0", +- "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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 15; +- chiperasepolltimeout = 0; +- programfusepulsewidth = 2; +- programfusepolltimeout = 0; +- programlockpulsewidth = 0; +- programlockpolltimeout = 1; +- +- memory "eeprom" +- size = 128; +- min_write_delay = 4000; +- max_write_delay = 9000; +- readback_p1 = 0x80; +- readback_p2 = 0x7f; +- read = "1 0 1 0 0 0 0 0 x x x x x x x x", +- "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; +- +- write = "1 1 0 0 0 0 0 0 x x x x x x x x", +- "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 64; +- readsize = 256; +- ; +- memory "flash" +- size = 2048; +- min_write_delay = 4000; +- max_write_delay = 9000; +- readback_p1 = 0x7f; +- readback_p2 = 0x7f; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x x 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 x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x i i x", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90s2333 +-#------------------------------------------------------------ +- +-part +- id = "2333"; +-##### WARNING: No XML file for device 'AT90S2333'! ##### +- desc = "AT90S2333"; +- stk500_devcode = 0x42; +- avr910_devcode = 0x34; +- signature = 0x1e 0x91 0x05; +- chip_erase_delay = 20000; +- 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 0 0 0 0 0", +- "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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 15; +- chiperasepolltimeout = 0; +- programfusepulsewidth = 2; +- programfusepolltimeout = 0; +- programlockpulsewidth = 0; +- programlockpolltimeout = 1; +- +- memory "eeprom" +- size = 128; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0x00; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 x x x x x x x x", +- "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; +- +- write = "1 1 0 0 0 0 0 0 x x x x x x x x", +- "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- +- memory "flash" +- size = 2048; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x x 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 x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- pwroff_after_write = yes; +- read = "0 1 0 1 0 0 0 0 x x x x x x x x", +- "x x x x x x x x x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i", +- "x x x x x x x x x x x x x x x x"; +- ; +- memory "lock" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x o o x"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- ; +- ; +- +- +-#------------------------------------------------------------ +-# AT90s2343 (also AT90s2323 and ATtiny22) +-#------------------------------------------------------------ +- +-part +- id = "2343"; +- desc = "AT90S2343"; +- stk500_devcode = 0x43; +- avr910_devcode = 0x4c; +- signature = 0x1e 0x91 0x03; +- chip_erase_delay = 18000; +- 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; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00, +- 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78, +- 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; +- hventerstabdelay = 100; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 0; +- poweroffdelay = 25; +- resetdelayms = 0; +- resetdelayus = 50; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 128; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0x00; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0", +- "x 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 0 0", +- "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 64; +- readsize = 256; +- ; +- memory "flash" +- size = 2048; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x x 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 x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 128; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x o o o x x x x o"; +- +- write = "1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 i", +- "x x x x x x x x x x x x x x x x"; +- ; +- memory "lock" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x o o o x x x x o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- ; +- ; +- +- +-#------------------------------------------------------------ +-# AT90s4433 +-#------------------------------------------------------------ +- +-part +- id = "4433"; +- desc = "AT90S4433"; +- stk500_devcode = 0x51; +- avr910_devcode = 0x30; +- signature = 0x1e 0x92 0x03; +- chip_erase_delay = 20000; +- 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 0 0 0 0 0", +- "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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 15; +- chiperasepolltimeout = 0; +- programfusepulsewidth = 2; +- programfusepolltimeout = 0; +- programlockpulsewidth = 0; +- programlockpolltimeout = 1; +- +- memory "eeprom" +- size = 256; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0x00; +- readback_p2 = 0xff; +- read = " 1 0 1 0 0 0 0 0 x x x x x x x x", +- "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 x x x x x x x x", +- "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- memory "flash" +- size = 4096; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x 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 x x a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x x a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- pwroff_after_write = yes; +- read = "0 1 0 1 0 0 0 0 x x x x x x x x", +- "x x x x x x x x x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i", +- "x x x x x x x x x x x x x x x x"; +- ; +- memory "lock" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x o o x"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90s4434 +-#------------------------------------------------------------ +- +-part +- id = "4434"; +-##### WARNING: No XML file for device 'AT90S4434'! ##### +- desc = "AT90S4434"; +- stk500_devcode = 0x52; +- avr910_devcode = 0x6c; +- signature = 0x1e 0x92 0x02; +- chip_erase_delay = 20000; +- 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 0 0 0 0 0", +- "x x x x x x x x x x x x x x x x"; +- +- memory "eeprom" +- size = 256; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0x00; +- readback_p2 = 0xff; +- read = " 1 0 1 0 0 0 0 0 x x x x x x x x", +- "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 x x x x x x x x", +- "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- ; +- memory "flash" +- size = 4096; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x 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 x x a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x x a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- read = "0 1 0 1 0 0 0 0 x x x x x x x x", +- "x x x x x x x x x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i", +- "x x x x x x x x x x x x x x x x"; +- ; +- memory "lock" +- size = 1; +- min_write_delay = 9000; +- max_write_delay = 20000; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x o o x"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90s8515 +-#------------------------------------------------------------ +- +-part +- id = "8515"; +- desc = "AT90S8515"; +- stk500_devcode = 0x60; +- avr910_devcode = 0x38; +- signature = 0x1e 0x93 0x01; +- chip_erase_delay = 20000; +- 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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- resetdelay = 15; +- chiperasepulsewidth = 15; +- chiperasepolltimeout = 0; +- programfusepulsewidth = 2; +- programfusepolltimeout = 0; +- programlockpulsewidth = 0; +- programlockpolltimeout = 1; +- +- memory "eeprom" +- size = 512; +- min_write_delay = 4000; +- max_write_delay = 9000; +- readback_p1 = 0x80; +- readback_p2 = 0x7f; +- read = " 1 0 1 0 0 0 0 0 x x x x 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 x x x x x x x a8", +- "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- memory "flash" +- size = 8192; +- min_write_delay = 4000; +- max_write_delay = 9000; +- readback_p1 = 0x7f; +- readback_p2 = 0x7f; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x 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 x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90s8535 +-#------------------------------------------------------------ +- +-part +- id = "8535"; +- desc = "AT90S8535"; +- stk500_devcode = 0x61; +- avr910_devcode = 0x68; +- signature = 0x1e 0x93 0x03; +- chip_erase_delay = 20000; +- 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 0 0 0 0 0", +- "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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 15; +- chiperasepolltimeout = 0; +- programfusepulsewidth = 2; +- programfusepolltimeout = 0; +- programlockpulsewidth = 0; +- programlockpolltimeout = 1; +- +- memory "eeprom" +- size = 512; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0x00; +- readback_p2 = 0xff; +- read = " 1 0 1 0 0 0 0 0 x x x x 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 x x x x x x x a8", +- "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- memory "flash" +- size = 8192; +- min_write_delay = 9000; +- max_write_delay = 20000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x 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 x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " o o o o o o o o"; +- +- write_lo = " 0 1 0 0 0 0 0 0", +- " x x x x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- write_hi = " 0 1 0 0 1 0 0 0", +- " x x x x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 128; +- readsize = 256; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "fuse" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x x x o"; +- write = "1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 i", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- memory "lock" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x o o x x x x x x"; +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- ; +- +-#------------------------------------------------------------ +-# ATmega103 +-#------------------------------------------------------------ +- +-part +- id = "m103"; +- desc = "ATMEGA103"; +- stk500_devcode = 0xB1; +- avr910_devcode = 0x41; +- signature = 0x1e 0x97 0x01; +- chip_erase_delay = 112000; +- 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 0 0 0 0 0", +- "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; +- +- pp_controlstack = +- 0x0E, 0x1E, 0x8E, 0x9E, 0x2E, 0x3E, 0xAE, 0xBE, +- 0x4E, 0x5E, 0xCE, 0xDE, 0x6E, 0x7E, 0xEE, 0xDE, +- 0x66, 0x76, 0xE6, 0xF6, 0x6A, 0x7A, 0xEA, 0x7A, +- 0x7F, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 15; +- chiperasepolltimeout = 0; +- programfusepulsewidth = 2; +- programfusepolltimeout = 0; +- programlockpulsewidth = 0; +- programlockpolltimeout = 10; +- +- memory "eeprom" +- size = 4096; +- min_write_delay = 4000; +- max_write_delay = 9000; +- readback_p1 = 0x80; +- readback_p2 = 0x7f; +- read = " 1 0 1 0 0 0 0 0", +- " x x x x 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", +- " x x x x a11 a10 a9 a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 12; +- blocksize = 64; +- readsize = 256; +- ; +- +- memory "flash" +- paged = yes; +- size = 131072; +- page_size = 256; +- num_pages = 512; +- min_write_delay = 22000; +- max_write_delay = 56000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- 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"; +- +- 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " x x x x 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", +- " x x x x 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 = 0x11; +- delay = 70; +- blocksize = 256; +- readsize = 256; +- ; +- +- memory "fuse" +- size = 1; +- read = "0 1 0 1 0 0 0 0 x x x x x x x x", +- "x x x x x x x x x x o x o 1 o o"; +- +- write = "1 0 1 0 1 1 0 0 1 0 1 1 i 1 i i", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lock" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x o o x"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- ; +- +- +-#------------------------------------------------------------ + # ATmega64 + #------------------------------------------------------------ + +@@ -2186,9 +506,6 @@ + ; + ; + +- +- +- + #------------------------------------------------------------ + # ATmega128 + #------------------------------------------------------------ +@@ -4264,166 +2581,6 @@ + ; + ; + +- +- +-#------------------------------------------------------------ +-# ATmega163 +-#------------------------------------------------------------ +- +-part +- id = "m163"; +- desc = "ATMEGA163"; +- stk500_devcode = 0x81; +- avr910_devcode = 0x64; +- signature = 0x1e 0x94 0x02; +- chip_erase_delay = 32000; +- pagel = 0xd7; +- bs2 = 0xa0; +- 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 0 0 0 0 0", +- "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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 30; +- programfusepulsewidth = 0; +- programfusepolltimeout = 2; +- programlockpulsewidth = 0; +- programlockpolltimeout = 2; +- +- +- memory "eeprom" +- size = 512; +- min_write_delay = 4000; +- max_write_delay = 4000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = " 1 0 1 0 0 0 0 0", +- " x x x x 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", +- " x x x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- mode = 0x41; +- delay = 20; +- blocksize = 4; +- readsize = 256; +- ; +- +- memory "flash" +- paged = yes; +- size = 16384; +- page_size = 128; +- num_pages = 128; +- min_write_delay = 16000; +- max_write_delay = 16000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- 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", +- " x x x x 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", +- " x x x x 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 = 0x11; +- delay = 20; +- blocksize = 128; +- readsize = 256; +- ; +- +- memory "lfuse" +- size = 1; +- min_write_delay = 2000; +- max_write_delay = 2000; +- 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 x x 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 1 1 i i i i"; +- ; +- +- memory "hfuse" +- size = 1; +- min_write_delay = 2000; +- max_write_delay = 2000; +- 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 x x x x 1 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 1 1 1 1 1 i i i"; +- ; +- +- memory "lock" +- size = 1; +- min_write_delay = 2000; +- max_write_delay = 2000; +- read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", +- "x x x x 0 x x x x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "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 x x x x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- ; +- + #------------------------------------------------------------ + # ATmega169 + #------------------------------------------------------------ +@@ -5895,146 +4052,6 @@ + ; + + #------------------------------------------------------------ +-# ATmega161 +-#------------------------------------------------------------ +- +-part +- id = "m161"; +- desc = "ATMEGA161"; +- stk500_devcode = 0x80; +- avr910_devcode = 0x60; +- signature = 0x1e 0x94 0x01; +- chip_erase_delay = 28000; +- pagel = 0xd7; +- bs2 = 0xa0; +- 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 0 0 0 0 0", +- "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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 0; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 30; +- programfusepulsewidth = 0; +- programfusepolltimeout = 2; +- programlockpulsewidth = 0; +- programlockpolltimeout = 2; +- +- memory "eeprom" +- size = 512; +- min_write_delay = 3400; +- max_write_delay = 3400; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = " 1 0 1 0 0 0 0 0", +- " x x x x 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", +- " x x x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 5; +- blocksize = 128; +- readsize = 256; +- ; +- +- memory "flash" +- paged = yes; +- size = 16384; +- page_size = 128; +- num_pages = 128; +- min_write_delay = 14000; +- max_write_delay = 14000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- 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", +- " x x x x 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", +- " x x x x 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 = 0x21; +- delay = 16; +- blocksize = 128; +- readsize = 256; +- ; +- +- memory "fuse" +- size = 1; +- min_write_delay = 2000; +- max_write_delay = 2000; +- read = "0 1 0 1 0 0 0 0 x x x x x x x x", +- "x x x x x x x x x o x o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x", +- "x x x x x x x x 1 i 1 i i i i i"; +- ; +- +- memory "lock" +- size = 1; +- min_write_delay = 2000; +- max_write_delay = 2000; +- 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 x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- ; +- +- +-#------------------------------------------------------------ + # ATmega8 + #------------------------------------------------------------ + +@@ -6193,1047 +4210,6 @@ + ; + ; + +- +- +-#------------------------------------------------------------ +-# ATmega8515 +-#------------------------------------------------------------ +- +-part +- id = "m8515"; +- desc = "ATMEGA8515"; +- stk500_devcode = 0x63; +- avr910_devcode = 0x3A; +- signature = 0x1e 0x93 0x06; +- chip_erase_delay = 9000; +- 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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 6; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- size = 512; +- min_write_delay = 9000; +- max_write_delay = 9000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = " 1 0 1 0 0 0 0 0", +- " 0 0 x x 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 x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 10; +- blocksize = 128; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 0 x x x x", +- " x x x 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 x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x21; +- delay = 6; +- blocksize = 64; +- 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 "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 x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- ; +- +- memory "calibration" +- size = 4; +- read = "0 0 1 1 1 0 0 0 0 0 x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- ; +- +- +- +- +-#------------------------------------------------------------ +-# ATmega8535 +-#------------------------------------------------------------ +- +-part +- id = "m8535"; +- desc = "ATMEGA8535"; +- stk500_devcode = 0x64; +- avr910_devcode = 0x69; +- signature = 0x1e 0x93 0x08; +- pagel = 0xd7; +- bs2 = 0xa0; +- chip_erase_delay = 9000; +- 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; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 6; +- togglevtg = 0; +- poweroffdelay = 0; +- resetdelayms = 0; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- size = 512; +- min_write_delay = 9000; +- max_write_delay = 9000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = " 1 0 1 0 0 0 0 0", +- " 0 0 x x 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 x x x x x a8", +- " a7 a6 a5 a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- mode = 0x04; +- delay = 10; +- blocksize = 128; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 0 x x x x", +- " x x x 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 x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x21; +- delay = 6; +- blocksize = 64; +- readsize = 256; +- ; +- +- memory "lfuse" +- size = 1; +- min_write_delay = 2000; +- max_write_delay = 2000; +- 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 = 2000; +- max_write_delay = 2000; +- 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 "lock" +- size = 1; +- min_write_delay = 2000; +- max_write_delay = 2000; +- 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 x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- ; +- +- memory "calibration" +- size = 4; +- read = "0 0 1 1 1 0 0 0 0 0 x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- ; +- +- +-#------------------------------------------------------------ +-# ATtiny26 +-#------------------------------------------------------------ +- +-part +- id = "t26"; +- desc = "ATTINY26"; +- stk500_devcode = 0x21; +- avr910_devcode = 0x5e; +- signature = 0x1e 0x91 0x09; +- pagel = 0xb3; +- bs2 = 0xb2; +- chip_erase_delay = 9000; +- 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; +- +- pp_controlstack = +- 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC, +- 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC, +- 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C, +- 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 2; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- size = 128; +- min_write_delay = 9000; +- max_write_delay = 9000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 x x x x x x x x", +- "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; +- +- write = "1 1 0 0 0 0 0 0 x x x x x x x x", +- "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; +- +- mode = 0x04; +- delay = 10; +- blocksize = 64; +- readsize = 256; +- ; +- +- memory "flash" +- paged = yes; +- size = 2048; +- page_size = 32; +- num_pages = 64; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x x 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 x x x 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", +- " x x x x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +- loadpage_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " x x x x x x a9 a8", +- " a7 a6 a5 a4 x x x x", +- " x x x x x x x x"; +- +- mode = 0x21; +- delay = 6; +- blocksize = 16; +- readsize = 256; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +- memory "lock" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x x o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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 x x x i i i i i"; +- +- 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 x x x o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 4; +- read = "0 0 1 1 1 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +-; +- +- +-#------------------------------------------------------------ +-# ATtiny261 +-#------------------------------------------------------------ +-# Close to ATtiny26 +- +-part +- id = "t261"; +- desc = "ATTINY261"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x00, 0x10; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +-# stk500_devcode = 0x21; +-# avr910_devcode = 0x5e; +- signature = 0x1e 0x91 0x0c; +- pagel = 0xb3; +- bs2 = 0xb2; +- chip_erase_delay = 4000; +- +- 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; +- +- pp_controlstack = +- 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC, +- 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC, +- 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C, +- 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 2; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- paged = no; +- size = 128; +- page_size = 4; +- num_pages = 32; +- min_write_delay = 4000; +- max_write_delay = 4000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- +- read = "1 0 1 0 0 0 0 0 x x x x x x x x", +- "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; +- +- write = "1 1 0 0 0 0 0 0 x x x x x x x x", +- "x 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 x x x x x x", +- " x a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 10; +- blocksize = 4; +- readsize = 256; +- ; +- +- memory "flash" +- paged = yes; +- size = 2048; +- page_size = 32; +- num_pages = 64; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x x 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 x x x 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", +- " x x x x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +- loadpage_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " x x x x x x a9 a8", +- " a7 a6 a5 a4 x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +- memory "lock" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x x o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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 x x x x x x x o"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- +-; +- +- +-#------------------------------------------------------------ +-# ATtiny461 +-#------------------------------------------------------------ +-# Close to ATtiny261 +- +-part +- id = "t461"; +- desc = "ATTINY461"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x00, 0x10; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +-# stk500_devcode = 0x21; +-# avr910_devcode = 0x5e; +- signature = 0x1e 0x92 0x08; +- pagel = 0xb3; +- bs2 = 0xb2; +- chip_erase_delay = 4000; +- +- 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; +- +- pp_controlstack = +- 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC, +- 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC, +- 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C, +- 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 2; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- paged = no; +- size = 256; +- page_size = 4; +- num_pages = 64; +- min_write_delay = 4000; +- max_write_delay = 4000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- +- read = " 1 0 1 0 0 0 0 0 x x x x x x x x", +- "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 x x x x x x x x", +- "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 x x x x x x", +- " a7 a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 10; +- blocksize = 4; +- readsize = 256; +- ; +- +- memory "flash" +- paged = yes; +- size = 4096; +- page_size = 64; +- num_pages = 64; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x x 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 x x 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", +- " x x x x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- loadpage_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x x x", +- " x x x 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 x x a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 64; +- readsize = 256; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +- memory "lock" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x x o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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 x x x x x x x o"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- +-; +- +- +-#------------------------------------------------------------ +-# ATtiny861 +-#------------------------------------------------------------ +-# Close to ATtiny461 +- +-part +- id = "t861"; +- desc = "ATTINY861"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x00, 0x10; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +-# stk500_devcode = 0x21; +-# avr910_devcode = 0x5e; +- signature = 0x1e 0x93 0x0d; +- pagel = 0xb3; +- bs2 = 0xb2; +- chip_erase_delay = 4000; +- +- 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; +- +- pp_controlstack = +- 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC, +- 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC, +- 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C, +- 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 2; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- paged = no; +- size = 512; +- num_pages = 128; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4000; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- +- read = " 1 0 1 0 0 0 0 0 x x x x 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 x x x x 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 x x x x x a8", +- " a7 a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 10; +- blocksize = 4; +- readsize = 256; +- ; +- +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- +- read_lo = " 0 0 1 0 0 0 0 0", +- " x x x x 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 x 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", +- " x x x x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- loadpage_hi = " 0 1 0 0 1 0 0 0", +- " x x x x x x x x", +- " x x x 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 x a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 64; +- readsize = 256; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 a1 a0 o o o o o o o o"; +- ; +- +- memory "lock" +- size = 1; +- read = "0 1 0 1 1 0 0 0 x x x x x x x x", +- "x x x x x x x x x x x x x x o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i", +- "x x x x x x x x x x x x x x x x"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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 x x x x x x x o"; +- min_write_delay = 4500; +- max_write_delay = 4500; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 x x x x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- +-; +- +- + #------------------------------------------------------------ + # ATmega48 + #------------------------------------------------------------ +@@ -7796,192 +4772,6 @@ + ; + + #------------------------------------------------------------ +-# ATtiny88 +-#------------------------------------------------------------ +- +-part +- id = "t88"; +- desc = "attiny88"; +- has_debugwire = yes; +- flash_instr = 0xB6, 0x01, 0x11; +- eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, +- 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, +- 0x99, 0xF9, 0xBB, 0xAF; +- stk500_devcode = 0x73; +-# avr910_devcode = 0x; +- signature = 0x1e 0x93 0x11; +- pagel = 0xd7; +- bs2 = 0xc2; +- chip_erase_delay = 9000; +- 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 = 1; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- resetdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- paged = no; +- page_size = 4; +- size = 64; +- min_write_delay = 3600; +- max_write_delay = 3600; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = " 1 0 1 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x 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 x x x x x", +- " x 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 x x x x x x", +- " x a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 5; +- blocksize = 4; +- readsize = 64; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 64; +- 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 x x x x x 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 x x x x x x x 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 x x o o o o o o"; +- +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ + # ATmega328P + #------------------------------------------------------------ + +@@ -8170,1463 +4960,6 @@ + ; + + #------------------------------------------------------------ +-# ATtiny2313 +-#------------------------------------------------------------ +- +-part +- id = "t2313"; +- desc = "ATtiny2313"; +- has_debugwire = yes; +- flash_instr = 0xB2, 0x0F, 0x1F; +- eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBA, 0x0F, 0xB2, 0x0F, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +- stk500_devcode = 0x23; +-## Use the ATtiny26 devcode: +- avr910_devcode = 0x5e; +- signature = 0x1e 0x91 0x0a; +- pagel = 0xD4; +- bs2 = 0xD6; +- reset = io; +- chip_erase_delay = 9000; +- +- 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 = 1; +- +- pp_controlstack = +- 0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E, +- 0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E, +- 0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A, +- 0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- size = 128; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", +- "x 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 x x x x x", +- "x 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 x x x x x x", +- " x a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 2048; +- page_size = 32; +- num_pages = 64; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +-# The information in the data sheet of April/2004 is wrong, this works: +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +-# The information in the data sheet of April/2004 is wrong, this works: +- loadpage_hi = " 0 1 0 0 1 0 0 0", +- " 0 0 0 x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +-# The information in the data sheet of April/2004 is wrong, this works: +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 0 0 a9 a8", +- " a7 a6 a5 a4 x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +-# ATtiny2313 has Signature Bytes: 0x1E 0x91 0x0A. +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- 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 x x o o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +-# The Tiny2313 has calibration data for both 4 MHz and 8 MHz. +-# The information in the data sheet of April/2004 is wrong, this works: +- +- memory "calibration" +- size = 2; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 a0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90PWM2 +-#------------------------------------------------------------ +- +-part +- id = "pwm2"; +- desc = "AT90PWM2"; +- has_debugwire = yes; +- flash_instr = 0xB6, 0x01, 0x11; +- eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, +- 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, +- 0x99, 0xF9, 0xBB, 0xAF; +- stk500_devcode = 0x65; +-## avr910_devcode = ?; +- signature = 0x1e 0x93 0x81; +- pagel = 0xD8; +- bs2 = 0xE2; +- reset = io; +- chip_erase_delay = 9000; +- +- 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 = 1; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- size = 512; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x 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 x 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 x x x x x x", +- " a7 a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 64; +- readsize = 256; +- ; +-# AT90PWM2 has Signature Bytes: 0x1E 0x93 0x81. +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- +- 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 x x o o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90PWM3 +-#------------------------------------------------------------ +- +-# Completely identical to AT90PWM2 (including the signature!) +- +-part +- id = "pwm3"; +- desc = "AT90PWM3"; +- has_debugwire = yes; +- flash_instr = 0xB6, 0x01, 0x11; +- eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, +- 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, +- 0x99, 0xF9, 0xBB, 0xAF; +- stk500_devcode = 0x65; +-## avr910_devcode = ?; +- signature = 0x1e 0x93 0x81; +- pagel = 0xD8; +- bs2 = 0xE2; +- reset = io; +- chip_erase_delay = 9000; +- +- 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 = 1; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- size = 512; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x 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 x 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 x x x x x x", +- " a7 a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 64; +- readsize = 256; +- ; +-# AT90PWM2 has Signature Bytes: 0x1E 0x93 0x81. +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- +- 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 x x o o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90PWM2B +-#------------------------------------------------------------ +-# Same as AT90PWM2 but different signature. +- +-part +- id = "pwm2b"; +- desc = "AT90PWM2B"; +- has_debugwire = yes; +- flash_instr = 0xB6, 0x01, 0x11; +- eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, +- 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, +- 0x99, 0xF9, 0xBB, 0xAF; +- stk500_devcode = 0x65; +-## avr910_devcode = ?; +- signature = 0x1e 0x93 0x83; +- pagel = 0xD8; +- bs2 = 0xE2; +- reset = io; +- chip_erase_delay = 9000; +- +- 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 = 1; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- size = 512; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x 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 x 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 x x x x x x", +- " a7 a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 64; +- readsize = 256; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- +- 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 x x o o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# AT90PWM3B +-#------------------------------------------------------------ +- +-# Completely identical to AT90PWM2B (including the signature!) +- +-part +- id = "pwm3b"; +- desc = "AT90PWM3B"; +- has_debugwire = yes; +- flash_instr = 0xB6, 0x01, 0x11; +- eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, +- 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, +- 0x99, 0xF9, 0xBB, 0xAF; +- stk500_devcode = 0x65; +-## avr910_devcode = ?; +- signature = 0x1e 0x93 0x83; +- pagel = 0xD8; +- bs2 = 0xE2; +- reset = io; +- chip_erase_delay = 9000; +- +- 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 = 1; +- +- 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; +- hventerstabdelay = 100; +- progmodedelay = 0; +- latchcycles = 5; +- togglevtg = 1; +- poweroffdelay = 15; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 15; +- chiperasepulsewidth = 0; +- chiperasepolltimeout = 10; +- programfusepulsewidth = 0; +- programfusepolltimeout = 5; +- programlockpulsewidth = 0; +- programlockpolltimeout = 5; +- +- memory "eeprom" +- size = 512; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x 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 x 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 x x x x x x", +- " a7 a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 64; +- readsize = 256; +- ; +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 x x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- +- 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 x x o o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# ATtiny25 +-#------------------------------------------------------------ +- +-part +- id = "t25"; +- desc = "ATtiny25"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x02, 0x12; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +-## no STK500 devcode in XML file, use the ATtiny45 one +- stk500_devcode = 0x14; +-## avr910_devcode = ?; +-## Try the AT90S2313 devcode: +- avr910_devcode = 0x20; +- signature = 0x1e 0x91 0x08; +- reset = io; +- chip_erase_delay = 4500; +- +- 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 = 1; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, +- 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, +- 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; +- hventerstabdelay = 100; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 128; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", +- "x 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 x x x x x", +- "x 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 x x x x x x", +- " x a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 2048; +- page_size = 32; +- num_pages = 64; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x x 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 x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 0 0 a9 a8", +- " a7 a6 a5 a4 x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +-# ATtiny25 has Signature Bytes: 0x1E 0x91 0x08. +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 2; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 a0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# ATtiny45 +-#------------------------------------------------------------ +- +-part +- id = "t45"; +- desc = "ATtiny45"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x02, 0x12; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +- stk500_devcode = 0x14; +-## avr910_devcode = ?; +-## Try the AT90S2313 devcode: +- avr910_devcode = 0x20; +- signature = 0x1e 0x92 0x06; +- reset = io; +- chip_erase_delay = 4500; +- +- 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 = 1; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, +- 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, +- 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; +- hventerstabdelay = 100; +- progmodedelay = 0; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 256; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", +- "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 x x x x x", +- "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 x x x x x x", +- " a7 a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 4096; +- page_size = 64; +- num_pages = 64; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 0 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +-# ATtiny45 has Signature Bytes: 0x1E 0x92 0x08. (Data sheet 2586C-AVR-06/05 (doc2586.pdf) indicates otherwise!) +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 2; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 a0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# ATtiny85 +-#------------------------------------------------------------ +- +-part +- id = "t85"; +- desc = "ATtiny85"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x02, 0x12; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +-## no STK500 devcode in XML file, use the ATtiny45 one +- stk500_devcode = 0x14; +-## avr910_devcode = ?; +-## Try the AT90S2313 devcode: +- avr910_devcode = 0x20; +- signature = 0x1e 0x93 0x0b; +- reset = io; +- chip_erase_delay = 4500; +- +- 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 = 1; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, +- 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, +- 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; +- hventerstabdelay = 100; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 1; +- resetdelayus = 0; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 512; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x 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 x x x x a8", +- "a8 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 x x x x x a8", +- " a7 a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +-# ATtiny85 has Signature Bytes: 0x1E 0x93 0x08. +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x 1 1 i i i i i i"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 2; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 a0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ + # ATmega640 + #------------------------------------------------------------ + # Almost same as ATmega1280, except for different memory sizes +@@ -10768,553 +6101,6 @@ + ; + + #------------------------------------------------------------ +-# ATtiny24 +-#------------------------------------------------------------ +- +-part +- id = "t24"; +- desc = "ATtiny24"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x07, 0x17; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +-## no STK500 devcode in XML file, use the ATtiny45 one +- stk500_devcode = 0x14; +-## avr910_devcode = ?; +-## Try the AT90S2313 devcode: +- avr910_devcode = 0x20; +- signature = 0x1e 0x91 0x0b; +- reset = io; +- chip_erase_delay = 4500; +- +- 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 = 1; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, +- 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, +- 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F; +- hventerstabdelay = 100; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 0; +- resetdelayus = 70; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 128; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", +- "x 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 x x x x x", +- "x 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 x x x x x x", +- " x a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 2048; +- page_size = 32; +- num_pages = 64; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x x 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 x x x x x", +- " x x x x a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 0 0 a9 a8", +- " a7 a6 a5 a4 x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +-# ATtiny24 has Signature Bytes: 0x1E 0x91 0x0B. +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x x x x x x x i i"; +- read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 a0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# ATtiny44 +-#------------------------------------------------------------ +- +-part +- id = "t44"; +- desc = "ATtiny44"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x07, 0x17; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +-## no STK500 devcode in XML file, use the ATtiny45 one +- stk500_devcode = 0x14; +-## avr910_devcode = ?; +-## Try the AT90S2313 devcode: +- avr910_devcode = 0x20; +- signature = 0x1e 0x92 0x07; +- reset = io; +- chip_erase_delay = 4500; +- +- 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 = 1; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, +- 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, +- 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F; +- hventerstabdelay = 100; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 0; +- resetdelayus = 70; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 256; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", +- "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 x x x x x", +- "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 x x x x x x", +- " x a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 4096; +- page_size = 64; +- num_pages = 64; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 0 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +-# ATtiny44 has Signature Bytes: 0x1E 0x92 0x07. +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x x x x x x x i i"; +- read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 a0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ +-# ATtiny84 +-#------------------------------------------------------------ +- +-part +- id = "t84"; +- desc = "ATtiny84"; +- has_debugwire = yes; +- flash_instr = 0xB4, 0x07, 0x17; +- eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, +- 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC, +- 0x99, 0xE1, 0xBB, 0xAC; +-## no STK500 devcode in XML file, use the ATtiny45 one +- stk500_devcode = 0x14; +-## avr910_devcode = ?; +-## Try the AT90S2313 devcode: +- avr910_devcode = 0x20; +- signature = 0x1e 0x93 0x0c; +- reset = io; +- chip_erase_delay = 4500; +- +- 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 = 1; +- +- hvsp_controlstack = +- 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, +- 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, +- 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, +- 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F; +- hventerstabdelay = 100; +- hvspcmdexedelay = 0; +- synchcycles = 6; +- latchcycles = 1; +- togglevtg = 1; +- poweroffdelay = 25; +- resetdelayms = 0; +- resetdelayus = 70; +- hvleavestabdelay = 100; +- resetdelay = 25; +- chiperasepolltimeout = 40; +- chiperasetime = 0; +- programfusepolltimeout = 25; +- programlockpolltimeout = 25; +- +- memory "eeprom" +- size = 512; +- paged = no; +- page_size = 4; +- min_write_delay = 4000; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read = "1 0 1 0 0 0 0 0 0 0 0 x 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 x x x x a8", +- "a8 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 x x x x x x", +- " x a6 a5 a4 a3 a2 0 0", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 4; +- readsize = 256; +- ; +- memory "flash" +- paged = yes; +- size = 8192; +- page_size = 64; +- num_pages = 128; +- min_write_delay = 4500; +- max_write_delay = 4500; +- readback_p1 = 0xff; +- readback_p2 = 0xff; +- read_lo = " 0 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"; +- +- read_hi = " 0 0 1 0 1 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"; +- +- loadpage_lo = " 0 1 0 0 0 0 0 0", +- " 0 0 0 x x x x x", +- " x x x 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 x x x x x", +- " x x x a4 a3 a2 a1 a0", +- " i i i i i i i i"; +- +- writepage = " 0 1 0 0 1 1 0 0", +- " 0 0 0 0 a11 a10 a9 a8", +- " a7 a6 a5 x x x x x", +- " x x x x x x x x"; +- +- mode = 0x41; +- delay = 6; +- blocksize = 32; +- readsize = 256; +- ; +-# ATtiny84 has Signature Bytes: 0x1E 0x93 0x0C. +- memory "signature" +- size = 3; +- read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", +- "x x x x x x a1 a0 o o o o o o o o"; +- ; +- +- memory "lock" +- size = 1; +- write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", +- "x x x x x x x x x x x x x x i i"; +- read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", +- "0 0 0 0 0 0 0 0 o o o o o o o o"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "lfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "hfuse" +- size = 1; +- 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"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "efuse" +- size = 1; +- 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 x x x x x x x i"; +- +- 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"; +- min_write_delay = 9000; +- max_write_delay = 9000; +- ; +- +- memory "calibration" +- size = 1; +- read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", +- "0 0 0 0 0 0 0 a0 o o o o o o o o"; +- ; +- ; +- +-#------------------------------------------------------------ + # ATmega32u4 + #------------------------------------------------------------ + +@@ -14757,163 +9543,3 @@ + ; + ; + +-#------------------------------------------------------------ +-# ATtiny4 +-#------------------------------------------------------------ +- +-part +- id = "t4"; +- desc = "ATtiny4"; +- signature = 0x1e 0x8f 0x0a; +- has_tpi = yes; +- +- memory "flash" +- size = 512; +- offset = 0x4000; +- page_size = 16; +- blocksize = 128; +- ; +- +- memory "signature" +- size = 3; +- offset = 0x3fc0; +- ; +- +- memory "fuse" +- size = 1; +- offset = 0x3f40; +- blocksize = 4; +- ; +- +- memory "calibration" +- size = 1; +- offset = 0x3f80; +- ; +- +- memory "lockbits" +- size = 1; +- offset = 0x3f00; +- ; +-; +- +- +-#------------------------------------------------------------ +-# ATtiny5 +-#------------------------------------------------------------ +- +-part +- id = "t5"; +- desc = "ATtiny5"; +- signature = 0x1e 0x8f 0x09; +- has_tpi = yes; +- +- memory "flash" +- size = 512; +- offset = 0x4000; +- page_size = 16; +- blocksize = 128; +- ; +- +- memory "signature" +- size = 3; +- offset = 0x3fc0; +- ; +- +- memory "fuse" +- size = 1; +- offset = 0x3f40; +- blocksize = 4; +- ; +- +- memory "calibration" +- size = 1; +- offset = 0x3f80; +- ; +- +- memory "lockbits" +- size = 1; +- offset = 0x3f00; +- ; +-; +- +- +-#------------------------------------------------------------ +-# ATtiny9 +-#------------------------------------------------------------ +- +-part +- id = "t8"; +- desc = "ATtiny9"; +- signature = 0x1e 0x90 0x08; +- has_tpi = yes; +- +- memory "flash" +- size = 1024; +- offset = 0x4000; +- page_size = 16; +- blocksize = 128; +- ; +- +- memory "signature" +- size = 3; +- offset = 0x3fc0; +- ; +- +- memory "fuse" +- size = 1; +- offset = 0x3f40; +- blocksize = 4; +- ; +- +- memory "calibration" +- size = 1; +- offset = 0x3f80; +- ; +- +- memory "lockbits" +- size = 1; +- offset = 0x3f00; +- ; +-; +- +- +-#------------------------------------------------------------ +-# ATtiny10 +-#------------------------------------------------------------ +- +-part +- id = "t10"; +- desc = "ATtiny10"; +- signature = 0x1e 0x90 0x03; +- has_tpi = yes; +- +- memory "flash" +- size = 1024; +- offset = 0x4000; +- page_size = 16; +- blocksize = 128; +- ; +- +- memory "signature" +- size = 3; +- offset = 0x3fc0; +- ; +- +- memory "fuse" +- size = 1; +- offset = 0x3f40; +- blocksize = 4; +- ; +- +- memory "calibration" +- size = 1; +- offset = 0x3f80; +- ; +- +- memory "lockbits" +- size = 1; +- offset = 0x3f00; +- ; +-; +- +-