SY8835_For_Demo_Ourself/UsrInc/adc/adc.h

187 lines
5.1 KiB
C

/*
******************************************************************************
*
* @file adc.h
* @brief adc module
* @ic sy8835
*
* @version 1.0
* @date 2024/11/01 09: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 build this file
******************************************************************************
*/
#ifndef __ADC_H__
#define __ADC_H__
/*_____ I N C L U D E S ____________________________________________________*/
#include "define.h"
#if ADC_ENABLE
/******************************************************************************\
Macro definitions
\******************************************************************************/
#define VREF 1000
/******************************************************************************\
Variables definitions
\******************************************************************************/
extern uint8_t ADC_Chn_Num;
extern uint16_t Vbat_Adc;
extern int16 g_Vpmu_Adc;
extern int16 g_Vntc_Adc;
extern uint8_t g_PMU_ADC_Chn;
extern uint16_t g_pmu_Adc_Ivol;
extern uint16_t g_pmu_Adc_Vin;
extern uint16_t g_pmu_Adc_Vpmid;
extern uint16_t g_pmu_Adc_Vor;
extern uint16_t g_pmu_Adc_Vol;
extern uint16_t g_pmu_Adc_Vdd;
extern uint16_t g_pmu_Adc_Ivor;
typedef enum {
ADC_PMU_CH0 = 0x01,
ADC_NTC_CH1,
ADC_BJT_CH2,
ADC_P13_CH3,
ADC_VREF_CH4,
}ADC_CHANNELS_E;
typedef enum {
pmu_ADC_IVOL = 0x00,
pmu_ADC_VBAT, //vbat的2分压
pmu_ADC_VIN, //vin的8分压
pmu_ADC_VPMID, //PMID的4分压
pmu_ADC_VOR, //vor的4分压
pmu_ADC_VOL, //vol的4分压
pmu_ADC_VDD, //vdd的2分压
pmu_ADC_IVOR,
pmu_ADC_MAX,
}PMU_ADC_CHANNELS_E;
/* ADC 控制寄存器0 -- ADC_Ctrl0 */
#define ADC_EN_Pos (7U)
#define ADC_EN_Pos_Msk (0x1UL << ADC_EN_Pos)
#define ADC_EN ADC_EN_Pos_Msk
#define ADC_AVG_NUM_Pos (4U)
#define ADC_AVG_NUM_4_Pos_Msk (0x0UL << ADC_AVG_NUM_Pos)
#define ADC_AVG_NUM_4 ADC_AVG_NUM_4_Pos_Msk
#define ADC_AVG_NUM_8_Pos_Msk (0x1UL << ADC_AVG_NUM_Pos)
#define ADC_AVG_NUM_8 ADC_AVG_NUM_8_Pos_Msk
#define ADC_AVG_NUM_16_Pos_Msk (0x2UL << ADC_AVG_NUM_Pos)
#define ADC_AVG_NUM_16 ADC_AVG_NUM_16_Pos_Msk
#define ADC_AVG_NUM_32_Pos_Msk (0x3UL << ADC_AVG_NUM_Pos)
#define ADC_AVG_NUM_32 ADC_AVG_NUM_32_Pos_Msk
#define ADC_AVG_NUM_64_Pos_Msk (0x4UL << ADC_AVG_NUM_Pos)
#define ADC_AVG_NUM_64 ADC_AVG_NUM_64_Pos_Msk
#define ADC_SINGLE_EN_Pos (3U)
#define ADC_SINGLE_EN_Pos_Msk (0x1UL << ADC_SINGLE_EN_Pos)
#define ADC_SINGLE_EN ADC_SINGLE_EN_Pos_Msk
#define ADC_CLK_DIV_Pos (2U)
#define ADC_CLK_DIV_16_Pos_Msk (0x0UL << ADC_CLK_DIV_Pos)
#define ADC_CLK_DIV_16 ADC_CLK_DIV_16_Pos_Msk
#define ADC_CLK_DIV_24_Pos_Msk (0x1UL << ADC_CLK_DIV_Pos)
#define ADC_CLK_DIV_24 ADC_CLK_DIV_24_Pos_Msk
#define ADC_CLK_DIV_32_Pos_Msk (0x2UL << ADC_CLK_DIV_Pos)
#define ADC_CLK_DIV_32 ADC_CLK_DIV_32_Pos_Msk
#define ADC_CLK_DIV_48_Pos_Msk (0x3UL << ADC_CLK_DIV_Pos)
#define ADC_CLK_DIV_48 ADC_CLK_DIV_48_Pos_Msk
#define ADC_CLK_DIV_64_Pos_Msk (0x4UL << ADC_CLK_DIV_Pos)
#define ADC_CLK_DIV_64 ADC_CLK_DIV_64_Pos_Msk
#define ADC_CLK_DIV_96_Pos_Msk (0x5UL << ADC_CLK_DIV_Pos)
#define ADC_CLK_DIV_96 ADC_CLK_DIV_96_Pos_Msk
#define ADC_CLK_DIV_128_Pos_Msk (0x6UL << ADC_CLK_DIV_Pos)
#define ADC_CLK_DIV_128 ADC_CLK_DIV_128_Pos_Msk
#define ADC_CLK_DIV_160_Pos_Msk (0x7UL << ADC_CLK_DIV_Pos)
#define ADC_CLK_DIV_160 ADC_CLK_DIV_160_Pos_Msk
/* ADC控制寄存器1 -- ADC_Ctrl1 */
#define ADC_START_Pos (7U)
#define ADC_START_Pos_Msk (0x1UL << ADC_START_Pos)
#define ADC_START ADC_START_Pos_Msk
#define ADC_CHN_4_Pos (4U)
#define ADC_CHN_4_Pos_Msk (0x1UL << ADC_CHN_4_Pos)
#define ADC_CHN_4 ADC_CHN_4_Pos_Msk
#define ADC_CHN_3_Pos (3U)
#define ADC_CHN_3_Pos_Msk (0x1UL << ADC_CHN_3_Pos)
#define ADC_CHN_3 ADC_CHN_3_Pos_Msk
#define ADC_CHN_2_Pos (2U)
#define ADC_CHN_2_Pos_Msk (0x1UL << ADC_CHN_2_Pos)
#define ADC_CHN_2 ADC_CHN_2_Pos_Msk
#define ADC_CHN_1_Pos (1U)
#define ADC_CHN_1_Pos_Msk (0x1UL << ADC_CHN_1_Pos)
#define ADC_CHN_1 ADC_CHN_1_Pos_Msk
#define ADC_CHN_0_Pos (0U)
#define ADC_CHN_0_Pos_Msk (0x1UL << ADC_CHN_0_Pos)
#define ADC_CHN_0 ADC_CHN_0_Pos_Msk
/******************************************************************************\
Functions definitions
\******************************************************************************/
extern void Adc_Init(void);
extern void PMU_ADC_Chn_Data(PMU_ADC_CHANNELS_E pmu_Adc_Chn);
extern void ADC_NTC_Data(void);
#endif
#endif