stm32f103 Частота дискретизации АЦП
Я установил временные циклы образца АЦП здесь:
ADC_RegularChannelConfig(ADC1, ADC_Channel_17, 1, ADC_SampleTime_71Cycles5);
Как рассчитать частоту дискретизации АЦП из того, что в stm32f103?
2 ответа
Вы не предоставили достаточно информации, чтобы указать точное число. Но вот что вы должны знать. Вы выбрали время выборки 71,5 тактов АЦП. Часы АЦП генерируются PCLK2 через прескалер ADC. Прескалер ADC находится в регистре RCC_CFGR. Например, если PCLK2 составляет 72 МГц, а прескалер ADC - 6, тактовая частота АЦП равна 12 МГц. И время выборки составляет 71,5 цикла, что соответствует 71,5/12 ~ 6us.
Время выборки для каждого канала можно рассчитать из ADC CLK, как описано в разделе "Программируемое время выборки по каналам" справочного руководства:
АЦП производит выборку входного напряжения для ряда циклов ADC_CLK, которые можно изменить с помощью битов SMP[2:0] в регистрах ADC_SMPR1 и ADC_SMPR2. Каждый канал может быть выбран с разным временем выборки. Общее время преобразования рассчитывается следующим образом: Tconv = время выборки + 12,5 цикла. Пример: с ADCCLK = 14 МГц и временем выборки 1,5 цикла: Tconv = 1,5 + 12,5 = 14 циклов = 1 мкс
В режиме сканирования частота дискретизации для одного АЦП составляет:
1 / (сумма Tconv для каждого включенного канала)
Чтобы установить "конкретное" время выборки, вы можете использовать преобразование внешнего триггера с событием обновления таймера в качестве триггера.