Контроллер mega16. Для измерений в качестве опорного напряжения используется +5В(напряжение питания, стабилизатор 7805). Возможно ли использование напряжения Vbg для подстройки(или коррекции) результата измерения при разбросе напряжения питания от стабилизатора к стабилизатору(от платы к плате).
Dog Pawlowa
Nov 4 2008, 14:48
Цитата(bbill @ Nov 4 2008, 18:31)

Возможно ли использование напряжения Vbg для подстройки(или коррекции) результата измерения при разбросе напряжения питания от стабилизатора к стабилизатору(от платы к плате).
Нет. Разброс Vbg еще больше.
"VBG Bandgap reference voltage 1.15 1.23 1.4 V"
demiurg_spb
Nov 4 2008, 17:48
Цитата(Dog Pawlowa @ Nov 4 2008, 17:48)

Разброс Vbg еще больше.
Несмотря на то, что изначальная точность встроенного опорника сопоставима с КРЕНом, его стабильность и "качество" напряжения несомненно лучше.
Aleksandr Baranov
Nov 4 2008, 22:00
Однако, разброс такой, что без калибровки не обойтись.
Откалибровать "вручную" с прописыванием одной-двух констант - не проблема. Как бы это автоматизировать, т.е. сделать программным путем. Просто не вижу к чему привязаться.
Плата/ы и схема сделаны без меня, все ноги m16 задействованы, внешний опорник не стоит. Предполагалось использовать для опорного +5В.
На сайте атмела был аппликейшен для автоматической калибровки АЦП и софт там был, вроде надо было всего лишь подать на АЦП внешнее калибровочное напряжение, но точно я уже не помню, давно это было...
вот оно
http://atmel.com/dyn/resources/prod_documents/doc2559.pdf только софта готового нету.
Спасибо за ценную фразу
[quote]надо было всего лишь подать на АЦП внешнее калибровочное напряжение
а это сделать не проблема, на m16 вход для опорного отдельный и на этом входе стоит только конденсатор. Далее измерить Vbg(значение для каждой ИМС свое и должно быть стабильно(формируется из Uref?)), посчитать его отклонение от ожидаемого значения при эталонном опорном и проделать тоже при использовании в качестве опорного +5В. Полученный коэффициент и будет использоваться для коррекции измерений. Причем микросхемы можно калибровать и вне платы, с записью константы в EEPROM(привязка к Vbg).
Правильно или я ошибаюсь?
Вне платы, боюсь, не получится, вы же опорное из питания берете, а оно может от платы к плате меняться, да и Vbg имеет свой разброс от кристалла к кристаллу. Теоретически надо подать на вход АЦП какое то точно известное напряжение, а лучше несколько напряжений и скорректировать АЦП. Можно сделать небольшой проект, который делает калибровку, а потом пишет калибровояные константы в ЕЕПРОМ, а потом прошить уже ваш рабочий проект, который будет использовать эти константы, только надо озаботиться тем чтобы ЕЕПРОМ не затерся при перепрошивке, а лучше, наверное, сделать эту калибровку как часть рабочего проекта, тогда ее можно вызывать по требованию, замыканием пина или командой из меню.
Dog Pawlowa
Nov 5 2008, 11:51
Цитата(bbill @ Nov 5 2008, 12:29)

Откалибровать "вручную" с прописыванием одной-двух констант - не проблема.
Ну, тогда нет проблем.
Вот только человеческий фактор... Если точность так важна, то сделайте так, чтобы прибор, не прошедший калибровку, вообще не работал. Моргал бы и просился откалиброваться.
Цитата(bbill @ Nov 4 2008, 17:31)

Контроллер mega16. Для измерений в качестве опорного напряжения используется +5В(напряжение питания, стабилизатор 7805). Возможно ли использование напряжения Vbg для подстройки(или коррекции) результата измерения при разбросе напряжения питания от стабилизатора к стабилизатору(от платы к плате).
А если намекнуть, ЧТО меряем и с КАКОЙ целью - станет легче делиться опытом.
Измеряем напряжения, хотим знать его величину
Измеряются напряжения в нескольких контрольных точках. По состоянию(величина напряжения) некоторых идет сообщение, по трем - выполняются действия. Допуск достаточно большой (ТУ, стоят резисторные делители), но из-за разброса опорного придется идивидульно настраивать. Сыт подобными настройками в tn13 из-за использования внутреннего ИОН (и ног свободных нет). Соответственно, НУ ОЧЕНЬ хочется этот процесс автоматизировать.
Aleksandr Baranov
Nov 6 2008, 15:47
Ну, если есть интерфейс с компьютером (что вероятно), то какие проблемы?
1. Подаем на вход эталонный 1 Вольт
2. Измеряем
3. Передаем в компьютер
4. Подаем 0 Вольт
5. Повторяем 2 и 3
6. Считаем компьютером 2 коэффициента
7.Передаем обратно в контроллер и записываем в его ЕЕПРОМ.
8. При необходимости калибруем каждый канал отдельно.
Цитата(bbill @ Nov 6 2008, 17:59)

