188 lines
5.8 KiB
C
188 lines
5.8 KiB
C
//
|
|
// Created by CFIF on 14.12.23.
|
|
//
|
|
#include <stdbool.h>
|
|
#include "fc7xxx_driver_port.h"
|
|
#include "Adcs.h"
|
|
|
|
|
|
tAdcs ADCS;
|
|
|
|
void Bsp_ADC0_HandleResult(const uint32_t *const pBuffer) {
|
|
Get_ADC_Result(ADCS.adc_0_IO.env);
|
|
}
|
|
|
|
void Bsp_ADC1_HandleResult(const uint32_t *const pBuffer) {
|
|
Get_ADC_Result(ADCS.adc_1_IO.env);
|
|
}
|
|
|
|
|
|
#define ADC0_CHN_NUM_EN 5
|
|
static uint32_t s_aAdc0ResultBuf[ADC0_CHN_NUM_EN] = {0U};
|
|
static const ADC_ChannelCfgType s_aChannelsAdc0[ADC0_CHN_NUM_EN] =
|
|
{
|
|
{
|
|
.eChannel = ADC_CHANNEL_1, //PE5: IGN_ANS_PE5_ADC0_1 (Напряжение зажигание ДЕЛИТЕЛЬ)
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
{
|
|
.eChannel = ADC_CHANNEL_25, //PE6: Pressure_DIAG_PE6_ADC_0_25 (Напряжение датчика давления ДЕЛИТЕЛЬ)
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
// -------------------------------------- 2 УСТРОЙСТВА ----------------------------------------
|
|
{
|
|
.eChannel = ADC_CHANNEL_28, //PA16: Вывод диагностики BTS5180_2EKA_FrontRearIncarMotor и BTS5180_2EKA_ShutOFFValveFrontRear (0 - Канал 0; 1 - Канал 1)
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
{
|
|
.eChannel = ADC_CHANNEL_27, //PE18: Вывод диагностики BTS5180_2EKA_TwoWayValveAndReservePowerSupply (0 - Канал 0; 1 - Канал 1)
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
{
|
|
.eChannel = ADC_CHANNEL_30, //PC7: Вывод диагностики BTS5180_2EKA_2xChannelPTCPower (0 - Канал 0; 1 - Канал 1)
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
}
|
|
|
|
};
|
|
|
|
|
|
#define ADC1_CHN_NUM_EN 6
|
|
static uint32_t s_aAdc1ResultBuf[ADC1_CHN_NUM_EN] = {0U};
|
|
static const ADC_ChannelCfgType s_aChannelsAdc1[ADC1_CHN_NUM_EN] =
|
|
{
|
|
{
|
|
.eChannel = ADC_CHANNEL_0, //PE10: Напряжение VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB (ДЕЛИТЕЛЬ)
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
{
|
|
.eChannel = ADC_CHANNEL_1, //PD0: tVN7008AJ_DIAG_RearLINActuatorPowerDriverC (ДЕЛИТЕЛЬ)
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
|
|
{
|
|
.eChannel = ADC_CHANNEL_2, //PE15: PBATT_CHECK_PE15_ADC1_2 (Напряжение сети ДЕЛИТЕЛЬ)
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
{
|
|
.eChannel = ADC_CHANNEL_3, //PA8: VN7008AJ_FrontLINActuatorPowerDriverAB
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
{
|
|
.eChannel = ADC_CHANNEL_4, //PE11: tVN7008AJ_RearLINActuatorPowerDriverC
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
},
|
|
|
|
{
|
|
.eChannel = ADC_CHANNEL_23, //PE19: BTS5120_2EKA_ShutoffValvePowerTXV
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
/*
|
|
#define ADC0_CHN_NUM_EN 1
|
|
static uint32_t s_aAdc0ResultBuf[ADC0_CHN_NUM_EN] = {0U};
|
|
static const ADC_ChannelCfgType s_aChannelsAdc0[ADC0_CHN_NUM_EN] =
|
|
{
|
|
{
|
|
.eChannel = ADC_CHANNEL_0,
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
}
|
|
};
|
|
|
|
#define ADC1_CHN_NUM_EN 1
|
|
static uint32_t s_aAdc1ResultBuf[ADC1_CHN_NUM_EN] = {0U};
|
|
static const ADC_ChannelCfgType s_aChannelsAdc1[ADC1_CHN_NUM_EN] =
|
|
{
|
|
{
|
|
.eChannel = ADC_CHANNEL_25,
|
|
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
|
|
}
|
|
};
|
|
*/
|
|
|
|
void Adcs_Init() {
|
|
tAdcs *env = &ADCS;
|
|
|
|
PORT_InitType tInitStruct = {0};
|
|
|
|
// PTA25: ADC0_SE0
|
|
tInitStruct.u32PortPins = PORT_PIN_25;
|
|
tInitStruct.uPortPinMux.u32PortPinMode = PORTA_25_ADC0_SE0;
|
|
tInitStruct.bPullEn = false;
|
|
tInitStruct.ePullSel = PORT_PULL_UP;
|
|
PORT_InitPins(PORT_A, &tInitStruct);
|
|
|
|
// PTD15: ADC0_SE11
|
|
// tInitStruct.u32PortPins = PORT_PIN_15;
|
|
// tInitStruct.uPortPinMux.u32PortPinMode = PORTD_15_ADC0_SE11_CMP0_IN1;
|
|
// tInitStruct.bPullEn = false;
|
|
// tInitStruct.ePullSel = PORT_PULL_UP;
|
|
// PORT_InitPins(PORT_D, &tInitStruct);
|
|
|
|
ADC_Initial(
|
|
&env->adc_0,
|
|
ADC_INSTANCE_0, // ADC_INSTANCE_0, ADC_INSTANCE_1
|
|
|
|
DMA_CHANNEL_4,
|
|
|
|
DMA4_IRQn,
|
|
0xFF,
|
|
DMA4_IRQn,
|
|
|
|
s_aAdc0ResultBuf,
|
|
|
|
ADC0_CHN_NUM_EN,
|
|
(ADC_ChannelCfgType *) s_aChannelsAdc0,
|
|
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
Bsp_ADC0_HandleResult
|
|
);
|
|
|
|
env->adc_0_IO = vAdcGetIo(&env->adc_0);
|
|
|
|
// PTB9: ADC1_SE25
|
|
tInitStruct.u32PortPins = PORT_PIN_9;
|
|
tInitStruct.uPortPinMux.u32PortPinMode = PORTB_9_ADC1_SE25;
|
|
tInitStruct.bPullEn = false;
|
|
tInitStruct.ePullSel = PORT_PULL_UP;
|
|
PORT_InitPins(PORT_B, &tInitStruct);
|
|
|
|
ADC_Initial(
|
|
&env->adc_1,
|
|
ADC_INSTANCE_1, // ADC_INSTANCE_0, ADC_INSTANCE_1
|
|
|
|
DMA_CHANNEL_3,
|
|
|
|
DMA3_IRQn,
|
|
0xFF,
|
|
DMA3_IRQn,
|
|
|
|
s_aAdc1ResultBuf,
|
|
|
|
ADC1_CHN_NUM_EN,
|
|
(ADC_ChannelCfgType *) s_aChannelsAdc1,
|
|
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
Bsp_ADC1_HandleResult
|
|
);
|
|
|
|
env->adc_1_IO = vAdcGetIo(&env->adc_1);
|
|
}
|