Обсуждаем контроллеры компании Atmel.
Ответить

Re: ATmega + 12bit ADC

Вт авг 24, 2021 12:49:44

Ну вот, slav0n, наконец-то мы с тобой пришли к единому мнению.

Re: ATmega + 12bit ADC

Вт авг 24, 2021 12:52:17

Re: ATmega + 12bit ADC

Вт авг 24, 2021 18:16:33

slav0n, тест с батарейкой прошел успешно.

Re: ATmega + 12bit ADC

Ср сен 01, 2021 14:59:23

закончил я изготовление БП для брата и посмотрел погрешности вольтметра и амперметра по диапазонам.
вывод такой:
никакой оверсемплинг не поможет "кривизне" (полной погрешности) внутреннего АЦП.
по даташиту для АТмега8 полная погрешность может быть до 1,75 LSB.
на практике примерно так и есть.
после калибровки в одной точке диапазона измерения (ближе к концу диапазона) ошибка внутри диапазона измерения составила до 2 LSB - и по вольтметру и по амперметру, так как АЦП один и тот же для обоих измерителей.
так что моя сумма 1000 выборок не дала практически никакой пользы.
это в теории с оверсемплингом всё красиво, а на практике никакого толку от него не оказалось.
Dimon456, и именно такая погрешность внутреннего АЦП вынудила меня перейти на внешний АЦП с большим числом разрядов.

Re: ATmega + 12bit ADC

Ср сен 01, 2021 15:25:40

Я ведь не просто так спрашивал выше про спектр шума и как отслеживается его распределение по спектру. Когда экспериментировал с измерением RMS, заметил, что при вычислении RMS в случае усреднения измерений за нечётное число периодов, погрешность была выше, чем при усреднении результатов за чётное число. А тут вы взяли АЦП, нашумели у него на входе фиг знает чем, после чего ждёте превращения 10 бит в 14. Это только в сказке тыква превращается в золотую карету. В жизни же тыква всегда остаётся тыквой.

Re: ATmega + 12bit ADC

Ср сен 01, 2021 18:45:39

Starichok51 писал(а):погрешность может быть до 1,75 LSB.
на практике примерно так и есть.
погрешность погрешностью, а с разрешением как, увеличивается?
верней, уменьшается?

Re: ATmega + 12bit ADC

Ср сен 01, 2021 19:21:21

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, этого очень мало. Ни какие тебе фильтры не помогут, хоть зафильтруйся.

Re: ATmega + 12bit ADC

Ср сен 01, 2021 21:30:29

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

Re: ATmega + 12bit ADC

Чт сен 02, 2021 00:01:19

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

хм... так какую же из них надо учитывать, если необходимый шум должен быть минимум несколько единиц младшего разряда

Re: ATmega + 12bit ADC

Чт сен 02, 2021 08:35:38

да при чем здесь шум, когда собственная нелинейность (погрешность) внутреннего АЦП большая?
если сам АЦП в некоторой точке врет на 1-2 единицы, то никакой шум эту собственную ошибку АЦП не исправит.
в даташите на АТмега8 указано:
Absolute accuracy (Including INL, DNL, Quantization Error, Gain, and Offset Error) типовая 1,75 единиц.
но, во-первых, это типовая, а максимальная не указана,
и во-вторых, дробных чисел там не бывает, поэтому сразу типовую округляем до 2 единиц.
и как ты собрался шумом исправить эту собственную ошибку в 2 единицы?

Re: ATmega + 12bit ADC

Чт сен 02, 2021 08:58:52

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

Re: ATmega + 12bit ADC

Чт сен 02, 2021 09:19:01

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 знака?

Re: ATmega + 12bit ADC

Чт сен 02, 2021 10:05:25

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А.

Re: ATmega + 12bit ADC

Чт сен 02, 2021 10:50:26

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

Если немного упростить и взять только линейные погрешности, то имеем банальное линейное уравнение:
REAL = ADC * gain + offset
и кто сказал, что gain и offset не могут быть вещественными числами, да сколько угодно!
а нелинейность так и подавно.

Re: ATmega + 12bit ADC

Чт сен 02, 2021 14:19:04

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.

Табличный метод дает минимальную нелинейность между двумя точками.

Re: ATmega + 12bit ADC

Чт сен 02, 2021 15:20:48

зачем таблицы, если Старичок сделал программную ООС.
таблицы идут лесом

Re: ATmega + 12bit ADC

Чт сен 02, 2021 18:26:06

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

Re: ATmega + 12bit ADC

Чт сен 02, 2021 18:30:57

верь Старичку, у него аппаратные 15 бит.
брату же делал, а брата западло обманывать

Re: ATmega + 12bit ADC

Чт сен 02, 2021 23:58:24

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

Re: ATmega + 12bit ADC

Пт сен 03, 2021 07:36:53

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