ATmega + 12bit ADC

Обсуждаем контроллеры компании Atmel.
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

Ну вот, slav0n, наконец-то мы с тобой пришли к единому мнению.
Реклама
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

ohmycode!
primuss3.com
Реклама
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

slav0n, тест с батарейкой прошел успешно.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

закончил я изготовление БП для брата и посмотрел погрешности вольтметра и амперметра по диапазонам.
вывод такой:
никакой оверсемплинг не поможет "кривизне" (полной погрешности) внутреннего АЦП.
по даташиту для АТмега8 полная погрешность может быть до 1,75 LSB.
на практике примерно так и есть.
после калибровки в одной точке диапазона измерения (ближе к концу диапазона) ошибка внутри диапазона измерения составила до 2 LSB - и по вольтметру и по амперметру, так как АЦП один и тот же для обоих измерителей.
так что моя сумма 1000 выборок не дала практически никакой пользы.
это в теории с оверсемплингом всё красиво, а на практике никакого толку от него не оказалось.
Dimon456, и именно такая погрешность внутреннего АЦП вынудила меня перейти на внешний АЦП с большим числом разрядов.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Эиком - электронные компоненты и радиодетали
tonyk
Это не хвост, это антенна
Сообщения: 1321
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: ATmega + 12bit ADC

Сообщение tonyk »

Я ведь не просто так спрашивал выше про спектр шума и как отслеживается его распределение по спектру. Когда экспериментировал с измерением RMS, заметил, что при вычислении RMS в случае усреднения измерений за нечётное число периодов, погрешность была выше, чем при усреднении результатов за чётное число. А тут вы взяли АЦП, нашумели у него на входе фиг знает чем, после чего ждёте превращения 10 бит в 14. Это только в сказке тыква превращается в золотую карету. В жизни же тыква всегда остаётся тыквой.
Реклама
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

Starichok51 писал(а):погрешность может быть до 1,75 LSB.
на практике примерно так и есть.
погрешность погрешностью, а с разрешением как, увеличивается?
верней, уменьшается?
ohmycode!
primuss3.com
Реклама
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

tonyk писал(а):А тут вы взяли АЦП, нашумели у него на входе фиг знает чем, после чего ждёте превращения 10 бит в 14.
Я то же так раньше думал, но при питании от батарейки там не чему шуметь, остался последний тест - один вход и батарейка.

Starichok51, 1000 выборок, этого мало, от шума не избавитесь.
Любой цифровой прибор имеет погрешность, +-1LSB.

Возьмем ваш пример:
АЦП 10 бит, давайте опустим опору до 4,096В, максимум 40,96В, итог 1LSB составит 0,04В. Погрешность составит +-0,04В.
ADS1115 16 бит, давайте опустим опору до 4,096В, максимум 40,96В, итог 1LSB составит 0,000625В. Погрешность составит +-0,000625В.
На практике вам в блок питания требуется измерять с точность 0,1В. С вольтами и 10 бит справится.

А что с током?
АЦП 10 бит, давайте опустим опору до 4,096В, максимум 10,24А, итог 1LSB составит 0,01А. Погрешность составит +-0,01А.
ADS1115 16 бит, давайте опустим опору до 4,096В, максимум 10,24А, итог 1LSB составит 0,00015625А. Погрешность составит +-0,00015625А.
А вот стоком, дела обстоят очень плохо, если для обыкновенно зарядки, то +-0,01А сойдет.
А для ЛБП хотелось бы хотя бы +-0,001А.

Starichok51, вот что вас вынудило перейти на внешний АЦП, а не какая-то "кривизна".
slav0n писал(а):а с разрешением как, увеличивается?
разрешение будет тогда, когда он положит соответствующее количество отсчетов, но не как не 1000, этого очень мало. Ни какие тебе фильтры не помогут, хоть зафильтруйся.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

