опять про АЦП

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Открыл глаза
Сообщения: 61
Зарегистрирован: Сб май 03, 2008 17:06:01

Сообщение DimonPhysic »

Вопрос такой: собрал "вольтметр" на АТмеге8, опорное напряжение-внутренний источник, напряжение меряется постоянное, причём чисто "качественно", поэтому подаю сигнал напрямую на вход, через сглаживающий кондёр, но при подаче заведомо стабильного сигнала контроллер его определяет "как карта ляжет". То есть АЦП оцифровует сигнал по разному, с разбросом в младший бит. АЦП работает на частоте 7кГц, наводок никаких. Это наблюдается лишь при определённых значениях входного сигнала. Для подавления проблемы я использовал алгоритм усреднения за 256 измерений, но полностью проблема не решилась-числа то и дело "блымают"(особое западло когда FF и 100 меняются-ничего не видно).
Кто чё подскажет?
Может ИОН калечный? А может тут надо алгоритм отбора данных хитрый?
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

для любого АЦП погрешность в 1 младший бит - нормальное состояние. для многих АЦП (например, в некоторых AVR) гарантируется точность плюс-минус 2 единицы младшего разряда, т.е. это уже 2 бита (4 значения)...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Открыл глаза
Сообщения: 61
Зарегистрирован: Сб май 03, 2008 17:06:01

Сообщение DimonPhysic »

Ну дык как сделать, чтоб мк что-то одно выбирал? Дергает его так что число не видно, особенно когда старшие биты из-за младшего меняются(0111-1000). Наверное алгоритм какой-нить есть?
Родился
Аватара пользователя
Сообщения: 11
Зарегистрирован: Ср июн 25, 2008 09:34:05

Сообщение Нехочуха »

DimonPhysic писал(а):Ну дык как сделать, чтоб мк что-то одно выбирал? Дергает его так что число не видно, особенно когда старшие биты из-за младшего меняются(0111-1000). Наверное алгоритм какой-нить есть?
Ну кроме усреднения человечество ничего лучше не придумало. Если хотите делать грамотно, избавляясь от методической и инструментальной погрешности, то делайте калибровку. Допустим измеряете напряжение с динамическим диапазоном от 0 до 2,5 вольт. Выглядеть это должно примерно так - подаете 0 вольт и запоминаете в eeprom значение кода АЦП, затем подаете 2,5 вольт - и опять запоминаете значение кода. Получаете две точки начала и конца шкалы измерения. Далее в программе элементарно вычисляется любое значение, используя полученные константы и уравнение прямой (y=ax+b). Надеюсь, идея понятна. Ну и конечно усредняйте.
Ты можешь здорово разбираться в чем-то, но всегда найдётся 1000000 человек, делающих это ещё лучше.
Реклама
Эиком - электронные компоненты и радиодетали
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

хоть вывернись наизнанку - никак от плавания младшего бита не избавиться... хоть калибруй, хоть фильтруй, хоть как еще извращайся - всегда будет момент, когда показания скакать будут...

из практики: скачки показаний (смена цифр) не чаще 2 раз в секунду - не раздражают, и не нарушают быстроту смены показаний...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Открыл глаза
Сообщения: 61
Зарегистрирован: Сб май 03, 2008 17:06:01

Сообщение DimonPhysic »

AVR, спасибо. Дальше долбаться не буду, тока усредню замеров 1024.
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 219
Зарегистрирован: Вт сен 18, 2007 16:41:16
Откуда: Украина, г. Запорожье

Сообщение alex2103 »

DimonPhysic а зачем этот младший разряд? 1024 ИМХО очень много, медленно будет. Когда-то делал так: 16 измерений -> сортировка пузырьком -> среднее арифметическое. Вроде неплохо работало...да...последний разряд не использовал.
Контактная информация:
Открыл глаза
Сообщения: 61
Зарегистрирован: Сб май 03, 2008 17:06:01

Сообщение DimonPhysic »

Alex2103, это чтоб зря время не тратить, при усреднении 1024 отсчётов частота обновления результата будет где-то 4 раза в секунду. А вы можете алгоритм подробней описать, что вы усредняете, предельные значения ? Я боюсь чтоб случайные помехи сильно на результат не влияли.
Я слышал, что есть математические методы как ''разогнать'' АЦП меги до 16 бит! Это реально? Как это делается?
Модератор
Аватара пользователя
Сообщения: 11169
Зарегистрирован: Чт окт 27, 2005 18:50:07
Откуда: из мест не столь отдалённых

Сообщение Сэр Мурр »

Да вроде просто суммируются 8 последовательных отсчётов. Применяется для полного использования 2 байтов информации.
Открыл глаза
Сообщения: 61
Зарегистрирован: Сб май 03, 2008 17:06:01

