|
|
  |
ADC - измерение напряжения, ADC в AVR |
|
|
|
Jul 19 2008, 14:50
|
Частый гость
 
Группа: Участник
Сообщений: 146
Регистрация: 13-07-08
Пользователь №: 38 908

|
Доброго времени суток, уважаемые! Пробую с помощью 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, таким образом измерить максимально возможное напряжение можно только равное опорному? Или я что-то не так понимаю?
|
|
|
|
|
Jul 19 2008, 15:30
|

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Цитата(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 фильтр. Кстати, вы не сказали с какой точностью необходимо измерять данные напряжения.
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 19 2008, 15:47
|
Частый гость
 
Группа: Участник
Сообщений: 146
Регистрация: 13-07-08
Пользователь №: 38 908

|
Цитата(Stanislav_S @ Jul 19 2008, 23:30)  Да максимальное измеряемое напряжение равно опорному, поэтому у вас несколько вариантов: 1 - Установить опорное равное AVcc, если конечно у вас питание мегт +5В 2 - оставить опорное 2,56, а на вход напряжения подавать через делители на резисторах. Напряжение на вход подать через RC фильтр. Кстати, вы не сказали с какой точностью необходимо измерять данные напряжения. Спасибо за ответ. Точность желательна до сотых долей Вольт (если такое вообще возможно). Я так понимаю можно на AVcc можно подать 5В? (это и будет установкой опорного 5В?  ) И зачем нужен Aref? ЗЫ: мега питается от 5 Вольт
Сообщение отредактировал kernel - Jul 19 2008, 15:50
|
|
|
|
|
Jul 19 2008, 16:04
|

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Цитата(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мкФ.
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 19 2008, 16:20
|
Частый гость
 
Группа: Участник
Сообщений: 146
Регистрация: 13-07-08
Пользователь №: 38 908

|
Цитата(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мкФ  Я так понял, надо соединить как-то кондюк с резистором? Извиняюсь за глупые вопросы, просто никогда с этим не сталкивался
|
|
|
|
|
Jul 19 2008, 16:45
|

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Цитата(kernel @ Jul 19 2008, 21:20)  Бррр... Я в этом деле новичок, можно ли расшифорвать следующее: Мне просто нужно один резистор от AVCC до самого питания VCC подцепить, чтобы добиться 2.56? Или я не прав? Эмм.. А что это? Какой он нужен? А что значит X7R?  Я так понял, надо соединить как-то кондюк с резистором? Извиняюсь за глупые вопросы, просто никогда с этим не сталкивался  Примерно вот так, всякие питающие напряжения и другие подробности опущены.
Прикрепленные файлы
Test.pdf ( 34.25 килобайт )
Кол-во скачиваний: 271
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 19 2008, 16:57
|

Местный
  
Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530

|
Цитата(kernel @ Jul 19 2008, 19:20)  Мне просто нужно один резистор от AVCC до самого питания VCC подцепить, чтобы добиться 2.56? Или я не прав? нет, не правы. У контроллера есть свои внутренние источники опорного напряжения. Ваши действия приводят к неправильной банальной разводке питания. обычно AVCC соединяют через фильтр питания, впрочем Вам уже Stanislav_S уже рассказал, как и нащёт подключения Цитата опорное установите 2,56 ( REFS1=1, REFS0=1) это раздел для начинающих.
--------------------
нельзя недооценивать предсказуемость глупости
|
|
|
|
|
Jul 19 2008, 17:03
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(kernel @ Jul 19 2008, 18:47)  Спасибо за ответ. Точность желательна до сотых долей Вольт 5вольт да на 1024 разряда = 5/1024=4,88 мВ Так шо все в порядке. Цитата(kernel @ Jul 19 2008, 19:20)  А что значит X7R? Это ТКЕ - температурный коэфф. емкости. На Aref - например 1мкФ повесить. При настройке ADMUX= (1<<REFS0) Менять опорное по ходу нельзя - придецца ждать окончания переходного процесса.
|
|
|
|
|
Jul 19 2008, 17:08
|
Местный
  
Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294

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

Группа: Участник
Сообщений: 21
Регистрация: 1-02-06
Из: Одесса
Пользователь №: 13 863

|
Цитата(Stanislav_S @ Jul 19 2008, 19:04)  питание на AVcc через RC цепочку 100Ом 0,1мкФ. Кто вас этому научил? Атмел, например, рекомендует LC фильтр L=10мкГн и C=0.1мкФ. От вывода AVCC запитан не только АЦП.
|
|
|
|
|
Jul 19 2008, 18:25
|
Местный
  
Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294

|
Цитата(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 мало, сколько надо и почему? Читать даташит- это еще не значит его понимать. Вы хоть поняли, к чему эта фраза?
|
|
|
|
|
Jul 19 2008, 19:06
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

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

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Цитата(Flasher @ Jul 20 2008, 17:55)  Однако всё равно- все точки над I не расставлены. Итак, AVCC- индуктивность 10-100мкГн, конденсатор 0,1мкФ. Vref- Конденсатор 0,1 мкФ- идинственное требование- минимальный ток утечки. Вход- резистивный делитель из сопротивлений повышенной точности порядка 10 кОм и конденсатор 1 мкФ-требование такое же. Все конденсаторы должны быть как можно ближе к выводам МК. Необходимо произвести калибровку, так как значение опорного напряжения очень сильно отличается от экземпляра к экземпляру. Тогда уж добавлю, конденсаторы на 0,1 тип X7R ( лучше NPO, но их труднее достать). Конденсатор на 1мкФ лучше пленочный, поскольку та керамика что везде продается полное г....
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 20 2008, 14:25
|
Местный
  
Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294

|
Цитата(Stanislav_S @ Jul 20 2008, 17:21)  Тогда уж добавлю, конденсаторы на 0,1 тип X7R ( лучше NPO, но их труднее достать). Конденсатор на 1мкФ лучше пленочный, поскольку та керамика что везде продается полное г.... Ну объясните же, зачем такие требования к конденсаторам?
|
|
|
|
|
Jul 20 2008, 15:04
|
Местный
  
Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294

|
Цитата(Stanislav_S @ Jul 20 2008, 17:34)  минимальный ток утечки  Y5V - те же характеристики по утечкам. Да и настолько минимальный и не нужен. Цитата(_Pasha @ Jul 20 2008, 17:37)  Почему так мало?  А зачем больше?
|
|
|
|
|
Jul 20 2008, 15:30
|
Местный
  
Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294

|
Цитата(Stanislav_S @ Jul 20 2008, 18:15)  по характеристикам может быть, но в жизни не так, года два назад собирал тестувую схему для этого дела, тестировал Y5P китайский, X7R китайский и X7R мюрата, разница была налицо. К сожалению графический отчет съел вирус, но там все было хорошо видно, особенно при изменении температуры. Говорю только за утечку. Одинаковы, если сделаны не на малой арнаутской.
|
|
|
|
|
Jul 20 2008, 16:33
|
Местный
  
Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294

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

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

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

Местный
  
Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530

|
Цитата(Kovrov @ Jul 21 2008, 12:47)  Ребяты.. никогда неиспользуйте эту гадость.... - я о внутреннем опорнике 2,56.. или 0,01в вы не увидите никогда.... хотябы TL431.... А почему так категорически? что, разве даже с калибровкой?
--------------------
нельзя недооценивать предсказуемость глупости
|
|
|
|
|
Jul 21 2008, 18:49
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(kernel @ Jul 21 2008, 21:56)  Хм.. При поиске вольтметра на ATMEGA в поисковике попадалась схема, в которой вообще AVCC и AREF соединен с VCC, а AGND с GND  Мультфильм "38 попугаев" смотрели? Измерить означает сравнить с чем-либо: мартышкой, попугаем, слоном.  Можно в качестве опорного напряжения для АЦП брать внутреннюю опору, внешнюю опору, любое другое напряжение, но величиной не выше напряжения питания встроенного АЦП. Только следует учитывать, что для использования полной разрядности АЦП величина опорного напряжения должна быть близка (чуть выше) к величине измеряемого напряжения. Иначе вы теряете в разрядности преобразования. Т.е. если, например, вы взяли в качестве опоры напряжение питания и пытаетесь измерять напряжение вполовину меньшее, то разрядность преобразования будет уже не 1024, а только 512.
|
|
|
|
|
Jul 21 2008, 22:52
|
Местный
  
Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294

|
Цитата(rezident @ Jul 21 2008, 21:49)  Мультфильм "38 попугаев" смотрели? Измерить означает сравнить с чем-либо: мартышкой, попугаем, слоном.  Можно в качестве опорного напряжения для АЦП брать внутреннюю опору, внешнюю опору, любое другое напряжение, но величиной не выше напряжения питания встроенного АЦП. Только следует учитывать, что для использования полной разрядности АЦП величина опорного напряжения должна быть близка (чуть выше) к величине измеряемого напряжения. Иначе вы теряете в разрядности преобразования. Т.е. если, например, вы взяли в качестве опоры напряжение питания и пытаетесь измерять напряжение вполовину меньшее, то разрядность преобразования будет уже не 1024, а только 512. С кокого вдруг перепугу разрядность должна упасть? Здесь просто изменяются другие характеристики.
|
|
|
|
|
Jul 21 2008, 23:16
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Flasher @ Jul 22 2008, 04:52)  С кокого вдруг перепугу разрядность должна упасть? Здесь просто изменяются другие характеристики. Допустим имеем питание 5В и опору такой же величины. Разрядность АЦП - 1024 разряда. Шаг дискретизации 5В/1024=0,00488В. При измерении в диапазоне до половины питания (0В...2,5В) получаем количество разрядов (2,5В-0В)/0,00488В=512. Если хочется измерять в указанном диапазоне с полной разрядностью, то и величину опорного напряжения надо привести к диапазону входных напряжений, либо наоборот. Т.е., например, использовать встроенную опору 2,56В. Или усилитель входного сигнала с коэффициентом усиления = 2.
|
|
|
|
|
Jul 22 2008, 04:39
|

Мастер-фломастер
   
Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700

|
Цитата(sKWO @ Jul 21 2008, 22:16)  А почему так категорически? что, разве даже с калибровкой? ну в любом случае лучше с калибровкой. а у встроенного иона темпер. дрейф вообще никакой... да и прослеживается зависимость от питания... а по ДШ разброс чуть ли не 10%
--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
|
|
|
|
|
Jul 22 2008, 04:58
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Kovrov @ Jul 21 2008, 13:47)  Ребяты.. никогда неиспользуйте эту гадость.... - я о внутреннем опорнике 2,56.. или 0,01в вы не увидите никогда.... А я думал, это вы об АЦП меги... точность 0,01В при опоре 2.56В это по-моему идеал. Если соблюдать все рекомендации и предписания. Для грубых измерений сойдёт.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Jul 22 2008, 06:53
|
Местный
  
Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294

|
Цитата(rezident @ Jul 22 2008, 02:16)  Допустим имеем питание 5В и опору такой же величины. Разрядность АЦП - 1024 разряда. Шаг дискретизации 5В/1024=0,00488В. При измерении в диапазоне до половины питания (0В...2,5В) получаем количество разрядов (2,5В-0В)/0,00488В=512. Если хочется измерять в указанном диапазоне с полной разрядностью, то и величину опорного напряжения надо привести к диапазону входных напряжений, либо наоборот. Т.е., например, использовать встроенную опору 2,56В. Или усилитель входного сигнала с коэффициентом усиления = 2. если опору ставим в половину питания и измеряем с делителем- то рсчеты неверны
|
|
|
|
|
Jul 22 2008, 10:34
|

Мастер-фломастер
   
Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700

|
Цитата(MrYuran @ Jul 22 2008, 08:58)  точность 0,01В при опоре 2.56В это по-моему идеал. Cледует добавить ещё диаппазон входных напряжений.. а то подумают ещё....
--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|