slav0n писал(а):погрешность погрешностью, а с разрешением как
а как это можно узнать, если сам АЦП имеет такую погрешность, которая значительно больше, чем ожидаемое разрешение (дискретность)?
Dimon456 писал(а):ADS1115 16 бит
ADS1115 имеет 16 бит в ОБЕ полярности. а в положительную полярность (которая нужна) только 15 бит. то есть, максимум 32767 единиц. поэтому посчитанную тобой погрешность умножь на 2.
Dimon456 писал(а):максимум 10,24А, итог 1LSB составит 0,01А. Погрешность составит +-0,01А.
я получил по току +/-0,02А - 2 LSB, о чем выше написал.
Dimon456 писал(а):а не какая-то "кривизна".
именно "кривизна" вынудила.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

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

хм... так какую же из них надо учитывать, если необходимый шум должен быть минимум несколько единиц младшего разряда
ohmycode!
primuss3.com
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

да при чем здесь шум, когда собственная нелинейность (погрешность) внутреннего АЦП большая?
если сам АЦП в некоторой точке врет на 1-2 единицы, то никакой шум эту собственную ошибку АЦП не исправит.
в даташите на АТмега8 указано:
Absolute accuracy (Including INL, DNL, Quantization Error, Gain, and Offset Error) типовая 1,75 единиц.
но, во-первых, это типовая, а максимальная не указана,
и во-вторых, дробных чисел там не бывает, поэтому сразу типовую округляем до 2 единиц.
и как ты собрался шумом исправить эту собственную ошибку в 2 единицы?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

Starichok51 писал(а):и во-вторых, дробных чисел там не бывает, поэтому сразу типовую округляем до 2 единиц.
ну ты даешь...
а это что:
максимальная погрешность квантования всегда ±1/2 мл.разр.
Абсолютная погрешность - максимальное отклонение между идеальной прямолинейной и реальной передаточными функциями, в т.ч. внутри интервалов квантования. Минимальная абсолютная погрешность, таким образом, равна погрешности квантования 1/2 мл. разр.
ohmycode!
primuss3.com
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

Starichok51 писал(а):ошибка внутри диапазона измерения составила до 2 LSB
Посчитаем еще разок
Напряжение
Dimon456 писал(а):АЦП 10 бит, давайте опустим опору до 4,096В, максимум 40,96В, итог 1LSB составит 0,04В. Погрешность составит +-0,04В.
Внутри диапазона 20,00В ошибка составила 2 LSB, на 1LSB приходится 0,04В.
Итог: 20,00В +-0,08В. И что это много?

Ток
Dimon456 писал(а):АЦП 10 бит, давайте опустим опору до 4,096В, максимум 10,24А, итог 1LSB составит 0,01А. Погрешность составит +-0,01А.
Внутри диапазона 5,00А ошибка составила 2 LSB, на 1LSB приходится 0,01А.
Итог: 5,00А +-0,02А. И что это много?

О какой "кривизне"идет речь? Если это стандарт для АЦП 10 бит.

Или, может, вы хотите с точностью до 9 знака?
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

Dimon456 писал(а):Внутри диапазона 5,00А ошибка составила 2 LSB, на 1LSB приходится 0,01А.
Итог: 5,00А +-0,02А. И что это много?
диапазон у меня 10 Ампер, а не 5. а измерения я проводил в нескольких точках ВНУТРИ диапазона.
всё относительно.
погрешность 0,02А на диапазон 10А составит всего 0,2%, чего о многих случаях вполне достаточно.
напоминаю, что класс измерительного прибора определяется к концу шкалы (диапазона), а не в проверяемой точке.
и поэтому можно сказать, что класс моих измерителей на внутренним АЦП равн 0,2.
если сравнивать со стрелочным прибором класса 2,5, то всё очень прекрасно!
но мне захотелось получить измерители гораздо точнее, чем класс 0,2. и поэтому я взял внешний АЦП с 15 битами положительного результата.