Измеряем напряжения, хотим знать его величину
Измеряются напряжения в нескольких контрольных точках. По состоянию(величина напряжения) некоторых идет сообщение, по трем - выполняются действия. Допуск достаточно большой (ТУ, стоят резисторные делители), но из-за разброса опорного придется идивидульно настраивать. Сыт подобными настройками в tn13 из-за использования внутреннего ИОН (и ног свободных нет). Соответственно, НУ ОЧЕНЬ хочется этот процесс автоматизировать.
И насколько большой допуск? Резисторы в делителях с какой точностью используются? Какой диапазон (приведенный ко входам АЦП) измеряемых напряжений?
Если допуск 10%, резисторы 5%, а напряжения не ниже пары вольт, то ставьте 7805
AC (5%) и используйте Vcc как опору. (одного байта результата с АЦП будет при этом даже много)
Если нужно точнее (или измеряемые напряжения существенно меньше, и меньше Vref m16), то изобретайте процедуру калибровки для Vref по какому-либо внешнему ИОН. Стабильность внутренней опоры АВР вполне достаточна для честных 9 битов.
Кста, как-то я забыл про LP2950AC и подобные с точностью 0.5%. имхо, такой точности опоры Вам точно хватит.
Измеряемые напряжения находятся в двух диапазонах:
- напрямую на вход - 0,5...4В
- через делители - 8...16В.
Стабильность опоры АВРок вполне достаточна для данной задачи. Значение имеет только абсолюная величина, разброс которой достаточно велик. Поэтому и желается сделать калибровку, причем, скорее всего в приборе. Думаю будет правильно подать на вход AREF эталонное напряжение и "с его помощью" измерить Vbg. Получить отличие от номинала (1,22В) и эту константу в EEPROM. Такое же измерение выполняем при использовании в качестве опорного напряжения питания. А дальше просто пересчет. Так я не привязан к абсолютному значению питания. И достаточно будет обычной 7805(которая и была заложена).
Вопрос временнОго дрейфа питания?, ну можно проводить коррекцию раз в сутки. И обязательно по каждому включению питания прибора.
Задача калибровки каждого канала не ставилась. Пока не ставилась
Наверное так.
Поправте, со стороны всегда виднее.
Если со стороны... Зачем подавать напряжение на Aref? Подаете эталонное напряжение на один из ваших измерительных входов и меряете его относительно того что там у вас реально стоит на опоре(Vbg или Vcc, не важно), зная то что вы подали корректируете то что вы получили от АЦП, в даташите есть формула пересчета "попугаев" в напрядение, в этой формуле присутствует константа - ваше опорное напряжение, вот эту константу вам и надо скорректировать, для этого совсем не нужен ПК все можно сделать в самом контроллере и это сделать надо всего один раз при производстве. А если вы хотите еще и скорректировать смещение, нелинейность, неравномерность усиления по диапазону, то читайте апноут что я выше давал, там все это расписано с формулами и алгоритмами, остается только программу по этим алгоритмам написать. Но практически хватит коррекции опорного напряжения, т.к. оно имеет большой технологический разброс(Vbg).
Если я измеряю эталонное напряжение относительно Vcc, то у меня получается привязка m16 к 7805, т.е. контроллера к плате. А этого я хочу избежать. Тем более мне технологически удобнее подавать эталон на вход Aref. А дальше те же формулы. И конечно в самом контроллере.
В качестве опорного Vbg использовать невозможно, его можно только измерить.
Как это невозможно? А внутренний Aref откуда берется? Читайте внимательно даташиты. Только диапазон до 4в не получите с использованием внутреннего опорного, только до напряжения самой опоры. Но всяко оно более стабильно по сравнению с "кренкой", а изначальный разброс вы скорректируете как я выше описывал.
Читаю:
The internal 2.56V reference is generated
from the internal bandgap reference (VBG) through an internal amplifier.
Читаю дальше:
ADMUX MUX4:0: Analog Channel and Gain Selection Bits: 11110 - 1.22 V (VBG)
Читаю дальше:
Bit 7:6 – REFS1:0: Reference Selection Bits
0 0 /AREF, Internal Vref turned off
0 1 /AVCC with external capacitor at AREF pin
1 0 /Reserved
1 1 /Internal 2.56V Voltage Reference with external capacitor at AREF pin
Все...
Правильно, чтобы получить диапазон до 4-х вольт, мне и нужно опорное ~5В(Vcc), но его откалибровать хочу по внутреннему.
P.S. Что-то у меня цитаты не получаются.
Цитата
но его откалибровать хочу по внутреннему
Теперь понятно, но чтобы что то откалибровать по внутреннему надо сперва само внутреннее откалибровать.
Вы не внимательно прочитали мой пост 14:
"подать на вход AREF эталонное напряжение и "с его помощью" измерить Vbg. Получить отличие от номинала (1,22В) и эту константу в EEPROM. "
Спасибо за разбор проблемы.
Ну я предлагал по сути тоже самое только наоборот и с использованием существующих соединений, а подавать что то внешнее на Aref длинными проводами - это не есть гуд, наводки там, помехи, а главное потом это соединение не понадобится, а лишний проводник длинный на плате будет. Но решать, безусловно, вам.
Цитата(bbill @ Nov 6 2008, 17:59)

