Source file: /~heha/hs/avrpp.zip/src/devprop.cpp

/*--- 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
Wrong umlauts? - Assume file is ANSI (CP1252) encoded