doubao_chat/include_lib/driver/cpu/wl82/asm/adc_api.h

114 lines
3.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __ADC_API_H__
#define __ADC_API_H__
/**
* \name AD channel define
* \{
*/
#define AD_CH_PA07 (0x0)
#define AD_CH_PA08 (0x1)
#define AD_CH_PA10 (0x2)
#define AD_CH_PB01 (0x3)
#define AD_CH_PB06 (0x4)
#define AD_CH_PB07 (0x5)
#define AD_CH_PC00 (0x6)
#define AD_CH_PC01 (0x7)
#define AD_CH_PC09 (0x8)
#define AD_CH_PC10 (0x9)
#define AD_CH_PH00 (0xa)
#define AD_CH_PH03 (0xb)
#define AD_CH_DM (0xc)
#define AD_CH_DP (0xd)
#define AD_CH_RTC (0xe)
#define AD_CH_PMU (0xf)
#define AD_CH_SYSPLL (0xf)
#define AD_CH_AUDIO (0xf)
#define AD_CH_WIFI (0xf)
#define AD_CH_CTMU (0xf)
#define ADC_PMU_CH_VBG (0x0<<16)
#define ADC_PMU_CH_VDC14 (0x1<<16)
#define ADC_PMU_CH_SYSVDD (0x2<<16)
#define ADC_PMU_CH_VTEMP (0x3<<16)
#define ADC_PMU_CH_PROGF (0x4<<16)
#define ADC_PMU_CH_VBAT (0x5<<16) //1/4 vbat
#define ADC_PMU_CH_LDO5V (0x6<<16) //1/4 LDO 5V
#define ADC_PMU_CH_WVDD (0x7<<16)
#define AD_CH_LDOREF AD_CH_PMU_VBG
#define AD_CH_PMU_VBG (AD_CH_PMU | ADC_PMU_CH_VBG)
#define AD_CH_VDC14 (AD_CH_PMU | ADC_PMU_CH_VDC14)
#define AD_CH_SYSVDD (AD_CH_PMU | ADC_PMU_CH_SYSVDD)
#define AD_CH_VTEMP (AD_CH_PMU | ADC_PMU_CH_VTEMP)
#define AD_CH_VBAT (AD_CH_PMU | ADC_PMU_CH_VBAT)
#define AD_CH_LDO5V (AD_CH_PMU | ADC_PMU_CH_LDO5V)
#define AD_CH_WVDD (AD_CH_PMU | ADC_PMU_CH_WVDD)
#define AD_AUDIO_VCM ((BIT(0))<<16)
#define AD_AUDIO_VOUTL ((BIT(1))<<16)
#define AD_AUDIO_VOUTR ((BIT(2))<<16)
#define AD_AUDIO_DACVDD ((BIT(3))<<16)
#define AD_CH_VCM (AD_CH_AUDIO | AD_AUDIO_VCM)
#define AD_CH_VOUTL (AD_CH_AUDIO | AD_AUDIO_VOUTL)
#define AD_CH_VOUTR (AD_CH_AUDIO | AD_AUDIO_VOUTR)
#define AD_CH_DACVDD (AD_CH_AUDIO | AD_AUDIO_DACVDD)
#define ADC_MAX_CH 10
/* \} name */
/**
* @brief adc_init, adc初始化
*/
void adc_init(void);
/**
* @brief adc_pmu_detect_en, 使能adc通道
* @param ch : ADC通道号, AD_CH_PA07
*/
void adc_pmu_detect_en(u32 ch);
/**
* @brief adc_vdc14_save, 存储vdc14的值
*/
void adc_vdc14_save(void);
/**
* @brief adc_vdc14_restore, 再次存储vdc14的值,避免被中途修改
*/
void adc_vdc14_restore(void);
/**
* @brief adc_get_value, 获取adc通道测得的数值(3.3*数值/1024)即得对应的电压值采用等待的方式采值,直到转换结束,才出来,即死等
* @param ch : ADC通道号, AD_CH_PA07
* @return 当前通道的AD值
*/
u32 adc_get_value(u32 ch);
/**
* @brief adc_add_sample_ch, 添加adc测试通道
* @param ch : ADC通道号
* @return 当前通道值
*/
u32 adc_add_sample_ch(u32 ch);
/**
* @brief adc_remove_sample_ch, 移除adc测试通道
* @param ch : ADC通道号
* @return 当前通道值
*/
u32 adc_remove_sample_ch(u32 ch);
/**
* @brief adc_get_voltage, 换算电压的公式函数, 获取adc通道电压值,如果测得与实际不符,则需留意芯片是否trim过,trim值是否正确。
* @param ch : ADC通道号
* @return 当前通道的电压值,单位mv
*/
u32 adc_get_voltage(u32 ch);
#endif