Измеряем напряжения, хотим знать его величину
Измеряются напряжения в нескольких контрольных точках. По состоянию(величина напряжения) некоторых идет сообщение, по трем - выполняются действия. Допуск достаточно большой (ТУ, стоят резисторные делители), но из-за разброса опорного придется идивидульно настраивать. Сыт подобными настройками в tn13 из-за использования внутреннего ИОН (и ног свободных нет). Соответственно, НУ ОЧЕНЬ хочется этот процесс автоматизировать.
Ну, вот. Понятно, может быть. По крайней мере, не мне.
- напряжение на КТ меряем относительно ЧЕГО?
- это ЧЕГО для всех общее?
- измерителей много? и у всех разные опорные?
- кто выдает измеряемое напряжение, относительно чего и от чего зависит точность выдаваемого напряжения каждой КТ (с учетом соединительных проводников, падения напряжения в них и помех в общем проводе)?
- "По состоянию(величина напряжения) некоторых идет сообщение" - сообщение это информация или сообщение проводников электр. тока?
И о диапазонах и точностях ни какой информации.
Диапазоны - см. пост 14.
Все напряжения измеряются относительного одного общего провода, измеритель - АЦП m16.
Учтены соединительные провода (токовые цепи), минимизированы для такой задачи помехи (есть аналогичные разработки).
Извините не точно выразился: "идет сообщение" - выдается сообщение. Характер сообщения здесь не оговаривается.
Я вот все пытаюсь понять, где же меня тормозит... В посте 14 был указан диапазон напруг на входах АЦП, явно выходящий за возможности встроенной опоры. Тогда о какой ее калибровке идет речь?
bbill, на Вашем производстве стоимость операции калибровки при настройке будет ниже разницы стоимости 78L05 и какого-нибудь стабилизатора с точностью выхода 0.5-1%?
А, заметил:
Цитата
Правильно, чтобы получить диапазон до 4-х вольт, мне и нужно опорное ~5В(Vcc), но его откалибровать хочу по внутреннему.
Т.е. будете калибровать одно неизвестное по другому неизвестному?

Оригинальненько
Попробую еще раз. Может я все-таки ошибаюсь.
1). В меге16 имеется возможность измерения внутреннего напряжения Vbg = 1,22V (из него формируется внутреннее Uопорное), имеющее технологический разброс.
2). В меге я могу подать на вход Aref внешнее опорное напряжение, в диапазоне 0...Vcc. Подав внешнее опорное я могу программно измерить величину Vbg. Зная заявленную и измеренную величины Vbg, определяю отклонение. Сохраняю в EEPROMе эту константу.
3). Программно переключаю применяемое опорное напряжение в меге16, с внешнего на напряжение питания Vcc:
ADMUX Bit 7:6 – REFS1:0: Reference Selection Bits
1) 0 0 /AREF, Internal Vref turned off
2) 0 1 /AVCC with external capacitor at AREF pin
3) 1 0 /Reserved
4) 1 1 /Internal 2.56V Voltage Reference with external capacitor at AREF pin
т.е. переключаю режим ADMUXа с 1-го на 2-ой.
4). Провожу программно новое измерение напряжения Vbg используя в качестве опорного напряжение Vcc. Получаю новое значение. Его отклонение связано с разбросом Vcc.
5). Пересчитываю влияние отклонения Vcc на результаты измерения.
- Допущение: считаю абсолютное значение Vbg стабильным для каждого экземпляра меги. Об этом говорили писавшие.
Внутренне опорное напряжение меги (режим 4-е ADMUX) в штатных измерениях не используется.
Укажите, пожалуйста, где или чем моя ошибка.
demiurg_spb
Nov 8 2008, 08:06
Цитата(bbill @ Nov 7 2008, 22:29)

