2023-10-06 18:47:05 +08:00
|
|
|
|
#ifndef ADC_CFG_H_
|
|
|
|
|
#define ADC_CFG_H_
|
|
|
|
|
#include "base/define.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define AN_UA_CH ADC_Channel_12 //AD2
|
|
|
|
|
#define AN_MAL_CH ADC_Channel_13 //AD2
|
|
|
|
|
#define RAD_01_CH ADC_Channel_2 //AD2
|
|
|
|
|
#define AN_CAP_AD_CH ADC_Channel_15 //AD2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define VCC_2V5_CH ADC_Channel_1 //AD1
|
|
|
|
|
#define VCC_1V25_CH ADC_Channel_3 //AD1
|
|
|
|
|
#define V_LA_M_CH ADC_Channel_6 //AD1
|
|
|
|
|
#define V_LA_H_CH ADC_Channel_7 //AD1
|
|
|
|
|
#define AD_OUTA_CH ADC_Channel_10 //AD1
|
|
|
|
|
#define AD_OUTB_CH ADC_Channel_11 //AD1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define ADC_CURR_DE ADC2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define AD_SCAN_COUNT 16
|
|
|
|
|
#define AD_SCAN_SAMPLE 8
|
|
|
|
|
|
|
|
|
|
#define FIREBUS_ADC_BUF_LEN 160
|
|
|
|
|
extern volatile uint16_t FireBus_ADC_Buf[FIREBUS_ADC_BUF_LEN];
|
|
|
|
|
|
|
|
|
|
#define ADC_SPEED_SLOW ADC_SampleTime_239Cycles5
|
|
|
|
|
#define ADC_SPEED_MIDLE ADC_SampleTime_71Cycles5
|
|
|
|
|
#define ADC_SPEED_HIGH ADC_SampleTime_13Cycles5
|
|
|
|
|
#define ADC_SPEED_HFAST ADC_SampleTime_7Cycles5
|
|
|
|
|
void AdcDef_Init(void);
|
|
|
|
|
void StartADC2Channel(uint32_t channel, uint32_t speed);
|
|
|
|
|
#define ADC_CurChnnelSet(channel,speed) StartADC2Channel(channel,speed)
|
|
|
|
|
//桥丝电阻测量通道
|
|
|
|
|
#define ADC_ResistorChannelSet(speed) StartADC2Channel(RAD_01_CH,speed);
|
|
|
|
|
//电容电压测量
|
|
|
|
|
#define ADC_CAPVolChannelSet(speed) StartADC2Channel(AN_CAP_AD_CH,speed);
|
|
|
|
|
|
|
|
|
|
void StartADC1Channel(uint32_t channel);
|
|
|
|
|
void StartADC2ChannelV2(uint32_t channel);
|
|
|
|
|
uint32_t GetADC2_Fast(void);
|
|
|
|
|
//电流采集通道
|
|
|
|
|
#define ADC_GetCurADCFast() GetADC2_Fast()
|
|
|
|
|
//桥丝电阻采集通道
|
|
|
|
|
#define ADC_GetResistorADCFast() GetADC2_Fast()
|
|
|
|
|
//电容电压采集通道
|
|
|
|
|
#define ADC_GetCAPVolADCFast() GetADC2_Fast()
|
|
|
|
|
|
|
|
|
|
uint32_t GetADC1_Fast(void);
|
|
|
|
|
|
|
|
|
|
uint32_t GetADC2_Value(uint32_t channel);
|
2023-10-31 18:12:21 +08:00
|
|
|
|
#define ADC_GetCurADC(channel) GetADC2_Value(channel)
|
2023-10-06 18:47:05 +08:00
|
|
|
|
|
|
|
|
|
void GetADC1_Value(uint32_t channel,uint16_t* buf,uint16_t len);
|
|
|
|
|
float Get_Temperature(void);
|
|
|
|
|
/*
|
|
|
|
|
@brief 稳定获取总线电流
|
|
|
|
|
@rtv 返回电流值 0.1uA
|
|
|
|
|
*/
|
|
|
|
|
uint16_t ADC_Comm1p6mA_EndCur(void);
|
|
|
|
|
/*
|
|
|
|
|
@brief 稳定获取总线电流
|
|
|
|
|
*/
|
|
|
|
|
uint16_t ADC_GetBaseStableCur(void);
|
|
|
|
|
/*
|
|
|
|
|
@brief 电流降到指定电流下的时间
|
|
|
|
|
@param 采样超时
|
|
|
|
|
@param end_adv 检测启动和结束判线
|
|
|
|
|
@param 最大电流ad
|
|
|
|
|
@param 电流下降过程中最大向上波动
|
|
|
|
|
@rtv 时间采集值0.1ms
|
|
|
|
|
*/
|
|
|
|
|
uint16_t AD_GetChgEnergy(uint16_t sample_timeout, uint16_t end_adv,uint16_t* max_cul,uint16_t *shake_adv);
|
|
|
|
|
/*
|
|
|
|
|
@brief 电流降到指定电流下的时间
|
|
|
|
|
@param 执行时间 单位0.1ms
|
|
|
|
|
@rtv 最大波动AD值
|
|
|
|
|
*/
|
|
|
|
|
uint16_t AD_CurMonitor(uint32_t us_times);
|
|
|
|
|
/*
|
|
|
|
|
使用该函数,对ADC触发一次采样,到用该函数前,应调用一次StartADC0Channel(ch)
|
|
|
|
|
*/
|
|
|
|
|
uint16_t GetADC_Fast(ADC_TypeDef* adc_periph);
|
|
|
|
|
|
|
|
|
|
/*获取桥丝电阻*/
|
|
|
|
|
void AD_SampleResistor(uint16_t* channels_re);
|
|
|
|
|
/*测量电容电压*/
|
|
|
|
|
uint16_t AD_SampleCap(uint16_t delay);
|
2023-10-31 18:12:21 +08:00
|
|
|
|
/*
|
|
|
|
|
@brief 获取总线电流上升时间
|
|
|
|
|
@param0 采样判线AD值
|
|
|
|
|
@param1 采样超时 单位0.01ms
|
|
|
|
|
@rtv 等待时间
|
|
|
|
|
*/
|
|
|
|
|
uint16_t AD_GetBusCurUp(uint16_t ad_line ,uint16_t time_out);
|
2024-02-03 16:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void adc_start(ADC_TypeDef *adc);
|
|
|
|
|
uint16_t adc_get_value(ADC_TypeDef *adc);
|
|
|
|
|
|
|
|
|
|
|
2023-10-06 18:47:05 +08:00
|
|
|
|
#endif
|