VREFBUF (буфер опорного напряжения)
Точность АЦП STM32 упирается в опорное напряжение VREF+. Обычно его берут с питания VDDA или внешнего источника, но в STM32H7 и ряде других семейств есть свой стабилизированный источник — буфер опорного напряжения VREFBUF.
Обновлено Редакция GAW
VREFBUF (voltage reference buffer) — встроенный в STM32 буфер опорного напряжения. По RM0433 (разд. 27.1) его выход служит опорой для встроенных АЦП и ЦАП, а через вывод VREF+ — и для внешних схем. Это альтернатива внешнему источнику опорного напряжения и опоре от питания VDDA.
Напряжения (биты VRS)
| VRS | Напряжение | Примечание |
|---|---|---|
| 000 | около 2,5 В | |
| 001 | около 2,048 В | удобно для АЦП: 0,5 мВ на код при 12 битах (наш расчёт) |
| 010 | около 1,8 В | |
| 011 | около 1,5 В | с АЦП и ЦАП не совместимо |
Минимальное VDDA зависит от выбранного напряжения и указано в даташите. Менять VRS можно только при выключенном буфере.
Четыре режима (табл. 235)
| ENVR | HIZ | Режим |
|---|---|---|
| 0 | 0 | буфер выключен, VREF+ притянут к VSSA |
| 0 | 1 | внешнее опорное напряжение (после сброса), VREF+ — вход |
| 1 | 0 | внутреннее опорное, VREF+ подключён к выходу буфера |
| 1 | 1 | удержание: напряжение на VREF+ держит внешний конденсатор |
После включения ждут флаг VRR — выход достиг заданного уровня.
Чем отличается от VREFINT
VREFINT — внутренний источник, который меряют каналом АЦП, чтобы вычислить фактическое опорное напряжение. VREFBUF — буфер, который само опорное напряжение VREF+ задаёт, а вместе с ним и шкалу АЦП. Погрешность опорного напряжения и её влияние на измерение можно оценить в калькуляторе погрешности ИОН; настройка АЦП — в статье «АЦП STM32».
Частые вопросы
Какое напряжение выдаёт VREFBUF?
Одно из четырёх по битам VRS: около 2,5 В, 2,048 В, 1,8 В или 1,5 В (RM0433). Значение 1,5 В с АЦП и ЦАП не совместимо — оно только для внешних схем. Минимальное напряжение VDDA для каждого значения указано в даташите конкретного микроконтроллера: буфер не может выдать больше, чем позволяет питание.
Как включить VREFBUF?
Пока буфер выключен (ENVR = 0), выбрать напряжение битами VRS, затем установить ENVR = 1 и сбросить HIZ, чтобы вывод VREF+ подключился к выходу буфера, и дождаться флага VRR — выход достиг заданного уровня. После сброса регистр в режиме внешнего опорного напряжения: буфер выключен, VREF+ — вход.
Можно ли подавать внешнее опорное напряжение при включённом VREFBUF?
Нет: в режиме внутреннего опорного напряжения вывод VREF+ соединён с выходом буфера, и внешний источник будет с ним бороться. Для внешнего ИОН оставляют режим по умолчанию — ENVR = 0, HIZ = 1, тогда VREF+ работает как вход.
Источники
- STMicroelectronics. RM0433: STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — разд. 27.1: буфер опорного напряжения может служить опорой для встроенных АЦП и ЦАП и для внешних компонентов через вывод VREF+; разд. 27.2: четыре напряжения битами VRS — 000 около 2,5 В, 001 около 2,048 В, 010 около 1,8 В, 011 около 1,5 В (с АЦП и ЦАП не совместимо); минимальное VDDA зависит от VRS — по даташиту; табл. 235: ENVR = 0, HIZ = 0 — буфер выключен, VREF+ притянут к VSSA; 0/1 — внешнее опорное (по умолчанию), VREF+ — вход; 1/0 — внутреннее опорное, VREF+ подключён к выходу буфера; 1/1 — режим удержания: напряжение на VREF+ держит внешний конденсатор, контроль VRR выключен; после включения (ENVR = 1, HIZ = 0) ждать флаг VRR; разд. 27.3.1: VREFBUF_CSR, сброс 0x0000 0002, VRS менять только при ENVR = 0; разд. 6.4 — VREF+ — внешнее опорное для АЦП и ЦАП; при включённом буфере VREF+ и VREF− формирует он
- STMicroelectronics. CMSIS device header stm32h743xx.h, cmsis-device-h7 v1.10.7 (GitHub, Apache-2.0) — VREFBUF, поля VREFBUF_CSR_ENVR, VREFBUF_CSR_HIZ, VREFBUF_CSR_VRR, VREFBUF_CSR_VRS, регистр подстройки VREFBUF_CCR_TRIM
Нашли ошибку?
Смотрите также
- VREFINT (внутреннее опорное напряжение)Внутренний источник около 1,2 В на канале АЦП STM32 для расчёта VDDA
- Источник опорного напряженияИОН: точное напряжение для АЦП, ЦАП и стабилизаторов
- VDDA и VSSA (аналоговое питание)Отдельное питание аналоговых блоков STM32 и его земля
- АЦП STM32Группы каналов, режимы, триггеры, DMA, калибровка, датчик температуры, точность
- ЦАПКод в напряжение: формула, опорное, разрядность, INL и DNL, примеры
- STM32H7Cortex-M7 от 280 до 600 МГц, двухъядерные H745/H747 — линейки, память, загрузка и распиновки
- Погрешность опорного напряженияИОН: все ошибки в ppm, мВ и LSB, сумма и RSS