https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1127696/tda4vm-j721e
器件型号:TDA4VM如何将 ADC 配置为连续读取模式以进行电压监控?
我执行了以下配置方法
#define ADC1_CHANGE_NO 6.
静态 INT8_t AdcConfiguration()
{
adcStepConfig_t adcConfig;
uint32_t configStatus;
uint32_t baseAddress = CSL_MCU_ADC1_base;
BoardDiag initADC (baseAddress);
ADCEnableIntr (baseAddress、(ADC_IRQENABLE_Set_End_of 序列掩码|
ADC_IRQENABLE_SET_FIFO0_THR_MASK |
ADC_IRQENABLE_SET_FIFO0_O溢出 掩码|
ADC_IRQENABLE_SET_FIFO0_underflow_MASK |
ADC_IRQENABLE_SET_OUT_OUT_RANGE_MASK);
/*初始化 ADC 配置参数*/
adcConfig.mode = adc_operation_mode_continuous;
adcConfig.openDelay = 0x1U;
adcConfig.sampleDelay = 0x1U;
adcConfig.rangeCheckEnable = 0U;
adcConfig.Averaging = ADC_STEPCONFIG_Avering_16_SAMPLESAV;
adcConfig.fifoNum = ADC_FIFO_NUM_0;
configStatus = ADCSetStepParams (baseAddress、ADC1_CHANNEL、&adcConfig);
if (configStatus!= 0)
{
返回-1;
}
ADCStepIdTagEnable (baseAddress、true);
CONFIGStatus = ADCSetCPUFIFOThresholdLevel (baseAddress、
ADC_FIFO_NUM_0、40U);
if (configStatus!= 0)
{
返回-1;
}
返回0;
}
静态空 BoardDiag (initADC)(uint32_t baseAddress)
{
uint8_t 延迟;
/*清除所有中断状态*/
ADCCIntrlearStatus (baseAddress、ADC_INTR_STATUS_ALL);
/*为 AFE 加电*/
ADCPowerUp (baseAddress、true);
/*至少等待4us */
for (delay = 0;delay<4;delay++);
/*进行内部校准*/
ADCInit (baseAddress、false、0U、0U);
}