Точность ADC на плате STM32F1

weravech
Сб 23 апреля 2016 г., 7:39 утра
Привет, я использую канал ADC и мера, которые имеют низкую точность при сравнении с мультиметром, любой может посоветовать мне ? Спасибо.
Я в порядке с английским, извините.
Скриншот с 2016-04-23 14-08-47.png
Скриншот с 2016-04-23 14-08-47.PNG (21.98 киб) просмотрено 2424 раза

Пито
Сб 23 апреля 2016 г. 8:29 утра
Значение, которое вы видите, зависит от:
1. На напряжении на вашем регуляторе напряжения (он служит опорным напряжением ADC)
2. На формуле, которую вы используете для преобразования вывода ADC, для плавания
3. При ошибке преобразователя ADC (см. DataSheet)
4. на часовой частоте АЦП
5. На сопротивлении источника напряжения
6. При температуре
7. на уровне шума.
Как конвертировать 12 -битный выход АЦП в поплавок? Покажите нам формулу.
В случае, если ваша формула преобразования использует фактический VDD (вы точно измеряете) в качестве VREF, а сам расчет в порядке, я ожидаю, что макс +/- 8 мВ разница против случайности.

Rogerclark
Сб 23 апреля 2016 г., 9:33 утра
Когда вы в последний раз получали многометровый многометровый?
Я сомневаюсь, что ваш измеритель Fluke неточен, но измерение до 10 мВ, вероятно, не гарантируется, если его совершенно новое.

Проблема в том, что вы должны калибровать значения ADC по известной ссылке.

Что еще хуже, вам нужно будет запустить свой MCU из калиброванного предложения, так как значение АЦП является долю аналогового эталонного напряжения, а на большинстве дешевых STM32 это просто связано с 3.3V Supply, который поступает от какого -то дешевого линейного регулятора.

Вероятно, лучшее, что вы можете достичь, - это определить, насколько точным и стабильным является ваше аналоговое опорное напряжение (для различных входных напряжений), затем откалибруйте ваше напряжение дисплея от вашего DVM Fluke (при условии, что ваш DVM является правильным), выполняя некоторые простые математики.

Вы также должны проверить линейность ADC STM32F1 и при необходимости создать себе таблицу поиска, чтобы исправить нелинейность. На STM32F103C8 есть много вспышки, чтобы иметь калибровочную таблицу все значения АЦП.

weravech
Сб 23 апреля 2016 г. 16:43
Rogerclark написал:Когда вы в последний раз получали многометровый многометровый?
Я сомневаюсь, что ваш измеритель Fluke неточен, но измерение до 10 мВ, вероятно, не гарантируется, если его совершенно новое.

Проблема в том, что вы должны калибровать значения ADC по известной ссылке.

Что еще хуже, вам нужно будет запустить свой MCU из калиброванного предложения, так как значение АЦП является долю аналогового эталонного напряжения, а на большинстве дешевых STM32 это просто связано с 3.3V Supply, который поступает от какого -то дешевого линейного регулятора.

Вероятно, лучшее, что вы можете достичь, - это определить, насколько точным и стабильным является ваше аналоговое опорное напряжение (для различных входных напряжений), затем откалибруйте ваше напряжение дисплея от вашего DVM Fluke (при условии, что ваш DVM является правильным), выполняя некоторые простые математики.

Вы также должны проверить линейность ADC STM32F1 и при необходимости создать себе таблицу поиска, чтобы исправить нелинейность. На STM32F103C8 есть много вспышки, чтобы иметь калибровочную таблицу все значения АЦП.

Mrburnette
Солнце 24 апреля 2016 г., 8:38 вечера
Бросить идею UC ADC...
Мои деньги на случайности... даже после старения.

У многих технических колледжей есть студенческие лаборатории, которые имеют Voltmeters с отслеживающими сертификатами... Как и некоторые хорошо оборудованные магазины «производителей». Известно, что вечерний инструктор или студент ТА проводят быстрый тест на DVM Agsinst As Outsing Meter... Просто спроси хорошо.

Луча

Rogerclark
Солнце 24 апреля 2016 г., 21:34
Луча,

Я очень сомневаюсь, что проблема в DVM Fluke.

Я просто пытался отметить, что люди не должны слепо верить в свое оборудование для измерения.

Люди не имеют слепой веры в цифровое измерение, точнее до последнего десятичного десятичного места.
Очень часто эта вера совершенно неуместна.

Я считаю, что домашние цифровые термометры являются худшими правонарушителями, я обнаружил, что они часто до 1 декабря C.
Но они показывают температуру до 1 десятичного места, что заставляет людей думать, что они точны до 1/10 степени, с «абсолютной» точностью.
Где, поскольку 1/10 градуируется только в качестве относительной меры.


