/*--- Device Properties ---*/
#include "avrpp.h"
/* Info previously in fuse.txt */
const char*FuseNames[]={
0,
"RSTDISBL [Normal RESET pin|Disable RESET]", //1
"SPIEN [Disable|Enable] ISP", //2 // Extra text: *Available only in parallel/HVS mode
"EESAVE [Erase|Retain] EEPROM at chip erase", //3 // wichtig für's Überschreiben des EEPROMs
"FSTRT [Slow|Fast] start", //4
"SUT Startup time", //5 // Extra Fuse calculator (TODO)
"RCEN [External|Internal] CLK", //6
"CKSEL Clock source", //7 // Extra Fuse calculator (TODO)
"WDTON Watchdog Timer [controlled by firmware|always on]", //8
"CKOUT [no clock-out|CLKO overrides port function]", //9
"BODEN [Disable|Enable] Brown-Out Detector", //10
"BODLEVEL [disabled|1.8 V|2.7 V|4.3 V]", //11
"BODLEVEL [1.8 V|2.7 V]", //12
"BODLEVEL [2.7 V|4.0 V]", //13
"BODLEVEL [disabled|1.8 V|2.7 V|4.3 V|2.7 V]", //14
"CKOPT [Disabled|Enabled]", //15
"CKDIV8 Clock division ratio [1/1|1/8]", //16
"DWEN On-Chip Debugging via RESET pin [Disable|Enable]", //17
"SELFPRGEN SPM instruction [Disable|Enable]", //18 // same as SPMEN
"BODACT BOD mode in active/idle state", //19
"BODPD BOD mode in powerdown state", //20
"BOOTRST Reset jumps to [Address 0|Boot Area]", //21
"BOOTSZ Boot Area Size", //22
"PLLCK Activate High-Speed PLL", //23
"INTCAP [Disable|Enable] CAP", //24
"JTAGEN [Disable|Enable] JTAG", //25
"OCDEN On chip debugging [Disable|Enable]", //26
"M161C [Native|ATmega161 compatible] mode", //27
"S85x5C [Native|90S compatible] mode", //28
"M103C [Native|ATmega603/103 compatible] mode", //29
"TA0SEL (Must be 1)", //30
"BODLEVEL [Off|4.1 V|4 V|3.9 V|3.8 V|2.7 V|2.6 V|2.5 V]", //31 // for AT90CAN...
"BODLEVEL [Off|4.5 V|2.7 V|4.3 V|4.4 V|4.2 V|2.8 V|2.6 V]", //32 // for AT90PWM...
"PSCRV PSCOUT Reset Value", //33
"PSCRB PSCn Reset Behaviour", //34
"CKSEL Clock Source [Crystal >8 MHz|Ceramic >8 MHz|Crystal 3..8 MHz|Ceramic 3..8 MHz|Crystal 0.9..3 MHz|Ceramic 0.9..3 MHz|Crystal 0.4..0.9 MHz|Ceramic 0.4..0.9 MHz|reserved|Crystal 32768 Hz|reserved|Internal 128 kHz|Internal 1.6 MHz ATtiny15 compatible|Internal 8 MHz|Internal PLL 16 MHz|External]", //35
"BOOTSZ Boot Area Size [0.25|0.5|1|2] KByte", //36
"BOOTSZ Boot Area Size [0.5|1|2|4] KByte", //37
"HWBE Reset && PE2=Low jumps to [address 0|boot area]", //38
"CFD Clock Failure Detection [Enable|Disable]", //39 // for ATmega328PB
};
#define F static const FUSEPROP // EW=EEPROM-Wait, FW=Flash-Wait, LD=LockDefault, Cal=Number of OSCCAL
/* EW,FW, LD,Cal, FuseDefault[] LowFuse | HighFuse | ExtFuse */
F AT90S1200 ={ Par,10, 2,0xF9, 0,{0xDF,0xFF,0xFF}, { 6, 0, 0, 0, 0, 2}};
F AT90S2313 ={ Par,10, 2,0xF9, 0,{0xDF,0xFF,0xFF}, { 4, 0, 0, 0, 0, 2}};
F AT90S4434 ={ ISP|Par,10, 2,0xF9, 0,{0xDF,0xFF,0xFF}, { 4, 0, 0, 0, 0, 2}};
F AT90S2333 ={ ISP|Par,10, 2,0xF9, 0,{0xDA,0xFF,0xFF}, { 7, 7, 7,10,13, 2}};
F AT90S2323 ={ ISP|HVS,10, 2,0xF9, 0,{0xDF,0xFF,0xFF}, { 4, 0, 0, 0, 0, 2}};
F AT90S2343 ={ ISP|HVS,10, 2,0xF9, 0,{0xDF,0xFF,0xFF}, { 6, 0, 0, 0, 0, 2}};
F ATtiny4 ={ TPI, 0, 2,0x00, 0,{0xFF,0xFF,0xFF}, { 1, 8, 9}};
F ATtiny20 ={ TPI, 0, 2,0x00, 0,{0xFF,0xFF,0xFF}, { 1, 8, 9, 0,11,11,11}};
F ATtiny11 ={ HVS, 0, 2,0x00, 0,{0xFC,0xFF,0xFF}, { 7, 7, 7, 1, 4}};
F ATtiny12 ={ ISP|HVS, 0, 0,0x00, 1,{0xD2,0xFF,0xFF}, { 7, 7, 7, 7, 1, 2,10,12}};
F ATtiny15 ={ ISP|H15, 0, 0,0xF9, 1,{0x5C,0xFF,0xFF}, { 7, 7, 0, 0, 1, 2,10,13}};
F ATtiny22 ={ ISP|HVS,10, 2,0xF9, 0,{0xDE,0xFF,0xFF}, { 6, 0, 0, 0, 0, 2}};
F ATtiny13 ={dW| ISP|HVS, 0, 0,0x00, 1,{0x6A,0xFF,0xFF}, { 7, 7, 5, 5,16, 8, 3, 2, 1,11,11,17,18}};
F ATtiny25 ={dW| ISP|HVS, 0, 0,0x00, 1,{0x62,0xDF,0xFF}, {35,35,35,35, 5, 5, 9,16, 11,11,11, 3, 8, 2,17, 1, 18}};
F ATtiny2313={dW| ISP|Par, 0, 0,0xFC, 2,{0x64,0xDF,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 1,11,11,11, 8, 2, 3,17, 18}};
F ATtiny1634={dW| ISP|Par, 0, 0,0xFC, 1,{0x62,0xDF,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 11,11,11, 3, 8, 2,17, 1, 18,19,19,20,20}};
F ATtiny828 ={ ISP|Par, 0, 0,0xFC, 1,{0x6E,0xDF,0xFF}, { 7, 7, 0, 0, 5, 5, 9,16, 11,11,11, 3, 8, 2,17, 1, 21,22,22, 0,19,19,20,20}};
F ATtiny26 ={ ISP , 0, 0,0xFC, 4,{0xE1,0xF7,0xFF}, { 7, 7, 7, 7, 5, 5,15,23, 10,13, 3, 2, 1}};
F ATtiny261 ={dW| ISP|Par, 0, 0,0xFC, 1,{0x62,0xDF,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 11,11,11, 3, 8, 2,17, 1, 18}};
F ATtiny28 ={ Par, 0, 0,0xF9, 1,{0xF2,0xFF,0xFF}, { 7, 7, 7, 7,24}};
F ATmega161 ={ ISP|Par, 0, 0,0xFC, 0,{0xDA,0xFF,0xFF}, { 7, 7, 7,10,13, 2,21}};
F ATmega162 ={ JT|ISP|Par, 0, 0,0xFC, 1,{0x62,0x99,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 21,22,22, 3, 8, 2,25,26, 0,14,14,14,27}};
F ATmega165 ={ ISP|Par, 0, 0,0xFC, 1,{0x62,0x99,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 21,22,22, 3, 8, 2,25,26, 0,14,14,14}};
F ATmega169 ={ JT|ISP|Par, 0, 0,0xFC, 1,{0x62,0x99,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 21,22,22, 3, 8, 2,25,26, 1,14,14,14}};
F ATmega8515={ ISP|Par, 0, 0,0xFC, 4,{0xE1,0xD9,0xFF}, { 7, 7, 7, 7, 5, 5,10,13, 21,22,22, 3,15, 2, 8,28}};
F ATmega163 ={ ISP|Par, 0, 0,0xFC, 1,{0xD2,0xFF,0xFF}, { 7, 7, 7, 7, 0, 2,10,13, 21,22,22}};
F ATmega323 ={ ISP|Par, 0, 0,0xFC, 1,{0xF2,0x9F,0xFF}, { 7, 7, 7, 7, 0, 2,10,13, 21,22,22, 3, 0, 0,25,26}};
F ATmega8 ={ ISP|Par, 0, 0,0xFC, 4,{0xE1,0xD9,0xFF}, { 7, 7, 7, 7, 5, 5,10,13, 21,22,22, 3,15, 2, 8, 1}};
F ATmega16 ={ JT|ISP|Par, 0, 0,0xFC, 4,{0xE1,0x99,0xFF}, { 7, 7, 7, 7, 5, 5,10,13, 21,22,22, 3,15, 2,25,26}};
F ATmega48 ={dW| ISP|Par, 0, 0,0xFF, 1,{0x62,0xDF,0xFF}, {35,35,35,35, 5, 5, 9,16, 11,11,11, 3, 8, 2,17, 1, 18}};
F ATtiny87 ={dW| ISP|Par, 0, 0,0x00, 1,{0x62,0xDF,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 11,11,11, 3, 8, 2,17, 1, 18}};
F ATtiny48 ={dW| ISP|Par, 0, 0,0x00, 1,{0x6E,0xDF,0xFF}, { 7, 7, 0, 0, 5, 5, 9,16, 11,11,11, 3, 8, 2,17, 1, 18}};
F ATmega88 ={dW| ISP|Par, 0, 0,0xFF, 1,{0x62,0xDF,0xF9}, {35,35,35,35, 5, 5, 9,16, 11,11,11, 3, 8, 2,17, 1, 21,36,36}};
F ATmega328 ={dW| ISP|Par, 0, 0,0xFF, 1,{0x62,0xD9,0xFF}, {35,35,35,35, 5, 5, 9,16, 21,37,37, 3, 8, 2,17, 1, 11,11,11}};
F ATmega328B={dW| ISP|Par, 0, 0,0xFF, 1,{0x62,0xD9,0xF7}, {35,35,35,35, 5, 5, 9,16, 21,37,37, 3, 8, 2,17, 1, 11,11,11,39}};
F ATmega325 ={ JT|ISP|Par, 0, 0,0xFC, 1,{0x62,0x99,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 21,22,22, 3, 8, 2,25,26, 1,11,11}};
F ATmega64 ={ JT|ISP|Par, 0, 0,0xFC, 4,{0xE1,0x99,0xFD}, { 7, 7, 7, 7, 5, 5,10,13, 21,22,22, 3,15, 2,25,26, 8,29}};
F ATmega603 ={ ISP|Par, 0, 0,0xF9, 0,{0xDF,0xFF,0xFF}, { 5, 5, 0, 3}};
F AT90CAN32 ={ JT|ISP|Par, 0, 0,0xFC, 1,{0x62,0x99,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 21,22,22, 3, 8, 2,25,26, 30,31,31,31}};
F ATmega406 ={ ISP|Par, 0, 0,0xFC,11,{0xCD,0xFE,0xFF}, { 7, 5, 5,21,22,22, 3, 8, 26,27}};
F AT90PWM2 ={dW| ISP|Par, 0, 0,0xFC, 1,{0x62,0xDF,0xF9}, { 7, 7, 7, 7, 5, 5, 9,16, 32,32,32, 3, 8, 2,17, 1, 21,22,22, 0,33,34,34,34}};
F AT90USB8 ={dW|USB|ISP|Par, 0, 0,0xFC, 1,{0x62,0xDF,0xF9}, { 7, 7, 7, 7, 5, 5, 9,16, 32,32,32, 3, 8, 2,17, 1, 21,22,22, 0,33,34,34,34}}; // todo!!
F ATmega640 ={ JT|ISP|Par, 0, 0,0xFC, 1,{0x62,0x99,0xFF}, { 7, 7, 7, 7, 5, 5, 9,16, 21,22,22, 3, 8, 2,25,26, 11,11,11}};
F ATmega16u4={USB|JT|ISP|Par, 0, 0,0xEC, 1,{0x5E,0x99,0xF3}, {35,35,35,35, 5, 5, 9,16, 21,22,22, 3, 8, 2,25,26, 11,11,11,38}};
#undef F
#define K *1024
/* Device properties */
const DEVPROP DevLst[] = { /* Device property list */
/* Name, Signature, FS,FP,ES,EP */
{ "90S1200", {0x90,0x01},1 K, 0, 6, 0,&AT90S1200},
{ "90S2313", {0x91,0x01},2 K, 0, 7, 0,&AT90S2313},
{ "90S4414", {0x92,0x01},4 K, 0, 8, 0,&AT90S2313},
{ "90S8515", {0x93,0x01},8 K, 0, 9, 0,&AT90S2313},
{ "90S2333", {0x91,0x05},2 K, 0, 7, 0,&AT90S2333},
{ "90S4433", {0x92,0x03},4 K, 0, 8, 0,&AT90S2333},
{ "90S4434", {0x92,0x02},4 K, 0, 8, 0,&AT90S4434},
{ "90S8535", {0x93,0x03},8 K, 0, 9, 0,&AT90S4434},
{ "90S2323", {0x91,0x02},2 K, 0, 7, 0,&AT90S2323},
{ "90S2343", {0x91,0x03},2 K, 0, 7, 0,&AT90S2343},
{ "tiny4", {0x8F,0x0A},512, 0, 0, 0,&ATtiny4},
{ "tiny5", {0x8F,0x09},512, 0, 0, 0,&ATtiny4},
{ "tiny9", {0x90,0x08},1 K, 0, 0, 0,&ATtiny4},
{ "tiny10", {0x90,0x03},1 K, 0, 0, 0,&ATtiny4},
{ "tiny20", {0x91,0x0F},2 K, 0, 0, 0,&ATtiny20},
{ "tiny40", {0x92,0x0E},4 K, 0, 0, 0,&ATtiny20},
{ "tiny11", {0x90,0x04},1 K, 0, 0, 0,&ATtiny11},
{ "tiny12", {0x90,0x05},1 K, 0, 6, 0,&ATtiny12},
{ "tiny15", {0x90,0x06},1 K, 0, 6, 0,&ATtiny15},
{ "tiny22", {0x91,0x06},2 K, 0, 7, 0,&ATtiny22},
{ "tiny26", {0x91,0x09}, 64, 5, 7, 2,&ATtiny26},
{ "tiny261", {0x91,0x0C}, 64, 5, 7, 2,&ATtiny261},
{ "tiny461", {0x92,0x08}, 64, 6, 8, 2,&ATtiny261},
{ "tiny861", {0x93,0x0D},128, 6, 9, 2,&ATtiny261},
{ "tiny28", {0x91,0x07},2 K, 0, 0, 0,&ATtiny28},
{ "tiny13", {0x90,0x07}, 32, 5, 6, 2,&ATtiny13},
{ "tiny25", {0x91,0x08}, 64, 5, 7, 2,&ATtiny25},
{ "tiny45", {0x92,0x06}, 64, 6, 8, 2,&ATtiny25},
{ "tiny85", {0x93,0x0B},128, 6, 9, 2,&ATtiny25},
{ "tiny24", {0x91,0x0B}, 64, 5, 7, 2,&ATtiny25},
{ "tiny44", {0x92,0x07}, 64, 6, 8, 2,&ATtiny25},
{ "tiny84", {0x93,0x0C},128, 6, 9, 2,&ATtiny25},
{ "tiny441", {0x92,0x15},256, 4, 8, 2,&ATtiny25},
{ "tiny841", {0x93,0x15},512, 4, 8, 2,&ATtiny25},
{ "tiny87", {0x93,0x87}, 64, 7, 9, 2,&ATtiny87},
{ "tiny167", {0x94,0x87},128, 7, 9, 2,&ATtiny87},
{ "tiny43U", {0x92,0x0C}, 64, 6, 6, 2,&ATtiny87},
{ "tiny48", {0x92,0x09}, 64, 6, 6, 2,&ATtiny48},
{ "tiny88", {0x93,0x11},128, 6, 6, 2,&ATtiny48},
{ "tiny828", {0x93,0x14},128, 6, 8, 2,&ATtiny828},
{ "tiny2313", {0x91,0x0A}, 64, 5, 7, 2,&ATtiny2313},
{ "tiny4313", {0x92,0x0D}, 64, 6, 8, 2,&ATtiny2313},
{ "tiny1634", {0x94,0x12},512, 5, 8, 2,&ATtiny1634},
{ "mega161", {0x94,0x01},128, 7, 9, 0,&ATmega161},
{ "mega162", {0x94,0x04},128, 7, 9, 2,&ATmega162},
{ "mega8515", {0x93,0x06},128, 6, 9, 2,&ATmega8515},
{ "mega8535", {0x93,0x08},128, 6, 9, 2,&ATmega8515},
{ "mega163", {0x94,0x02},128, 7, 9, 0,&ATmega163},
{ "mega323", {0x95,0x01},256, 7,10, 0,&ATmega323},
{ "mega48", {0x92,0x05}, 64, 6, 8, 2,&ATmega48},
{ "mega48P", {0x92,0x0A}, 64, 6, 8, 2,&ATmega48},
{ "mega48PB", {0x92,0x10}, 64, 6, 8, 2,&ATmega48},
{ "mega88", {0x93,0x0A},128, 6, 9, 2,&ATmega88},
{ "mega88P", {0x93,0x0F},128, 6, 9, 2,&ATmega88},
{ "mega88PB", {0x93,0x16},128, 6, 9, 2,&ATmega88},
{ "mega168", {0x94,0x06},128, 7, 9, 2,&ATmega88},
{ "mega168P", {0x94,0x0B},128, 7, 9, 2,&ATmega88},
{ "mega168PB", {0x94,0x15},128, 7, 9, 2,&ATmega88},
{ "mega328", {0x95,0x14},256, 7,10, 2,&ATmega328},
{ "mega328P", {0x95,0x0F},256, 7,10, 2,&ATmega328},
{ "mega328PB", {0x95,0x16},256, 7,10, 2,&ATmega328B},
{ "mega8", {0x93,0x07},128, 6, 9, 2,&ATmega8},
{ "mega16", {0x94,0x03},128, 7, 9, 2,&ATmega16},
{ "mega32", {0x95,0x02},256, 7,10, 2,&ATmega16},
{ "mega164P", {0x94,0x0A},128, 7, 9, 3,&ATmega640},
{ "mega324P", {0x95,0x08},256, 7,10, 3,&ATmega640},
{ "mega324PA", {0x95,0x11},256, 7,10, 3,&ATmega640},
{ "mega644P", {0x96,0x0A},256, 8,11, 3,&ATmega640},
{ "mega1284P", {0x97,0x05},512, 8,12, 3,&ATmega640},
{ "mega644", {0x96,0x09},256, 8,11, 3,&ATmega640},
{ "mega165", {0x94,0x07},128, 7, 9, 2,&ATmega165},
{ "mega169", {0x94,0x05},128, 7, 9, 2,&ATmega169},
{ "mega329", {0x95,0x03},256, 7,10, 2,&ATmega169},
{ "mega325P", {0x95,0x0D},256, 7,10, 2,&ATmega325},
{ "mega3250P", {0x95,0x0E},256, 7,10, 2,&ATmega325},
{ "mega325/9", {0x95,0x03},256, 7,10, 2,&ATmega325},
{ "mega3250/90", {0x95,0x04},256, 7,10, 2,&ATmega325},
{ "mega645/9", {0x96,0x03},256, 8,11, 3,&ATmega325},
{ "mega6450/90", {0x96,0x04},256, 8,11, 3,&ATmega325},
{ "mega603", {0x96,0x01},256, 8,11, 0,&ATmega603},
{ "mega103", {0x97,0x01},512, 8,12, 0,&ATmega603},
{ "mega64", {0x96,0x02},256, 8,11, 3,&ATmega64},
{ "mega128", {0x97,0x02},512, 8,12, 3,&ATmega64},
{ "mega640", {0x96,0x07},256, 8,12, 3,&ATmega640},
{ "mega1280", {0x97,0x03},512, 8,12, 3,&ATmega640},
{ "mega1281", {0x97,0x04},512, 8,12, 3,&ATmega640},
{ "mega2560", {0x98,0x01},1 K, 8,12, 3,&ATmega640},
{ "mega2561", {0x98,0x02},1 K, 8,12, 3,&ATmega640},
{ "mega406", {0x95,0x07}, 80, 7, 9, 2,&ATmega406},
{ "mega8u2", {0x93,0x89}, 64, 7, 7, 2,&AT90USB8}, // unsure pointer
{ "mega16u2", {0x94,0x89},128, 7, 7, 2,&AT90USB8}, // unsure pointer
{ "mega32u2", {0x95,0x8A},256, 7, 8, 2,&AT90USB8}, // unsure pointer
{ "mega16u4", {0x94,0x88}, 64, 8, 6, 3,&ATmega16u4},
{ "mega32u4", {0x95,0x87},128, 8, 7, 3,&ATmega16u4},
{ "90PWM2/3", {0x93,0x81},128, 6, 9, 2,&AT90PWM2},
{ "90PWM216/316",{0x94,0x83},128, 7, 9, 2,&AT90PWM2},
{ "90CAN32", {0x95,0x81},128, 8,10, 3,&AT90CAN32},
{ "90CAN64", {0x96,0x81},256, 8,11, 2,&AT90CAN32},
{ "90CAN128", {0x97,0x81},512, 8,12, 3,&AT90CAN32},
{ "90USB82", {0x93,0x82}, 64, 7, 7, 2,&AT90USB8},
{ "90USB162", {0x94,0x82},128, 7, 7, 2,&AT90USB8},
{ "90USB646", {0x96,0x82},256, 8,10, 3,&AT90PWM2}, // unsure pointer
{ "90USB1286", {0x97,0x82},512, 8,11, 3,&AT90PWM2}, // unsure pointer
{ ""}
};
#undef K
Detected encoding: ANSI (CP1252) | 4
|
|