Skip to content

Commit

Permalink
Added support for numerous chips
Browse files Browse the repository at this point in the history
  • Loading branch information
StoneLabs committed May 18, 2020
1 parent f959062 commit 6bd797e
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 25 deletions.
53 changes: 29 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,24 @@ Aside from the programmer, there is target PCB design under `schematics-target`.

||Chip||Chip|
| - | - | - | - |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1280 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329PA |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1281 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329P |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329 |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32A |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32C1 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128RFA1 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32HVB |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32M1 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega162 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U2 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164A | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U4 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32 |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega164P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48A |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48PA |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48P |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega640 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644A |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644PA |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1280 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329A |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1281 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329PA |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329P |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega1284 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32A |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128RFA1 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32C1 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega128 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32HVB |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega162 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32M1 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164A | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U2 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega164PA | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega32U4 |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega164P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega32 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48A |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165PA | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega48PA |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega165P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48P |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega48 |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega168PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega640 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644A |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega168V | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644PA |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega168 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega644P |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega644 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega169PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega6450A |
Expand All @@ -67,15 +68,19 @@ Aside from the programmer, there is target PCB design under `schematics-target`.
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3250 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8515 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8535 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88A |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88PA |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325P | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega88PA |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega325 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88P |
| ![#32CD32](https://via.placeholder.com/15/32CD32/000000?text=+) | ATmega328P | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega88 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega328 | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8A |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290A | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega8U2 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290PA | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290P | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB82 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB162 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega329A |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega328PB | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8A |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega328 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATmega8U2 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290A | ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega8 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290PA | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB82 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290P | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | At90USB162 |
| ![#f03c15](https://via.placeholder.com/15/f03c15/000000?text=+) | ATmega3290 | | |
| | | | |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny24 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny25 |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny44 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny45 |
| ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny84 | ![#FFA500](https://via.placeholder.com/15/FFA500/000000?text=+) | ATtiny85 |

# License

Expand Down
18 changes: 17 additions & 1 deletion firmware-programmer/src/programmer/signatues.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,25 @@ const Signature signatures[] PROGMEM =

// signature description flash size bootloader flash bootloader timed Safety Safety
// size page fuse writes Mask One Mask Zero
// size
// size
// Attiny84 family
{ { 0x1E, 0x91, 0x0B }, "ATtiny24", 0x800UL, 0, 0x20UL, NO_FUSE, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x92, 0x07 }, "ATtiny44", 0x1000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x93, 0x0C }, "ATtiny84", 0x2000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},

// Attiny85 family
{ { 0x1E, 0x91, 0x08 }, "ATtiny25", 0x800UL, 0, 0x20UL, NO_FUSE, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x92, 0x06 }, "ATtiny45", 0x1000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x93, 0x0B }, "ATtiny85", 0x2000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},

// Atmega328 family
{ { 0x1E, 0x92, 0x0A }, "ATmega48PA", 0x2000UL, 0, 0x40UL, NO_FUSE, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x93, 0x0F }, "ATmega88PA", 0x2000UL, 0x100U, 0x80UL, extFuse, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x94, 0x0B }, "ATmega168PA", 0x4000UL, 0x100U, 0x80UL, extFuse, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x94, 0x06 }, "ATmega168V", 0x4000UL, 0x100U, 0x80UL, extFuse, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x95, 0x0F }, "ATmega328P", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x95, 0x16 }, "ATmega328PB", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},
{ { 0x1E, 0x95, 0x14 }, "ATmega328", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b11000000, 0b00100000},

// Atmega644 family
{ { 0x1E, 0x95, 0x08 }, "ATmega324P", 0x8000UL, 0x200U, 0x80UL, highFuse, false, 0b10000000, 0b01100000},
Expand Down
17 changes: 17 additions & 0 deletions firmware-uim/src/signatures.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,24 @@ typedef struct {
// see Atmega datasheets
const Signature signatures[] PROGMEM =
{
// Attiny84 family
{ { 0x1E, 0x91, 0x0B }, "ATtiny24" },
{ { 0x1E, 0x92, 0x07 }, "ATtiny44" },
{ { 0x1E, 0x93, 0x0C }, "ATtiny84" },

// Attiny85 family
{ { 0x1E, 0x91, 0x08 }, "ATtiny25" },
{ { 0x1E, 0x92, 0x06 }, "ATtiny45" },
{ { 0x1E, 0x93, 0x0B }, "ATtiny85" },

// Atmega328 family
{ { 0x1E, 0x92, 0x0A }, "ATmega48PA" },
{ { 0x1E, 0x93, 0x0F }, "ATmega88PA" },
{ { 0x1E, 0x94, 0x0B }, "ATmega168PA"},
{ { 0x1E, 0x94, 0x06 }, "ATmega168V" },
{ { 0x1E, 0x95, 0x0F }, "ATmega328P" },
{ { 0x1E, 0x95, 0x16 }, "ATmega328PB"},
{ { 0x1E, 0x95, 0x14 }, "ATmega328" },

// Atmega644 family
{ { 0x1E, 0x95, 0x08 }, "ATmega324P" },
Expand Down

0 comments on commit 6bd797e

Please sign in to comment.