Полная версия этой страницы:
ADC - измерение напряжения
kernel
Jul 19 2008, 14:50
Доброго времени суток, уважаемые!
Пробую с помощью ADC 16ой меги измерить напряжение на линиях 3.3В и 5В. Для этого цепляю к одной из ног AD на меге [+3.3 Вольт] и [+5 Вольт] и от этих же ног вывожу резисторы 10кОм на корпус GND. Такой способ соединения я увидел в примере mikroPascal, но, как я уже убедился, примеры там "корявые" (и обычно неверно составленные), возник у меня вопрос: вообще так можно ли соединять VCC с ADC меги? И еще немного не ясно, нужно ли для этого делать что-то с опорным напряжением (AVCC вроде бы называется). Насколько я понял из даташита - по умолчанию в ATMEGA16 опорным считается напряжение 2.56 В, но если посчитать по формуле ADC=Vin*1024/Vref, а точнее Vin=ADC*Vref/1024, то 5 вольт я подключить не смогу - насколько я помню, ADC не может превышать 1024, таким образом измерить максимально возможное напряжение можно только равное опорному? Или я что-то не так понимаю?
Stanislav_S
Jul 19 2008, 15:30
Цитата(kernel @ Jul 19 2008, 19:50)

Доброго времени суток, уважаемые!
Пробую с помощью ADC 16ой меги измерить напряжение на линиях 3.3В и 5В. Для этого цепляю к одной из ног AD на меге [+3.3 Вольт] и [+5 Вольт] и от этих же ног вывожу резисторы 10кОм на корпус GND. Такой способ соединения я увидел в примере mikroPascal, но, как я уже убедился, примеры там "корявые" (и обычно неверно составленные), возник у меня вопрос: вообще так можно ли соединять VCC с ADC меги? И еще немного не ясно, нужно ли для этого делать что-то с опорным напряжением (AVCC вроде бы называется). Насколько я понял из даташита - по умолчанию в ATMEGA16 опорным считается напряжение 2.56 В, но если посчитать по формуле ADC=Vin*1024/Vref, а точнее Vin=ADC*Vref/1024, то 5 вольт я подключить не смогу - насколько я помню, ADC не может превышать 1024, таким образом измерить максимально возможное напряжение можно только равное опорному? Или я что-то не так понимаю?
Да максимальное измеряемое напряжение равно опорному, поэтому у вас несколько вариантов:
1 - Установить опорное равное AVcc, если конечно у вас питание мегт +5В
2 - оставить опорное 2,56, а на вход напряжения подавать через делители на резисторах.
Напряжение на вход подать через RC фильтр.
Кстати, вы не сказали с какой точностью необходимо измерять данные напряжения.
kernel
Jul 19 2008, 15:47
Цитата(Stanislav_S @ Jul 19 2008, 23:30)

Да максимальное измеряемое напряжение равно опорному, поэтому у вас несколько вариантов:
1 - Установить опорное равное AVcc, если конечно у вас питание мегт +5В
2 - оставить опорное 2,56, а на вход напряжения подавать через делители на резисторах.
Напряжение на вход подать через RC фильтр.
Кстати, вы не сказали с какой точностью необходимо измерять данные напряжения.
Спасибо за ответ. Точность желательна до сотых долей Вольт (если такое вообще возможно). Я так понимаю можно на AVcc можно подать 5В? (это и будет установкой опорного 5В?

) И зачем нужен Aref?
ЗЫ: мега питается от 5 Вольт
Stanislav_S
Jul 19 2008, 16:04
Цитата(kernel @ Jul 19 2008, 20:47)

Спасибо за ответ. Точность желательна до сотых долей Вольт (если такое вообще возможно). Я так понимаю можно на AVcc можно подать 5В? (это и будет установкой опорного 5В?

) И зачем нужен Aref?
ЗЫ: мега питается от 5 Вольт
Если нужна такая точность, то напряжение подаете через резистивный делитель, после него буфер на ОУ, далее RC фильтр, опорное установите 2,56 ( REFS1=1, REFS0=1) на выход ARef конденсатор
0,1 X7R, питание на AVcc через RC цепочку 100Ом 0,1мкФ.
kernel
Jul 19 2008, 16:20
Цитата(Stanislav_S @ Jul 20 2008, 00:04)

