АЦП STM32F0 считывает неправильные значения

Я использую микроконтроллер STM32F030F4P6 для проекта. Этот микроконтроллер не имеет вывода Vref+ и использует вывод VDDA для аналого-цифрового преобразования, PLL и т. д. При создании прототипа схемы, которую я собираюсь использовать в своем проекте, я замкнул выводы VDDA и VDD вместе с конденсаторами 10 мкФ и 100 нФ на землю. Я даю точные 3,3 В на эти контакты с источником питания постоянного тока.

АЦП будет считывать напряжение с максимальной амплитудой 16,8 В. Поэтому я использовал делитель напряжения 10k/2k, чтобы привести это напряжение к логическому уровню. Поскольку я буду считывать в основном значения постоянного тока, я установил максимально возможное время выборки, которое составляет 239,5 тактового цикла adc — 17,1 микросекунды.

Проблема в том, что значения, которые я читаю, сильно отличаются от напряжений, которые я измеряю мультиметром. Например, АЦП показывает ~ 2,8 В, когда я измеряю 2,87 В.

Как вы знаете, эти микроконтроллеры имеют встроенный Vref, который вы можете прочитать через ADC_IN17. Когда я пытаюсь использовать это для калибровки моего АЦП, на этот раз измеренное напряжение ниже напряжения считывания. Например, напряжение чтения составляет 2,8 В, когда я измеряю 2,72 В.

Разрешение АЦП составляет 12 бит, а таблица точности АЦП показана ниже.

введите описание изображения здесь

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .

Ответы (2)

Для калибровки с внутренним VREF вам необходимо опубликовать свой код.

В случае без калибровки это может быть входной импеданс — входной импеданс АЦП MCU составляет около 50 кОм, что может быть слишком низким в случае вашего делителя — попробуйте буферизовать измеренное напряжение и измерить его снова.

Судя по комментариям, проблема связана с корреляцией между временем переключения MOSFET и временем считывания АЦП.

Шум 100 мВ, скорее всего, является периодическим шумом, и показания в фазе с шумом не могут привести к среднему значению, это похоже на усреднение sin(t) в 2*pi*n + c точках.

Фильтрация входа АЦП может помочь уменьшить корреляцию, если путь шума не индуктивный.

Если передискретизация с более высокой частотой, чем время переключения, невозможна, то, по крайней мере, может помочь перемещение точки выборки подальше от переходной области.