Перейти к содержанию

АЦП STM32: время преобразования, частота, сопротивление источника

Задайте частоту шины, делитель АЦП и время выборки — калькулятор посчитает время одного преобразования и частоту выборок, проверит предел частоты АЦП и покажет, источник с каким сопротивлением успеет зарядить конденсатор выборки.

Исходные данные

Семейство
МГц

при сканировании

кОм

датчик или делитель, видимый с входа АЦП

Результат

Время преобразования
2,167 мкс
26 тактов: выборка 13,5 + 12,5
Частота преобразований
461,5 kspsодного канала подряд
Частота АЦП
12 МГцPCLK2 / 6, предел 14 МГц
Сопротивление источника, не больше
13,5 кОмдля ошибки меньше 1/4 младшего разряда 12 бит
Самая короткая выборка для источника
13,5 тактаисточник 10 кОм

Расчёт выполнен по формулам и данным из источников, приведённых на этой странице, и не заменяет проверку: параметры компонентов у разных производителей и даже партий различаются. Перед применением сверяйте результат с документацией на конкретные детали.

АЦП STM32 сначала заряжает внутренний конденсатор выборки от входа, затем последовательными приближениями переводит напряжение в код. Время выборки задаётся для каждого канала в регистрах SMPR, время самого преобразования зависит от разрядности.

Время преобразования

У STM32F1 (RM0008, раздел 11.6) одно преобразование длится время выборки плюс 12,5 такта АЦП, у STM32F4 (RM0090, поле RES; DS8626, таблица 67) — время выборки плюс по такту на бит разрядности:

Tconv=tS+12,5fADC (F1),Tconv=tS+NfADC (F4, N = 12, 10, 8, 6).T_\text{conv} = \frac{t_S + 12{,}5}{f_\text{ADC}}\ \text{(F1)}, \qquad T_\text{conv} = \frac{t_S + N}{f_\text{ADC}}\ \text{(F4, N = 12, 10, 8, 6)}.

Частота АЦП — частота шины APB2, делённая на 2, 4, 6 или 8 полем ADCPRE (у STM32F1 оно в RCC_CFGR, у STM32F4 — в ADC_CCR). Предел по даташиту: 14 МГц у STM32F103, 36 МГц у STM32F407 при питании VDDA от 2,4 В и 18 МГц ниже 2,4 В. При сканировании нескольких каналов каждый канал опрашивается во столько раз реже, сколько каналов в последовательности.

Сопротивление источника

За время выборки внутренний конденсатор C_ADC заряжается через сопротивление источника R_AIN и сопротивление ключа R_ADC. Чтобы ошибка была меньше четверти младшего разряда 12 бит, даташиты ограничивают сопротивление источника (DS5319 и DS8626, уравнение 1):

RAIN<kfADC⋅CADC⋅ln⁡214−RADC,R_\text{AIN} < \frac{k}{f_\text{ADC} \cdot C_\text{ADC} \cdot \ln 2^{14}} - R_\text{ADC},

где k — время выборки в тактах (у STM32F4 — минус 0,5 такта), C_ADC = 8 пФ и R_ADC = 1 кОм у STM32F103, 4 пФ и 6 кОм у STM32F407. Сверху оба даташита ограничивают R_AIN 50 кОм. Если источник выше этого предела, увеличьте время выборки, поставьте конденсатор у входа АЦП или буферный усилитель.

Поля регистров АЦП — время выборки SMPx, последовательности SQ, запуск от таймеров — разобраны на страницах регистров STM32F1 и STM32F4.

Частые вопросы

За сколько STM32F103 делает одно преобразование?

За время выборки плюс 12,5 такта АЦП. При наибольшей частоте 14 МГц и выборке 1,5 такта — 14 тактов, ровно 1 мкс, то есть до 1 миллиона преобразований в секунду (RM0008, раздел 11.6). Но 14 МГц получаются не от любой частоты шины: от 72 МГц делитель 6 даёт только 12 МГц.

Какое сопротивление источника допускает АЦП STM32F103?

Зависит от времени выборки: по таблице 48 даташита DS5319 при 14 МГц — 0,4 кОм при 1,5 такта, 11,4 кОм при 13,5 такта, 50 кОм при 55,5 такта и больше. Делитель напряжения на резисторах по 100 кОм видится с входа как 50 кОм — ему нужна выборка не короче 55,5 такта.

Как быстро работает АЦП STM32F407?

При 30 МГц и 12 битах одно преобразование занимает 15 тактов — 0,5 мкс, это 2 миллиона выборок в секунду (DS8626, таблица 67). На 6 битах — 9 тактов, 0,3 мкс. Чередуя два или три АЦП, можно получить до 3,75 и 6 Msps.

Источники

  1. STMicroelectronics. RM0008 Rev 21. Reference manual: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx — 11.6 — Tconv = время выборки + 12,5 такта, пример: 14 МГц и 1,5 такта — 1 мкс (эталон тестов); 11.12.4–5 — коды SMPx от 1,5 до 239,5 такта
  2. STMicroelectronics. DS5319 Rev 20. STM32F103x8, STM32F103xB datasheet — таблица 47 — f_ADC до 14 МГц, R_ADC до 1 кОм, C_ADC до 8 пФ, R_AIN до 50 кОм; уравнение 1 и таблица 48 — R_AIN max при 14 МГц для каждого времени выборки (эталон тестов)
  3. STMicroelectronics. RM0090 Rev 22. Reference manual: STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 — 13.13.2, поле RES: 12, 10, 8, 6 бит — 15, 13, 11, 9 тактов с самой короткой выборкой; коды SMPx от 3 до 480 тактов
  4. STMicroelectronics. DS8626 Rev 12. STM32F405xx, STM32F407xx datasheet — таблица 67 — f_ADC до 36 МГц при VDDA 2,4–3,6 В и до 18 МГц при 1,8–2,4 В, R_ADC до 6 кОм, C_ADC 4 пФ, время преобразования при 30 МГц от 0,50 до 16,40 мкс, 2 Msps (эталон тестов); уравнение 1 — R_AIN

Где пригодится

Встроить калькулятор на свой сайт

Скопируйте код и вставьте его в HTML страницы, статьи или вики. Виджет бесплатный, без рекламы, счётчиков и cookie. Условие одно — ссылка на GAW под рамкой остаётся на месте. Подробнее о виджетах

<iframe src="https://gaw.ru/embed/stm32-adc/" title="АЦП STM32: время преобразования, частота, сопротивление источника" width="100%" height="640" style="border:1px solid #e3e5e9;border-radius:8px" loading="lazy" allow="clipboard-write"></iframe>
<p style="margin:6px 0 0;font-size:14px">Калькулятор: <a href="https://gaw.ru/tools/stm32-adc/">АЦП STM32: время преобразования, частота, сопротивление источника</a> — GAW.ru</p>
Автоподстройка высоты рамки

Если сайт разрешает скрипты, добавьте этот код один раз в любом месте страницы: рамка будет менять высоту вместе с результатом расчёта.

<script>window.addEventListener("message",function(e){if(e.origin!=="https://gaw.ru"||!e.data||e.data.type!=="gaw:embed-height")return;var f=document.querySelectorAll('iframe[src^="https://gaw.ru/embed/"]');for(var i=0;i<f.length;i++)if(f[i].contentWindow===e.source)f[i].style.height=e.data.height+"px"})</script>

Обновлено .

Нашли ошибку в расчёте?