@@ -43,73 +43,73 @@ const byte NO_FUSE = 0xFF;
43
43
44
44
45
45
// see Atmega datasheets
46
- const signatureType signatures [] PROGMEM =
46
+ const signatureType signatures [] PROGMEM =
47
47
{
48
- // signature description flash size bootloader flash fuse
49
- // size page to
48
+ // signature description flash size bootloader flash fuse timed
49
+ // size page to writes
50
50
// size change
51
51
52
52
// Attiny84 family
53
- { { 0x1E , 0x91 , 0x0B }, "ATtiny24" , 2 * kb , 0 , 32 , NO_FUSE },
54
- { { 0x1E , 0x92 , 0x07 }, "ATtiny44" , 4 * kb , 0 , 64 , NO_FUSE },
55
- { { 0x1E , 0x93 , 0x0C }, "ATtiny84" , 8 * kb , 0 , 64 , NO_FUSE },
53
+ { { 0x1E , 0x91 , 0x0B }, "ATtiny24" , 2 * kb , 0 , 32 , NO_FUSE , false },
54
+ { { 0x1E , 0x92 , 0x07 }, "ATtiny44" , 4 * kb , 0 , 64 , NO_FUSE , false },
55
+ { { 0x1E , 0x93 , 0x0C }, "ATtiny84" , 8 * kb , 0 , 64 , NO_FUSE , false },
56
56
57
57
// Attiny85 family
58
- { { 0x1E , 0x91 , 0x08 }, "ATtiny25" , 2 * kb , 0 , 32 , NO_FUSE },
59
- { { 0x1E , 0x92 , 0x06 }, "ATtiny45" , 4 * kb , 0 , 64 , NO_FUSE },
60
- { { 0x1E , 0x93 , 0x0B }, "ATtiny85" , 8 * kb , 0 , 64 , NO_FUSE },
58
+ { { 0x1E , 0x91 , 0x08 }, "ATtiny25" , 2 * kb , 0 , 32 , NO_FUSE , false },
59
+ { { 0x1E , 0x92 , 0x06 }, "ATtiny45" , 4 * kb , 0 , 64 , NO_FUSE , false },
60
+ { { 0x1E , 0x93 , 0x0B }, "ATtiny85" , 8 * kb , 0 , 64 , NO_FUSE , false },
61
61
62
62
// Atmega328 family
63
- { { 0x1E , 0x92 , 0x0A }, "ATmega48PA" , 4 * kb , 0 , 64 , NO_FUSE },
64
- { { 0x1E , 0x93 , 0x0F }, "ATmega88PA" , 8 * kb , 256 , 128 , extFuse },
65
- { { 0x1E , 0x94 , 0x0B }, "ATmega168PA" , 16 * kb , 256 , 128 , extFuse },
66
- { { 0x1E , 0x95 , 0x0F }, "ATmega328P" , 32 * kb , 512 , 128 , highFuse },
67
- { { 0x1E , 0x95 , 0x14 }, "ATmega328" , 32 * kb , 512 , 128 , highFuse },
63
+ { { 0x1E , 0x92 , 0x0A }, "ATmega48PA" , 4 * kb , 0 , 64 , NO_FUSE , false },
64
+ { { 0x1E , 0x93 , 0x0F }, "ATmega88PA" , 8 * kb , 256 , 128 , extFuse , false },
65
+ { { 0x1E , 0x94 , 0x0B }, "ATmega168PA" , 16 * kb , 256 , 128 , extFuse , false },
66
+ { { 0x1E , 0x95 , 0x0F }, "ATmega328P" , 32 * kb , 512 , 128 , highFuse , false },
67
+ { { 0x1E , 0x95 , 0x14 }, "ATmega328" , 32 * kb , 512 , 128 , highFuse , false },
68
68
69
69
// Atmega644 family
70
- { { 0x1E , 0x94 , 0x0A }, "ATmega164P" , 16 * kb , 256 , 128 , highFuse },
71
- { { 0x1E , 0x95 , 0x08 }, "ATmega324P" , 32 * kb , 512 , 128 , highFuse },
72
- { { 0x1E , 0x96 , 0x0A }, "ATmega644P" , 64 * kb , 1 * kb , 256 , highFuse },
70
+ { { 0x1E , 0x94 , 0x0A }, "ATmega164P" , 16 * kb , 256 , 128 , highFuse , false },
71
+ { { 0x1E , 0x95 , 0x08 }, "ATmega324P" , 32 * kb , 512 , 128 , highFuse , false },
72
+ { { 0x1E , 0x96 , 0x0A }, "ATmega644P" , 64 * kb , 1 * kb , 256 , highFuse , false },
73
73
74
74
// Atmega2560 family
75
- { { 0x1E , 0x96 , 0x08 }, "ATmega640" , 64 * kb , 1 * kb , 256 , highFuse },
76
- { { 0x1E , 0x97 , 0x03 }, "ATmega1280" , 128 * kb , 1 * kb , 256 , highFuse },
77
- { { 0x1E , 0x97 , 0x04 }, "ATmega1281" , 128 * kb , 1 * kb , 256 , highFuse },
78
- { { 0x1E , 0x98 , 0x01 }, "ATmega2560" , 256 * kb , 1 * kb , 256 , highFuse },
79
-
80
- { { 0x1E , 0x98 , 0x02 }, "ATmega2561" , 256 * kb , 1 * kb , 256 , highFuse },
75
+ { { 0x1E , 0x96 , 0x08 }, "ATmega640" , 64 * kb , 1 * kb , 256 , highFuse , false },
76
+ { { 0x1E , 0x97 , 0x03 }, "ATmega1280" , 128 * kb , 1 * kb , 256 , highFuse , false },
77
+ { { 0x1E , 0x97 , 0x04 }, "ATmega1281" , 128 * kb , 1 * kb , 256 , highFuse , false },
78
+ { { 0x1E , 0x98 , 0x01 }, "ATmega2560" , 256 * kb , 1 * kb , 256 , highFuse , false },
79
+
80
+ { { 0x1E , 0x98 , 0x02 }, "ATmega2561" , 256 * kb , 1 * kb , 256 , highFuse , false },
81
81
82
82
// AT90USB family
83
- { { 0x1E , 0x93 , 0x82 }, "At90USB82" , 8 * kb , 512 , 128 , highFuse },
84
- { { 0x1E , 0x94 , 0x82 }, "At90USB162" , 16 * kb , 512 , 128 , highFuse },
85
-
83
+ { { 0x1E , 0x93 , 0x82 }, "At90USB82" , 8 * kb , 512 , 128 , highFuse , false },
84
+ { { 0x1E , 0x94 , 0x82 }, "At90USB162" , 16 * kb , 512 , 128 , highFuse , false },
85
+
86
86
// Atmega32U2 family
87
- { { 0x1E , 0x93 , 0x89 }, "ATmega8U2" , 8 * kb , 512 , 128 , highFuse },
88
- { { 0x1E , 0x94 , 0x89 }, "ATmega16U2" , 16 * kb , 512 , 128 , highFuse },
89
- { { 0x1E , 0x95 , 0x8A }, "ATmega32U2" , 32 * kb , 512 , 128 , highFuse },
87
+ { { 0x1E , 0x93 , 0x89 }, "ATmega8U2" , 8 * kb , 512 , 128 , highFuse , false },
88
+ { { 0x1E , 0x94 , 0x89 }, "ATmega16U2" , 16 * kb , 512 , 128 , highFuse , false },
89
+ { { 0x1E , 0x95 , 0x8A }, "ATmega32U2" , 32 * kb , 512 , 128 , highFuse , false },
90
90
91
91
// Atmega32U4 family - (datasheet is wrong about flash page size being 128 words)
92
- { { 0x1E , 0x94 , 0x88 }, "ATmega16U4" , 16 * kb , 512 , 128 , highFuse },
93
- { { 0x1E , 0x95 , 0x87 }, "ATmega32U4" , 32 * kb , 512 , 128 , highFuse },
92
+ { { 0x1E , 0x94 , 0x88 }, "ATmega16U4" , 16 * kb , 512 , 128 , highFuse , false },
93
+ { { 0x1E , 0x95 , 0x87 }, "ATmega32U4" , 32 * kb , 512 , 128 , highFuse , false },
94
94
95
95
// ATmega1284P family
96
- { { 0x1E , 0x97 , 0x05 }, "ATmega1284P" , 128 * kb , 1 * kb , 256 , highFuse },
97
-
96
+ { { 0x1E , 0x97 , 0x05 }, "ATmega1284P" , 128 * kb , 1 * kb , 256 , highFuse , false },
97
+
98
98
// ATtiny4313 family
99
- { { 0x1E , 0x91 , 0x0A }, "ATtiny2313A" , 2 * kb , 0 , 32 , NO_FUSE },
100
- { { 0x1E , 0x92 , 0x0D }, "ATtiny4313" , 4 * kb , 0 , 64 , NO_FUSE },
99
+ { { 0x1E , 0x91 , 0x0A }, "ATtiny2313A" , 2 * kb , 0 , 32 , NO_FUSE , false },
100
+ { { 0x1E , 0x92 , 0x0D }, "ATtiny4313" , 4 * kb , 0 , 64 , NO_FUSE , false },
101
101
102
102
// ATtiny13 family
103
- { { 0x1E , 0x90 , 0x07 }, "ATtiny13A" , 1 * kb , 0 , 32 , NO_FUSE },
104
-
103
+ { { 0x1E , 0x90 , 0x07 }, "ATtiny13A" , 1 * kb , 0 , 32 , NO_FUSE , false },
104
+
105
105
// Atmega8A family
106
106
{ { 0x1E , 0x93 , 0x07 }, "ATmega8A" , 8 * kb , 256 , 64 , highFuse , true },
107
107
108
108
// ATmega64rfr2 family
109
- { { 0x1E , 0xA6 , 0x02 }, "ATmega64rfr2" , 256 * kb , 1 * kb , 256 , highFuse },
110
- { { 0x1E , 0xA7 , 0x02 }, "ATmega128rfr2" , 256 * kb , 1 * kb , 256 , highFuse },
111
- { { 0x1E , 0xA8 , 0x02 }, "ATmega256rfr2" , 256 * kb , 1 * kb , 256 , highFuse },
112
-
109
+ { { 0x1E , 0xA6 , 0x02 }, "ATmega64rfr2" , 256 * kb , 1 * kb , 256 , highFuse , false },
110
+ { { 0x1E , 0xA7 , 0x02 }, "ATmega128rfr2" , 256 * kb , 1 * kb , 256 , highFuse , false },
111
+ { { 0x1E , 0xA8 , 0x02 }, "ATmega256rfr2" , 256 * kb , 1 * kb , 256 , highFuse , false },
112
+
113
113
}; // end of signatures
114
114
115
115
0 commit comments