chg-stn-motherboard-ti-mcu/Core/Source/ivec_mcal_adc_dma.c

233 lines
7.3 KiB
C

///* USER CODE BEGIN Header */
///**
// ******************************************************************************
// * @file adc_dma.c
// * @brief This file provides code for the configuration
// * of the ADC instances.
// * @data 1-feb-2024
// * @Author Vecmocon Technology
// ******************************************************************************
// */
///* USER CODE END Header */
//
///* Includes ------------------------------------------------------------------*/
//#include <Core\Include\ivec_mcal_adc_dma.h>
//
//static volatile bool b_AdcInitFlag = 0; /*!< ADC initialization flag */
//static volatile bool b_AdcStartFlag =0; /*!< ADC start - stop flag */
//static volatile bool b_DmaFlag =0; /*!< DMA initialization flag */
//static volatile bool b_DmaStart =0; /*!< DMA initialization flag */
//
///**
// * @brief Configuration for ADC12_0 clock.
// */
//static const DL_ADC12_ClockConfig gADC12_1ClockConfig = {
// .clockSel = DL_ADC12_CLOCK_SYSOSC,
// .divideRatio = DL_ADC12_CLOCK_DIVIDE_1,
// .freqRange = DL_ADC12_CLOCK_FREQ_RANGE_24_TO_32,
//};
//
//
///**
// * @brief Configuration for DMA.
// */
//static const DL_DMA_Config gDMA_CH0Config = {
// .transferMode = DL_DMA_SINGLE_TRANSFER_MODE,
// .extendedMode = DL_DMA_NORMAL_MODE,
// .destIncrement = DL_DMA_ADDR_UNCHANGED,
// .srcIncrement = DL_DMA_ADDR_UNCHANGED,
// .destWidth = DL_DMA_WIDTH_WORD,
// .srcWidth = DL_DMA_WIDTH_WORD,
// .trigger = ADC12_1_INST_DMA_TRIGGER,
// .triggerType = DL_DMA_TRIGGER_TYPE_EXTERNAL,
//};
//
//
//
///**
// * @brief Initlization ADC with DMA
// * @note Interruptions enabled in this function
// * @param adc_inst ADC handle
// * @retval IVEC MCAL status
// */
//IVEC_McalStatus_e xMCAL_AdcInit(ADC12_Regs* const adc_inst)
//{
// assert(adc_inst == ADC1);
// if(b_AdcInitFlag == 0)
// {
// DL_ADC12_setClockConfig(ADC1, (DL_ADC12_ClockConfig *) &gADC12_1ClockConfig);
// DL_ADC12_initSingleSample(ADC1, DL_ADC12_REPEAT_MODE_ENABLED, DL_ADC12_SAMPLING_SOURCE_AUTO, DL_ADC12_TRIG_SRC_SOFTWARE,DL_ADC12_SAMP_CONV_RES_12_BIT, DL_ADC12_SAMP_CONV_DATA_FORMAT_UNSIGNED);
// DL_ADC12_configConversionMem(ADC1, DL_ADC12_MEM_IDX_0,
// ADC12_MEMCTL_CHANSEL_CHAN_0, ADC12_MEMCTL_VRSEL_VDDA, ADC12_MEMCTL_STIME_SEL_SCOMP0, ADC12_MEMCTL_AVGEN_DISABLE,
// ADC12_MEMCTL_BCSEN_DISABLE, ADC12_MEMCTL_TRIG_AUTO_NEXT, ADC12_MEMCTL_WINCOMP_DISABLE);
// DL_ADC12_enableFIFO(ADC1);
// DL_ADC12_setPowerDownMode(ADC1,ADC12_CTL0_PWRDN_MANUAL);
// DL_ADC12_setSampleTime0(ADC1,dmaSAMPLETIME_u16);
// DL_ADC12_enableDMA(ADC1);
// DL_ADC12_setDMASamplesCnt(ADC1,dmaSAMPLECNT_u8);
// DL_ADC12_enableDMATrigger(ADC1,(ADC12_DMA_TRIG_IMASK_MEMRESIFG7_SET));
// DL_ADC12_clearInterruptStatus(ADC1,(ADC12_CPU_INT_IMASK_DMADONE_SET));
// DL_ADC12_enableInterrupt(ADC1,(ADC12_CPU_INT_IMASK_DMADONE_SET));
// DL_ADC12_enableConversions(ADC1);
// b_AdcInitFlag =1;
// return IVEC_MCAL_STATUS_SUCCESS;
// }
// else
// return IVEC_MCAL_STATUS_INIT_FAIL;
//}
//
//
///**
// * @brief De-Initialize the ADC peripheral to their default reset values
// * @param adc_inst ADC handle
// * @retval IVEC MCAL status
// */
//IVEC_McalStatus_e xMCAL_AdcDeInit(ADC12_Regs* const adc_inst)
//{
// assert(adc_inst == ADC1);
// if(b_AdcInitFlag == 1 )
// {
// b_AdcInitFlag = 0;
// return IVEC_MCAL_STATUS_SUCCESS;
// }
// else
// return IVEC_MCAL_STATUS_INIT_FAIL;
//}
//
///**
// * @brief Enable ADC, start conversion of regular group.
// * @note Interruptions enabled in this function: None.
// * @param adc_inst ADC handle
// * @retval IVEC MCAL status
// */
//IVEC_McalStatus_e xMCAL_AdcStart(ADC12_Regs* const adc_inst)
//{
// assert(adc_inst == ADC1);
// if (b_AdcStartFlag == 0)
// {
// DL_ADC12_startConversion(adc_inst);
// b_AdcStartFlag =1;
// return IVEC_MCAL_STATUS_SUCCESS;
// }
// else
// return IVEC_MCAL_STATUS_INIT_FAIL;
//}
//
///**
// * @brief Stop ADC conversion of regular group.
// * @param adc_inst ADC handle
// * @retval IVEC MCAL status
// */
//IVEC_McalStatus_e xMCAL_AdcStop(ADC12_Regs* const adc_inst)
//{
// assert(adc_inst == ADC1);
// if (b_AdcStartFlag == 1)
// {
// DL_ADC12_stopConversion(adc_inst);
// b_AdcStartFlag = 0;
// return IVEC_MCAL_STATUS_SUCCESS;
// }
// else
// return IVEC_MCAL_STATUS_INIT_FAIL;
//}
//
//
///**
// * @brief Initlization of DMA for ADC
// * @note Interruptions enabled in this function
// * @param adc_inst ADC handle
// * @retval IVEC MCAL status
// */
//IVEC_McalStatus_e xMCAL_DmaInit(void)
//{
// if (b_DmaFlag==0)
// {
// DL_DMA_initChannel(DMA, dmaCHID_u8 , (DL_DMA_Config *) &gDMA_CH0Config);
// DL_DMA_clearInterruptStatus(DMA, DMA_CPU_INT_IMASK_DMACH0_SET);
// DL_DMA_enableInterrupt(DMA, DMA_CPU_INT_IMASK_DMACH0_SET);
// DL_DMA_clearInterruptStatus(DMA, DMA_CPU_INT_IMASK_PREIRQCH0_SET);
// DL_DMA_Full_Ch_setEarlyInterruptThreshold(DMA, dmaCHID_u8, DL_DMA_EARLY_INTERRUPT_THRESHOLD_HALF);
// DL_DMA_enableInterrupt(DMA, DMA_CPU_INT_IMASK_PREIRQCH0_SET);
// b_DmaFlag=1;
// return IVEC_MCAL_STATUS_SUCCESS;
// }
// else
// return IVEC_MCAL_STATUS_INIT_FAIL;
//
//}
//
///**
// * @brief De-Initialize the DMA to their default reset values
// * @param adc_inst ADC handle
// * @retval IVEC MCAL status
// */
//IVEC_McalStatus_e xMCAL_DmaDeInit(void)
//{
// if(b_DmaFlag == 1 )
// {
// b_DmaFlag=0;
// return IVEC_MCAL_STATUS_SUCCESS;
// }
// else
// return IVEC_MCAL_STATUS_INIT_FAIL;
//}
//
///**
// * @brief Enable DMA, start transfer from ADC to DMA of regular group.
// * @note Interruptions enabled in this function: None.
// * @param u8Channel use to pass the DMA channel
// * @param p_u16adcDma use to get the ADC raw
// * @retval IVEC MCAL status
// */
//IVEC_McalStatus_e xMCAL_DmaStart(const uint8_t u8channel ,uint16_t* p_u16adcDma)
//{
// assert(b_DmaStart == 0);
// static uint32_t l_u32Data[2];
// DL_DMA_setSrcAddr(DMA, dmaCHID_u8, (uint32_t)DL_ADC12_getFIFOAddress(ADC1));
// DL_DMA_setDestAddr(DMA, dmaCHID_u8, (uint32_t)&l_u32Data[0]);
// DL_DMA_setTransferSize(DMA, dmaCHID_u8, u8channel);
// DL_DMA_enableChannel(DMA, dmaCHID_u8);
// DL_ADC12_enableDMA(ADC1);
// *p_u16adcDma = l_u32Data[0];
// return IVEC_MCAL_STATUS_SUCCESS;
//}
//
///**
// * @brief Function use to set the DMA channel
// * @param u8Channel use to pass the DMA channel
// * @retval IVEC MCAL status
// */
//IVEC_McalStatus_e xMCAL_DmaStop(void)
//{
// if(b_DmaStart == 0)
// {
// b_DmaStart =1;
// return IVEC_MCAL_STATUS_SUCCESS;
// }
// else
// return IVEC_MCAL_STATUS_INIT_FAIL;
//}
//
///**
// * @brief ADC call back function
// * @note Interruptions enabled in this function
// */
//void _prv_adccallback()
//{
// switch (DL_ADC12_getPendingInterrupt(ADC1))
// {
// case DL_ADC12_IIDX_DMA_DONE:
// break;
// default:
// break;
// }
//}
///**
// * @brief ADC IRQ handler
// */
//void ADC1_IRQHandler()
//{
// _prv_adccallback();
//}
//