ATmega + 12bit ADC

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

Re: ATmega + 12bit ADC

Сообщение slav0n »

Dimon456 писал(а):мы наверное на разных волнах с тобой находимся.
это точно.

Добавлено after 14 minutes 34 seconds:
Dimon456 писал(а):а далее где-то вот так 33000*15бит/32768. 33.000*32736/32738 = 32.997 с точностью до тысячной вольта.
и где же оно правильно?
33.000*32736/32768 = 32.968
аж 32 милливольта, ну ладно это как раз младший разряд 10 бит
а теперь подай на вход 32.996 вольт
32.995
32.994
32.993
...

Добавлено after 12 minutes 47 seconds:
еще можешь для прикола посчитать 1022, 1021, 1020...
ohmycode!
primuss3.com
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

slav0n писал(а):аж 32 милливольта
где ты увидел 32 мВ?
а если умножить на 32735, разница с 32736 будет практически ровно 1 мВ.
так что, Dimon456 правильно сказал - с точностью до тысячной Вольта.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

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

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

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

Re: ATmega + 12bit ADC

Сообщение slav0n »

33000 милливольт - 32968 милливольт = 32 милливольта

Изображение
Вложения
ууууу.jpg
(27.53 КБ) 376 скачиваний
ohmycode!
primuss3.com
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

10-разрядный АЦП не может измерить более 1023 / 1024 от опорного напряжения.
а 33000 * 1023 / 1024 = 32968.
и никакой оверсемплинг ему не поможет выдать код более 1023.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

Чисто теоретически 33000 * 1 / 32768 = 1 мВ.
slav0n, я для тебя опору опушу до 3,276В, к сожалению прибор DM-90 мерит только три знака после запятой.
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

Starichok51 писал(а):10-разрядный АЦП не может измерить более 1023 / 1024 от опорного напряжения.
а 33000 * 1023 / 1024 = 32968.
правильно, максимальное измеряемое напряжение в данном случае = 33.0 - 0.032 = 33.968
где 0.032 это 1 младший разряд в пересчете на напряжение (33.0 / 1024 = 0.032)
Dimon456 писал(а):я для тебя опору опушу до 3,276В
та мне оно зачем, для себя опускай, мне уже хватило твоего:
Dimon456 писал(а):33.000*32736/32738 = 32.997 с точностью до тысячной вольта.
ohmycode!
primuss3.com
Аватара пользователя
Starichok51
Модератор
Сообщения: 19054
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ATmega + 12bit ADC

Сообщение Starichok51 »

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

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

slav0n писал(а):та мне оно зачем, для себя опускай, мне уже хватило твоего:
Это твое[uquote="slav0n",url="/forum/viewtopic.php?p=4074210#p4074210"]Изображение
Dimon456 писал(а):Попытка обмануть,
будем определять шаг,
956 * 5000 / 1024 = 4668,0
3824 * 5000 / 4096 = 4668,0
твоя попытка обмануть неудачна

[uquote="parovoZZ",url="/forum/viewtopic.php?p=4074182#p4074182"]а как здесь учитывается тот факт, что последние два бита - это шум? Точнее, шум квантования и нелинейность преобразования?[/uquote]здесь шум только на пользу[/uquote]не мое.
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

Starichok51 писал(а):ну, и чем тебе помешала нехватка этих 32 мВ до максимума?
ничем не помешала, все норм
Starichok51 писал(а):зато ниже измерения будут идти через 1 мВ. а это очень прекрасно.
учитывая вот это:
Dimon456 писал(а):при АЦП 10бит: берем 64-битную переменную, складываем туды 256 выборок, 1023*256=261888 , о да же в 32 бита влазит
сдвигаем на 3 бита, 261888>>3=32736
и получаем 15 бит,
фигвам, а не 1 мВ
ohmycode!
primuss3.com
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

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

Re: ATmega + 12bit ADC

Сообщение slav0n »

а вот если сделать так:

Код: Выделить всё

n = 1024 * x;//+5 bits
   ---
return (sum >> 5) / x;
то будет 1 мВ
ohmycode!
primuss3.com
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

slav0n писал(а):n = 1024 * x;//+5 bits
---
return (sum >> 5) / x;
поподробнее, а то до меня долго доходит. Что такое х? И за чем делить на x? Сдвига мало?

Открыл компилятор, начинаю работать, либо по моему, либо по твоему.

Добавлено after 1 hour 36 minutes 35 seconds:
slav0n, смотри
Спойлер256 выборок

Внизу: слева - DAC, справа - АЦП
шумит аж 6 младших разрядов, и это после выполнения среднего скользящего с К=8.
Как я и говорил - утонем в шумах.

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

Re: ATmega + 12bit ADC

Сообщение slav0n »

быстро мелькает, значит можно еще фильтровать

Добавлено after 3 minutes 50 seconds:
попробуй еще такое сглаживание - http://primuss3.com/forum/index.php?top ... 33#msg6233

Добавлено after 11 minutes 4 seconds:
Dimon456 писал(а):К сожалению у чипа памяти не хватает 1024 выборки
ааа, ну тогда нифига не получится +5 бит
ohmycode!
primuss3.com
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: ATmega + 12bit ADC

Сообщение Dimon456 »

slav0n писал(а):попробуй еще такое сглаживание
Вот при К=64
Спойлер
slav0n писал(а):ааа, ну тогда нифига не получится +5 бит
если код DMA переписать, тогда хватит и на мильон выборок (где-то rms считали, за 0,5сек где-то 500000 выборок складывал).
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: ATmega + 12bit ADC

Сообщение slav0n »

нам достаточно просто периодически суммировать 1024 выборки и сдвигать сумму на 5.
дальше с этим результатами можно делать что хошь: либо твое любимое СС, либо инерционное звено, либо банальное усреднение
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 »

провел я тут эксперименты.
у меня сейчас начата переделка АТХ БП для двоюродного брата по старой схеме - с внутренним АЦП.
цифровой модуль полностью готов.
сделал тестовую прошивку - вместо напряжения вывожу полную сумму 1000 выборок. то есть, не делаю никаких сдвигов и не делаю вычисления среднего.
1000 мало отличается от 1024, и можно считать, что по теории я имею +5 бит.
сумма 20-битная. и по теории должны быть актуальны 15 старших бит.
и по той же теории колебания полной суммы должны быть не более +/-16 (половина младшего 15-го разряда).
но фиг попал. размах колебаний составил около сотни, то есть грубо +/-50. что в 3 раза хуже, чем должно быть по теории оверсемплинга.
и если эти 3 раза округлить до 4, то получаем всего 13 достоверных старших бита полной суммы. даже 14-му биту доверять нельзя.
при этом я измерял тупо собственное питание 5 Вольт, которое взято (временно) от юсб порта ноутбука.
и прямо сейчас у меня работает тестовая прошивка, и я уже более 1 часа слежу за болтанкой полной суммы.
и в течение длительного времени разброс суммы достигал более 200. но это можно предположить плохую временнУю стабильность напряжения питания.
за длительный период времени минимальная сумма была 246592 и максимально было 246837.

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

Re: ATmega + 12bit ADC

Сообщение slav0n »

Starichok51 писал(а):вывожу полную сумму 1000 выборок. то есть, не делаю никаких сдвигов
а в чем проблема 1024 и сдвиг на 5 для чистоты эксперимента
ohmycode!
primuss3.com
Ответить

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