Сообщение DimonPhysic »

Да слышал я про это(сёдня специально погуглил), Сэр Мурр. Там предлагают суммировать, а потом сдвигать, усреднять короче... То есть, как я понял, меряем линейкой стул, десять раз получаем 100 см, усредняем и получаем 100,1 см!!! Опупеть! Я так до размера атомов до усредняюсь:)!
Другое дело метода, когда к сигналу подмешивают шум, а потом програмно его фильтруют. Там реально можно быстродействие превратить в точность. Это я вычитал на каком-то форуме, но когда спросил на этом форуме подробности(нахрена регился?) то мне сказали шо это не оправдывает затраты(нифига они не знают, короче)! Как же не оправдывает??? АЦП на 16 бит стоит раза в 3 дороже АТмега8, а потом учи даташиты, разводи плату, терпи сюрпризы от АЦП(ИОН там внешний, да мало ли). И это при том, что шуму и контроллер может наделать, да и скорости меги для мнохих целей хватит и на программный фильтр останется(мне, к примеру, надо медленный график снять, кроме АЦП мне от контроллера почти ничего не нужно). Или пальцы об клаву морать не охота?
Кошаки, чё б не поработать над этой темой? Или ответьте, по каким причинам это не имеет смысла! Хотя смысл попробовать точно есть.
Вымогатель припоя
Аватара пользователя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

У тебя три варианта далее:
1. Обновлять данные на дисплее в два раза медленнее
2. Откинуть младший бит
3. Усреднять
Today fine night...
Модератор
Аватара пользователя
Сообщения: 11169
Зарегистрирован: Чт окт 27, 2005 18:50:07
Откуда: из мест не столь отдалённых

Сообщение Сэр Мурр »

Простите, подмешивание шума к сигналу никак не может увеличить точность или разрядность. Главный вопрос- для чего нужен именно 16-разрядный АЦП? И нет ничего плохого в процедуре усреднения нескольких отсчётов. "Дрожание" младших разрядов носит случайный характер. При работе с настоящим 16-разрядным АЦП Вы столкнётесь с той же самой проблемой, и будете решать её теми же способами- накоплением и усреднением (ессно, всё сказанное относится к постоянно-токовому или медленно меняющемуся сигналу)
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 375
Зарегистрирован: Вс мар 04, 2007 13:14:25
Откуда: Украина

Сообщение Krik99 »

Я когдато с таким тоже сталкивался, а потом забросил проект... :( Но я делал так, циклом опрашивал АЦП 3 раза (можно больше или меньше) и с каждым циклом к переменной прибавлял прочитаное число, а потом когда выходил с цикла, всё делил на 3 и получал среднее-арифметическое...
Изображение
Контактная информация:
Открыл глаза
Сообщения: 61
Зарегистрирован: Сб май 03, 2008 17:06:01

Сообщение DimonPhysic »

Всем здрасте. Хотел раньше написать, но с дырнетом вечные напряги...
Да я уже разобрался с "дрожанием", просто пока разбирался наткнулся дето на тему увеличения разрядности АЦП. Но новую тему открывать не хотелось, вот я немного и изменил старую(ну в смысле эту). Вот я теперь и предлагаю поувеличивать разрядность АЦП.
Сэр мурр:
1.
подмешивание шума к сигналу никак не может увеличить точность или разрядность
. Здесь Вы ошибаетесь потому, что
"Дрожание" младших разрядов носит случайный характер
Есть даже специальное понятие дитер. Кому интерестно может глянуть в википедии по теме АЦП.
2.
Главный вопрос- для чего нужен именно 16-разрядный АЦП?
Вот это какраз совсем не вопрос...[/url]
Модератор
Аватара пользователя
Сообщения: 11169
Зарегистрирован: Чт окт 27, 2005 18:50:07
Откуда: из мест не столь отдалённых

Сообщение Сэр Мурр »

DimonPhysic писал(а): поувеличивать разрядность АЦП.
Сэр мурр:
1.
подмешивание шума к сигналу никак не может увеличить точность или разрядность
. Здесь Вы ошибаетесь потому, что
"Дрожание" младших разрядов носит случайный характер
Есть даже специальное понятие дитер. Кому интерестно может глянуть в википедии по теме АЦП.
Есть специальное понятие- ДЖИТТЕР (ДРОЖАНИЕ). Термин широко используется в описании процесса считывания информации с лазерных дисков. В отношении АЦП- это то же самое "Дрожание" разрядов. Может происходить, когда сигнал находится посредине между двумя соседними отсётами АЦП, или под воздействием дестабилизирующих факторов, или вследствие флуктуаций измеряемого сигнала.
Повышение надёжности считывания информации при подмешивании шума- это парадокс квантовой теории информации. Правда, и подмешиваемый шум тоже должен быть квантовым. Мы же работаем с реальными сигналами, а не квантовыми.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

рекомендую ознакомиться с апноутом AVR121 - там вполне понятно объяснено (по-английски), как повышается разрядность АЦП... и пример программы и схемы приведен

кстати, существует вполне устоявшийся термин для этого - оверсэмплинг (oversampling).

да, оверсэмплинг позволяет при определенных условиях "перегнать" быстродействие в разрядность АЦП :) кстати, и обратный процесс так же реален - получение ШИМ с разрядностью больше, чем аппаратно реализованная :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Открыл глаза
Сообщения: 61
Зарегистрирован: Сб май 03, 2008 17:06:01

