From 32232faa2bff8f48405f20f5038a763805bf3f0d Mon Sep 17 00:00:00 2001 From: MCUdude Date: Fri, 7 Jan 2022 11:52:15 +0100 Subject: [PATCH 1/3] Add missing ATmega targets --- src/avrdude.conf.in | 94 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in index 29107feb..8f59bef5 100644 --- a/src/avrdude.conf.in +++ b/src/avrdude.conf.in @@ -4731,6 +4731,21 @@ part parent "m324p" ; +#------------------------------------------------------------ +# ATmega164A +#------------------------------------------------------------ + +# similar to ATmega164P + +part parent "m164p" + id = "m164a"; + desc = "ATmega164A"; + signature = 0x1e 0x94 0x0f; + + ocdrev = 3; + ; + + #------------------------------------------------------------ # ATmega324PB #------------------------------------------------------------ @@ -5908,6 +5923,18 @@ part ; ; +#------------------------------------------------------------ +# ATmega169P +#------------------------------------------------------------ + +part parent "m169" + id = "m169p"; + desc = "ATmega169P"; + signature = 0x1E 0x94 0x05; + + ocdrev = 3; + ; + #------------------------------------------------------------ # ATmega329 #------------------------------------------------------------ @@ -6333,6 +6360,20 @@ part parent "m649" ocdrev = 3; ; +#------------------------------------------------------------ +# ATmega6490P +#------------------------------------------------------------ + +# identical to ATmega6490 + +part parent "m649" + id = "m6490p"; + desc = "ATmega6490P"; + signature = 0x1e 0x96 0x0C; + + ocdrev = 3; + ; + #------------------------------------------------------------ # ATmega32 #------------------------------------------------------------ @@ -14194,6 +14235,7 @@ part "x x x x x x a1 a0 o o o o o o o o"; ; ; + #------------------------------------------------------------ # ATmega325 #------------------------------------------------------------ @@ -14385,6 +14427,20 @@ part ; ; +#------------------------------------------------------------ +# ATmega325P +#------------------------------------------------------------ + +# similar to ATmega325 + +part parent "m325" + id = "m325p"; + desc = "ATmega325P"; + signature = 0x1e 0x95 0x0d; + + ocdrev = 3; + ; + #------------------------------------------------------------ # ATmega645 #------------------------------------------------------------ @@ -14576,6 +14632,20 @@ part ; ; +#------------------------------------------------------------ +# ATmega645P +#------------------------------------------------------------ + +# similar to ATmega645 + +part parent "m645" + id = "m645p"; + desc = "ATmega645P"; + signature = 0x1e 0x96 0x0d; + + ocdrev = 3; + ; + #------------------------------------------------------------ # ATmega3250 #------------------------------------------------------------ @@ -14588,6 +14658,18 @@ part parent "m325" ocdrev = 3; ; +#------------------------------------------------------------ +# ATmega3250P +#------------------------------------------------------------ + +part parent "m325" + id = "m3250p"; + desc = "ATmega3250P"; + signature = 0x1E 0x95 0x0e; + + ocdrev = 3; + ; + #------------------------------------------------------------ # ATmega6450 #------------------------------------------------------------ @@ -14600,6 +14682,18 @@ part parent "m645" ocdrev = 3; ; +#------------------------------------------------------------ +# ATmega6450P +#------------------------------------------------------------ + +part parent "m645" + id = "m6450p"; + desc = "ATmega6450P"; + signature = 0x1E 0x96 0x0e; + + ocdrev = 3; + ; + #------------------------------------------------------------ # AVR XMEGA family common values #------------------------------------------------------------ From 77ed8b98c545a1147a698161cfb5f5f950ef598f Mon Sep 17 00:00:00 2001 From: MCUdude Date: Fri, 7 Jan 2022 13:07:51 +0100 Subject: [PATCH 2/3] Add ATmega165A/P targets --- src/avrdude.conf.in | 206 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in index 8f59bef5..64139d30 100644 --- a/src/avrdude.conf.in +++ b/src/avrdude.conf.in @@ -14236,6 +14236,212 @@ part ; ; +#------------------------------------------------------------ +# ATmega165A +#------------------------------------------------------------ + +part + id = "m165a"; + desc = "ATmega165A"; + signature = 0x1e 0x94 0x10; + has_jtag = yes; +# stk500_devcode = 0x??; +# avr910_devcode = 0x??; + chip_erase_delay = 9000; + reset = io; + 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 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 = 6; + togglevtg = 0; + poweroffdelay = 0; + resetdelayms = 0; + resetdelayus = 0; + hvleavestabdelay = 15; + chiperasepulsewidth = 0; + resetdelay = 15; + chiperasepolltimeout = 10; + programfusepulsewidth = 0; + programfusepolltimeout = 5; + programlockpulsewidth = 0; + programlockpolltimeout = 5; + + idr = 0x31; + spmcr = 0x57; + eecr = 0x3f; + allowfullpagebitstream = no; + + ocdrev = 3; + + memory "eeprom" + paged = no; + page_size = 4; + size = 512; + num_pages = 128; + min_write_delay = 3600; + max_write_delay = 3600; + readback_p1 = 0x00; + readback_p2 = 0x00; + read = " 1 0 1 0 0 0 0 0", + " 0 0 0 0 0 0 x a8", + " a7 a6 a5 a4 a3 a2 a1 a0", + " o o o o o o o o"; + + write = " 1 1 0 0 0 0 0 0", + " 0 0 0 0 0 0 x a8", + " a7 a6 a5 a4 a3 a2 a1 a0", + " i i i i i i i i"; + + loadpage_lo = " 1 1 0 0 0 0 0 1", + " 0 0 0 0 0 0 0 0", + " 0 0 0 0 0 0 a1 a0", + " i i i i i i i i"; + + writepage = " 1 1 0 0 0 0 1 0", + " 0 0 0 0 0 0 x a8", + " a7 a6 a5 a4 a3 a2 0 0", + " x x x x x x x x"; + + mode = 0x41; + delay = 20; + blocksize = 4; + readsize = 256; + ; + + memory "flash" + paged = yes; + size = 16384; + page_size = 128; + num_pages = 128; + min_write_delay = 4500; + max_write_delay = 4500; + readback_p1 = 0x00; + readback_p2 = 0x00; + read_lo = " 0 0 1 0 0 0 0 0", + " x x x a12 a11 a10 a9 a8", + " a7 a6 a5 a4 a3 a2 a1 a0", + " o o o o o o o o"; + + read_hi = " 0 0 1 0 1 0 0 0", + " x x x a12 a11 a10 a9 a8", + " a7 a6 a5 a4 a3 a2 a1 a0", + " o o o o o o o o"; + + loadpage_lo = " 0 1 0 0 0 0 0 0", + " 0 0 0 0 x x x x", + " x x a5 a4 a3 a2 a1 a0", + " i i i i i i i i"; + + loadpage_hi = " 0 1 0 0 1 0 0 0", + " 0 0 0 0 x x x x", + " x x a5 a4 a3 a2 a1 a0", + " i i i i i i i i"; + + writepage = " 0 1 0 0 1 1 0 0", + " x x x a12 a11 a10 a9 a8", + " a7 a6 x x x x x x", + " x x x x x x x x"; + + mode = 0x41; + delay = 10; + blocksize = 128; + readsize = 256; + ; + + memory "lfuse" + size = 1; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", + "x x x x x x x x o o o o o o o o"; + + write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", + "x x x x x x x x i i i i i i i i"; + ; + + memory "hfuse" + size = 1; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", + "x x x x x x x x o o o o o o o o"; + + write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", + "x x x x x x x x i i i i i i i i"; + ; + + memory "efuse" + size = 1; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", + "x x x x x x x x o o o o o o o o"; + + write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", + "x x x x x x x x x x x x i i i i"; + ; + + memory "lock" + size = 1; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", + "x x x x x x x x o o o o o o o o"; + + write = "1 0 1 0 1 1 0 0 1 1 1 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 1 0 0 0 0 0 0 0 0 0 0 0", + "x x x x x x a1 a0 o o o o o o o o"; + ; + + memory "calibration" + size = 1; + read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0", + "x x x x x x x x o o o o o o o o"; + ; + ; + +#------------------------------------------------------------ +# ATmega165P +#------------------------------------------------------------ + +# similar to ATmega165A + +part parent "m165a" + id = "m165p"; + desc = "ATmega165P"; + signature = 0x1e 0x94 0x07; + + ocdrev = 3; + ; + #------------------------------------------------------------ # ATmega325 #------------------------------------------------------------ From 7064447378cab4c035dcd5f4d5d882c92e1c82ff Mon Sep 17 00:00:00 2001 From: MCUdude Date: Wed, 12 Jan 2022 23:50:40 +0100 Subject: [PATCH 3/3] Add all possible ATmega__5 and ATmega__9 targets This includes the "non-P", A, P and PA suffixes --- src/avrdude.conf.in | 195 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 159 insertions(+), 36 deletions(-) diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in index 64139d30..393b0c2a 100644 --- a/src/avrdude.conf.in +++ b/src/avrdude.conf.in @@ -5923,6 +5923,15 @@ part ; ; +#------------------------------------------------------------ +# ATmega169A +#------------------------------------------------------------ + +part parent "m169" + id = "m169a"; + desc = "ATmega169A"; + ; + #------------------------------------------------------------ # ATmega169P #------------------------------------------------------------ @@ -5931,8 +5940,16 @@ part parent "m169" id = "m169p"; desc = "ATmega169P"; signature = 0x1E 0x94 0x05; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega169PA +#------------------------------------------------------------ + +part parent "m169" + id = "m169pa"; + desc = "ATmega169PA"; + signature = 0x1E 0x94 0x05; ; #------------------------------------------------------------ @@ -6120,45 +6137,73 @@ part ; ; +#------------------------------------------------------------ +# ATmega329A +#------------------------------------------------------------ + +part parent "m329" + id = "m329a"; + desc = "ATmega329a"; + ; + #------------------------------------------------------------ # ATmega329P #------------------------------------------------------------ -# Identical to ATmega329 except of the signature part parent "m329" id = "m329p"; desc = "ATmega329P"; signature = 0x1e 0x95 0x0b; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega329PA +#------------------------------------------------------------ + +part parent "m329" + id = "m329pa"; + desc = "ATmega329PA"; + signature = 0x1e 0x95 0x0b; ; #------------------------------------------------------------ # ATmega3290 #------------------------------------------------------------ -# identical to ATmega329 - part parent "m329" id = "m3290"; desc = "ATmega3290"; signature = 0x1e 0x95 0x04; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega3290A +#------------------------------------------------------------ + +part parent "m329" + id = "m3290a"; + desc = "ATmega3290A"; + signature = 0x1e 0x95 0x04; ; #------------------------------------------------------------ # ATmega3290P #------------------------------------------------------------ -# identical to ATmega3290 except of the signature - -part parent "m3290" +part parent "m329" id = "m3290p"; desc = "ATmega3290P"; signature = 0x1e 0x95 0x0c; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega3290PA +#------------------------------------------------------------ + +part parent "m329" + id = "m3290pa"; + desc = "ATmega3290PA"; + signature = 0x1e 0x95 0x0c; ; #------------------------------------------------------------ @@ -6347,31 +6392,52 @@ part ; #------------------------------------------------------------ -# ATmega6490 +# ATmega649A #------------------------------------------------------------ -# identical to ATmega649 +part parent "m649" + id = "m649a"; + desc = "ATmega649A"; + ; + +#------------------------------------------------------------ +# ATmega649P +#------------------------------------------------------------ + +part parent "m649" + id = "m649p"; + desc = "ATmega649P"; + signature = 0x1e 0x96 0x0b; + ; + +#------------------------------------------------------------ +# ATmega6490 +#------------------------------------------------------------ part parent "m649" id = "m6490"; desc = "ATmega6490"; signature = 0x1e 0x96 0x04; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega6490A +#------------------------------------------------------------ + +part parent "m649" + id = "m6490a"; + desc = "ATmega6490A"; + signature = 0x1e 0x96 0x04; ; #------------------------------------------------------------ # ATmega6490P #------------------------------------------------------------ -# identical to ATmega6490 - part parent "m649" id = "m6490p"; desc = "ATmega6490P"; signature = 0x1e 0x96 0x0C; - - ocdrev = 3; ; #------------------------------------------------------------ @@ -14237,12 +14303,12 @@ part ; #------------------------------------------------------------ -# ATmega165A +# ATmega165 #------------------------------------------------------------ part - id = "m165a"; - desc = "ATmega165A"; + id = "m165"; + desc = "ATmega165"; signature = 0x1e 0x94 0x10; has_jtag = yes; # stk500_devcode = 0x??; @@ -14428,18 +14494,33 @@ part ; ; +#------------------------------------------------------------ +# ATmega165A +#------------------------------------------------------------ + +part parent "m165" + id = "m165a"; + desc = "ATmega165A"; + ; + #------------------------------------------------------------ # ATmega165P #------------------------------------------------------------ -# similar to ATmega165A - -part parent "m165a" +part parent "m165" id = "m165p"; desc = "ATmega165P"; signature = 0x1e 0x94 0x07; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega165PA +#------------------------------------------------------------ + +part parent "m165" + id = "m165pa"; + desc = "ATmega165PA"; + signature = 0x1e 0x94 0x07; ; #------------------------------------------------------------ @@ -14634,17 +14715,32 @@ part ; #------------------------------------------------------------ -# ATmega325P +# ATmega325A #------------------------------------------------------------ -# similar to ATmega325 +part parent "m325" + id = "m325a"; + desc = "ATmega325A"; + ; + +#------------------------------------------------------------ +# ATmega325P +#------------------------------------------------------------ part parent "m325" id = "m325p"; desc = "ATmega325P"; signature = 0x1e 0x95 0x0d; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega325PA +#------------------------------------------------------------ + +part parent "m325" + id = "m325pa"; + desc = "ATmega325PA"; + signature = 0x1e 0x95 0x0d; ; #------------------------------------------------------------ @@ -14839,17 +14935,22 @@ part ; #------------------------------------------------------------ -# ATmega645P +# ATmega645A #------------------------------------------------------------ -# similar to ATmega645 +part parent "m645" + id = "m645a"; + desc = "ATmega645A"; + ; + +#------------------------------------------------------------ +# ATmega645P +#------------------------------------------------------------ part parent "m645" id = "m645p"; desc = "ATmega645P"; signature = 0x1e 0x96 0x0d; - - ocdrev = 3; ; #------------------------------------------------------------ @@ -14860,8 +14961,16 @@ part parent "m325" id = "m3250"; desc = "ATmega3250"; signature = 0x1E 0x95 0x06; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega3250A +#------------------------------------------------------------ + +part parent "m325" + id = "m3250a"; + desc = "ATmega3250A"; + signature = 0x1E 0x95 0x06; ; #------------------------------------------------------------ @@ -14872,8 +14981,16 @@ part parent "m325" id = "m3250p"; desc = "ATmega3250P"; signature = 0x1E 0x95 0x0e; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega3250PA +#------------------------------------------------------------ + +part parent "m325" + id = "m3250pa"; + desc = "ATmega3250PA"; + signature = 0x1E 0x95 0x0e; ; #------------------------------------------------------------ @@ -14884,8 +15001,16 @@ part parent "m645" id = "m6450"; desc = "ATmega6450"; signature = 0x1E 0x96 0x06; + ; - ocdrev = 3; +#------------------------------------------------------------ +# ATmega6450A +#------------------------------------------------------------ + +part parent "m645" + id = "m6450a"; + desc = "ATmega6450A"; + signature = 0x1E 0x96 0x06; ; #------------------------------------------------------------ @@ -14896,8 +15021,6 @@ part parent "m645" id = "m6450p"; desc = "ATmega6450P"; signature = 0x1E 0x96 0x0e; - - ocdrev = 3; ; #------------------------------------------------------------