diff --git a/src/pickit5_lut_dw.c b/src/pickit5_lut_dw.c index 4d325230..21013d21 100644 --- a/src/pickit5_lut_dw.c +++ b/src/pickit5_lut_dw.c @@ -4109,10 +4109,11 @@ const char * const pickit5_dw_chip_lut[] = { "ATmega16HVB","ATmega16HVBrevB", "ATmega16M1", "ATmega16U2", "ATmega328", "ATmega328P", "ATmega328PB", "ATmega32C1", "ATmega32HVB","ATmega32HVBrevB", "ATmega32M1", "ATmega32U2", "ATmega48", "ATmega48A", "ATmega48P", "ATmega48PA", "ATmega48PB", "ATmega64C1", "ATmega64HVE2", "ATmega64M1", "ATmega88", "ATmega88A", "ATmega88P", "ATmega88PA", - "ATmega88PB", "ATmega8HVA", "ATmega8U2", "ATtiny13", "ATtiny13A", "ATtiny1634", "ATtiny167", "ATtiny2313", - "ATtiny2313A", "ATtiny24", "ATtiny24A", "ATtiny25", "ATtiny261", "ATtiny261A", "ATtiny4313", "ATtiny43U", - "ATtiny44", "ATtiny441", "ATtiny44A", "ATtiny45", "ATtiny461", "ATtiny461A", "ATtiny48", "ATtiny828", - "ATtiny84", "ATtiny841", "ATtiny84A", "ATtiny85", "ATtiny861", "ATtiny861A", "ATtiny87", "ATtiny88", + "ATmega88PB", "ATmega8HVA", "ATmega8U2", "ATmegaS64M1", "ATtiny13", "ATtiny13A", "ATtiny1634", "ATtiny167", + "ATtiny2313", "ATtiny2313A", "ATtiny24", "ATtiny24A", "ATtiny25", "ATtiny261", "ATtiny261A", "ATtiny4313", + "ATtiny43U", "ATtiny44", "ATtiny441", "ATtiny44A", "ATtiny45", "ATtiny461", "ATtiny461A", "ATtiny48", + "ATtiny828", "ATtiny84", "ATtiny841", "ATtiny84A", "ATtiny85", "ATtiny861", "ATtiny861A", "ATtiny87", + "ATtiny88", }; int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { @@ -4120,7 +4121,7 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { return -1; } int namepos = -1; - for(int i = 0; i < 72; i++) { + for(int i = 0; i < 73; i++) { if(strcmp(pickit5_dw_chip_lut[i], partdesc) == 0) { namepos = i; break; @@ -4142,7 +4143,7 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { case 38: /* ATmega88P */ case 39: /* ATmega88PA */ case 40: /* ATmega88PB */ - case 63: /* ATtiny828 */ + case 64: /* ATtiny828 */ scr->WriteProgmem = WriteProgmem_dw_0; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_0); scr->ReadProgmem = ReadProgmem_dw_0; @@ -4215,8 +4216,8 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { break; case 15: /* ATmega16HVA */ case 41: /* ATmega8HVA */ - case 46: /* ATtiny167 */ - case 70: /* ATtiny87 */ + case 47: /* ATtiny167 */ + case 71: /* ATtiny87 */ scr->WriteProgmem = WriteProgmem_dw_4; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_4); scr->ReadProgmem = ReadProgmem_dw_1; @@ -4252,8 +4253,8 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { case 30: /* ATmega48P */ case 31: /* ATmega48PA */ case 32: /* ATmega48PB */ - case 62: /* ATtiny48 */ - case 71: /* ATtiny88 */ + case 63: /* ATtiny48 */ + case 72: /* ATtiny88 */ scr->WriteProgmem = WriteProgmem_dw_6; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_6); scr->ReadProgmem = ReadProgmem_dw_0; @@ -4267,6 +4268,7 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { break; case 33: /* ATmega64C1 */ case 35: /* ATmega64M1 */ + case 43: /* ATmegaS64M1 */ scr->WriteProgmem = WriteProgmem_dw_7; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_7); scr->ReadProgmem = ReadProgmem_dw_2; @@ -4302,8 +4304,8 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_0; scr->ReadMem8_len = sizeof(ReadMem8_dw_0); break; - case 43: /* ATtiny13 */ - case 44: /* ATtiny13A */ + case 44: /* ATtiny13 */ + case 45: /* ATtiny13A */ scr->WriteProgmem = WriteProgmem_dw_10; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_10); scr->ReadProgmem = ReadProgmem_dw_3; @@ -4315,7 +4317,7 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_1; scr->ReadMem8_len = sizeof(ReadMem8_dw_1); break; - case 45: /* ATtiny1634 */ + case 46: /* ATtiny1634 */ scr->WriteProgmem = WriteProgmem_dw_11; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_11); scr->ReadProgmem = ReadProgmem_dw_3; @@ -4327,7 +4329,7 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_1; scr->ReadMem8_len = sizeof(ReadMem8_dw_1); break; - case 47: /* ATtiny2313 */ + case 48: /* ATtiny2313 */ scr->WriteProgmem = WriteProgmem_dw_12; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_12); scr->ReadProgmem = ReadProgmem_dw_3; @@ -4339,9 +4341,9 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_2; scr->ReadMem8_len = sizeof(ReadMem8_dw_2); break; - case 48: /* ATtiny2313A */ - case 49: /* ATtiny24 */ - case 50: /* ATtiny24A */ + case 49: /* ATtiny2313A */ + case 50: /* ATtiny24 */ + case 51: /* ATtiny24A */ scr->WriteProgmem = WriteProgmem_dw_13; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_13); scr->ReadProgmem = ReadProgmem_dw_3; @@ -4353,7 +4355,7 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_3; scr->ReadMem8_len = sizeof(ReadMem8_dw_3); break; - case 51: /* ATtiny25 */ + case 52: /* ATtiny25 */ scr->WriteProgmem = WriteProgmem_dw_14; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_14); scr->ReadProgmem = ReadProgmem_dw_3; @@ -4365,8 +4367,8 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_4; scr->ReadMem8_len = sizeof(ReadMem8_dw_4); break; - case 52: /* ATtiny261 */ - case 53: /* ATtiny261A */ + case 53: /* ATtiny261 */ + case 54: /* ATtiny261A */ scr->WriteProgmem = WriteProgmem_dw_15; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_15); scr->ReadProgmem = ReadProgmem_dw_3; @@ -4378,12 +4380,12 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_5; scr->ReadMem8_len = sizeof(ReadMem8_dw_5); break; - case 54: /* ATtiny4313 */ - case 55: /* ATtiny43U */ - case 56: /* ATtiny44 */ - case 58: /* ATtiny44A */ - case 64: /* ATtiny84 */ - case 66: /* ATtiny84A */ + case 55: /* ATtiny4313 */ + case 56: /* ATtiny43U */ + case 57: /* ATtiny44 */ + case 59: /* ATtiny44A */ + case 65: /* ATtiny84 */ + case 67: /* ATtiny84A */ scr->WriteProgmem = WriteProgmem_dw_16; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_16); scr->ReadProgmem = ReadProgmem_dw_0; @@ -4395,8 +4397,8 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_3; scr->ReadMem8_len = sizeof(ReadMem8_dw_3); break; - case 57: /* ATtiny441 */ - case 65: /* ATtiny841 */ + case 58: /* ATtiny441 */ + case 66: /* ATtiny841 */ scr->WriteProgmem = WriteProgmem_dw_17; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_17); scr->ReadProgmem = ReadProgmem_dw_4; @@ -4408,8 +4410,8 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_3; scr->ReadMem8_len = sizeof(ReadMem8_dw_3); break; - case 59: /* ATtiny45 */ - case 67: /* ATtiny85 */ + case 60: /* ATtiny45 */ + case 68: /* ATtiny85 */ scr->WriteProgmem = WriteProgmem_dw_18; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_18); scr->ReadProgmem = ReadProgmem_dw_0; @@ -4421,10 +4423,10 @@ int get_pickit_dw_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_dw_4; scr->ReadMem8_len = sizeof(ReadMem8_dw_4); break; - case 60: /* ATtiny461 */ - case 61: /* ATtiny461A */ - case 68: /* ATtiny861 */ - case 69: /* ATtiny861A */ + case 61: /* ATtiny461 */ + case 62: /* ATtiny461A */ + case 69: /* ATtiny861 */ + case 70: /* ATtiny861A */ scr->WriteProgmem = WriteProgmem_dw_19; scr->WriteProgmem_len = sizeof(WriteProgmem_dw_19); scr->ReadProgmem = ReadProgmem_dw_0; diff --git a/src/pickit5_lut_isp.c b/src/pickit5_lut_isp.c index 328740d0..b89898f5 100644 --- a/src/pickit5_lut_isp.c +++ b/src/pickit5_lut_isp.c @@ -2539,11 +2539,11 @@ const char * const pickit5_isp_chip_lut[] = { "ATmega645", "ATmega6450", "ATmega6450A", "ATmega6450P", "ATmega645A", "ATmega645P", "ATmega649", "ATmega6490", "ATmega6490A", "ATmega6490P", "ATmega649A", "ATmega649P", "ATmega64A", "ATmega64C1", "ATmega64HVE2", "ATmega64M1", "ATmega64RFR2", "ATmega8", "ATmega8515", "ATmega8535", "ATmega88", "ATmega88A", "ATmega88P", "ATmega88PA", - "ATmega88PB", "ATmega8A", "ATmega8HVA", "ATmega8U2", "ATtiny12", "ATtiny13", "ATtiny13A", "ATtiny15", - "ATtiny1634", "ATtiny167", "ATtiny2313", "ATtiny2313A", "ATtiny24", "ATtiny24A", "ATtiny25", "ATtiny26", - "ATtiny261", "ATtiny261A", "ATtiny4313", "ATtiny43U", "ATtiny44", "ATtiny441", "ATtiny44A", "ATtiny45", - "ATtiny461", "ATtiny461A", "ATtiny48", "ATtiny828", "ATtiny84", "ATtiny841", "ATtiny84A", "ATtiny85", - "ATtiny861", "ATtiny861A", "ATtiny87", "ATtiny88", + "ATmega88PB", "ATmega8A", "ATmega8HVA", "ATmega8U2", "ATmegaS128", "ATmegaS64M1", "ATtiny12", "ATtiny13", + "ATtiny13A", "ATtiny15", "ATtiny1634", "ATtiny167", "ATtiny2313", "ATtiny2313A", "ATtiny24", "ATtiny24A", + "ATtiny25", "ATtiny26", "ATtiny261", "ATtiny261A", "ATtiny4313", "ATtiny43U", "ATtiny44", "ATtiny441", + "ATtiny44A", "ATtiny45", "ATtiny461", "ATtiny461A", "ATtiny48", "ATtiny828", "ATtiny84", "ATtiny841", + "ATtiny84A", "ATtiny85", "ATtiny861", "ATtiny861A", "ATtiny87", "ATtiny88", }; int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { @@ -2551,7 +2551,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { return -1; } int namepos = -1; - for(int i = 0; i < 156; i++) { + for(int i = 0; i < 158; i++) { if(strcmp(pickit5_isp_chip_lut[i], partdesc) == 0) { namepos = i; break; @@ -2617,7 +2617,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { case 7: /* AT90PWM3 */ case 9: /* AT90PWM3B */ case 10: /* AT90PWM81 */ - case 151: /* ATtiny85 */ + case 153: /* ATtiny85 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_3; @@ -2722,6 +2722,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { break; case 17: /* ATmega128 */ case 23: /* ATmega128A */ + case 124: /* ATmegaS128 */ scr->EraseChip = EraseChip_isp_2; scr->EraseChip_len = sizeof(EraseChip_isp_2); scr->WriteProgmem = WriteProgmem_isp_9; @@ -3098,6 +3099,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { case 107: /* ATmega649P */ case 109: /* ATmega64C1 */ case 111: /* ATmega64M1 */ + case 125: /* ATmegaS64M1 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_2; @@ -3184,8 +3186,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 124: /* ATtiny12 */ - case 127: /* ATtiny15 */ + case 126: /* ATtiny12 */ + case 129: /* ATtiny15 */ scr->EraseChip = EraseChip_isp_4; scr->EraseChip_len = sizeof(EraseChip_isp_4); scr->WriteProgmem = WriteProgmem_isp_23; @@ -3201,8 +3203,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 125: /* ATtiny13 */ - case 126: /* ATtiny13A */ + case 127: /* ATtiny13 */ + case 128: /* ATtiny13A */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_24; @@ -3218,7 +3220,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 128: /* ATtiny1634 */ + case 130: /* ATtiny1634 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_25; @@ -3234,7 +3236,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 129: /* ATtiny167 */ + case 131: /* ATtiny167 */ scr->EraseChip = EraseChip_isp_5; scr->EraseChip_len = sizeof(EraseChip_isp_5); scr->WriteProgmem = WriteProgmem_isp_4; @@ -3250,8 +3252,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 130: /* ATtiny2313 */ - case 131: /* ATtiny2313A */ + case 132: /* ATtiny2313 */ + case 133: /* ATtiny2313A */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_26; @@ -3267,8 +3269,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 132: /* ATtiny24 */ - case 133: /* ATtiny24A */ + case 134: /* ATtiny24 */ + case 135: /* ATtiny24A */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_26; @@ -3284,7 +3286,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 134: /* ATtiny25 */ + case 136: /* ATtiny25 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_26; @@ -3300,7 +3302,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 135: /* ATtiny26 */ + case 137: /* ATtiny26 */ scr->EraseChip = EraseChip_isp_2; scr->EraseChip_len = sizeof(EraseChip_isp_2); scr->WriteProgmem = WriteProgmem_isp_27; @@ -3316,8 +3318,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 136: /* ATtiny261 */ - case 137: /* ATtiny261A */ + case 138: /* ATtiny261 */ + case 139: /* ATtiny261A */ scr->EraseChip = EraseChip_isp_5; scr->EraseChip_len = sizeof(EraseChip_isp_5); scr->WriteProgmem = WriteProgmem_isp_26; @@ -3333,7 +3335,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 138: /* ATtiny4313 */ + case 140: /* ATtiny4313 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_17; @@ -3349,7 +3351,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 139: /* ATtiny43U */ + case 141: /* ATtiny43U */ scr->EraseChip = EraseChip_isp_5; scr->EraseChip_len = sizeof(EraseChip_isp_5); scr->WriteProgmem = WriteProgmem_isp_17; @@ -3365,8 +3367,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 140: /* ATtiny44 */ - case 142: /* ATtiny44A */ + case 142: /* ATtiny44 */ + case 144: /* ATtiny44A */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_17; @@ -3382,7 +3384,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 141: /* ATtiny441 */ + case 143: /* ATtiny441 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_28; @@ -3398,7 +3400,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 143: /* ATtiny45 */ + case 145: /* ATtiny45 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_17; @@ -3414,8 +3416,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 144: /* ATtiny461 */ - case 145: /* ATtiny461A */ + case 146: /* ATtiny461 */ + case 147: /* ATtiny461A */ scr->EraseChip = EraseChip_isp_5; scr->EraseChip_len = sizeof(EraseChip_isp_5); scr->WriteProgmem = WriteProgmem_isp_17; @@ -3431,7 +3433,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 146: /* ATtiny48 */ + case 148: /* ATtiny48 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_17; @@ -3447,7 +3449,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 147: /* ATtiny828 */ + case 149: /* ATtiny828 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_3; @@ -3463,8 +3465,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 148: /* ATtiny84 */ - case 150: /* ATtiny84A */ + case 150: /* ATtiny84 */ + case 152: /* ATtiny84A */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_3; @@ -3480,7 +3482,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 149: /* ATtiny841 */ + case 151: /* ATtiny841 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_29; @@ -3496,8 +3498,8 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 152: /* ATtiny861 */ - case 153: /* ATtiny861A */ + case 154: /* ATtiny861 */ + case 155: /* ATtiny861A */ scr->EraseChip = EraseChip_isp_5; scr->EraseChip_len = sizeof(EraseChip_isp_5); scr->WriteProgmem = WriteProgmem_isp_3; @@ -3513,7 +3515,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 154: /* ATtiny87 */ + case 156: /* ATtiny87 */ scr->EraseChip = EraseChip_isp_5; scr->EraseChip_len = sizeof(EraseChip_isp_5); scr->WriteProgmem = WriteProgmem_isp_22; @@ -3529,7 +3531,7 @@ int get_pickit_isp_script(SCRIPT *scr, const char *partdesc) { scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); break; - case 155: /* ATtiny88 */ + case 157: /* ATtiny88 */ scr->EraseChip = EraseChip_isp_0; scr->EraseChip_len = sizeof(EraseChip_isp_0); scr->WriteProgmem = WriteProgmem_isp_3; diff --git a/src/pickit5_lut_jtag.c b/src/pickit5_lut_jtag.c index 7da42325..04c5980f 100644 --- a/src/pickit5_lut_jtag.c +++ b/src/pickit5_lut_jtag.c @@ -1293,9 +1293,10 @@ const char * const pickit5_jtag_chip_lut[] = { "ATmega3290A", "ATmega3290P", "ATmega3290PA", "ATmega329A", "ATmega329P", "ATmega329PA", "ATmega32A", "ATmega32U4", "ATmega406", "ATmega64", "ATmega640", "ATmega644", "ATmega644A", "ATmega644P", "ATmega644PA", "ATmega644RFR2", "ATmega645", "ATmega6450", "ATmega6450A", "ATmega6450P", "ATmega645A", "ATmega645P", "ATmega649", "ATmega6490", - "ATmega6490A", "ATmega6490P", "ATmega649A", "ATmega649P", "ATmega64A", "ATmega64RFR2", "ATxmega128A1", "ATxmega128A1U", - "ATxmega128A3", "ATxmega128A3U", "ATxmega192A3", "ATxmega192A3U", "ATxmega256A3", "ATxmega256A3B", "ATxmega256A3BU", "ATxmega256A3U", - "ATxmega64A1", "ATxmega64A1U", "ATxmega64A3", "ATxmega64A3U", "ATxmega128B1", "ATxmega128B3", "ATxmega64B1", "ATxmega64B3", + "ATmega6490A", "ATmega6490P", "ATmega649A", "ATmega649P", "ATmega64A", "ATmega64RFR2", "ATmegaS128", "ATxmega128A1", + "ATxmega128A1U", "ATxmega128A3", "ATxmega128A3U", "ATxmega192A3", "ATxmega192A3U", "ATxmega256A3", "ATxmega256A3B", "ATxmega256A3BU", + "ATxmega256A3U", "ATxmega64A1", "ATxmega64A1U", "ATxmega64A3", "ATxmega64A3U", "ATxmega128B1", "ATxmega128B3", "ATxmega64B1", + "ATxmega64B3", }; int get_pickit_jtag_script(SCRIPT *scr, const char *partdesc) { @@ -1303,7 +1304,7 @@ int get_pickit_jtag_script(SCRIPT *scr, const char *partdesc) { return -1; } int namepos = -1; - for(int i = 0; i < 96; i++) { + for(int i = 0; i < 97; i++) { if(strcmp(pickit5_jtag_chip_lut[i], partdesc) == 0) { namepos = i; break; @@ -1452,6 +1453,7 @@ int get_pickit_jtag_script(SCRIPT *scr, const char *partdesc) { break; case 7: /* ATmega128 */ case 13: /* ATmega128A */ + case 78: /* ATmegaS128 */ scr->EnterProgMode = EnterProgMode_jtag_0; scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); scr->ExitProgMode = ExitProgMode_jtag_0; @@ -1919,16 +1921,16 @@ int get_pickit_jtag_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_jtag_0; scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); break; - case 78: /* ATxmega128A1 */ - case 79: /* ATxmega128A1U */ - case 80: /* ATxmega128A3 */ - case 81: /* ATxmega128A3U */ - case 82: /* ATxmega192A3 */ - case 83: /* ATxmega192A3U */ - case 84: /* ATxmega256A3 */ - case 85: /* ATxmega256A3B */ - case 86: /* ATxmega256A3BU */ - case 87: /* ATxmega256A3U */ + case 79: /* ATxmega128A1 */ + case 80: /* ATxmega128A1U */ + case 81: /* ATxmega128A3 */ + case 82: /* ATxmega128A3U */ + case 83: /* ATxmega192A3 */ + case 84: /* ATxmega192A3U */ + case 85: /* ATxmega256A3 */ + case 86: /* ATxmega256A3B */ + case 87: /* ATxmega256A3BU */ + case 88: /* ATxmega256A3U */ scr->EnterProgMode = EnterProgMode_jtag_1; scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_1); scr->ExitProgMode = ExitProgMode_jtag_1; @@ -1972,14 +1974,14 @@ int get_pickit_jtag_script(SCRIPT *scr, const char *partdesc) { scr->ReadMem8 = ReadMem8_jtag_6; scr->ReadMem8_len = sizeof(ReadMem8_jtag_6); break; - case 88: /* ATxmega64A1 */ - case 89: /* ATxmega64A1U */ - case 90: /* ATxmega64A3 */ - case 91: /* ATxmega64A3U */ - case 92: /* ATxmega128B1 */ - case 93: /* ATxmega128B3 */ - case 94: /* ATxmega64B1 */ - case 95: /* ATxmega64B3 */ + case 89: /* ATxmega64A1 */ + case 90: /* ATxmega64A1U */ + case 91: /* ATxmega64A3 */ + case 92: /* ATxmega64A3U */ + case 93: /* ATxmega128B1 */ + case 94: /* ATxmega128B3 */ + case 95: /* ATxmega64B1 */ + case 96: /* ATxmega64B3 */ scr->EnterProgMode = EnterProgMode_jtag_1; scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_1); scr->ExitProgMode = ExitProgMode_jtag_1; diff --git a/src/pickit5_lut_updi.c b/src/pickit5_lut_updi.c index 92b9a0a4..75b07d1b 100644 --- a/src/pickit5_lut_updi.c +++ b/src/pickit5_lut_updi.c @@ -1102,7 +1102,7 @@ const char * const pickit5_updi_chip_lut[] = { "AVR32EA28", "AVR32EA32", "AVR32EA48", "AVR8EA28", "AVR8EA32", "AVR16EB14", "AVR16EB20", "AVR16EB28", "AVR16EB32", "AVR32EB28", "AVR32EB32", "AVR32EB14", "AVR32EB20", "AVR32SD20", "AVR32SD28", "AVR32SD32", "AVR64SD28", "AVR64SD32", "AVR64SD48", "AVR64EC28", "AVR64EC32", "AVR64EC48", "AVR32LA14", "AVR32LA20", - "AVR32LA28", "AVR32LA32", + "AVR32LA28", "AVR32LA32", "AVR16LA14", "AVR16LA20", "AVR16LA28", "AVR16LA32", }; const unsigned char *get_devid_script_by_nvm_ver(unsigned char version) { @@ -1119,7 +1119,7 @@ int get_pickit_updi_script(SCRIPT *scr, const char *partdesc) { return -1; } int namepos = -1; - for(int i = 0; i < 138; i++) { + for(int i = 0; i < 142; i++) { if(strcmp(pickit5_updi_chip_lut[i], partdesc) == 0) { namepos = i; break; @@ -1436,6 +1436,10 @@ int get_pickit_updi_script(SCRIPT *scr, const char *partdesc) { case 135: /* AVR32LA20 */ case 136: /* AVR32LA28 */ case 137: /* AVR32LA32 */ + case 138: /* AVR16LA14 */ + case 139: /* AVR16LA20 */ + case 140: /* AVR16LA28 */ + case 141: /* AVR16LA32 */ scr->EnterProgMode = EnterProgMode_updi_0; scr->EnterProgMode_len = sizeof(EnterProgMode_updi_0); scr->GetDeviceID = GetDeviceID_updi_1;