Сообщение DimonPhysic »

ARV, с этим документом я заком. Но я несовсем силён в английском, поэтому и спрашиваю. Если на форуме так много людей знакомых с данной темой, то почему бы не взять и не дать полный и понятный ответ как это реально сделать(а лучше в обучалке написать)??? Я думаю, что я далеко не один такой невдаха-халявщик, которому влом осилить 14 страниц текста, а увеличить разрядность оч хоцца! В интернете довольно много форумов посвященных этому вопросу, тока ответа на вопрос КАК СДЕЛАТЬ нигде невидно... Если кто занимался вопросом-отзовитесь, реально нужно!!!
Модератор
Аватара пользователя
Сообщения: 11169
Зарегистрирован: Чт окт 27, 2005 18:50:07
Откуда: из мест не столь отдалённых

Сообщение Сэр Мурр »

Ну дык надо просто суммировать соответствующее число отсчётов, и желательно использовать внешний, более стабильный ИОН, либо принять меры к снижению шума встроенного ИОНа.
Про подмешивание шума- Вы сможете реализовать шум, эквивалентный половине МЗР? Так что не заморачивайтесь- суммируйте, батенька, суммируйте... Не забывая, что при этом теряете скорость преобразования сигнала в цифру...
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Сэр Мурр писал(а):Ну дык надо просто суммировать соответствующее число отсчётов, и желательно использовать внешний, более стабильный ИОН, либо принять меры к снижению шума встроенного ИОНа.
Про подмешивание шума- Вы сможете реализовать шум, эквивалентный половине МЗР? Так что не заморачивайтесь- суммируйте, батенька, суммируйте... Не забывая, что при этом теряете скорость преобразования сигнала в цифру...
Сэр Мурр, при всем уважении - вы не совсем правы... точнее, совсем не правы...

Просто суммирование толку не даст, как и улучшение качества ИОН. Шум, эквивалентный половине МЗР получить весьма просто, хотя конечно, придется для каждого экземпляра схемы регулировать подстроечник, добиваясь точности показаний и калибровать АЦП...

Другой вопрос: зачем надо повышать разрядность АЦП? Там, где оправдано применение AVR, вряд ли есть большой смысл добиваться 12 или 16 разрядов АЦП... А там, где оправданы 16 и более разрядов - вряд ли место AVR...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

DimonPhysic писал(а):но когда спросил на этом форуме подробности... то мне сказали шо это не оправдывает затраты
Скорее всего это была оценка в контексте чьего-то конкретного проекта. В общем случае, это, разумеется, оправданно.
Сэр Мурр писал(а):Простите, подмешивание шума к сигналу никак не может увеличить точность или разрядность.
Простите, сэр Мурр, но тут Вы определенно ошибаетесь, или не узнали "в лицо" по тому, весьма приблизительному описанию, которое дал DimonPhysic, метод увеличения разрядности. Там используется именно подмешивание шума. Если есть необходимость (чем Собака не шутит?), подробности можно найти в апнотах от Атмела (не только, но к примеру) по слову oversampling. Там достаточно очевидная математика, поэтому доки могут и не понадобиться, дело там не в джиттере. Просто суммирование/усреднение не дает эффекта повышения разрядности без шумовой составляющей с амплитудой превышающей цену деления.


О, ARV, оказывается, про то же написал... бывает.
ARV писал(а):Шум, эквивалентный половине МЗР получить весьма просто, ...
Можно и без настоящего шума обойтись - гармоническим сигналом, лишь бы частота этого сигнала не переводилась в частоту сэмплирования целыми числами. Или, другими словами, отношение частот д.б. непериодической дробью.
ARV писал(а):Другой вопрос: зачем надо повышать разрядность АЦП? ... там, где оправданы 16 и более разрядов - вряд ли место AVR...
А разве повысить разрядность можно только у АЦП встроенных в AVR? 8) ;) В этой задаче, если для устранения мелькания младшего разряда все равно накапливаются 1024 измерения, повышение разрядности м. рассматривать, как бесплатное (ну, почти - нашуметь только) приложение.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»