278 lines
6.6 KiB
C
278 lines
6.6 KiB
C
/*---------------------------------------------------------------------
|
|
REG3310.H
|
|
|
|
Header file for TP3310 microcontroller.
|
|
|
|
Initial Released by zheng, 2023-12-01.
|
|
|
|
Thinkplus Semiconductor co., ltd, All Rights Reserved!
|
|
----------------------------------------------------------------------*/
|
|
#ifndef __REG3310_H__ //给客户的头文件名里的所有内部项目编号需改成实际产品编号!!!
|
|
#define __REG3310_H__
|
|
|
|
//------------------------ Ext SFR Registers -------------------------
|
|
/*------ GPIO/MFP Registers ------*/
|
|
#define P0_PU 0x00
|
|
#define P0_PD 0x01
|
|
#define P0_OD 0x02
|
|
#define P0_DRV 0x03
|
|
#define P0_IE 0x05
|
|
#define P0_OE 0x06
|
|
#define P1_PU 0x07
|
|
#define P1_PD 0x08
|
|
#define P1_OD 0x09
|
|
#define P1_IE 0x0C
|
|
#define P1_OE 0x0D
|
|
#define MFP_CTL0 0x0E
|
|
#define MFP_CTL1 0x0F
|
|
#define GPIO_TEST 0x9B
|
|
|
|
/*----- IRQ Enable Registers ----*/
|
|
#define IRQ_EN0 0x14 // Abnormal interrupt enable
|
|
#define IRQ_EN1 0x15 // EXTI interrupt enable 0
|
|
#define IRQ_EN2 0x16 // EXTI interrupt enable 1
|
|
#define IRQ_EN3 0x17 // VOL/R LOADIN/ON interrupt enable
|
|
#define IRQ_EN4 0x18 // VOL/R Recharge and IOFF interrupt enable
|
|
#define IRQ_EN7 0x1B // KEY/PWM interrupt enable
|
|
#define IRQ_EN9 0x1D // Charger interrupt enable
|
|
#define IRQ_EN10 0x1E // VBUS/COMP/HALL/STBTMR/ADC_DATA_RDY interrupt enable
|
|
|
|
/*--- Wakeup Enable Registers ---*/
|
|
#define WKUP_EN0 0x21 // BOOST/HALL/KEY/VBUS Wakeup enable
|
|
#define WKUP_EN1 0x22 // EXTI and VOL/R Short Wakeup enable
|
|
#define WKUP_EN3 0x24 // BAT_LOW/TMR/VOX LOADIN/ON Wakeup enable
|
|
|
|
/*-------- ADC Registers --------*/
|
|
#define ADC_CTL0 0x29
|
|
#define ADC00 0x2D
|
|
#define ADCCS_CTL0 0x4F
|
|
|
|
/*---- OTP KEY Registers ----*/
|
|
#define OTP_KEY 0x8F
|
|
|
|
/*------ VOL/R Registers -----*/
|
|
#define VOL_IOFF_TRIM 0x69
|
|
#define VOX_CON0 0x6A
|
|
#define VOX_CON1 0x6B
|
|
#define VOX_CON2 0x6C
|
|
#define VOR_IOFF_TRIM 0x6D
|
|
#define ST_VOX 0x6E
|
|
|
|
/*------ CHG Registers ------*/
|
|
#define REG_CHG0 0x70
|
|
#define REG_CHG3 0x9D
|
|
#define OTP_CHG0 0x71
|
|
#define OTP_CHG1 0x72
|
|
|
|
/*----- BOOST Registers -----*/
|
|
#define BST_CTL0 0x78
|
|
#define BST_CTL1 0x79
|
|
|
|
/*------ PMU Registers ------*/
|
|
#define PMU_CTL0 0x80
|
|
#define PMU_CTL1 0x81
|
|
#define PMU_CTL3 0x83
|
|
#define PMU_CTL6 0x86
|
|
#define PMU_CTL7 0x87
|
|
#define PMU_CTL8 0x88
|
|
#define PMU_CTL9 0x89
|
|
|
|
/*------ CMU Registers ------*/
|
|
#define HOSC_CTL 0x8B
|
|
|
|
/*------ Misc Registers -----*/
|
|
#define CHIP_ID 0x8D
|
|
#define CHIP_VER 0x8E
|
|
|
|
|
|
//------------------------- SFR Registers ----------------------------
|
|
/*--- BYTE Register ---*/
|
|
sfr P0 = 0x80;
|
|
sfr P1 = 0x90;
|
|
sfr P2 = 0xA0;
|
|
sfr P3 = 0xB0;
|
|
sfr PSW = 0xD0;
|
|
sfr ACC = 0xE0;
|
|
sfr B = 0xF0;
|
|
|
|
sfr SP = 0x81;
|
|
sfr DPL = 0x82;
|
|
sfr DPH = 0x83;
|
|
sfr DPL1 = 0x84;
|
|
sfr DPH1 = 0x85;
|
|
sfr WDTREL = 0x86;
|
|
sfr PCON = 0x87;
|
|
sfr TCON = 0x88;
|
|
sfr TMOD = 0x89;
|
|
sfr TL0 = 0x8A;
|
|
sfr TL1 = 0x8B;
|
|
sfr TH0 = 0x8C;
|
|
sfr TH1 = 0x8D;
|
|
sfr CKCON = 0x8E;
|
|
sfr DPSEL = 0x92;
|
|
sfr ASKCTL0 = 0x96;
|
|
sfr ASKDATA = 0x97;
|
|
sfr S0CON = 0x98;
|
|
sfr S0BUF = 0x99;
|
|
sfr IEN2 = 0x9A;
|
|
sfr S1CON = 0x9B;
|
|
sfr S1BUF = 0x9C;
|
|
sfr S1RELL = 0x9D;
|
|
|
|
sfr16 ADC_DAT = 0xA1;
|
|
sfr ADC_DATL = 0xA1;
|
|
sfr ADC_DATH = 0xA2;
|
|
sfr ADC_OFFSET = 0xA3;
|
|
sfr ADC_CTL1 = 0xA5;
|
|
|
|
sfr IEN0 = 0xA8;
|
|
sfr IP0 = 0xA9;
|
|
sfr S0RELL = 0xAA;
|
|
|
|
sfr REG_CHG1 = 0xB1;
|
|
sfr REG_CHG2 = 0xB2;
|
|
sfr CHG_CTL = 0xB3;
|
|
|
|
sfr BST_EN = 0xB5;
|
|
|
|
sfr VOX_CTL0 = 0xB7;
|
|
|
|
sfr IEN1 = 0xB8;
|
|
sfr IP1 = 0xB9;
|
|
sfr S0RELH = 0xBA;
|
|
sfr S1RELH = 0xBB;
|
|
sfr IRCON2 = 0xBF;
|
|
sfr IRCON = 0xC0;
|
|
sfr CCEN = 0xC1;
|
|
sfr CCL1 = 0xC2;
|
|
sfr CCH1 = 0xC3;
|
|
sfr CCL2 = 0xC4;
|
|
sfr CCH2 = 0xC5;
|
|
sfr CCL3 = 0xC6;
|
|
sfr CCH3 = 0xC7;
|
|
sfr T2CON = 0xC8;
|
|
sfr CRCL = 0xCA;
|
|
sfr CRCH = 0xCB;
|
|
sfr TL2 = 0xCC;
|
|
sfr TH2 = 0xCD;
|
|
|
|
sfr CLKPRE = 0xD2;
|
|
sfr RSTCON = 0xD3;
|
|
sfr KEY_CTL = 0xD7;
|
|
|
|
sfr ADCON = 0xD8;
|
|
|
|
sfr RST_FLAG = 0xE1;
|
|
sfr CHIP_STA0 = 0xE2;
|
|
sfr CHIP_STA1 = 0xE3;
|
|
sfr CHIP_STA2 = 0xE4;
|
|
sfr CHIP_STA3 = 0xE5;
|
|
sfr CHIP_STA4 = 0xE6;
|
|
|
|
sfr IRQ_FLAG0 = 0xE8;
|
|
sfr IRQ_FLAG1 = 0xE9;
|
|
sfr IRQ_FLAG2 = 0xEA;
|
|
sfr IRQ_FLAG3 = 0xEB;
|
|
sfr IRQ_FLAG4 = 0xEC;
|
|
sfr IRQ_FLAG7 = 0xEF;
|
|
sfr IRQ_FLAG9 = 0xF2;
|
|
sfr IRQ_FLAG10 = 0xF3;
|
|
|
|
sfr SRST = 0xF7;
|
|
|
|
sfr WKUP_FLAG0 = 0xF6;
|
|
sfr WKUP_FLAG1 = 0xF8;
|
|
sfr WKUP_FLAG3 = 0xFA;
|
|
|
|
sfr SFRADDR = 0xFE;
|
|
sfr SFRDATA = 0xFF;
|
|
|
|
/*--- BIT Register ---*/
|
|
/* PSW */
|
|
sbit CY = 0xD7;
|
|
sbit AC = 0xD6;
|
|
sbit F0 = 0xD5;
|
|
sbit RS1 = 0xD4;
|
|
sbit RS0 = 0xD3;
|
|
sbit OV = 0xD2;
|
|
sbit P = 0xD0;
|
|
|
|
/* TCON */
|
|
sbit TF1 = 0x8F;
|
|
sbit TR1 = 0x8E;
|
|
sbit TF0 = 0x8D;
|
|
sbit TR0 = 0x8C;
|
|
sbit IE1 = 0x8B;
|
|
sbit IT1 = 0x8A;
|
|
sbit IE0 = 0x89;
|
|
sbit IT0 = 0x88;
|
|
|
|
/* T2CON */
|
|
sbit T2PS = 0xCF;
|
|
sbit I3FR = 0xCE;
|
|
sbit I2FR = 0xCD;
|
|
sbit T2R1 = 0xCC;
|
|
sbit T2R0 = 0xCB;
|
|
sbit T2CM = 0xCA;
|
|
sbit T2I1 = 0xC9;
|
|
sbit T2I0 = 0xC8;
|
|
|
|
/* S0CON */
|
|
sbit SM0 = 0x9F;
|
|
sbit SM1 = 0x9E;
|
|
sbit SM20 = 0x9D;
|
|
sbit REN0 = 0x9C;
|
|
sbit TB80 = 0x9B;
|
|
sbit RB80 = 0x9A;
|
|
sbit TI0 = 0x99;
|
|
sbit RI0 = 0x98;
|
|
|
|
/* IEN0 */
|
|
sbit EAL = 0xAF;
|
|
sbit WDT = 0xAE;
|
|
sbit ET2 = 0xAD;
|
|
sbit ES0 = 0xAC;
|
|
sbit ET1 = 0xAB;
|
|
sbit EX1 = 0xAA;
|
|
sbit ET0 = 0xA9;
|
|
sbit EX0 = 0xA8;
|
|
|
|
/* IEN1 */
|
|
sbit EXEN2 = 0xBF;
|
|
sbit SWDT = 0xBE;
|
|
sbit EX6 = 0xBD;
|
|
sbit EX5 = 0xBC;
|
|
sbit EX4 = 0xBB;
|
|
sbit EX3 = 0xBA;
|
|
sbit EX2 = 0xB9;
|
|
sbit EX7 = 0xB8;
|
|
|
|
/* IRCON */
|
|
sbit EXF2 = 0xC7;
|
|
sbit TF2 = 0xC6;
|
|
sbit IEX6 = 0xC5;
|
|
sbit IEX5 = 0xC4;
|
|
sbit IEX4 = 0xC3;
|
|
sbit IEX3 = 0xC2;
|
|
sbit IEX2 = 0xC1;
|
|
sbit IADC = 0xC0;
|
|
|
|
/* ADCON */
|
|
sbit BD = 0xDF;
|
|
|
|
/* P0 */
|
|
sbit P00 = P0^0;
|
|
sbit P01 = P0^1;
|
|
sbit P02 = P0^2;
|
|
sbit P03 = P0^3;
|
|
sbit P04 = P0^4;
|
|
sbit P05 = P0^5;
|
|
sbit P06 = P0^6;
|
|
sbit P07 = P0^7;
|
|
|
|
/* P1 */
|
|
sbit P10 = P1^0;
|
|
|
|
#endif
|
|
|