⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avrisp.h

📁 用ATMAGE16写的对AVR进行仿真和下载的程序
💻 H
字号:
#ifndef __AVRISP_H__
#define __AVRISP_H__



#include "Board.H"


/* Uncomment the following to save code space */
#define REMOVE_AVRPROG_SUPPORT
//#define REMOVE_BLOCK_SUPPORT
#define REMOVE_EEPROM_BYTE_SUPPORT
#define REMOVE_FLASH_BYTE_SUPPORT


/*--------------------------------------------------------------------------*/
/* revision information                                                     */
/*--------------------------------------------------------------------------*/
#define SW_MAJOR      '2'   //Major Software revision number   */
#define SW_MINOR      '3'   //Minot Software revision number   */
#define HW_MAJOR      '1'   //Major Hardware revision number   */
#define HW_MINOR      '0'   //Minot Hardware revision number   */


/*--------------------------------------------------------------------------*/
/* AVRPROG1.4能够识别的所有代码以及所对应的器件开始                         */
/*--------------------------------------------------------------------------*/
//Devices which support Page Programming.
//Dont forget the Page Size of different Devices.
#define M8515	0x3A	//ATmega8515
#define M8515B	0x3B	//ATmega8515 BOOT
#define M103	0x41	//ATmega103
#define M603	0x42	//ATmega603
#define M128	0x43	//ATmega128
#define M128B	0x44	//ATmega128 BOOT
#define M64		0x45	//ATmega64
#define M64B	0x46	//ATmega64 BOOT
#define TN26	0x5E	//ATtiny26
#define M161	0x60	//ATmega161
#define M161B	0x61	//ATmega161 BOOT
#define M163	0x64	//ATmega163
#define M83		0x65	//ATmega83		Obsolete
#define M163B	0x66	//ATmega163 BOOT
#define M83B	0x67	//ATmega83 BOOT	Obsolete
#define M8535	0x69	//ATmega8535
#define M32		0x72	//ATmega32
#define M32B	0x73	//ATmega32 BOOT
#define M16		0x74	//ATmega16
#define M16B	0x75	//ATmega16 BOOT
#define M8		0x76	//ATmega8
#define M8B		0x77	//ATmega8 BOOT
#define M169	0x78	//ATmega169
#define M169B	0x79	//ATmega169 BOOT

//Devices which don't support Page Programming. Byte write.
#define S1200A	0x10	//AT90S1200 rev.A
#define S1200B	0x11	//AT90S1200 rev.B
#define S1200C	0x12	//AT90S1200 rev.C
#define S1200	0x13	//AT90S1200
#define S2313	0x20	//AT90S2313
#define S4414	0x28	//AT90S4414
#define S4433	0x30	//AT90S4433
#define S2333	0x34	//AT90S2333
#define S8515	0x38	//AT90S8515
#define S2323	0x48	//AT90S2323
#define S2343	0x4C	//AT90S2343
#define TN11	0x50	//ATtiny11		Needs High Voltage Hardware and different Protocoll!
#define TN10	0x51	//ATtiny10
#define TN12	0x55	//ATtiny12
#define TN15	0x56	//ATtiny15
#define TN19	0x58	//ATtiny19		Obsolete
#define TN28	0x5C	//ATtiny28		Only supported in parallel Programming Mode!
#define S8535	0x68	//AT90S8535
#define S4434	0x6C	//AT90S4434
#define C8534	0x70	//AT90C8534		Parallel program only
#define C8544	0x71	//AT90C8544		Parallel program only
#define C1051	0x80	//AT89C1051
#define C2051	0x81	//AT89C2051
#define S8252	0x86	//AT89S8252		Bug in avrprog in Block write Mode!(See Note 18 for Workaround)
#define S53	0x87	//AT89S53		Bug in avrprog

/*--------------------------------------------------------------------------*/
/* AVRPROG1.4能够识别的所有代码以及所对应的器件结束                         */
/*--------------------------------------------------------------------------*/

//以下器件AVRPROG1.4不支持
//#define TN2313	0x23	//ATtiny2313
//#define M162		0x62	//ATmega162
//#define M162B		0x63	//ATmega162 BOOT
//#define M8535B	0x6A	//ATmega8535 BOOT


#define DEV_TWD0 (1 << 0)	//
#define DEV_TWD1 (2 << 0)	//mega(603/103)
#define DEV_TWD2 (3 << 0)	//mega603/103
#define DEV_TWD3 (4 << 0)	//mega
#define DEV_POLL (1 << 3)	//支持数据轮询
#define PAGE0X10 (1 << 4)	//支持页写入,页大小为0X10字
#define PAGE0X20 (1 << 5)	//支持页写入,页大小为0X20字
#define PAGE0X40 (1 << 6)	//支持页写入,页大小为0X40字
#define PAGE0X80 (1 << 7)	//支持页写入,页大小为0X80字

//twd=1: wait time for next writing
#define TWD_ERASE		20	//18ms
#define TWD_FLASH		10	//9ms
#define TWD_EEPROM		10	//9ms

//twd=2: wait time for next writing
#define TWD_ERASE_MEGA	32	//30ms
#define TWD_FLASH_MEGA	16	//15ms
#define TWD_EEPROM_MEGA	10	//3.8ms

//twd=3: mega603/103 wait time for next writing
#define TWD_ERASE_M103	120	//112ms
#define TWD_FLASH_M103	60	//56ms
#define TWD_EEPROM_M103	10	//9ms

//twd=4: new AVR wait time for next writing
#define TWD_ERASE_NEW	10	//9ms
#define TWD_FLASH_NEW	5	//4.5ms
#define TWD_EEPROM_NEW	10	//9ms


struct devinfo_t
{
	uint08 code;
	uint08 flag;
};

union address_t
{
	uint16 word;
	uint08 byte[2];
};

struct devtwd_t
{
	uint08 TwdFlash;
	uint08 TwdEprom;
};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -