1、在原有的电机控制算法中ADC双重同步模式(同时测量两相电流)下,增加一路测量线电压采样。
考虑到stm32f407有三个ADC,故配置ADC3来采样线电压,但是在实验过程会导致ADC12无法正常使用。
仔细分析:原来在ADC3配置会修改多个ADC的运行方式,双重模式下为ADC_DualMode_RegSimult,但假如ADC3配置后,独立模式ADC_Mode_Independent会使得之前ADC12配置的ADC_DualMode_RegSimult模式失败,从而导致AD12无法使用。因此,考虑利用stm32f407的三重模式来实现同时测量两相电流和线电压。
2、参考了STM32F4xx_StdPeriph_Examples中ADC的ADC_TripleModeInterleaved,为交替模式;为保证电机控制算法中电流为同步采样,应为同步模式;
之后参考STM32论坛的帖子:http://www.stmcu.org/module/forum/thread-603974-1-2.html
3、具体实现:
其中在ADC配置中,有几个需要特别注意:
ADC_CommonInitStructure.ADC_Mode = ADC_TripleMode_RegSimult;// 三重同步模式
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4;// 4分频,84/4=21M<36M
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_1;//
//ADC_DMAAccessMode 模式的选择,参考手册,选择模式1
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//
ADC_CommonInit(&ADC_CommonInitStructure);
该博客讲述了在STM32F407中,如何配置三重ADC同步模式来同时测量两相电流和线电压。作者在尝试增加线电压采样时遇到了ADC12无法正常工作的问题,原因是ADC3的独立模式影响了原有的双重同步模式。通过研究STM32F4xx的示例代码和论坛帖子,作者发现需要设置ADC_TripleMode_RegSimult进行三重同步,并注意ADC的分频、DMA访问模式和双采样延迟设置,最终成功实现了所需功能。
3052





