📄 avrisp.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 + -