/* ****************************************************************************** * * @file reg883x.h * @brief Header file for TP3315 microcontroller. * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 10:59:40 * @author Alex Xu * * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. * All Rights Reserved * * History: * Revision Date Author Desc * 1.0.0 2024/11/01 Alex Xu build this file ****************************************************************************** */ #ifndef _REG883X_H_ #define _REG883X_H_ //------------------------ Ext SFR Registers ------------------------- /*------ GPIO/MFP Registers ------*/ #define P0_PU 0x00 #define P0_PD 0x01 #define P0_OD 0x02 #define P0_DRV0 0x03 #define P0_IE 0x05 #define P0_OE 0x06 #define MFP_CTL0 0x0E #define MFP_CTL1 0x0F /*----- 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_EN8 0x1C // COMM 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 NTC_RES 0x2E #define ADCCS_CTL0 0x4F /*------ PWM Registers ------*/ #define PWM_CTL 0x53 #define PWM_PRE 0x54 #define PWM_REL 0x56 /*------- MTP Registers ------*/ #define OTP_CTL1 0x61 #define OTP_ADD0 0x62 #define OTP_ADD1 0x63 #define MTP_WDAT 0x64 #define MTP_OP0 0x65 #define MTP_RDAT 0x66 #define MTP_KEY 0x68 #define OTP_KEY 0x8F /*------ VOL/R Registers -----*/ #define IVOX 0x69 #define VOX_CON0 0x6A #define VOX_CON1 0x6B #define VOX_CON2 0x6C #define VOX_IADT 0x6D #define ST_VOX 0x6E #define COMM_CON 0x6F /*------ CHG Registers ------*/ #define REG_CHG0 0x70 #define OTP_CHG0 0x71 /*----- BOOST Registers -----*/ #define BST00 0x78 #define BST01 0x79 #define BST02 0x7A /*------ 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 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 S0CON = 0x98; sfr S0BUF = 0x99; sfr IEN2 = 0x9A; sfr S1CON = 0x9B; sfr S1BUF = 0x9C; sfr S1RELL = 0x9D; 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 IVOL_GAIN = 0xAB; sfr IVOR_GAIN = 0xAC; sfr IVOX_OFFSET = 0xAD; sfr REG_CHG1 = 0xB1; sfr REG_CHG2 = 0xB2; sfr CHG_CTL = 0xB3; sfr BST_EN = 0xB5; sfr VOX_CTL0 = 0xB7; sfr COMM_CTL = 0xBD; sfr COMM_DT = 0xBE; sfr IEN1 = 0xB8; sfr IP1 = 0xB9; sfr S0RELH = 0xBA; sfr S1RELH = 0xBB; sfr IRCON2 = 0xBF; sfr IRCON = 0xC0; sfr PWM0_CMP = 0xCE; sfr PWM1_CMP = 0xCF; sfr PWM2_CMP = 0xDE; sfr PWM3_CMP = 0xDF; sfr CLKPRE = 0xD2; sfr RSTCON = 0xD3; sfr STBTIM_CTL = 0xD4; sfr RST_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_FLAG8 = 0xF1; 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 F1 = 0xD1; 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; /* 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 ES0 = 0xAC; sbit ET1 = 0xAB; sbit EX1 = 0xAA; sbit ET0 = 0xA9; sbit EX0 = 0xA8; /* IEN1 */ sbit SWDT = 0xBE; sbit EX6 = 0xBD; sbit EX5 = 0xBC; sbit EX4 = 0xBB; sbit EX3 = 0xBA; sbit EX2 = 0xB9; sbit EX7 = 0xB8; /* IRCON */ sbit IEX6 = 0xC5; sbit IEX5 = 0xC4; sbit IEX4 = 0xC3; sbit IEX3 = 0xC2; sbit IEX2 = 0xC1; sbit IEX7 = 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; #endif