и уж если зашла речь о моих проектах, то с внешним АЦП я применил внешние ЦАП с 12 битами - вместо ШИМ.
а ШИМ как ни фильтруй, всё равно останутся пульсации.
но примененный внешний ЦАП имеет огромную нелинейность - максимум интегральной нелинейности может достигать 14,5 единиц.
в итоге, без принятия каких-либо мер, этот внешний ЦАП окажется даже хуже, чем ШИМ. а ШИМ линеен абсолютно.
и я принял меру - поскольку измерители на внешнем АЦП имеют высокую точность, я сделал автоматическую коррекцию задания в ЦАП по результату измерения входной величины.
то есть, если я задал 5,00А, а измеритель показал 5,02А, то код в ЦАП будет уменьшаться до тех пор, пока измеритель не покажет 5,00А.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

Starichok51 писал(а):может достигать 14,5 единиц
ну вот и появилась дробная часть в погрешности.

Если немного упростить и взять только линейные погрешности, то имеем банальное линейное уравнение:
REAL = ADC * gain + offset
и кто сказал, что gain и offset не могут быть вещественными числами, да сколько угодно!
а нелинейность так и подавно.
ohmycode!
primuss3.com
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

Starichok51 писал(а):диапазон у меня 10 Ампер,
Dimon456 писал(а):Внутри диапазона 5,00А
все я правильно написал.
Starichok51 писал(а):но примененный внешний ЦАП имеет огромную нелинейность - максимум интегральной нелинейности может достигать 14,5 единиц.
Создается таблица, цифры примерные будут:
для 9,00В - ЦАП=899
для 10,00В - ЦАП=985

Надо выставить 9,2 Вольта, берем из таблицы табличное значение для 9,00В - 899 (так как 9,2 больше 9 вольт) и следующее за ним 985.
Отнимаем 985-899=86, 86 ЦАП это нужно на 1 вольт, между диапазоном 9,00В и 10,00В.
Делим на 10. 86/10=8,6. Это 8,6 ЦАП на шаг перестройки 0,1 Вольта.
А нужно выставить 9,2В, 9,2-9,0 = 0,2В. То есть добавить 0,2 Вольта.
0,2В * шаг перестройки 0,1 Вольта. 8,6 + 8,6 =17,2. То есть нужно добавить 17 к табличному значению 899.

Итоговый ЦАП составит 899 + 17 = 916.

Табличный метод дает минимальную нелинейность между двумя точками.
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

зачем таблицы, если Старичок сделал программную ООС.
таблицы идут лесом
ohmycode!
primuss3.com
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

slav0n писал(а):зачем таблицы
вы создали идеальное устройство? использовали инструментальные оу? у вас заводская идеальная плата без подковырок? Я так и думал.
У вас показометр, с классом точности 0,2, а вот с погрешностью 14,5 единиц.
slav0n писал(а):если Старичок сделал программную ООС.
и зря, АЦП и ЦАП не должны быть связаны. Если что то пойдет не так, чему верить?
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

верь Старичку, у него аппаратные 15 бит.
брату же делал, а брата западло обманывать
ohmycode!
primuss3.com
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

slav0n писал(а):ну вот и появилась дробная часть в погрешности.
в ЦАПе да, погрешность (нелинейность) может оказаться дробной величиной. а в АЦП дробного кода просто быть не может.
Dimon456 писал(а):Создается таблица
ерунда. даже в узком участке полного диапазона погрешность у этого ЦАПа гуляет, как бык поссал. и интерполяция тут не поможет. исследовал я его во многих точках диапазона образцовым прибором.
slav0n, брату я сделал на внутреннем 10-битном АЦП. ему достаточно и такой точности.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

Starichok51 писал(а):ерунда. даже в узком участке полного диапазона
ну так создай таблицу с шагом 0,1В.
Ответить

Вернуться в «AVR»