Я использую АЦП1 STM32F303 в режиме запуска по времени.TIM1 используется для генерации события обновления и используется в качестве источника триггера для ADC1.Время запуска поступает с частотой 1 кГц.Я хочу проверить общую конверсию АЦП.В справочном руководстве F3 упоминается, что максимальная тактовая частота АЦП может быть установлена на 72 МГц.АЦП установлен в асинхронный тактовый режим, а частота ФАПЧ 72 МГц (RCC_ADC12PLLCLK_Div1) настроена.Время выборки: 7,5 циклов Разрешение: 12 бит
Расчетное общее время преобразования: время выборки + время преобразования = 7,5 циклов + 12,5 циклов (для 12 бит) = 20 тактовых циклов АЦП.1) Для асинхронных часов АЦП = 72 МГц: ((1/72000000) * 20 циклов) = 0,2777 мкс
Попытка проверить то же самое в осциллографе: я включаю вывод GPIO на высоком уровне в прерывании обновления, и то же самоеВывод GPIO сделан низким в прерывании ADC EOC (проверка флага EOC).Время включения вывода GPIO: 1,48 мкс;
2) Для АЦП асинхронные часы = 12 МГц: ((1/12000000) * 20 циклов) = 1,666 мкс. Но в объеме он показывает 2,08 мкс.
Предложите, как проверить время преобразования .?
RCC_ADCCLKConfig(RCC_ADC12PLLCLK_Div6);//RCC_ADC12PLLCLK_Div1
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ADC12, ENABLE);
ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_CommonInitStructure.ADC_Clock = ADC_Clock_AsynClkMode;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
ADC_CommonInitStructure.ADC_DMAMode = ADC_DMAMode_OneShot;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = 0;
ADC_InitStructure.ADC_ContinuousConvMode = ADC_ContinuousConvMode_Disable;
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 1, ADC_SampleTime_7Cycles5);
Расчетное время преобразования и фактическое время, проверенные в области видимости, варьируются.