123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358 |
- /**
- ******************************************************************************
- * File Name : ADC.h
- * Description : This file provides code for the configuration
- * of the ADC instances.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2022 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under Ultimate Liberty license
- * SLA0044, the "License"; You may not use this file except in compliance with
- * the License. You may obtain a copy of the License at:
- * www.st.com/SLA0044
- *
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef __adc_H
- #define __adc_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "main.h"
- /* USER CODE BEGIN Includes */
- #include <math.h>
- /* USER CODE END Includes */
- extern ADC_HandleTypeDef hadc1;
- extern ADC_HandleTypeDef hadc2;
- extern ADC_HandleTypeDef hadc3;
- /* USER CODE BEGIN Private defines */
- #define ADC1_CHANEL_COUNT 1
- #define ADC1_SAMPLE_COUNT 1000
- #define ADC2_CHANEL_COUNT 2
- #define ADC2_SAMPLE_COUNT 384
- #define ADC3_CHANEL_COUNT 10
- #define ADC3_SAMPLE_COUNT 180
- #define LIMIT_MOVE_FILTER 8
- #define CURRENT_LIMIT_MOVE_FILTER 4
- #define VOLTAGE_LIMIT_MOVE_FILTER 8
- typedef struct{
- uint16_t idx_put;
- uint32_t buffer[LIMIT_MOVE_FILTER];
- uint32_t value;
- }MOVE_AVG_FILTER;
- /* USER CODE END Private defines */
- void MX_ADC1_Init(void);
- void MX_ADC2_Init(void);
- void MX_ADC3_Init(void);
- /* USER CODE BEGIN Prototypes */
- extern uint8_t filter_move_avg(MOVE_AVG_FILTER *data, uint32_t value);
- extern uint8_t Current_filter_move_avg(MOVE_AVG_FILTER *data, uint32_t value) ;
- extern uint8_t Voltage_filter_move_avg(MOVE_AVG_FILTER *data, uint32_t value) ;
- #ifdef MODIFY_CAL_MALLOC
- void CalMalloc(float** pBuf, u16 Len, u16* pLastLen);
- #endif
- //extern uint16_t vRms_cal(uint16_t *data, uint16_t length);
- extern uint16_t cRms_cal(uint16_t *data, uint16_t length);
- extern uint16_t GFRms_cal(uint16_t *data, uint16_t length);
- extern uint16_t avg_cal(uint16_t *data, uint16_t length);
- #ifdef FUNC_TEMP_SENSOR_WITH_NEG_VALUE
- extern int16_t getTemperature(uint16_t adc_raw);
- #ifdef FUNC_AX48_NACS_TEMP_SENSOR_COMPENSATION_AND_MODIFY_FORMULA_20240522
- extern int16_t getTemperature_NACS(uint16_t adc_raw);
- #endif
- #else //FUNC_TEMP_SENSOR_WITH_NEG_VALUE
- extern uint16_t getTemperature(uint16_t adc_raw);
- #endif //FUNC_TEMP_SENSOR_WITH_NEG_VALUE
- extern uint16_t vRms_cal2(uint16_t *data, uint16_t length) ;
- //extern uint16_t cRms_cal2(uint16_t *data, uint16_t length) ;
- extern uint16_t RlyVmax_cal(uint16_t *data, uint16_t length) ;
- extern uint16_t avg_v_cal(uint16_t *data, uint16_t length) ;
- extern uint32_t ADC1_Buffer[ADC1_CHANEL_COUNT*ADC1_SAMPLE_COUNT];
- extern uint32_t ADC2_Buffer[ADC2_CHANEL_COUNT*ADC2_SAMPLE_COUNT];
- extern uint16_t ADC2_Buffer_Each[ADC2_CHANEL_COUNT][ADC2_SAMPLE_COUNT];
- extern uint32_t ADC3_Buffer[ADC3_CHANEL_COUNT*ADC3_SAMPLE_COUNT];
- extern uint16_t ADC3_Buffer_Each[ADC3_CHANEL_COUNT][ADC3_SAMPLE_COUNT];
- extern uint8_t isDMAEnd_ADC1;
- extern uint8_t isDMAEnd_ADC2;
- extern uint8_t isDMAEnd_ADC3;
- #ifdef FUNC_AX80_ADD_4_TEMP_SENEOR
- #ifdef FUNC_AW48_ADD_6_TEMP_SENEOR
- #ifdef FUNC_AX48_NACS_ADD_6_TEMP_SENEOR
- #ifdef FUNC_AX80_NACS_ADD_6_TEMP_SENEOR
- struct ADC_VALUE{
- union
- {
- MOVE_AVG_FILTER ADC3_IN9_Voltage_L1;
- MOVE_AVG_FILTER ADC3_IN9_Relay1_Temp;
- MOVE_AVG_FILTER ADC3_IN9_AW48_T1; //T1
- MOVE_AVG_FILTER ADC3_IN9_AX48_NACS_T1; //T1
- MOVE_AVG_FILTER ADC3_IN9_AX80_NACS_T1; //T1
- };
- MOVE_AVG_FILTER ADC3_IN14_UL_1998;
- MOVE_AVG_FILTER ADC3_IN15_Temp;
- MOVE_AVG_FILTER ADC3_IN4_GMI_VL1;
- union
- {
- MOVE_AVG_FILTER ADC3_IN7_Current_L1;
- MOVE_AVG_FILTER ADC3_IN7_Input_N_L2_Temp;
- MOVE_AVG_FILTER ADC3_IN7_AW48_T4; //T4
- MOVE_AVG_FILTER ADC3_IN7_AX48_NACS_T4; //T4
- MOVE_AVG_FILTER ADC3_IN7_AX80_NACS_T4; //T4
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN5_Current_L2;
- MOVE_AVG_FILTER ADC3_IN5_AW48_T5; //T5
- MOVE_AVG_FILTER ADC3_IN5_AX48_NACS_T5; //T5
- MOVE_AVG_FILTER ADC3_IN5_AX80_NACS_T5; //T5
- };
- MOVE_AVG_FILTER ADC3_IN6_Gun_Detec;
- union
- {
- MOVE_AVG_FILTER ADC3_IN8_Voltage_L2;
- MOVE_AVG_FILTER ADC3_IN8_Relay2_Temp;
- MOVE_AVG_FILTER ADC3_IN8_AW48_T2; //T2
- MOVE_AVG_FILTER ADC3_IN8_AX48_NACS_T2; //T2
- MOVE_AVG_FILTER ADC3_IN8_AX80_NACS_T2; //T2
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN10_Voltage_L3;
- MOVE_AVG_FILTER ADC3_IN10_Input_L1_Temp;
- MOVE_AVG_FILTER ADC3_IN10_AW48_T3; //T3
- MOVE_AVG_FILTER ADC3_IN10_AX48_NACS_T3; //T3
- MOVE_AVG_FILTER ADC3_IN10_AX80_NACS_T3; //T3
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN11_Current_L3;
- MOVE_AVG_FILTER ADC3_IN11_AW48_T6; //T6
- MOVE_AVG_FILTER ADC3_IN11_AX48_NACS_T6; //T6
- MOVE_AVG_FILTER ADC3_IN11_AX80_NACS_T6; //T6
- };
- MOVE_AVG_FILTER ADC1_IN4_CP;
- MOVE_AVG_FILTER ADC2_IN5_Welding;
- MOVE_AVG_FILTER ADC2_IN6_GF;
- };
- #else //FUNC_AX80_NACS_ADD_6_TEMP_SENEOR
- struct ADC_VALUE{
- union
- {
- MOVE_AVG_FILTER ADC3_IN9_Voltage_L1;
- MOVE_AVG_FILTER ADC3_IN9_Relay1_Temp;
- MOVE_AVG_FILTER ADC3_IN9_AW48_T1; //T1
- MOVE_AVG_FILTER ADC3_IN9_AX48_NACS_T1; //T1
- };
- MOVE_AVG_FILTER ADC3_IN14_UL_1998;
- MOVE_AVG_FILTER ADC3_IN15_Temp;
- MOVE_AVG_FILTER ADC3_IN4_GMI_VL1;
- union
- {
- MOVE_AVG_FILTER ADC3_IN7_Current_L1;
- MOVE_AVG_FILTER ADC3_IN7_Input_N_L2_Temp;
- MOVE_AVG_FILTER ADC3_IN7_AW48_T4; //T4
- MOVE_AVG_FILTER ADC3_IN7_AX48_NACS_T4; //T4
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN5_Current_L2;
- MOVE_AVG_FILTER ADC3_IN5_AW48_T5; //T5
- MOVE_AVG_FILTER ADC3_IN5_AX48_NACS_T5; //T5
- };
- MOVE_AVG_FILTER ADC3_IN6_Gun_Detec;
- union
- {
- MOVE_AVG_FILTER ADC3_IN8_Voltage_L2;
- MOVE_AVG_FILTER ADC3_IN8_Relay2_Temp;
- MOVE_AVG_FILTER ADC3_IN8_AW48_T2; //T2
- MOVE_AVG_FILTER ADC3_IN8_AX48_NACS_T2; //T2
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN10_Voltage_L3;
- MOVE_AVG_FILTER ADC3_IN10_Input_L1_Temp;
- MOVE_AVG_FILTER ADC3_IN10_AW48_T3; //T3
- MOVE_AVG_FILTER ADC3_IN10_AX48_NACS_T3; //T3
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN11_Current_L3;
- MOVE_AVG_FILTER ADC3_IN11_AW48_T6; //T6
- MOVE_AVG_FILTER ADC3_IN11_AX48_NACS_T6; //T6
- };
- MOVE_AVG_FILTER ADC1_IN4_CP;
- MOVE_AVG_FILTER ADC2_IN5_Welding;
- MOVE_AVG_FILTER ADC2_IN6_GF;
- };
- #endif //FUNC_AX80_NACS_ADD_6_TEMP_SENEOR
- #else //FUNC_AX48_NACS_ADD_6_TEMP_SENEOR
- struct ADC_VALUE{
- union
- {
- MOVE_AVG_FILTER ADC3_IN9_Voltage_L1;
- MOVE_AVG_FILTER ADC3_IN9_Relay1_Temp;
- MOVE_AVG_FILTER ADC3_IN9_AW48_T1; //T1
- };
- MOVE_AVG_FILTER ADC3_IN14_UL_1998;
- MOVE_AVG_FILTER ADC3_IN15_Temp;
- MOVE_AVG_FILTER ADC3_IN4_GMI_VL1;
- union
- {
- MOVE_AVG_FILTER ADC3_IN7_Current_L1;
- MOVE_AVG_FILTER ADC3_IN7_Input_N_L2_Temp;
- MOVE_AVG_FILTER ADC3_IN7_AW48_T4; //T4
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN5_Current_L2;
- MOVE_AVG_FILTER ADC3_IN5_AW48_T5; //T5
- };
- MOVE_AVG_FILTER ADC3_IN6_Gun_Detec;
- union
- {
- MOVE_AVG_FILTER ADC3_IN8_Voltage_L2;
- MOVE_AVG_FILTER ADC3_IN8_Relay2_Temp;
- MOVE_AVG_FILTER ADC3_IN8_AW48_T2; //T2
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN10_Voltage_L3;
- MOVE_AVG_FILTER ADC3_IN10_Input_L1_Temp;
- MOVE_AVG_FILTER ADC3_IN10_AW48_T3; //T3
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN11_Current_L3;
- MOVE_AVG_FILTER ADC3_IN11_AW48_T6; //T6
- };
- MOVE_AVG_FILTER ADC1_IN4_CP;
- MOVE_AVG_FILTER ADC2_IN5_Welding;
- MOVE_AVG_FILTER ADC2_IN6_GF;
- };
- #endif //FUNC_AX48_NACS_ADD_6_TEMP_SENEOR
- #else //FUNC_AW48_ADD_6_TEMP_SENEOR
- struct ADC_VALUE{
- union
- {
- MOVE_AVG_FILTER ADC3_IN9_Voltage_L1;
- MOVE_AVG_FILTER ADC3_IN9_Relay1_Temp;
- };
- MOVE_AVG_FILTER ADC3_IN14_UL_1998;
- MOVE_AVG_FILTER ADC3_IN15_Temp;
- MOVE_AVG_FILTER ADC3_IN4_GMI_VL1;
- union
- {
- MOVE_AVG_FILTER ADC3_IN7_Current_L1;
- MOVE_AVG_FILTER ADC3_IN7_Input_N_L2_Temp;
- };
- MOVE_AVG_FILTER ADC3_IN5_Current_L2;
- MOVE_AVG_FILTER ADC3_IN6_Gun_Detec;
- union
- {
- MOVE_AVG_FILTER ADC3_IN8_Voltage_L2;
- MOVE_AVG_FILTER ADC3_IN8_Relay2_Temp;
- };
- union
- {
- MOVE_AVG_FILTER ADC3_IN10_Voltage_L3;
- MOVE_AVG_FILTER ADC3_IN10_Input_L1_Temp;
- };
- MOVE_AVG_FILTER ADC3_IN11_Current_L3;
- MOVE_AVG_FILTER ADC1_IN4_CP;
- MOVE_AVG_FILTER ADC2_IN5_Welding;
- MOVE_AVG_FILTER ADC2_IN6_GF;
- };
- #endif //FUNC_AW48_ADD_6_TEMP_SENEOR
- #else //FUNC_AX80_ADD_4_TEMP_SENEOR
- struct ADC_VALUE{
- MOVE_AVG_FILTER ADC3_IN9_Voltage_L1;
- MOVE_AVG_FILTER ADC3_IN14_UL_1998;
- MOVE_AVG_FILTER ADC3_IN15_Temp;
- MOVE_AVG_FILTER ADC3_IN4_GMI_VL1;
- MOVE_AVG_FILTER ADC3_IN7_Current_L1;
- MOVE_AVG_FILTER ADC3_IN5_Current_L2;
- MOVE_AVG_FILTER ADC3_IN6_Gun_Detec;
- MOVE_AVG_FILTER ADC3_IN8_Voltage_L2;
- MOVE_AVG_FILTER ADC3_IN10_Voltage_L3;
- MOVE_AVG_FILTER ADC3_IN11_Current_L3;
- MOVE_AVG_FILTER ADC1_IN4_CP;
- MOVE_AVG_FILTER ADC2_IN5_Welding;
- MOVE_AVG_FILTER ADC2_IN6_GF;
- };
- #endif //FUNC_AX80_ADD_4_TEMP_SENEOR
- extern struct ADC_VALUE adc_value;
- extern uint16_t ADCWDGHighThreshold;
- extern uint16_t ADCWDGLowThreshold;
- extern uint8_t is60Hz;
- /* USER CODE END Prototypes */
- #ifdef __cplusplus
- }
- #endif
- #endif /*__ adc_H */
- /**
- * @}
- */
- /**
- * @}
- */
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|