Если нужна такая точность, то напряжение подаете через резистивный делитель, после него буфер на ОУ, далее RC фильтр, опорное установите 2,56 ( REFS1=1, REFS0=1) на выход ARef конденсатор
0,1 X7R, питание на AVcc через RC цепочку 100Ом 0,1мкФ.
Бррр... Я в этом деле новичок, можно ли расшифорвать следующее:
Цитата
напряжение подаете через резистивный делитель
Мне просто нужно один резистор от AVCC до самого питания VCC подцепить, чтобы добиться 2.56? Или я не прав?
Цитата
после него буфер на ОУ
Эмм.. А что это? Какой он нужен?
Цитата
далее RC фильтр
Цитата
конденсатор 0,1 X7R
А что значит X7R?
Цитата
RC цепочку 100Ом 0,1мкФ

Я так понял, надо соединить как-то кондюк с резистором?
Извиняюсь за глупые вопросы, просто никогда с этим не сталкивался
Stanislav_S
Jul 19 2008, 16:45
Цитата(kernel @ Jul 19 2008, 21:20)

Бррр... Я в этом деле новичок, можно ли расшифорвать следующее:
Мне просто нужно один резистор от AVCC до самого питания VCC подцепить, чтобы добиться 2.56? Или я не прав?
Эмм.. А что это? Какой он нужен?
А что значит X7R?

Я так понял, надо соединить как-то кондюк с резистором?
Извиняюсь за глупые вопросы, просто никогда с этим не сталкивался

Примерно вот так, всякие питающие напряжения и другие подробности опущены.
kernel
Jul 19 2008, 16:49
Stanislav_S, спасибо большое

Пойду разбираться...
Цитата(kernel @ Jul 19 2008, 19:20)

Мне просто нужно один резистор от AVCC до самого питания VCC подцепить, чтобы добиться 2.56? Или я не прав?
нет, не правы. У контроллера есть свои внутренние источники опорного напряжения. Ваши действия приводят к неправильной банальной разводке питания. обычно AVCC соединяют через фильтр питания, впрочем Вам уже Stanislav_S уже рассказал, как и нащёт подключения
Цитата
опорное установите 2,56 ( REFS1=1, REFS0=1)
это раздел для начинающих.
_Pasha
Jul 19 2008, 17:03
Цитата(kernel @ Jul 19 2008, 18:47)

Спасибо за ответ. Точность желательна до сотых долей Вольт
5вольт да на 1024 разряда = 5/1024=4,88 мВ
Так шо все в порядке.
Цитата(kernel @ Jul 19 2008, 19:20)

А что значит X7R?
Это ТКЕ - температурный коэфф. емкости.
На Aref - например 1мкФ повесить.
При настройке ADMUX= (1<<REFS0)
Менять опорное по ходу нельзя - придецца ждать окончания переходного процесса.
Flasher
Jul 19 2008, 17:08
Цитата(Stanislav_S @ Jul 19 2008, 19:45)

Примерно вот так, всякие питающие напряжения и другие подробности опущены.
То ли я тупой, то ли ничего не понимаю- зачем там ОУ? без него не будет работать? Зачем еще X7R? Зачем внешняя опора если делитель используется? Калибровки по внутренней опоре разве не достаточно?
Stanislav_S
Jul 19 2008, 17:19
Цитата(Flasher @ Jul 19 2008, 22:08)

То ли я тупой, то ли ничего не понимаю- зачем там ОУ? без него не будет работать? Зачем еще X7R? Зачем внешняя опора если делитель используется? Калибровки по внутренней опоре разве не достаточно?
Наличие ОУ не обязательно, но я обычно ставлю все - таки резистивный делитель имеет не нулевое выходное сопротивление, да и для обучения полезно

А где там внешнее опорное вы увидели?
Flasher
Jul 19 2008, 17:27
Ахренеть. А все -таки АЦП емеет еще большее ненулевое сопротивление, и ставить, внося дополнительную погрешность- это бред. А учить нужно сразу нормально, а не как в армии- лишь бы что. Насчет опорного- перепутал с питанием- уж больно картинка мелкая была. 0,1 мкф мало после 100 Ом
Stanislav_S
Jul 19 2008, 17:52
Цитата(Flasher @ Jul 19 2008, 22:27)

