Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ADC - измерение напряжения
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
kernel
Доброго времени суток, уважаемые!
Пробую с помощью 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
Цитата(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
Цитата(Stanislav_S @ Jul 19 2008, 23:30) *
Да максимальное измеряемое напряжение равно опорному, поэтому у вас несколько вариантов:
1 - Установить опорное равное AVcc, если конечно у вас питание мегт +5В
2 - оставить опорное 2,56, а на вход напряжения подавать через делители на резисторах.
Напряжение на вход подать через RC фильтр.
Кстати, вы не сказали с какой точностью необходимо измерять данные напряжения.

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

ЗЫ: мега питается от 5 Вольт
Stanislav_S
Цитата(kernel @ Jul 19 2008, 20:47) *
Спасибо за ответ. Точность желательна до сотых долей Вольт (если такое вообще возможно). Я так понимаю можно на AVcc можно подать 5В? (это и будет установкой опорного 5В? rolleyes.gif ) И зачем нужен Aref?
ЗЫ: мега питается от 5 Вольт

Если нужна такая точность, то напряжение подаете через резистивный делитель, после него буфер на ОУ, далее RC фильтр, опорное установите 2,56 ( REFS1=1, REFS0=1) на выход ARef конденсатор
0,1 X7R, питание на AVcc через RC цепочку 100Ом 0,1мкФ.
kernel
Цитата(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? Или я не прав?
Цитата
после него буфер на ОУ

Эмм.. А что это? Какой он нужен? 05.gif
Цитата
далее RC фильтр

05.gif
Цитата
конденсатор 0,1 X7R

А что значит X7R?
Цитата
RC цепочку 100Ом 0,1мкФ

07.gif Я так понял, надо соединить как-то кондюк с резистором?

Извиняюсь за глупые вопросы, просто никогда с этим не сталкивался unsure.gif
Stanislav_S
Цитата(kernel @ Jul 19 2008, 21:20) *
Бррр... Я в этом деле новичок, можно ли расшифорвать следующее:

Мне просто нужно один резистор от AVCC до самого питания VCC подцепить, чтобы добиться 2.56? Или я не прав?

Эмм.. А что это? Какой он нужен? 05.gif

05.gif

А что значит X7R?

07.gif Я так понял, надо соединить как-то кондюк с резистором?

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

Примерно вот так, всякие питающие напряжения и другие подробности опущены.
kernel
Stanislav_S, спасибо большое smile.gif Пойду разбираться... smile.gif
sKWO
Цитата(kernel @ Jul 19 2008, 19:20) *
Мне просто нужно один резистор от AVCC до самого питания VCC подцепить, чтобы добиться 2.56? Или я не прав?

нет, не правы. У контроллера есть свои внутренние источники опорного напряжения. Ваши действия приводят к неправильной банальной разводке питания. обычно AVCC соединяют через фильтр питания, впрочем Вам уже Stanislav_S уже рассказал, как и нащёт подключения
Цитата
опорное установите 2,56 ( REFS1=1, REFS0=1)

это раздел для начинающих.
_Pasha
Цитата(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
Цитата(Stanislav_S @ Jul 19 2008, 19:45) *
Примерно вот так, всякие питающие напряжения и другие подробности опущены.

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

Наличие ОУ не обязательно, но я обычно ставлю все - таки резистивный делитель имеет не нулевое выходное сопротивление, да и для обучения полезно smile.gif А где там внешнее опорное вы увидели?
Flasher
Ахренеть. А все -таки АЦП емеет еще большее ненулевое сопротивление, и ставить, внося дополнительную погрешность- это бред. А учить нужно сразу нормально, а не как в армии- лишь бы что. Насчет опорного- перепутал с питанием- уж больно картинка мелкая была. 0,1 мкф мало после 100 Ом
Stanislav_S
Цитата(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 мало, сколько надо и почему?
pvman
ОУ нужен обязательно. спор неуместен
Flasher
А в чем здесь нормировка?????? конденсатор является частью low-pass фильтра, и при указанной емкости частота среза высока, что не позволит отфильтровать на АЦП сигналы с цепей питания.

Мля, да объясните мне, тупому, на кой там ОУ обязательно?
biDE
Цитата(Stanislav_S @ Jul 19 2008, 19:04) *
питание на AVcc через RC цепочку 100Ом 0,1мкФ.


Кто вас этому научил? Атмел, например, рекомендует LC фильтр L=10мкГн и C=0.1мкФ. От вывода AVCC запитан не только АЦП.
Flasher
Цитата(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 мало, сколько надо и почему?

Читать даташит- это еще не значит его понимать. Вы хоть поняли, к чему эта фраза?
pvman
ОУ нужен для задания необходимого динамического диапазона. Задавая резисторами коэф. усиления, можно раскачать сигнал до Vref.
А также, сопротивление входного датчика не будет влиять на работу АЦП за счет свойств ОУ.
Сейчас перечитал тему, да тут можно без ОУ. Делаете делитель напряжения из двух R. и все. В чем проблема еще?
Stanislav_S
Цитата(Flasher @ Jul 19 2008, 23:05) *
А в чем здесь нормировка?????? конденсатор является частью low-pass фильтра, и при указанной емкости частота среза высока, что не позволит отфильтровать на АЦП сигналы с цепей питания.

Мля, да объясните мне, тупому, на кой там ОУ обязательно?

Насчет кондера да, кусок схемы копировал не посмотрел, где я говорил что ОУ обязателен??
Dog Pawlowa
Цитата(pvman @ Jul 19 2008, 21:35) *
ОУ нужен для задания необходимого динамического диапазона. Задавая резисторами коэф. усиления, можно раскачать сигнал до Vref.
А также, сопротивление входного датчика не будет влиять на работу АЦП за счет свойств ОУ.
Сейчас перечитал тему, да тут можно без ОУ. Делаете делитель напряжения из двух R. и все. В чем проблема еще?

Проблем куча smile.gif Например, я не пойму, зачем измерять напряжение вообще?
Разве для того чтобы попробовать.
delamoure
Вах! R4 в приведенной схеме великоват однако wink.gif
domowoj
Нехилый спор вышел. Из за какойто мерилки питающ. напряжения(kernel или я не прав)
В приведенной схеме нет смысла ставить ОУ - входное сопр. АЦП достаточно велико даже для такого делителя.
kernel
07.gif Ничего себе... спору то сколько набежало...
Т.к. у меня все равно ОУ нет в наличии - сначала попробую без него smile.gif
Спасибо всем большое, Stanislav_S - за схему, всем остальным - за поправку smile.gif
Flasher
Однако всё равно- все точки над I не расставлены. Итак, AVCC- индуктивность 10-100мкГн, конденсатор 0,1мкФ. Vref- Конденсатор 0,1 мкФ- идинственное требование- минимальный ток утечки. Вход- резистивный делитель из сопротивлений повышенной точности порядка 10 кОм и конденсатор 1 мкФ-требование такое же. Все конденсаторы должны быть как можно ближе к выводам МК. Необходимо произвести калибровку, так как значение опорного напряжения очень сильно отличается от экземпляра к экземпляру.
Stanislav_S
Цитата(Flasher @ Jul 20 2008, 17:55) *
Однако всё равно- все точки над I не расставлены. Итак, AVCC- индуктивность 10-100мкГн, конденсатор 0,1мкФ. Vref- Конденсатор 0,1 мкФ- идинственное требование- минимальный ток утечки. Вход- резистивный делитель из сопротивлений повышенной точности порядка 10 кОм и конденсатор 1 мкФ-требование такое же. Все конденсаторы должны быть как можно ближе к выводам МК. Необходимо произвести калибровку, так как значение опорного напряжения очень сильно отличается от экземпляра к экземпляру.

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

Ну объясните же, зачем такие требования к конденсаторам?
Stanislav_S
Цитата(Flasher @ Jul 20 2008, 19:25) *
Ну объясните же, зачем такие требования к конденсаторам?

минимальный ток утечки smile.gif
_Pasha
Цитата(Flasher @ Jul 20 2008, 15:55) *
Однако всё равно- все точки над I не расставлены. Vref- Конденсатор 0,1 мкФ- идинственное требование- минимальный ток утечки.


Почему так мало? unsure.gif
Flasher
Цитата(Stanislav_S @ Jul 20 2008, 17:34) *
минимальный ток утечки smile.gif

Y5V - те же характеристики по утечкам. Да и настолько минимальный и не нужен.

Цитата(_Pasha @ Jul 20 2008, 17:37) *
Почему так мало? unsure.gif

А зачем больше?
Stanislav_S
Цитата(Flasher @ Jul 20 2008, 20:04) *
Y5V - те же характеристики по утечкам. Да и настолько минимальный и не нужен.

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

Говорю только за утечку. Одинаковы, если сделаны не на малой арнаутской.
Stanislav_S
Цитата(Flasher @ Jul 20 2008, 20:30) *
Говорю только за утечку. Одинаковы, если сделаны не на малой арнаутской.

Увы продают то ка раз в основном с малой арнаутской, в этом вся проблема smile.gif
777777
Цитата(Stanislav_S @ Jul 19 2008, 19:30) *
Да максимальное измеряемое напряжение равно опорному, поэтому у вас несколько вариантов:
1 - Установить опорное равное AVcc, если конечно у вас питание мегт +5В
2 - оставить опорное 2,56, а на вход напряжения подавать через делители на резисторах.


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

Браво- 100пик, действительно серъезный выбор для ФНЧ. А на отключенный вход могло наводится все что угодно.
Stanislav_S
Цитата(777777 @ Jul 20 2008, 20:54) *
Что-то мне подсказывает smile.gif что если вы выберете первый вариант, то АЦП будет всегда показывать одинаковое значение smile.gif smile.gif smile.gif

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

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

Смотря что мерять

Установить Ref на AVCC и мерять внутренний ИОН.
В этом случае VCC = Vion * 1024 / ADC

и не надо вообще ничего подавать на входы АЦП (никаких делителей и проч).
Flasher
Цитата(defunct @ Jul 20 2008, 20:23) *
Смотря что мерять

Установить Ref на AVCC и мерять внутренний ИОН.
В этом случае VCC = Vion * 1024 / ADC

и не надо вообще ничего подавать на входы АЦП (никаких делителей и проч).

ИЗМЕРЯТЬ!
Так и я говорю- на фик оно всё надо, лучше пива бахнуть и на бляж.

Цитата(domowoj @ Jul 20 2008, 20:22) *
Ребята, а при чем тут токи утечки на таких точностях и при таких номиналах?
Вы чуть чуть-то считайте.

конденсатор с большой утечкой способен хорошо попортить показания, хотя в данном случае проще на язык вольтаж измерять.
defunct
Цитата(Flasher @ Jul 20 2008, 20:46) *
ИЗМЕРЯТЬ!
Так и я говорю- на фик оно всё надо, лучше пива бахнуть и на бляж.

Измерять. А что есть сомнения насчет того, что этот способ будет работать?

Вначале определяем цепь 5V.
Потом зная точное значение на AVCC - измеряем цепь 3.3V
_Pasha
Цитата(Flasher @ Jul 20 2008, 19:33) *
Браво- 100пик, действительно серъезный выбор для ФНЧ. А на отключенный вход могло наводится все что угодно.


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

Компаратор может быть занят, а что входом можно определить? только наличие питания, а вот если мне надо отловить понижение питания, и чего - нибудь в память записать по этому событию, тут уж вход меги ничем не поможет........
Flasher
Цитата(_Pasha @ Jul 20 2008, 21:08) *
Почему ФНЧ? Это глушение выбросов от УВХ. Оно, заразо, и наводилось, имхо.

100 пик vs 14пик- все равно маловато. К тому же ФНЧ всегда не помешает.

Цитата(Stanislav_S @ Jul 20 2008, 22:52) *
Компаратор может быть занят, а что входом можно определить? только наличие питания, а вот если мне надо отловить понижение питания, и чего - нибудь в память записать по этому событию, тут уж вход меги ничем не поможет........

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

Можно и так, но можно сэкономить на резисторах, иногда место очень подпирает.
Kovrov
Ребяты.. никогда неиспользуйте эту гадость.... - я о внутреннем опорнике 2,56..
или 0,01в вы не увидите никогда....
хотябы TL431....
kernel
Хм.. При поиске вольтметра на ATMEGA в поисковике попадалась схема, в которой вообще AVCC и AREF соединен с VCC, а AGND с GND 07.gif
defunct
Цитата(kernel @ Jul 21 2008, 18:56) *
При поиске вольтметра на ATMEGA в поисковике попадалась схема, в которой вообще AVCC и AREF соединен с VCC, а AGND с GND 07.gif

Такая схема тоже может работать.
Можно определить Vcc - см. канал 30 ADMUX из даташита на m16.
А потом нормировать показания с обычных каналов.
sKWO
Цитата(Kovrov @ Jul 21 2008, 12:47) *
Ребяты.. никогда неиспользуйте эту гадость.... - я о внутреннем опорнике 2,56..
или 0,01в вы не увидите никогда....
хотябы TL431....

А почему так категорически? что, разве даже с калибровкой?
rezident
Цитата(kernel @ Jul 21 2008, 21:56) *
Хм.. При поиске вольтметра на ATMEGA в поисковике попадалась схема, в которой вообще AVCC и AREF соединен с VCC, а AGND с GND 07.gif
Мультфильм "38 попугаев" смотрели? Измерить означает сравнить с чем-либо: мартышкой, попугаем, слоном. smile.gif Можно в качестве опорного напряжения для АЦП брать внутреннюю опору, внешнюю опору, любое другое напряжение, но величиной не выше напряжения питания встроенного АЦП. Только следует учитывать, что для использования полной разрядности АЦП величина опорного напряжения должна быть близка (чуть выше) к величине измеряемого напряжения. Иначе вы теряете в разрядности преобразования. Т.е. если, например, вы взяли в качестве опоры напряжение питания и пытаетесь измерять напряжение вполовину меньшее, то разрядность преобразования будет уже не 1024, а только 512.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.