Укажите, пожалуйста, где или чем моя ошибка.
Ошибок нет.
Не придётся ли физически отключать AVCC от AREF на время калибровки Vbg (это может быть неудобно)?
И как часто Вы предлагаете измерять абсолютное значение VCC?
Или можно спросить иначе.
Насколько VCC стабильно во времени?
Насколько VCC зависит от температуры?
Насколько VCC зависит от текущей потребляемой мощности?
Получить 100% верные измерения при (V_изм>V_int_ref) не представляется возможным без использования внешнего опорника.
Для повышения достоверности результатов измерений придётся увеличивать выборку.
И тут, как Вы понимаете, чем больше выборка, тем достовернее результат...
Цитата(bbill @ Nov 7 2008, 22:29)

...
Теоретически все верно. При настройке можно ограничиться выполнением п.2 из списка, а нижеследующие п.п. выполнять периодически. (хотя может быть будет достаточно и однократной калибровки - Вы так и не огласили требования по точности и точность элементов в обвязке - вдруг и биться-то не за что)
Практически же ... Ну хоть убейте, не догоняю, стОит ли эта чехарда 3 рубля. Коль возникают такие вопросы, сомневаюсь, что речь идет о коробочке с отлаженными смехотехникой и софтом, выпускающейся хотя бы килоштучным тиражом.
"Практически же ..."
Речь идет не о килоштучном изделии, к сожалению.
Схемотехника уже отлажена, софт пишется и хочется упростить процесс настройки потом.
И использовать данную методику в дальнейшем (для точных или быстрых измерений естественно использовать только внешние АЦП).
Я выше писал, что при использовании тинек13 с внутренним опорным(ног свободных нет) замучился переписывать константы настройки для каждой ИМС. Стабильность работы при использовании внутреннего опорного устраивала, а использования Vcc - нет. Ни о каких программных настройках там речь не шла, из-за малого объема памяти. Фактичесик получалась привязка ИМС-плата, что совсем не есть хорошо., а в данном случае невозможно. Вот за это нужно бится.
Температурный диапазон работы 0...30 градС, сухие помещения, быстрого перепада температур нет.
В делителях для измерения напряжений превышающих Uопорн установлены 1% резисторы. Мощность потребления от 7805 меняется(от нее запитан не только процессор), соответсвенно меняется температура ее корпуса, которая зависит еще и от внешней температуры. Температурный и временной дрейф см. даташит на 7805. Поэтому калибровать придется скорее всего периодически. Температурный дрейф Vbg в этом диапазоне мал.
Извините, суббота, вечер, немного философски.
Цитата(bbill @ Nov 8 2008, 23:11)

"Практически же ..."
Речь идет не о килоштучном изделии, к сожалению.
Схемотехника уже отлажена, софт пишется и хочется упростить процесс настройки потом.
Не знаю бюджет Вашей коробочки, но если ее себестоимость выше 50 р., то простая замена 78L05 на LP2950 (C или AC, похоже, без разницы), имхо, решит проблему с калибровкой напрочь, не подрывая бюджет
Цитата
И использовать данную методику в дальнейшем (для точных или быстрых измерений естественно использовать только внешние АЦП).
Для 9 бит@10ksps с соответствующей опорой АЦП АВР вполне пригоден, но какая-то настройка для этого - нонсенс, если нет возможности ее полностью автоматизировать.
Цитата
Температурный диапазон работы 0...30 градС, сухие помещения, быстрого перепада температур нет.
В делителях для измерения напряжений превышающих Uопорн установлены 1% резисторы. Мощность потребления от 7805 меняется(от нее запитан не только процессор), соответсвенно меняется температура ее корпуса, которая зависит еще и от внешней температуры. Температурный и временной дрейф см. даташит на 7805. Поэтому калибровать придется скорее всего периодически. Температурный дрейф Vbg в этом диапазоне мал.
Сравните с характеристиками LP2950. (Вы нашли в даташите на 7805 упоминание о ее временном дрейфе?

не обращайте внимания - вечер, бокал вина, хорошее настроение...)
Не 78L05, а 7805 или 78M05. Так что LP2950 - "не катит". И вообще-то при входном 10...14В, как-то стабилизатор в TO92 стремно ставить, особенно если проц по выходам нагружен. А здесь и обвязка.
Отсюда и попытка автоматизации: подключить разъем о двух контактах и с клавы выдать команду на калибровку.
Спасибо за замечания, будут учтены.
P.S. Увы "суббота, вечер..." означают дрова после дня работы на свежем и весьма прохладном воздухе и отнюдь не за компом
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.