Skip to content

Commit 6bd797e

Browse files
committed
Added support for numerous chips
1 parent f959062 commit 6bd797e

File tree

3 files changed

+63
-25
lines changed

3 files changed

+63
-25
lines changed

README.md

+29-24
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,24 @@ Aside from the programmer, there is target PCB design under `schematics-target`.
2929

3030
||Chip||Chip|
3131
| - | - | - | - |
32-
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1280 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329PA |
33-
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1281 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329P |
34-
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329 |
35-
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32A |
36-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32C1 |
37-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128RFA1 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32HVB |
38-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32M1 |
39-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega162 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U2 |
40-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164A | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U4 |
41-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32 |
42-
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega164P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48A |
43-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48PA |
44-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48P |
45-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48 |
46-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega640 |
47-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644A |
48-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644PA |
32+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1280 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329A |
33+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1281 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329PA |
34+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329P |
35+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329 |
36+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32A |
37+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128RFA1 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32C1 |
38+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32HVB |
39+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega162 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32M1 |
40+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164A | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U2 |
41+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164PA | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U4 |
42+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega164P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32 |
43+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48A |
44+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165PA | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega48PA |
45+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48P |
46+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48 |
47+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega168PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega640 |
48+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644A |
49+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega168V | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644PA |
4950
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega644P |
5051
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644 |
5152
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6450A |
@@ -67,15 +68,19 @@ Aside from the programmer, there is target PCB design under `schematics-target`.
6768
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8515 |
6869
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8535 |
6970
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88A |
70-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88PA |
71+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325P | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega88PA |
7172
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88P |
7273
| ![#32CD32](https://via.placeholder.com/15/32CD32/000000?text=+) | ATmega328P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88 |
73-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega328 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8A |
74-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290A | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega8U2 |
75-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8 |
76-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290P | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB82 |
77-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB162 |
78-
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329A |
74+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega328PB | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8A |
75+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega328 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega8U2 |
76+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8 |
77+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290PA | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB82 |
78+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290P | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB162 |
79+
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290 | | |
80+
| | | | |
81+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny24 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny25 |
82+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny44 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny45 |
83+
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny84 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny85 |
7984

8085
# License
8186

firmware-programmer/src/programmer/signatues.h

+17-1
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,25 @@ const Signature signatures[] PROGMEM =
3131

3232
// signature description flash size bootloader flash bootloader timed Safety Safety
3333
// size page fuse writes Mask One Mask Zero
34-
// size
34+
// size
35+
// Attiny84 family
36+
{ { 0x1E, 0x91, 0x0B }, "ATtiny24", 0x800UL, 0, 0x20UL, NO_FUSE, false, 0b11000000, 0b00100000},
37+
{ { 0x1E, 0x92, 0x07 }, "ATtiny44", 0x1000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},
38+
{ { 0x1E, 0x93, 0x0C }, "ATtiny84", 0x2000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},
39+
40+
// Attiny85 family
41+
{ { 0x1E, 0x91, 0x08 }, "ATtiny25", 0x800UL, 0, 0x20UL, NO_FUSE, false, 0b11000000, 0b00100000},
42+
{ { 0x1E, 0x92, 0x06 }, "ATtiny45", 0x1000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},
43+
{ { 0x1E, 0x93, 0x0B }, "ATtiny85", 0x2000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},
44+
3545
// Atmega328 family
46+
{ { 0x1E, 0x92, 0x0A }, "ATmega48PA", 0x2000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},
47+
{ { 0x1E, 0x93, 0x0F }, "ATmega88PA", 0x2000UL, 0x100U, 0x80UL, extFuse, false, 0b11000000, 0b00100000},
48+
{ { 0x1E, 0x94, 0x0B }, "ATmega168PA", 0x4000UL, 0x100U, 0x80UL, extFuse, false, 0b11000000, 0b00100000},
49+
{ { 0x1E, 0x94, 0x06 }, "ATmega168V", 0x4000UL, 0x100U, 0x80UL, extFuse, false, 0b11000000, 0b00100000},
3650
{ { 0x1E, 0x95, 0x0F }, "ATmega328P", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
51+
{ { 0x1E, 0x95, 0x16 }, "ATmega328PB", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
52+
{ { 0x1E, 0x95, 0x14 }, "ATmega328", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
3753

3854
// Atmega644 family
3955
{ { 0x1E, 0x95, 0x08 }, "ATmega324P", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b10000000, 0b01100000},

firmware-uim/src/signatures.h

+17
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,24 @@ typedef struct {
1111
// see Atmega datasheets
1212
const Signature signatures[] PROGMEM =
1313
{
14+
// Attiny84 family
15+
{ { 0x1E, 0x91, 0x0B }, "ATtiny24" },
16+
{ { 0x1E, 0x92, 0x07 }, "ATtiny44" },
17+
{ { 0x1E, 0x93, 0x0C }, "ATtiny84" },
18+
19+
// Attiny85 family
20+
{ { 0x1E, 0x91, 0x08 }, "ATtiny25" },
21+
{ { 0x1E, 0x92, 0x06 }, "ATtiny45" },
22+
{ { 0x1E, 0x93, 0x0B }, "ATtiny85" },
23+
24+
// Atmega328 family
25+
{ { 0x1E, 0x92, 0x0A }, "ATmega48PA" },
26+
{ { 0x1E, 0x93, 0x0F }, "ATmega88PA" },
27+
{ { 0x1E, 0x94, 0x0B }, "ATmega168PA"},
28+
{ { 0x1E, 0x94, 0x06 }, "ATmega168V" },
1429
{ { 0x1E, 0x95, 0x0F }, "ATmega328P" },
30+
{ { 0x1E, 0x95, 0x16 }, "ATmega328PB"},
31+
{ { 0x1E, 0x95, 0x14 }, "ATmega328" },
1532

1633
// Atmega644 family
1734
{ { 0x1E, 0x95, 0x08 }, "ATmega324P" },

0 commit comments

Comments
 (0)