В случае операции. Число, вероятно, верна до 2 DP, но возможно не для 3 DPS

Mrburnette
Пн 25 апреля 2016 г. 12:28 утра
Rogerclark написал: <..>
Я считаю, что домашние цифровые термометры являются худшими правонарушителями, я обнаружил, что они часто до 1 декабря C.
Но они показывают температуру до 1 десятичного места, что заставляет людей думать, что они точны до 1/10 степени, с «абсолютной» точностью.
Где, поскольку 1/10 градуируется только в качестве относительной меры.

Мадиас
Пн 25 апреля 2016 г., 5:43
Пито и Роджер много сказали, всего две вещи:

1. Насколько я помню, есть один (или еще?) АЦП-каналы или булавки, чтобы избежать на STM32F1XX (есть ошибки от STM)?
2. Мы не знаем, какая доска использует. В качестве примера: Maple Mini Clones не хватает (в противоположности исходным) из вторичного LDO, который предназначен только для аналоговых входов.

минимальный
Ср 14 июня 2017 г., 4:54
http: // damienclarke.мне/code/posts/writi ... анализа


Только что обнаружил эту библиотеку на GitHub, используя алгоритм снижения шума, я проверил ее на основе New Fluke DMV и обнаружил только +/- 2 мВ
Просто измените либера.H "работать с STM32arduino на синей таблетке / 72 МГц. и много стабильно на 48 МГц.

https: // github.com/dxinteractive/responsiveeanalogread

"Оправдательница :: responsiveanalogread (int pin, bool soneyable, float snapmultiplier)
{
pinmode (pin, input_analog); // Убедитесь, что кнопка - это вход
// DigitalWrite (PIN -код, низкий); // Убедитесь, что подтягивание выключено на кнопке »



#включать <Оправдатель.час>

Оправдательный аналог analog_v (pa4, true);
Оправдательный аналог analog_i (pa5, true);
Оправдательский аналог analog_volt (pa0, true);
Оправдательский аналог analog_p (pa1, true);

void setup () {

analog_v.Setanalogresolution (4096);
аналог_и.Setanalogresolution (4096);
analog_volt.Setanalogresolution (4096);
analog_p.Setanalogresolution (4096);

// Начнется серийный, чтобы мы могли увидеть аналоговые значения чтения через последовательный монитор
Сериал.начало (9600);
}

void loop () {
// Обновление объектов реагирования на реагирование на каждый цикл
analog_v.обновлять();
аналог_и.обновлять();
analog_volt.обновлять();
analog_p.обновлять();
Сериал.println ("start =");

Сериал.println (map ((analog_v.getValue ()), 0,4095,0,3273)); // 3.273V - это VCC, измеренный с помощью Fluke DMV
// серийный.println (analog_v.getValue ());
Сериал.println (analog_i.getValue ());
Сериал.println (analog_volt.getValue ());
Сериал.println (analog_p.getValue ());
Сериал.println ("raw =");

Сериал.println (map ((analog_v.getRawValue ()), 0,4095,0,3273));
задержка (50);
}

Ну, кажется, хорошо работает, но кто -нибудь сделал калибровочные таблицы для АЦП, чтобы увидеть, насколько линейно график преобразования?

Дэнниф
Ср 14 июня 2017 г. 11:19
Не совсем точность усилителя, но посмотрите, предлагает ли ваш чип калибровки. Если это так, используйте его в процессе инициализации. Это значительно снизит изменчивость ADV.

Также используйте VREF, если это возможно.

минимальный
Чт 15 июня 2017 г. 1:06
@dannyf

Спасибо, что упомянули VREF и калибровку на конкретных чипах, я также получил STM32F103ZET6-ARM-разработка

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



http: // www.ул.com/content/ccc/resource/ ... 211314.PDF

минимальный
Пн 26 июня 2017 г., 6:47
Только что протестировал STM32F4 Black V2, а ADC очень стабилен +/- 2 мВ без внешнего VREF или сглаживания . очень впечатляет. но как использовать adc_calibrate (); Без использования библиотеки STM32ADC?. У меня были проблемы с Timers 2 Mess, но он решил на переизданных булавках, теперь у меня есть 2 -минутный и 4 аналог, протестируя двойные кодеры позже на этой неделе, все еще используя официальный филиал. Я думаю, что я могу использовать эту плату, чтобы иметь точные 4 цифр ADC. Я думаю, что мне придется забыть о мини -STM32F103 и буду придерживаться этого мощного ребенка. Я мог бы просто отправить Mini STM32F103 на Марс в одном месте, рядом с флагом, установленным на Луне или более возможным, был в подвале в Голливуде. https: // www.YouTube.com/watch?v = kipf4aloyh4 Чудому ADC в STM32F103 напоминает с флагом развева.