Ахренеть. А все -таки АЦП емеет еще большее ненулевое сопротивление, и ставить, внося дополнительную погрешность- это бред. А учить нужно сразу нормально, а не как в армии- лишь бы что. Насчет опорного- перепутал с питанием- уж больно картинка мелкая была. 0,1 мкф мало после 100 Ом
В чем бред? Вы сигналы сразу без нормировки на АЦП подаете? Может быть фраза - The ADC is optimized for analog signals with an output impedance of approximately 10 k or
less. в даташите от фонаря написана? И почему 0,1 мало, сколько надо и почему?
ОУ нужен обязательно. спор неуместен
Flasher
Jul 19 2008, 18:05
А в чем здесь нормировка?????? конденсатор является частью low-pass фильтра, и при указанной емкости частота среза высока, что не позволит отфильтровать на АЦП сигналы с цепей питания.
Мля, да объясните мне, тупому, на кой там ОУ обязательно?
Цитата(Stanislav_S @ Jul 19 2008, 19:04)

питание на AVcc через RC цепочку 100Ом 0,1мкФ.
Кто вас этому научил? Атмел, например, рекомендует LC фильтр L=10мкГн и C=0.1мкФ. От вывода AVCC запитан не только АЦП.
Flasher
Jul 19 2008, 18:25
Цитата(Stanislav_S @ Jul 19 2008, 20:52)

В чем бред? Вы сигналы сразу без нормировки на АЦП подаете? Может быть фраза - The ADC is optimized for analog signals with an output impedance of approximately 10 k or
less. в даташите от фонаря написана? И почему 0,1 мало, сколько надо и почему?
Читать даташит- это еще не значит его понимать. Вы хоть поняли, к чему эта фраза?
ОУ нужен для задания необходимого динамического диапазона. Задавая резисторами коэф. усиления, можно раскачать сигнал до Vref.
А также, сопротивление входного датчика не будет влиять на работу АЦП за счет свойств ОУ.
Сейчас перечитал тему, да тут можно без ОУ. Делаете делитель напряжения из двух R. и все. В чем проблема еще?
Stanislav_S
Jul 19 2008, 19:01
Цитата(Flasher @ Jul 19 2008, 23:05)

А в чем здесь нормировка?????? конденсатор является частью low-pass фильтра, и при указанной емкости частота среза высока, что не позволит отфильтровать на АЦП сигналы с цепей питания.
Мля, да объясните мне, тупому, на кой там ОУ обязательно?
Насчет кондера да, кусок схемы копировал не посмотрел, где я говорил что ОУ обязателен??
Dog Pawlowa
Jul 19 2008, 19:06
Цитата(pvman @ Jul 19 2008, 21:35)

ОУ нужен для задания необходимого динамического диапазона. Задавая резисторами коэф. усиления, можно раскачать сигнал до Vref.
А также, сопротивление входного датчика не будет влиять на работу АЦП за счет свойств ОУ.
Сейчас перечитал тему, да тут можно без ОУ. Делаете делитель напряжения из двух R. и все. В чем проблема еще?
Проблем куча

Например, я не пойму, зачем измерять напряжение вообще?
Разве для того чтобы попробовать.
delamoure
Jul 19 2008, 21:08
Вах! R4 в приведенной схеме великоват однако
domowoj
Jul 20 2008, 08:36
Нехилый спор вышел. Из за какойто мерилки питающ. напряжения(kernel или я не прав)
В приведенной схеме нет смысла ставить ОУ - входное сопр. АЦП достаточно велико даже для такого делителя.
kernel
Jul 20 2008, 11:03

Ничего себе... спору то сколько набежало...
Т.к. у меня все равно ОУ нет в наличии - сначала попробую без него

Спасибо всем большое, Stanislav_S - за схему, всем остальным - за поправку
Flasher
Jul 20 2008, 12:55
Однако всё равно- все точки над I не расставлены. Итак, AVCC- индуктивность 10-100мкГн, конденсатор 0,1мкФ. Vref- Конденсатор 0,1 мкФ- идинственное требование- минимальный ток утечки. Вход- резистивный делитель из сопротивлений повышенной точности порядка 10 кОм и конденсатор 1 мкФ-требование такое же. Все конденсаторы должны быть как можно ближе к выводам МК. Необходимо произвести калибровку, так как значение опорного напряжения очень сильно отличается от экземпляра к экземпляру.
Stanislav_S
Jul 20 2008, 14:21
Цитата(Flasher @ Jul 20 2008, 17:55)

