Merge pull request #2150 from MX682X/main

updating device pack
This commit is contained in:
Stefan Rueger
2026-06-29 00:07:56 +01:00
committed by GitHub
4 changed files with 106 additions and 96 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;