• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Точность ADC

patrick-239

New member
Дорый вечер.

Решил я попробовать как работает ADC. Собрал простенькую схемку делитиля напряжения и написал прошивку для считывания ADC. Итог: вольтметр показывает 0.786 В, а ADC 0.809 В (после деления на 1024). Мне кажется это большая разница.

Кто то пробовал работать с ADC и проверять его показания?
 

pvvx

Активный участник сообщества
Дорый вечер.

Решил я попробовать как работает ADC. Собрал простенькую схемку делитиля напряжения и написал прошивку для считывания ADC. Итог: вольтметр показывает 0.786 В, а ADC 0.809 В (после деления на 1024). Мне кажется это большая разница.

Кто то пробовал работать с ADC и проверять его показания?
Все ADC показывают относительно источника Vref. В чипе ESP8266ex он внутренний. Указаний точности этого источника нигде не значится.
Кроме того данный ADC, типа полупрограмный SAR и не имеет входного буфера. Т.е. он имеет нелинейные "утечки" тока по входу в зависимости от входного напряжения. Простого делителя на резисторах для точных замеров недостаточно ни для какого типа ADC, тем более не имеющего входного буфера (входного усилителя).
Если проще - от номиналов вашего делителя будет зависеть входное напряжение на входе ADC как сумма токов коммутатора SAR и внешнего тока через делитель и соответственно показания ADC будут отличаться при разных номиналах резисторов, но с одинаковым коэф. деления.
Вы не указали номиналы и судить почему такая разница невозможно. Может у вас резисторы на МагаОмы и собственный ток входа превышает в сотни раз измеряемый...
Найдите литературу по подключению к ADC типа SAR и сделайте всё правильно.
1) Измерьте паразитные коммуникационные токи данного SAR на входе по всей шкале входных напряжений и разной частоте активности управления.
2) Подключите прецизионный источник напряжения, учтя гальванические связи контактов из разного металла. Измерьте показания на всей шкале применяя разные фильтры и фиксируя сырые отклонения для разных частот коммутации SAR.
3) Опубликуйте тут полученные значения.
Espressif этих данных не дает, т.к. не знает - скорее всего это не их чип и не их разработка.

... продолжение следует :)
 
Последнее редактирование:

patrick-239

New member
В данный момент я проверяю напряжение питания (USB->LM1117), те оно стабильно 3.3. Для делителя использовал резисторы 1470 (1000+470) и 470 с погрешностью 1%. Жаль образование у меня совсем из другой области, так что все написанное полностью пока не понимаю. Попробую почитать литературу. А
Интересно еще попробовать будут ли отличаться результаты на других esp с аналогичным подключением.
 

pvvx

Активный участник сообщества
В данный момент я проверяю напряжение питания (USB->LM1117), те оно стабильно 3.3. Для делителя использовал резисторы 1470 (1000+470) и 470 с погрешностью 1%. Жаль образование у меня совсем из другой области, так что все написанное полностью пока не понимаю. Попробую почитать литературу. А
Интересно еще попробовать будут ли отличаться результаты на других esp с аналогичным подключением.
В старых SDK коррекции линейности ADC не было. В новых китайцы ввели. Но наверняка что-то среднее, на определенную партию чипов или даже на один, тот который был у их программиста :)
Полная шкала, максимальное значение у разных чипов отличается - разный внутренний Vref. Он зависит от температуры и, главное, от работает или нет в данный момент WiFi. Ещё немного зависит от напряжения питания.
Т.е. для каждого чипа требуется своя калибровка, тогда точность наверно возможно свести к 5%.
Про шумы ADC последний раз писали тут http://esp8266.ru/forum/threads/raz...go-webservera-na-esp8266.56/page-37#post-9214
 
Последнее редактирование:

patrick-239

New member
Текущая погрешность 2,5%. Если в момент запуска чипа (каждого или первого + запись в ПЗУ) делать калибровку, то можно получить более менее верные значения. Попробовал поискать литературу, но ничего кардинально нового не вычитал. Есть несколько вопросов:
1. На что влияет переменная vdd33_const? Пробовал ее менять, но ничего не происходило.
2. Если использовать внешний ADC, будут ли лучше результаты?
3. Как правильно подключать что то к ADC?
 

Tomahawk

New member
Итог: вольтметр показывает 0.786 В, а ADC 0.809 В
А вольтметр у вас эталонный? o_O Внутри вольтметра есть переменные резисторы, которые нужно ещё настроить для точности, на заводе (или в подвале дяди Луй-Цзяо) они как-то подкручены, но не факт что точность будет составлять 100%.
 

patrick-239

New member
А вольтметр у вас эталонный? o_O Внутри вольтметра есть переменные резисторы, которые нужно ещё настроить для точности, на заводе (или в подвале дяди Луй-Цзяо) они как-то подкручены, но не факт что точность будет составлять 100%.
Ну точный вольтметр это не проблема, в нынешние времена их погрешность не очень велика (если конечно он не стоит 1$). А для проверки есть математика и физика - с их помошью можно вычислить достаточно точно ожидаемое напряжение на делителе (погрешность резисторов 1%, а сопротивлением проводов и контактов можно пренебречь). Тк показания вольтметра и математики совпали, то врет явно adc.
 

pvvx

Активный участник сообщества
Ну точный вольтметр это не проблема, в нынешние времена их погрешность не очень велика (если конечно он не стоит 1$). А для проверки есть математика и физика - с их помошью можно вычислить достаточно точно ожидаемое напряжение на делителе (погрешность резисторов 1%, а сопротивлением проводов и контактов можно пренебречь). Тк показания вольтметра и математики совпали, то врет явно adc.
Похоже вы ещё не прочитали и не изучили типы ADC. Для SAR без входного буфера ( а точно мы тип мы не знаем, т.к. китайцы не дают документации и неизвестно есть ли она у них) простого делителя недостаточно. Заряд емкостей будет ограничен вашим делителем... Какая точность при этом? ...
Пример SAR ADC:

Как строится входная цепь для такого ADC:

Для R(iso) и С(iso) существует специальный расчет...
Что твориться на входе при заряде внутренних емкостей SAR:

И как итог:
Пока китаёзы не дадут спецификации на вход ADC использовать его для точных измерений невозможно.
Возможно, и скорее всего, кто другой сделает и опишет тип ADC и его параметры, включая описание входа. Но явно это будет не Espressif, т.к. в данной фирме нет никаких технических специалистов (они уже год пишут SDK и до-сих пор он имеет тысячи ошибок, а то, что они публикуют обычно украдено у других :) ).
 
Последнее редактирование:
Сверху Снизу