Однако всё равно- все точки над I не расставлены. Итак, AVCC- индуктивность 10-100мкГн, конденсатор 0,1мкФ. Vref- Конденсатор 0,1 мкФ- идинственное требование- минимальный ток утечки. Вход- резистивный делитель из сопротивлений повышенной точности порядка 10 кОм и конденсатор 1 мкФ-требование такое же. Все конденсаторы должны быть как можно ближе к выводам МК. Необходимо произвести калибровку, так как значение опорного напряжения очень сильно отличается от экземпляра к экземпляру.
Тогда уж добавлю, конденсаторы на 0,1 тип X7R ( лучше NPO, но их труднее достать). Конденсатор на 1мкФ лучше пленочный, поскольку та керамика что везде продается полное г....
Flasher
Jul 20 2008, 14:25
Цитата(Stanislav_S @ Jul 20 2008, 17:21)

Тогда уж добавлю, конденсаторы на 0,1 тип X7R ( лучше NPO, но их труднее достать). Конденсатор на 1мкФ лучше пленочный, поскольку та керамика что везде продается полное г....
Ну объясните же, зачем такие требования к конденсаторам?
Stanislav_S
Jul 20 2008, 14:34
Цитата(Flasher @ Jul 20 2008, 19:25)

Ну объясните же, зачем такие требования к конденсаторам?
минимальный ток утечки
_Pasha
Jul 20 2008, 14:37
Цитата(Flasher @ Jul 20 2008, 15:55)

Однако всё равно- все точки над I не расставлены. Vref- Конденсатор 0,1 мкФ- идинственное требование- минимальный ток утечки.
Почему так мало?
Flasher
Jul 20 2008, 15:04
Цитата(Stanislav_S @ Jul 20 2008, 17:34)

минимальный ток утечки

Y5V - те же характеристики по утечкам. Да и настолько минимальный и не нужен.
Цитата(_Pasha @ Jul 20 2008, 17:37)

Почему так мало?

А зачем больше?
Stanislav_S
Jul 20 2008, 15:15
Цитата(Flasher @ Jul 20 2008, 20:04)

Y5V - те же характеристики по утечкам. Да и настолько минимальный и не нужен.
по характеристикам может быть, но в жизни не так, года два назад собирал тестувую схему для этого дела, тестировал Y5P китайский, X7R китайский и X7R мюрата, разница была налицо. К сожалению графический отчет съел вирус, но там все было хорошо видно, особенно при изменении температуры.
Flasher
Jul 20 2008, 15:30
Цитата(Stanislav_S @ Jul 20 2008, 18:15)

по характеристикам может быть, но в жизни не так, года два назад собирал тестувую схему для этого дела, тестировал Y5P китайский, X7R китайский и X7R мюрата, разница была налицо. К сожалению графический отчет съел вирус, но там все было хорошо видно, особенно при изменении температуры.
Говорю только за утечку. Одинаковы, если сделаны не на малой арнаутской.
Stanislav_S
Jul 20 2008, 15:35
Цитата(Flasher @ Jul 20 2008, 20:30)

Говорю только за утечку. Одинаковы, если сделаны не на малой арнаутской.
Увы продают то ка раз в основном с малой арнаутской, в этом вся проблема
777777
Jul 20 2008, 15:54
Цитата(Stanislav_S @ Jul 19 2008, 19:30)

Да максимальное измеряемое напряжение равно опорному, поэтому у вас несколько вариантов:
1 - Установить опорное равное AVcc, если конечно у вас питание мегт +5В
2 - оставить опорное 2,56, а на вход напряжения подавать через делители на резисторах.
Что-то мне подсказывает

