From 477c1298fb8a696fd7f71e0e4f47eb6b63aaef39 Mon Sep 17 00:00:00 2001 From: Stefan Rueger Date: Mon, 20 Apr 2026 18:14:19 +0100 Subject: [PATCH 1/2] Add tinyAVR 1-series automotive parts to avrintel.c --- src/avrintel.c | 292 +++++++++++++++++++++++++------------- src/libavrdude-avrintel.h | 60 +++++++- 2 files changed, 252 insertions(+), 100 deletions(-) diff --git a/src/avrintel.c b/src/avrintel.c index 80f9c582..e27c11e9 100644 --- a/src/avrintel.c +++ b/src/avrintel.c @@ -8,8 +8,8 @@ * Published under GNU General Public License, version 3 (GPL-3.0) * Meta-author Stefan Rueger * - * v 1.50 - * 17.04.2026 + * v 1.51 + * 20.04.2026 * */ @@ -132,7 +132,7 @@ int upmatchingsig(uint8_t sigs[3], char *p, size_t n) { #define UART_XMEGA UARTTYPE_XMEGA, 1, 12, 4 #define UART_AVR8X UARTTYPE_AVR8X, 1, 12, 4 -const Avrintel uP_table[422] = { // Value of -1 typically means unknown +const Avrintel uP_table[431] = { // Value of -1 typically means unknown //mcu_name // Sources //{mcu_name, mcuid, family, {sig, na, ture}, // ID //mcu_name flstart, flsize, pgsiz, nb, bootsz, eestart, eesize, ep, rambeg, ramsiz, // Mem @@ -2301,6 +2301,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny417*/ 283, rgftab_attiny417, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny417*/ 3, ports_attiny807, WDT_AVR8X}, // Ports, WDT + //ATtiny417auto avrdude, from ATtiny417 // Sources + {"ATtiny417auto", 422, F_AVR8X, {0x1E, 0x92, 0x20}, // ID + /*ATtiny417auto*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny417auto*/ 10, 1, 26, vtab_attiny416, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny417auto*/ 283, rgftab_attiny417, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny417auto*/ 3, ports_attiny807, WDT_AVR8X}, // Ports, WDT + //ATtiny814 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny814", 298, F_AVR8X, {0x1E, 0x93, 0x22}, // ID /*ATtiny814*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem @@ -2308,6 +2315,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny814*/ 265, rgftab_attiny814, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny814*/ 2, ports_attiny204, WDT_AVR8X}, // Ports, WDT + //ATtiny814auto avrdude, from ATtiny814 // Sources + {"ATtiny814auto", 423, F_AVR8X, {0x1E, 0x93, 0x22}, // ID + /*ATtiny814auto*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny814auto*/ 10, 1, 26, vtab_attiny214, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny814auto*/ 265, rgftab_attiny814, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny814auto*/ 2, ports_attiny204, WDT_AVR8X}, // Ports, WDT + //ATtiny816 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny816", 299, F_AVR8X, {0x1E, 0x93, 0x21}, // ID /*ATtiny816*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem @@ -2315,6 +2329,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny816*/ 283, rgftab_attiny417, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny816*/ 3, ports_attiny406, WDT_AVR8X}, // Ports, WDT + //ATtiny816auto avrdude, from ATtiny816 // Sources + {"ATtiny816auto", 424, F_AVR8X, {0x1E, 0x93, 0x21}, // ID + /*ATtiny816auto*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny816auto*/ 10, 1, 26, vtab_attiny416, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny816auto*/ 283, rgftab_attiny417, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny816auto*/ 3, ports_attiny406, WDT_AVR8X}, // Ports, WDT + //ATtiny817 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny817", 300, F_AVR8X, {0x1E, 0x93, 0x20}, // ID /*ATtiny817*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem @@ -2322,6 +2343,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny817*/ 283, rgftab_attiny417, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny817*/ 3, ports_attiny807, WDT_AVR8X}, // Ports, WDT + //ATtiny817auto avrdude, from ATtiny817 // Sources + {"ATtiny817auto", 425, F_AVR8X, {0x1E, 0x93, 0x20}, // ID + /*ATtiny817auto*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny817auto*/ 10, 1, 26, vtab_attiny416, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny817auto*/ 283, rgftab_attiny417, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny817auto*/ 3, ports_attiny807, WDT_AVR8X}, // Ports, WDT + //ATtiny1614 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1614", 307, F_AVR8X, {0x1E, 0x94, 0x22}, // ID /*ATtiny1614*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem @@ -2329,6 +2357,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny1614*/ 308, rgftab_attiny1614, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny1614*/ 2, ports_attiny204, WDT_AVR8X}, // Ports, WDT + //ATtiny1614auto avrdude, from ATtiny1614 // Sources + {"ATtiny1614auto", 426, F_AVR8X, {0x1E, 0x94, 0x22}, // ID + /*ATtiny1614auto*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1614auto*/ 10, 1, 31, vtab_attiny1614, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny1614auto*/ 308, rgftab_attiny1614, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny1614auto*/ 2, ports_attiny204, WDT_AVR8X}, // Ports, WDT + //ATtiny1616 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1616", 308, F_AVR8X, {0x1E, 0x94, 0x21}, // ID /*ATtiny1616*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem @@ -2336,6 +2371,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny1616*/ 326, rgftab_attiny1616, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny1616*/ 3, ports_attiny406, WDT_AVR8X}, // Ports, WDT + //ATtiny1616auto avrdude, from ATtiny1616 // Sources + {"ATtiny1616auto", 427, F_AVR8X, {0x1E, 0x94, 0x21}, // ID + /*ATtiny1616auto*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1616auto*/ 10, 1, 31, vtab_attiny1616, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny1616auto*/ 326, rgftab_attiny1616, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny1616auto*/ 3, ports_attiny406, WDT_AVR8X}, // Ports, WDT + //ATtiny1617 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1617", 309, F_AVR8X, {0x1E, 0x94, 0x20}, // ID /*ATtiny1617*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem @@ -2343,6 +2385,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny1617*/ 326, rgftab_attiny1616, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny1617*/ 3, ports_attiny807, WDT_AVR8X}, // Ports, WDT + //ATtiny1617auto avrdude, from ATtiny1617 // Sources + {"ATtiny1617auto", 428, F_AVR8X, {0x1E, 0x94, 0x20}, // ID + /*ATtiny1617auto*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1617auto*/ 10, 1, 31, vtab_attiny1616, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny1617auto*/ 326, rgftab_attiny1616, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny1617auto*/ 3, ports_attiny807, WDT_AVR8X}, // Ports, WDT + //ATtiny3214 avr-gcc 12.2.0 // Sources {"ATtiny3214", 313, F_AVR8X, {0x1E, 0x95, 0x20}, // ID /*ATtiny3214*/ 0, 0x08000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x3800, 0x0800, // Mem @@ -2357,6 +2406,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny3216*/ 326, rgftab_attiny3216, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny3216*/ 3, ports_attiny406, WDT_AVR8X}, // Ports, WDT + //ATtiny3216auto avrdude, from ATtiny3216 // Sources + {"ATtiny3216auto", 429, F_AVR8X, {0x1E, 0x95, 0x21}, // ID + /*ATtiny3216auto*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3800, 0x0800, // Mem + /*ATtiny3216auto*/ 10, 1, 31, vtab_attiny1616, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny3216auto*/ 326, rgftab_attiny3216, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny3216auto*/ 3, ports_attiny406, WDT_AVR8X}, // Ports, WDT + //ATtiny3217 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny3217", 315, F_AVR8X, {0x1E, 0x95, 0x22}, // ID /*ATtiny3217*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3800, 0x0800, // Mem @@ -2364,6 +2420,13 @@ const Avrintel uP_table[422] = { // Value of -1 typically means unknown /*ATtiny3217*/ 326, rgftab_attiny3216, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART /*ATtiny3217*/ 3, ports_attiny807, WDT_AVR8X}, // Ports, WDT + //ATtiny3217auto avrdude, from ATtiny3217 // Sources + {"ATtiny3217auto", 430, F_AVR8X, {0x1E, 0x95, 0x22}, // ID + /*ATtiny3217auto*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3800, 0x0800, // Mem + /*ATtiny3217auto*/ 10, 1, 31, vtab_attiny1616, 23, cfgtab_attiny416auto, // ISRs, Config + /*ATtiny3217auto*/ 326, rgftab_attiny3216, 1, UART_AVR8X, 2, uarts_attiny204, // Register file, UART + /*ATtiny3217auto*/ 3, ports_attiny807, WDT_AVR8X}, // Ports, WDT + //ATtiny424 atdf, avrdude // Sources {"ATtiny424", 292, F_AVR8X, {0x1E, 0x92, 0x2C}, // ID /*ATtiny424*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem @@ -7517,7 +7580,7 @@ const char * const vtab_attiny212[vts_attiny212] = { "NVMCTRL_EE", // 25: NVM EEPROM }; -// ATtiny214 ATtiny414 ATtiny814 +// ATtiny214 ATtiny414 ATtiny814 ATtiny814auto const char * const vtab_attiny214[vts_attiny214] = { "RESET", // 0: Reset (various reasons) "CRCSCAN_NMI", // 1: CRCSCAN Non-maskable Interrupt @@ -7547,7 +7610,7 @@ const char * const vtab_attiny214[vts_attiny214] = { "NVMCTRL_EE", // 25: NVM EEPROM }; -// ATtiny416 ATtiny416auto ATtiny417 ATtiny816 ATtiny817 +// ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto const char * const vtab_attiny416[vts_attiny416] = { "RESET", // 0: Reset (various reasons) "CRCSCAN_NMI", // 1: CRCSCAN Non-maskable Interrupt @@ -7577,7 +7640,7 @@ const char * const vtab_attiny416[vts_attiny416] = { "NVMCTRL_EE", // 25: NVM EEPROM }; -// ATtiny1614 +// ATtiny1614 ATtiny1614auto const char * const vtab_attiny1614[vts_attiny1614] = { "RESET", // 0: Reset (various reasons) "CRCSCAN_NMI", // 1: CRCSCAN Non-maskable Interrupt @@ -7612,7 +7675,10 @@ const char * const vtab_attiny1614[vts_attiny1614] = { "NVMCTRL_EE", // 30: NVM EEPROM }; -// ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 +/* + * ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 + * ATtiny3217auto + */ const char * const vtab_attiny1616[vts_attiny1616] = { "RESET", // 0: Reset (various reasons) "CRCSCAN_NMI", // 1: CRCSCAN Non-maskable Interrupt @@ -9125,10 +9191,11 @@ static const Configvalue _values_lb_atxmega64a1[3] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 */ static const Configvalue _values_lb_attiny202[2] = { {0x3a, "rwlock", "read and write not allowed"}, @@ -9339,7 +9406,10 @@ static const Configvalue _values_bodlevel_attiny202[3] = { {7, "bod_4v2", "brownout detection at 4.2 V"}, }; -// ATtiny416auto +/* + * ATtiny416auto ATtiny417auto ATtiny814auto ATtiny816auto ATtiny817auto ATtiny1614auto + * ATtiny1616auto ATtiny1617auto ATtiny3216auto ATtiny3217auto + */ static const Configvalue _values_bodlevel_attiny416auto[2] = { {2, "bod_2v6", "brownout detection at 2.6 V"}, {7, "bod_4v2", "brownout detection at 4.2 V"}, @@ -10737,19 +10807,21 @@ static const Configvalue _values_eesave_at90s8515comp[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 AVR32DA28 AVR32DA28S AVR32DA32 AVR32DA32S AVR32DA48 AVR32DA48S AVR64DA28 - * AVR64DA28S AVR64DA32 AVR64DA32S AVR64DA48 AVR64DA48S AVR64DA64 AVR64DA64S AVR128DA28 - * AVR128DA28S AVR128DA32 AVR128DA32S AVR128DA48 AVR128DA48S AVR128DA64 AVR128DA64S AVR32DB28 - * AVR32DB32 AVR32DB48 AVR64DB28 AVR64DB32 AVR64DB48 AVR64DB64 AVR128DB28 AVR128DB32 AVR128DB48 - * AVR128DB64 AVR16DD14 AVR16DD20 AVR16DD28 AVR16DD32 AVR32DD14 AVR32DD20 AVR32DD28 AVR32DD32 - * AVR64DD14 AVR64DD20 AVR64DD28 AVR64DD32 AVR16DU14 AVR16DU20 AVR16DU28 AVR16DU32 AVR32DU14 - * AVR32DU20 AVR32DU28 AVR32DU32 AVR64DU28 AVR64DU32 AVR16EA28 AVR16EA32 AVR16EA48 AVR32EA28 - * AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 AVR64EA48 AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32 - * AVR32EB14 AVR32EB20 AVR32EB28 AVR32EB32 AVR16LA14 AVR16LA20 AVR16LA28 AVR16LA32 AVR32LA14 - * AVR32LA20 AVR32LA28 AVR32LA32 AVR32SD20 AVR32SD28 AVR32SD32 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 AVR32DA28 AVR32DA28S + * AVR32DA32 AVR32DA32S AVR32DA48 AVR32DA48S AVR64DA28 AVR64DA28S AVR64DA32 AVR64DA32S AVR64DA48 + * AVR64DA48S AVR64DA64 AVR64DA64S AVR128DA28 AVR128DA28S AVR128DA32 AVR128DA32S AVR128DA48 + * AVR128DA48S AVR128DA64 AVR128DA64S AVR32DB28 AVR32DB32 AVR32DB48 AVR64DB28 AVR64DB32 AVR64DB48 + * AVR64DB64 AVR128DB28 AVR128DB32 AVR128DB48 AVR128DB64 AVR16DD14 AVR16DD20 AVR16DD28 AVR16DD32 + * AVR32DD14 AVR32DD20 AVR32DD28 AVR32DD32 AVR64DD14 AVR64DD20 AVR64DD28 AVR64DD32 AVR16DU14 + * AVR16DU20 AVR16DU28 AVR16DU32 AVR32DU14 AVR32DU20 AVR32DU28 AVR32DU32 AVR64DU28 AVR64DU32 + * AVR16EA28 AVR16EA32 AVR16EA48 AVR32EA28 AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 AVR64EA48 + * AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32 AVR32EB14 AVR32EB20 AVR32EB28 AVR32EB32 AVR16LA14 + * AVR16LA20 AVR16LA28 AVR16LA32 AVR32LA14 AVR32LA20 AVR32LA28 AVR32LA32 AVR32SD20 AVR32SD28 + * AVR32SD32 */ static const Configvalue _values_eesave_attiny202[2] = { {0, "eex_erased", "EEPROM content is erased during chip erase"}, @@ -11225,19 +11297,21 @@ static const Configvalue _values_sut_atmega64hve[4] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 AVR32DA28 AVR32DA28S AVR32DA32 AVR32DA32S AVR32DA48 AVR32DA48S AVR64DA28 - * AVR64DA28S AVR64DA32 AVR64DA32S AVR64DA48 AVR64DA48S AVR64DA64 AVR64DA64S AVR128DA28 - * AVR128DA28S AVR128DA32 AVR128DA32S AVR128DA48 AVR128DA48S AVR128DA64 AVR128DA64S AVR32DB28 - * AVR32DB32 AVR32DB48 AVR64DB28 AVR64DB32 AVR64DB48 AVR64DB64 AVR128DB28 AVR128DB32 AVR128DB48 - * AVR128DB64 AVR16DD14 AVR16DD20 AVR16DD28 AVR16DD32 AVR32DD14 AVR32DD20 AVR32DD28 AVR32DD32 - * AVR64DD14 AVR64DD20 AVR64DD28 AVR64DD32 AVR16DU14 AVR16DU20 AVR16DU28 AVR16DU32 AVR32DU14 - * AVR32DU20 AVR32DU28 AVR32DU32 AVR64DU28 AVR64DU32 AVR16EA28 AVR16EA32 AVR16EA48 AVR32EA28 - * AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 AVR64EA48 AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32 - * AVR32EB14 AVR32EB20 AVR32EB28 AVR32EB32 AVR16LA14 AVR16LA20 AVR16LA28 AVR16LA32 AVR32LA14 - * AVR32LA20 AVR32LA28 AVR32LA32 AVR32SD20 AVR32SD28 AVR32SD32 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 AVR32DA28 AVR32DA28S + * AVR32DA32 AVR32DA32S AVR32DA48 AVR32DA48S AVR64DA28 AVR64DA28S AVR64DA32 AVR64DA32S AVR64DA48 + * AVR64DA48S AVR64DA64 AVR64DA64S AVR128DA28 AVR128DA28S AVR128DA32 AVR128DA32S AVR128DA48 + * AVR128DA48S AVR128DA64 AVR128DA64S AVR32DB28 AVR32DB32 AVR32DB48 AVR64DB28 AVR64DB32 AVR64DB48 + * AVR64DB64 AVR128DB28 AVR128DB32 AVR128DB48 AVR128DB64 AVR16DD14 AVR16DD20 AVR16DD28 AVR16DD32 + * AVR32DD14 AVR32DD20 AVR32DD28 AVR32DD32 AVR64DD14 AVR64DD20 AVR64DD28 AVR64DD32 AVR16DU14 + * AVR16DU20 AVR16DU28 AVR16DU32 AVR32DU14 AVR32DU20 AVR32DU28 AVR32DU32 AVR64DU28 AVR64DU32 + * AVR16EA28 AVR16EA32 AVR16EA48 AVR32EA28 AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 AVR64EA48 + * AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32 AVR32EB14 AVR32EB20 AVR32EB28 AVR32EB32 AVR16LA14 + * AVR16LA20 AVR16LA28 AVR16LA32 AVR32LA14 AVR32LA20 AVR32LA28 AVR32LA32 AVR32SD20 AVR32SD28 + * AVR32SD32 */ static const Configvalue _values_sut_attiny202[8] = { {0, "sut_0ms", "startup time 0 ms"}, @@ -11607,11 +11681,12 @@ static const Configvalue _values_fdact5_atxmega8e5[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 AVR16LA14 AVR16LA20 AVR16LA28 AVR16LA32 AVR32LA14 AVR32LA20 AVR32LA28 - * AVR32LA32 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 AVR16LA14 AVR16LA20 AVR16LA28 + * AVR16LA32 AVR32LA14 AVR32LA20 AVR32LA28 AVR32LA32 */ static const Configvalue _values_wdtperiod_attiny202[12] = { {0x00, "t_off", "watchdog timer off"}, @@ -11673,11 +11748,12 @@ static const Configvalue _values_wdtperiod_avr32sd20[12] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 AVR16LA14 AVR16LA20 AVR16LA28 AVR16LA32 AVR32LA14 AVR32LA20 AVR32LA28 - * AVR32LA32 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 AVR16LA14 AVR16LA20 AVR16LA28 + * AVR16LA32 AVR32LA14 AVR32LA20 AVR32LA28 AVR32LA32 */ static const Configvalue _values_wdtwindow_attiny202[12] = { {0x00, "t_off", "window mode off"}, @@ -11739,10 +11815,11 @@ static const Configvalue _values_wdtwindow_avr32sd20[12] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 */ static const Configvalue _values_bodsleep_attiny202[3] = { {0, "bod_disabled", "brownout detection disabled"}, @@ -11771,10 +11848,11 @@ static const Configvalue _values_bodsleep_avr32da28[3] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 */ static const Configvalue _values_bodactive_attiny202[4] = { {0, "bod_disabled", "brownout detection disabled"}, @@ -11805,10 +11883,11 @@ static const Configvalue _values_bodactive_avr32da28[4] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 */ static const Configvalue _values_bodsampfreq_attiny202[2] = { {0, "bod_1khz", "1 kHz sampling frequency"}, @@ -11845,7 +11924,10 @@ static const Configvalue _values_freqsel_attiny202[2] = { {2, "fcpu_20mhz", "internal clock running at 20 MHz"}, }; -// ATtiny416auto +/* + * ATtiny416auto ATtiny417auto ATtiny814auto ATtiny816auto ATtiny817auto ATtiny1614auto + * ATtiny1616auto ATtiny1617auto ATtiny3216auto ATtiny3217auto + */ static const Configvalue _values_freqsel_attiny416auto[1] = { {1, "fcpu_16mhz", "internal clock running at 16 MHz"}, }; @@ -11863,10 +11945,11 @@ static const Configvalue _values_freqsel_avr16ea28[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 */ static const Configvalue _values_osclock_attiny202[2] = { {0, "olock_disabled", "oscillator lock disabled"}, @@ -11875,8 +11958,9 @@ static const Configvalue _values_osclock_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny212 ATtiny214 ATtiny412 ATtiny414 - * ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 - * ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto + * ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 + * ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_cmpa_attiny202[2] = { {0, "v_0", "compare A default output value 0"}, @@ -11885,8 +11969,9 @@ static const Configvalue _values_cmpa_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny212 ATtiny214 ATtiny412 ATtiny414 - * ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 - * ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto + * ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 + * ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_cmpb_attiny202[2] = { {0, "v_0", "compare B default output value 0"}, @@ -11895,8 +11980,9 @@ static const Configvalue _values_cmpb_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny212 ATtiny214 ATtiny412 ATtiny414 - * ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 - * ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto + * ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 + * ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_cmpc_attiny202[2] = { {0, "v_0", "compare C default output value 0"}, @@ -11905,8 +11991,9 @@ static const Configvalue _values_cmpc_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny212 ATtiny214 ATtiny412 ATtiny414 - * ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 - * ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto + * ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 + * ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_cmpd_attiny202[2] = { {0, "v_0", "compare D default output value 0"}, @@ -11915,8 +12002,9 @@ static const Configvalue _values_cmpd_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny212 ATtiny214 ATtiny412 ATtiny414 - * ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 - * ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto + * ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 + * ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_cmpaen_attiny202[2] = { {0, "cpa_disabled", "compare A output disabled"}, @@ -11925,8 +12013,9 @@ static const Configvalue _values_cmpaen_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny212 ATtiny214 ATtiny412 ATtiny414 - * ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 - * ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto + * ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 + * ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_cmpben_attiny202[2] = { {0, "cpb_disabled", "compare B output disabled"}, @@ -11935,8 +12024,9 @@ static const Configvalue _values_cmpben_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny212 ATtiny214 ATtiny412 ATtiny414 - * ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 - * ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto + * ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 + * ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_cmpcen_attiny202[2] = { {0, "cpc_disabled", "compare C output disabled"}, @@ -11945,8 +12035,9 @@ static const Configvalue _values_cmpcen_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny212 ATtiny214 ATtiny412 ATtiny414 - * ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 - * ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto + * ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 + * ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_cmpden_attiny202[2] = { {0, "cpd_disabled", "compare D output disabled"}, @@ -11956,7 +12047,9 @@ static const Configvalue _values_cmpden_attiny202[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto */ static const Configvalue _values_rstpincfg_attiny202[3] = { {0, "gpio", "GPIO mode"}, @@ -12015,18 +12108,19 @@ static const Configvalue _values_rstpincfg_avr16la14[2] = { /* * ATtiny202 ATtiny204 ATtiny402 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 * ATtiny1606 ATtiny1607 ATtiny212 ATtiny214 ATtiny412 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 - * ATtiny814 ATtiny816 ATtiny817 ATtiny1614 ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 ATtiny424 - * ATtiny426 ATtiny427 ATtiny824 ATtiny826 ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 - * ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 ATmega1609 ATmega3208 ATmega3209 - * ATmega4808 ATmega4809 AVR32DA28 AVR32DA28S AVR32DA32 AVR32DA32S AVR32DA48 AVR32DA48S AVR64DA28 - * AVR64DA28S AVR64DA32 AVR64DA32S AVR64DA48 AVR64DA48S AVR64DA64 AVR64DA64S AVR128DA28 - * AVR128DA28S AVR128DA32 AVR128DA32S AVR128DA48 AVR128DA48S AVR128DA64 AVR128DA64S AVR32DB28 - * AVR32DB32 AVR32DB48 AVR64DB28 AVR64DB32 AVR64DB48 AVR64DB64 AVR128DB28 AVR128DB32 AVR128DB48 - * AVR128DB64 AVR16DD14 AVR16DD20 AVR16DD28 AVR16DD32 AVR32DD14 AVR32DD20 AVR32DD28 AVR32DD32 - * AVR64DD14 AVR64DD20 AVR64DD28 AVR64DD32 AVR16DU14 AVR16DU20 AVR16DU28 AVR16DU32 AVR32DU14 - * AVR32DU20 AVR32DU28 AVR32DU32 AVR64DU28 AVR64DU32 AVR16EA28 AVR16EA32 AVR16EA48 AVR32EA28 - * AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 AVR64EA48 AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32 - * AVR32EB14 AVR32EB20 AVR32EB28 AVR32EB32 + * ATtiny417auto ATtiny814 ATtiny814auto ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto + * ATtiny1614 ATtiny1614auto ATtiny1616 ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 + * ATtiny3216auto ATtiny3217 ATtiny3217auto ATtiny424 ATtiny426 ATtiny427 ATtiny824 ATtiny826 + * ATtiny827 ATtiny1624 ATtiny1626 ATtiny1627 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 + * ATmega1608 ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 AVR32DA28 AVR32DA28S + * AVR32DA32 AVR32DA32S AVR32DA48 AVR32DA48S AVR64DA28 AVR64DA28S AVR64DA32 AVR64DA32S AVR64DA48 + * AVR64DA48S AVR64DA64 AVR64DA64S AVR128DA28 AVR128DA28S AVR128DA32 AVR128DA32S AVR128DA48 + * AVR128DA48S AVR128DA64 AVR128DA64S AVR32DB28 AVR32DB32 AVR32DB48 AVR64DB28 AVR64DB32 AVR64DB48 + * AVR64DB64 AVR128DB28 AVR128DB32 AVR128DB48 AVR128DB64 AVR16DD14 AVR16DD20 AVR16DD28 AVR16DD32 + * AVR32DD14 AVR32DD20 AVR32DD28 AVR32DD32 AVR64DD14 AVR64DD20 AVR64DD28 AVR64DD32 AVR16DU14 + * AVR16DU20 AVR16DU28 AVR16DU32 AVR32DU14 AVR32DU20 AVR32DU28 AVR32DU32 AVR64DU28 AVR64DU32 + * AVR16EA28 AVR16EA32 AVR16EA48 AVR32EA28 AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 AVR64EA48 + * AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32 AVR32EB14 AVR32EB20 AVR32EB28 AVR32EB32 */ static const Configvalue _values_crcsrc_attiny202[4] = { {0, "flash", "CRC of entire flash (boot, application code and application data)"}, @@ -14125,7 +14219,10 @@ const Configitem cfgtab_attiny804[15] = { {"lb", 2, _values_lb_attiny202, "lock", 0, 0xff, 0, 0xc5, "lock bits"}, }; -// ATtiny416auto +/* + * ATtiny416auto ATtiny417auto ATtiny814auto ATtiny816auto ATtiny817auto ATtiny1614auto + * ATtiny1616auto ATtiny1617auto ATtiny3216auto ATtiny3217auto + */ const Configitem cfgtab_attiny416auto[23] = { {"wdtperiod", 12, _values_wdtperiod_attiny202, "wdtcfg", 0, 0x0f, 0, 0x00, "watchdog timeout period"}, {"wdtwindow", 12, _values_wdtwindow_attiny202, "wdtcfg", 0, 0xf0, 4, 0x00, "watchdog window timeout period"}, @@ -61022,8 +61119,9 @@ const Uart_conf uarts_attiny202[2] = { /* * ATtiny204 ATtiny404 ATtiny406 ATtiny804 ATtiny806 ATtiny807 ATtiny1604 ATtiny1606 ATtiny1607 - * ATtiny214 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 ATtiny814 ATtiny816 ATtiny817 ATtiny1614 - * ATtiny1616 ATtiny1617 ATtiny3216 ATtiny3217 + * ATtiny214 ATtiny414 ATtiny416 ATtiny416auto ATtiny417 ATtiny417auto ATtiny814 ATtiny814auto + * ATtiny816 ATtiny816auto ATtiny817 ATtiny817auto ATtiny1614 ATtiny1614auto ATtiny1616 + * ATtiny1616auto ATtiny1617 ATtiny1617auto ATtiny3216 ATtiny3216auto ATtiny3217 ATtiny3217auto */ const Uart_conf uarts_attiny204[2] = { { 0, 0, PB3, PB2, PB1, PB0, PNA, PNA, PNA, PNA, PNA }, diff --git a/src/libavrdude-avrintel.h b/src/libavrdude-avrintel.h index 1a65f666..a99ee59c 100644 --- a/src/libavrdude-avrintel.h +++ b/src/libavrdude-avrintel.h @@ -11,8 +11,8 @@ * Published under GNU General Public License, version 3 (GPL-3.0) * Meta-author Stefan Rueger * - * v 1.50 - * 17.04.2026 + * v 1.51 + * 20.04.2026 * */ @@ -148,7 +148,7 @@ typedef enum { #define UB_N_MCU 2040 // mcuid is in 0..2039 -extern const Avrintel uP_table[422]; +extern const Avrintel uP_table[431]; // MCU id: running number in arbitrary order; once assigned never change for backward compatibility @@ -461,15 +461,24 @@ extern const Avrintel uP_table[422]; #define id_attiny416 289u #define id_attiny416auto 290u #define id_attiny417 291u +#define id_attiny417auto 422u #define id_attiny814 298u +#define id_attiny814auto 423u #define id_attiny816 299u +#define id_attiny816auto 424u #define id_attiny817 300u +#define id_attiny817auto 425u #define id_attiny1614 307u +#define id_attiny1614auto 426u #define id_attiny1616 308u +#define id_attiny1616auto 427u #define id_attiny1617 309u +#define id_attiny1617auto 428u #define id_attiny3214 313u #define id_attiny3216 314u +#define id_attiny3216auto 429u #define id_attiny3217 315u +#define id_attiny3217auto 430u #define id_attiny424 292u #define id_attiny426 293u #define id_attiny427 294u @@ -871,15 +880,24 @@ extern const Avrintel uP_table[422]; #define vts_attiny416 26 #define vts_attiny416auto 26 #define vts_attiny417 26 +#define vts_attiny417auto 26 #define vts_attiny814 26 +#define vts_attiny814auto 26 #define vts_attiny816 26 +#define vts_attiny816auto 26 #define vts_attiny817 26 +#define vts_attiny817auto 26 #define vts_attiny1614 31 +#define vts_attiny1614auto 31 #define vts_attiny1616 31 +#define vts_attiny1616auto 31 #define vts_attiny1617 31 +#define vts_attiny1617auto 31 #define vts_attiny3214 31 #define vts_attiny3216 31 +#define vts_attiny3216auto 31 #define vts_attiny3217 31 +#define vts_attiny3217auto 31 #define vts_attiny424 30 #define vts_attiny426 30 #define vts_attiny427 30 @@ -1279,15 +1297,24 @@ extern const Avrintel uP_table[422]; #define vbu_attiny416 26 #define vbu_attiny416auto 26 #define vbu_attiny417 26 +#define vbu_attiny417auto 26 #define vbu_attiny814 5 +#define vbu_attiny814auto 5 #define vbu_attiny816 26 +#define vbu_attiny816auto 26 #define vbu_attiny817 26 +#define vbu_attiny817auto 26 #define vbu_attiny1614 5 +#define vbu_attiny1614auto 5 #define vbu_attiny1616 31 +#define vbu_attiny1616auto 31 #define vbu_attiny1617 31 +#define vbu_attiny1617auto 31 #define vbu_attiny3214 31 #define vbu_attiny3216 31 +#define vbu_attiny3216auto 31 #define vbu_attiny3217 31 +#define vbu_attiny3217auto 31 #define vbu_attiny424 30 #define vbu_attiny426 30 #define vbu_attiny427 30 @@ -1786,19 +1813,28 @@ extern const char * const vtab_attiny212[26]; extern const char * const vtab_attiny214[26]; #define vtab_attiny414 vtab_attiny214 #define vtab_attiny814 vtab_attiny214 +#define vtab_attiny814auto vtab_attiny214 extern const char * const vtab_attiny416[26]; #define vtab_attiny416auto vtab_attiny416 #define vtab_attiny417 vtab_attiny416 +#define vtab_attiny417auto vtab_attiny416 #define vtab_attiny816 vtab_attiny416 +#define vtab_attiny816auto vtab_attiny416 #define vtab_attiny817 vtab_attiny416 +#define vtab_attiny817auto vtab_attiny416 extern const char * const vtab_attiny1614[31]; +#define vtab_attiny1614auto vtab_attiny1614 extern const char * const vtab_attiny1616[31]; +#define vtab_attiny1616auto vtab_attiny1616 #define vtab_attiny1617 vtab_attiny1616 +#define vtab_attiny1617auto vtab_attiny1616 #define vtab_attiny3216 vtab_attiny1616 +#define vtab_attiny3216auto vtab_attiny1616 #define vtab_attiny3217 vtab_attiny1616 +#define vtab_attiny3217auto vtab_attiny1616 extern const char * const vtab_attiny3214[31]; @@ -2350,6 +2386,15 @@ extern const Configitem cfgtab_attiny804[15]; #define cfgtab_attiny1607 cfgtab_attiny804 extern const Configitem cfgtab_attiny416auto[23]; +#define cfgtab_attiny417auto cfgtab_attiny416auto +#define cfgtab_attiny814auto cfgtab_attiny416auto +#define cfgtab_attiny816auto cfgtab_attiny416auto +#define cfgtab_attiny817auto cfgtab_attiny416auto +#define cfgtab_attiny1614auto cfgtab_attiny416auto +#define cfgtab_attiny1616auto cfgtab_attiny416auto +#define cfgtab_attiny1617auto cfgtab_attiny416auto +#define cfgtab_attiny3216auto cfgtab_attiny416auto +#define cfgtab_attiny3217auto cfgtab_attiny416auto extern const Configitem cfgtab_attiny424[16]; #define cfgtab_attiny426 cfgtab_attiny424 @@ -3741,14 +3786,23 @@ extern const Uart_conf uarts_attiny204[2]; #define uarts_attiny416 uarts_attiny204 #define uarts_attiny416auto uarts_attiny204 #define uarts_attiny417 uarts_attiny204 +#define uarts_attiny417auto uarts_attiny204 #define uarts_attiny814 uarts_attiny204 +#define uarts_attiny814auto uarts_attiny204 #define uarts_attiny816 uarts_attiny204 +#define uarts_attiny816auto uarts_attiny204 #define uarts_attiny817 uarts_attiny204 +#define uarts_attiny817auto uarts_attiny204 #define uarts_attiny1614 uarts_attiny204 +#define uarts_attiny1614auto uarts_attiny204 #define uarts_attiny1616 uarts_attiny204 +#define uarts_attiny1616auto uarts_attiny204 #define uarts_attiny1617 uarts_attiny204 +#define uarts_attiny1617auto uarts_attiny204 #define uarts_attiny3216 uarts_attiny204 +#define uarts_attiny3216auto uarts_attiny204 #define uarts_attiny3217 uarts_attiny204 +#define uarts_attiny3217auto uarts_attiny204 extern const Uart_conf uarts_attiny424[3]; #define uarts_attiny824 uarts_attiny424 From c9234ae8e5a31d96f4c315bd3d9006750aab3dac Mon Sep 17 00:00:00 2001 From: Stefan Rueger Date: Mon, 20 Apr 2026 18:15:03 +0100 Subject: [PATCH 2/2] Add tinyAVR 1-series automotive parts to avrdude.conf --- src/avrdude.conf.in | 173 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 171 insertions(+), 2 deletions(-) diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in index 8f9c348c..9f978f92 100644 --- a/src/avrdude.conf.in +++ b/src/avrdude.conf.in @@ -19786,8 +19786,10 @@ part parent "t416" # t416auto desc = "ATtiny416auto"; id = "t416auto"; variants = - "ATtiny416-MBT: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", - "ATtiny416-MZT: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + "ATtiny416-MBT: VQFN, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny416-MZT: VQFN, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny416-SBT: SOIC, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny416-SZT: SOIC, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 290; signature = 0x1e 0x92 0x28; factory_fcpu = 16000000; @@ -19849,6 +19851,24 @@ part parent ".avr8x_tiny" # t417 ; ; +#------------------------------------------------------------ +# ATtiny417auto +#------------------------------------------------------------ + +part parent "t417" # t417auto + desc = "ATtiny417auto"; + id = "t417auto"; + variants = + "ATtiny417-MBT: VQFN, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny417-MZT: VQFN, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 422; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny814 #------------------------------------------------------------ @@ -19902,6 +19922,24 @@ part parent ".avr8x_tiny" # t814 ; ; +#------------------------------------------------------------ +# ATtiny814auto +#------------------------------------------------------------ + +part parent "t814" # t814auto + desc = "ATtiny814auto"; + id = "t814auto"; + variants = + "ATtiny814-SSBT: SOIC, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny814-SSZT: SOIC, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 423; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny816 #------------------------------------------------------------ @@ -19959,6 +19997,26 @@ part parent ".avr8x_tiny" # t816 ; ; +#------------------------------------------------------------ +# ATtiny816auto +#------------------------------------------------------------ + +part parent "t816" # t816auto + desc = "ATtiny816auto"; + id = "t816auto"; + variants = + "ATtiny816-MBT: VQFN, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny816-MZT: VQFN, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny816-SBT: SOIC, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny816-SZT: SOIC, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 424; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny817 #------------------------------------------------------------ @@ -20012,6 +20070,25 @@ part parent ".avr8x_tiny" # t817 ; ; +#------------------------------------------------------------ +# ATtiny817auto +#------------------------------------------------------------ + +part parent "t817" # t817auto + desc = "ATtiny817auto"; + id = "t817auto"; + variants = + "ATtiny817-MB: VQFN, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny817-MBT: VQFN, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny817-MZT: VQFN, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 425; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny1614 #------------------------------------------------------------ @@ -20064,6 +20141,24 @@ part parent ".avr8x_tiny" # t1614 ; ; +#------------------------------------------------------------ +# ATtiny1614auto +#------------------------------------------------------------ + +part parent "t1614" # t1614auto + desc = "ATtiny1614auto"; + id = "t1614auto"; + variants = + "ATtiny1614-SSBT: SOIC, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny1614-SSZT: SOIC, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 426; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny1616 #------------------------------------------------------------ @@ -20118,6 +20213,26 @@ part parent ".avr8x_tiny" # t1616 ; ; +#------------------------------------------------------------ +# ATtiny1616auto +#------------------------------------------------------------ + +part parent "t1616" # t1616auto + desc = "ATtiny1616auto"; + id = "t1616auto"; + variants = + "ATtiny1616-MBT: VQFN, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny1616-MZT: VQFN, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny1616-SBT: SOIC, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny1616-SZT: SOIC, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 427; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny1617 #------------------------------------------------------------ @@ -20170,6 +20285,24 @@ part parent ".avr8x_tiny" # t1617 ; ; +#------------------------------------------------------------ +# ATtiny1617auto +#------------------------------------------------------------ + +part parent "t1617" # t1617auto + desc = "ATtiny1617auto"; + id = "t1617auto"; + variants = + "ATtiny1617-MBT: VQFN, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny1617-MZT: VQFN, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 428; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny3216 #------------------------------------------------------------ @@ -20227,6 +20360,24 @@ part parent ".avr8x_tiny" # t3216 ; ; +#------------------------------------------------------------ +# ATtiny3216auto +#------------------------------------------------------------ + +part parent "t3216" # t3216auto + desc = "ATtiny3216auto"; + id = "t3216auto"; + variants = + "ATtiny3216-SBT: SOIC, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny3216-SZT: SOIC, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 429; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny3217 #------------------------------------------------------------ @@ -20243,6 +20394,24 @@ part parent "t3216" # t3217 signature = 0x1e 0x95 0x22; ; +#------------------------------------------------------------ +# ATtiny3217auto +#------------------------------------------------------------ + +part parent "t3217" # t3217auto + desc = "ATtiny3217auto"; + id = "t3217auto"; + variants = + "ATtiny3217-MBT: VQFN, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny3217-MZT: VQFN, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 430; + factory_fcpu = 16000000; + + memory "fuse2" + initval = 0x7d; + ; +; + #------------------------------------------------------------ # ATtiny424 #------------------------------------------------------------