Skip to content

Commit bed2bab

Browse files
committed
Added support for numerous chips
1 parent ed5b685 commit bed2bab

File tree

3 files changed

+108
-53
lines changed

3 files changed

+108
-53
lines changed

README.md

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -18,53 +18,53 @@ Picture of V1.0 PCB:
1818

1919
||Chip||Chip|
2020
| - | - | - | - |
21-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega1280 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329A |
22-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega1281 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329PA |
23-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega1284P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329P |
24-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega1284 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329 |
25-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32A |
26-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128RFA1 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32C1 |
27-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32HVB |
28-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega162 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32M1 |
29-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32U2 |
30-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32U4 |
31-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32 |
32-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48A |
33-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48PA |
34-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48P |
35-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48 |
36-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega640 |
37-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644A |
38-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644PA |
39-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644P |
40-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644 |
41-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6450A |
42-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6450P |
43-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16HVB | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6450 |
44-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16M1 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega645A |
45-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16U2 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega645P |
46-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16U4 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega645 |
47-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6490A |
48-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega2560 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6490P |
49-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega2561 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6490 |
50-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega324A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega649A |
51-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega324PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega649P |
52-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega324P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega649 |
53-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega64A |
54-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega64C1 |
55-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega64M1 |
56-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega64 |
57-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8515 |
58-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8535 |
59-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88A |
60-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88PA |
61-
| ![#32CD32](https://via.placeholder.com/15/32CD32/000000?text=+) | ATmega328P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88P |
62-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega328 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88 |
63-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8A |
64-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8U2 |
65-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8 |
66-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290 |
67-
21+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1280 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329PA |
22+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1281 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329P |
23+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329 |
24+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32A |
25+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32C1 |
26+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128RFA1 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32HVB |
27+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32M1 |
28+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega162 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U2 |
29+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164A | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U4 |
30+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32 |
31+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega164P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48A |
32+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48PA |
33+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48P |
34+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48 |
35+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega640 |
36+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644A |
37+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644PA |
38+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega644P |
39+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644 |
40+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6450A |
41+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6450P |
42+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6450 |
43+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16HVB | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega645A |
44+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16M1 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega645P |
45+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega16U2 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega645 |
46+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega16U4 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6490A |
47+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega16 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6490P |
48+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega2560 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6490 |
49+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega2561 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega649A |
50+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega324A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega649P |
51+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega324PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega649 |
52+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega324P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega64A |
53+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega64C1 |
54+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega64M1 |
55+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega64 |
56+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8515 |
57+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8535 |
58+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88A |
59+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88PA |
60+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88P |
61+
| ![#32CD32](https://via.placeholder.com/15/32CD32/000000?text=+) | ATmega328P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88 |
62+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega328 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8A |
63+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290A | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega8U2 |
64+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8 |
65+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290P | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB82 |
66+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB162 |
67+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329A |
6868
# License
6969

7070
This is free and unencumbered software released into the public domain.

firmware-programmer/src/programmer/signatues.h

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ typedef struct {
88
unsigned int baseBootSize; // base bootloader size (others are multiples of 2/4/8)
99
unsigned long pageSize; // flash programming page size (bytes)
1010
byte fuseWithBootloaderSize; // ie. one of: val_lowFuse, val_highFuse, val_extFuse
11-
bool timedWrites; // true if pollUntilReady won't work by polling the chip // NOT IMPLEMENTED
11+
bool timedWrites; // true if pollUntilReady won't work by polling the chip
1212
byte safetyMaskOne; // All bits in high that must be unprogrammed: one (i.e. (val & safetyMaskOne ) != safetyMaskOne is forbidden)
1313
byte safetyMaskZero; // All bits in high that must be programmed: zero (i.e. (val & safetyMaskZero) != 0 is forbidden)
1414
} Signature;
@@ -28,10 +28,38 @@ enum
2828
const Signature signatures[] PROGMEM =
2929
{
3030
// Currently only bootloader fuse = high is supported!
31+
// Currently only non timed writes are supported!
3132

32-
// signature description flash size bootloader flash bootloader timed Safety Safety
33-
// size page fuse writes Mask One Mask Zero
34-
// size
35-
{ { 0x1E, 0x95, 0x0F }, "ATmega328P", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
33+
// signature description flash size bootloader flash bootloader timed Safety Safety
34+
// size page fuse writes Mask One Mask Zero
35+
// size
36+
// Atmega328 family
37+
{ { 0x1E, 0x95, 0x0F }, "ATmega328P", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
3638

39+
// Atmega644 family
40+
{ { 0x1E, 0x95, 0x08 }, "ATmega324P", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b10000000, 0b01100000},
41+
{ { 0x1E, 0x94, 0x0A }, "ATmega164P", 0x4000UL, 0x100U, 0x80UL, highFuse, false, 0b10000000, 0b01100000},
42+
{ { 0x1E, 0x96, 0x0A }, "ATmega644P", 0x10000UL, 0x400U, 0x100UL, highFuse, false, 0b10000000, 0b01100000},
43+
44+
// Atmega2560 family
45+
{ { 0x1E, 0x96, 0x08 }, "ATmega640", 0x10000UL, 0x400U, 0x100UL, highFuse, false, 0b10000000, 0b01100000},
46+
{ { 0x1E, 0x97, 0x03 }, "ATmega1280", 0x20000UL, 0x400U, 0x100UL, highFuse, false, 0b10000000, 0b01100000},
47+
{ { 0x1E, 0x97, 0x04 }, "ATmega1281", 0x20000UL, 0x400U, 0x100UL, highFuse, false, 0b10000000, 0b01100000},
48+
49+
// AT90USB family
50+
{ { 0x1E, 0x93, 0x82 }, "At90USB82", 0x2000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
51+
{ { 0x1E, 0x94, 0x82 }, "At90USB162", 0x4000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
52+
53+
// Atmega32U2 family
54+
{ { 0x1E, 0x93, 0x89 }, "ATmega8U2", 0x2000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
55+
{ { 0x1E, 0x94, 0x89 }, "ATmega16U2", 0x4000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
56+
{ { 0x1E, 0x95, 0x8A }, "ATmega32U2", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
57+
58+
// Atmega32U4 family - (datasheet is wrong about flash page size being 128 words)
59+
{ { 0x1E, 0x94, 0x88 }, "ATmega16U4", 0x4000UL, 0x200U, 0x80UL, highFuse, false, 0b10000000, 0b01100000},
60+
{ { 0x1E, 0x95, 0x87 }, "ATmega32U4", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b10000000, 0b01100000},
61+
62+
// ATmega1284P family
63+
{ { 0x1E, 0x97, 0x05 }, "ATmega1284P", 0x20000UL, 0x400U, 0x100UL, highFuse, false, 0b10000000, 0b01100000},
64+
{ { 0x1E, 0x97, 0x06 }, "ATmega1284", 0x20000UL, 0x400U, 0x100UL, highFuse, false, 0b10000000, 0b01100000},
3765
};

0 commit comments

Comments
 (0)