что если вы выберете первый вариант, то АЦП будет всегда показывать одинаковое значение
ivainc1789
Jul 20 2008, 16:21
Недавно делал автономный прибор на ATmega48. Там измерял напряжение питания через делитель, где нижний резистор имел сопрот-е 10 кОм (граничная величина по даташиту) и был зашунтирован конденсатором около 100 пик для устранения помех. Результаты выводились на сегментный LCD. Так вот, при отключении верхнего резистора, LCD показывал отличное от нуля значение напряжения. Причин могло быть две: неточность самого АЦП или его вх цепи. Данный эффект полностью пропал при замене резистора на 8к2 с последующим перерасчетом делителя. В моем случае, т. к. прибор батарейный, хотелось иметь делитель высокооомным по понятным причинам, но в вашем, ИМХО, можно смело ставить 5к6 и делать расчет верхнего. Шунтирующий кондер я обычно ставлю для данных применений и думаю это не сильное "усложнение" для медленно меняющихся сигналов и частоты измерений. Ставить же ОУ здесь действительно не имеет большого смысла.
Flasher
Jul 20 2008, 16:33
Цитата(ivainc1789 @ Jul 20 2008, 19:21)

Недавно делал автономный прибор на ATmega48. Там измерял напряжение питания через делитель, где нижний резистор имел сопрот-е 10 кОм (граничная величина по даташиту) и был зашунтирован конденсатором около 100 пик для устранения помех. Результаты выводились на сегментный LCD. Так вот, при отключении верхнего резистора, LCD показывал отличное от нуля значение напряжения. Причин могло быть две: неточность самого АЦП или его вх цепи. Данный эффект полностью пропал при замене резистора на 8к2 с последующим перерасчетом делителя. В моем случае, т. к. прибор батарейный, хотелось иметь делитель высокооомным по понятным причинам, но в вашем, ИМХО, можно смело ставить 5к6 и делать расчет верхнего. Шунтирующий кондер я обычно ставлю для данных применений и думаю это не сильное "усложнение" для медленно меняющихся сигналов и частоты измерений. Ставить же ОУ здесь действительно не имеет большого смысла.
Браво- 100пик, действительно серъезный выбор для ФНЧ. А на отключенный вход могло наводится все что угодно.
Stanislav_S
Jul 20 2008, 16:36
Цитата(777777 @ Jul 20 2008, 20:54)

Именно так

Первый вариант это "померять" - то есть просто наличие, а вот второй это "измерять"
Flasher
Jul 20 2008, 16:39
Цитата(Stanislav_S @ Jul 20 2008, 19:36)

Именно так

Первый вариант это "померять" - то есть просто наличие, а вот второй это "измерять"

Слова "померять" не применимо к физическим величинам. Для определения наличия есть компаратор или любой вход меги с триггером шмидта.
domowoj
Jul 20 2008, 17:22
Ребята, а при чем тут токи утечки на таких точностях и при таких номиналах?
Вы чуть чуть-то считайте.
defunct
Jul 20 2008, 17:23
Цитата(777777 @ Jul 20 2008, 18:54)

Что-то мне подсказывает

что если вы выберете первый вариант, то АЦП будет всегда показывать одинаковое значение

Смотря что мерять
Установить Ref на AVCC и мерять внутренний ИОН.
В этом случае VCC = Vion * 1024 / ADC
и не надо вообще ничего подавать на входы АЦП (никаких делителей и проч).
Flasher
Jul 20 2008, 17:46
Цитата(defunct @ Jul 20 2008, 20:23)

Смотря что мерять
Установить Ref на AVCC и мерять внутренний ИОН.
В этом случае VCC = Vion * 1024 / ADC
и не надо вообще ничего подавать на входы АЦП (никаких делителей и проч).
ИЗМЕРЯТЬ!
Так и я говорю- на фик оно всё надо, лучше пива бахнуть и на бляж.
Цитата(domowoj @ Jul 20 2008, 20:22)

Ребята, а при чем тут токи утечки на таких точностях и при таких номиналах?
Вы чуть чуть-то считайте.
конденсатор с большой утечкой способен хорошо попортить показания, хотя в данном случае проще на язык вольтаж измерять.
defunct
Jul 20 2008, 17:52
Цитата(Flasher @ Jul 20 2008, 20:46)

ИЗМЕРЯТЬ!
Так и я говорю- на фик оно всё надо, лучше пива бахнуть и на бляж.
Измерять. А что есть сомнения насчет того, что этот способ будет работать?
Вначале определяем цепь 5V.
Потом зная точное значение на AVCC - измеряем цепь 3.3V
_Pasha
Jul 20 2008, 18:08
Цитата(Flasher @ Jul 20 2008, 19:33)

Браво- 100пик, действительно серъезный выбор для ФНЧ. А на отключенный вход могло наводится все что угодно.
Почему ФНЧ? Это глушение выбросов от УВХ. Оно, заразо, и наводилось, имхо.
Stanislav_S
Jul 20 2008, 19:52
Цитата(Flasher @ Jul 20 2008, 21:39)

Слова "померять" не применимо к физическим величинам. Для определения наличия есть компаратор или любой вход меги с триггером шмидта.
Компаратор может быть занят, а что входом можно определить? только наличие питания, а вот если мне надо отловить понижение питания, и чего - нибудь в память записать по этому событию, тут уж вход меги ничем не поможет........
Flasher
Jul 21 2008, 05:56
Цитата(_Pasha @ Jul 20 2008, 21:08)

Почему ФНЧ? Это глушение выбросов от УВХ. Оно, заразо, и наводилось, имхо.
100 пик vs 14пик- все равно маловато. К тому же ФНЧ всегда не помешает.
Цитата(Stanislav_S @ Jul 20 2008, 22:52)

Компаратор может быть занят, а что входом можно определить? только наличие питания, а вот если мне надо отловить понижение питания, и чего - нибудь в память записать по этому событию, тут уж вход меги ничем не поможет........
прекрасно все делается входом- резистивный делитель настраивается так, чтобы вызвать срабатывание триггера шмидта при понижении напряжения ниже соответствующего уровня.
Stanislav_S
Jul 21 2008, 07:22
Цитата(Flasher @ Jul 21 2008, 10:56)

100 пик vs 14пик- все равно маловато. К тому же ФНЧ всегда не помешает.
прекрасно все делается входом- резистивный делитель настраивается так, чтобы вызвать срабатывание триггера шмидта при понижении напряжения ниже соответствующего уровня.
Можно и так, но можно сэкономить на резисторах, иногда место очень подпирает.
Kovrov
Jul 21 2008, 09:47
Ребяты.. никогда неиспользуйте эту гадость.... - я о внутреннем опорнике 2,56..
или 0,01в вы не увидите никогда....
хотябы TL431....
kernel
Jul 21 2008, 15:56
Хм.. При поиске вольтметра на ATMEGA в поисковике попадалась схема, в которой вообще AVCC и AREF соединен с VCC, а AGND с GND
defunct
Jul 21 2008, 17:06
Цитата(kernel @ Jul 21 2008, 18:56)

При поиске вольтметра на ATMEGA в поисковике попадалась схема, в которой вообще AVCC и AREF соединен с VCC, а AGND с GND

Такая схема тоже может работать.
Можно определить Vcc - см. канал 30 ADMUX из даташита на m16.
А потом нормировать показания с обычных каналов.
Цитата(Kovrov @ Jul 21 2008, 12:47)

Ребяты.. никогда неиспользуйте эту гадость.... - я о внутреннем опорнике 2,56..
или 0,01в вы не увидите никогда....
хотябы TL431....
А почему так категорически? что, разве даже с калибровкой?
rezident
Jul 21 2008, 18:49
Цитата(kernel @ Jul 21 2008, 21:56)

Хм.. При поиске вольтметра на ATMEGA в поисковике попадалась схема, в которой вообще AVCC и AREF соединен с VCC, а AGND с GND

Мультфильм "38 попугаев" смотрели?
Измерить означает
сравнить с чем-либо: мартышкой, попугаем, слоном.

Можно в качестве опорного напряжения для АЦП брать внутреннюю опору, внешнюю опору, любое другое напряжение, но величиной не выше напряжения питания встроенного АЦП. Только следует учитывать, что для использования полной разрядности АЦП величина опорного напряжения должна быть близка (чуть выше) к величине измеряемого напряжения. Иначе вы теряете в разрядности преобразования. Т.е. если, например, вы взяли в качестве опоры напряжение питания и пытаетесь измерять напряжение вполовину меньшее, то разрядность преобразования будет уже не 1024, а только 512.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.