Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
1

Точность АЦП atmmega8

05.12.2020, 13:09. Показов 1733. Ответов 17
Метки нет (Все метки)

Всем известно, что 10 битное АЦП atmmega8 реально позволяет получить не более чем 8-битную точность. AVCC и VCC замкнуты внутри микросхемы, так, что ставить развязывающий дроссель, как рекомендуется в мануале, просто бессмысленно. В итоге, в 2х младших битах всегда получается только шум.
Возникает вопрос, нельзя ли повысить точность путём усреднения нескольких последовательных измерений?
Даёт ли реально что нибудь в этом плане перевод контроллера на время измерения в спящий режим?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2020, 13:09
Ответы с готовыми решениями:

STM32F030 Максимальная точность АЦП
Доброго времени суток. Использую STM32F030 в 20-ти выводном корпусе. В устройстве необходимо...

Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое получается <= e
Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое получается &lt;= e.

Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое получается <= e
Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое получается &lt;= e. ...

Оператор Until. Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое получается <= e
Оператор Until. Вычислить сумму с точность до e. Точность достигается, когда очередное слагаемое...

17
Эксперт .NET
7537 / 5027 / 1198
Регистрация: 25.05.2015
Сообщений: 15,317
Записей в блоге: 14
05.12.2020, 13:46 2
Цитата Сообщение от Alexis333 Посмотреть сообщение
Возникает вопрос, нельзя ли повысить точность путём усреднения нескольких последовательных измерений?
Можно. Ещё лучше изучить тему цифровых фильтров.
Цитата Сообщение от Alexis333 Посмотреть сообщение
Даёт ли реально что нибудь в этом плане перевод контроллера на время измерения в спящий режим?
Реально даёт применение АЦП с большей разрядностью. Таковые есть как в составе МК, так и отдельные.
0
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
05.12.2020, 14:30  [ТС] 3
Цитата Сообщение от Rius Посмотреть сообщение
Можно. Ещё лучше изучить тему цифровых фильтров
Мне кажется, что от этого можно получить преимущество только при измерениях медленно изменяющихся величин. Если же зашумлённая величина на всём промежутке измерения постоянна, то лучшая оценка её значения - это среднее или медиана. Вы с этим согласны, или есть ещё какие то нюансы?

Цитата Сообщение от Rius Посмотреть сообщение
Реально даёт применение АЦП с большей разрядностью. Таковые есть
Это всё понятно, но речь про Atmega8, т.к. с ним всё уже хорошо отработано, и в принципе он вполне устраивает.
0
2857 / 1726 / 353
Регистрация: 09.09.2017
Сообщений: 7,273
05.12.2020, 16:18 4
Цитата Сообщение от Alexis333 Посмотреть сообщение
Возникает вопрос, нельзя ли повысить точность путём усреднения нескольких последовательных измерений?
Да, это либо применение цифровых фильтров, либо oversampling - накопление отдельных измерений, которое позволяет хоть однобитным АЦП мерить сигнал. За счет увеличения времени на измерение, конечно. В простейшем случае это просто сложение скажем 64 измерений, получите 16-битное число.
Цитата Сообщение от Alexis333 Посмотреть сообщение
Возникает вопрос, нельзя ли повысить точность
Не секрет для какой задачи вы хотите повысить точность?
0
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
05.12.2020, 17:22  [ТС] 5
Нужно время от времени измерять малое сопротивление. Большой ток подавать на него нет ни возможности ни желания, поэтому оно включается в цепь смещения усилительного каскада на БТ, который используется и для других целей тоже (в Atmega8 предусилителя нет). Чувствительность такой схемы получается где то 3мВ/Ом. Если брать 256 бит, то с внутренним ИОН 2,56В в идеале получится зарегистрировать изменения 10мВ, т.е. только около 3 Ом.
Поэтому, добавить ещё 2 бита здесь будет как нельзя кстати, получилась бы чувствительность на уровни 1 Ом. Время измерения не критично, измеряемое сопротивление не изменяется.
0
2747 / 1262 / 166
Регистрация: 28.10.2011
Сообщений: 4,669
Записей в блоге: 6
05.12.2020, 17:30 6
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
либо oversampling - накопление отдельных измерений, которое позволяет хоть однобитным АЦП мерить сигнал.
Однобитным АЦП можно считать цифровой вход МК. Если на него подать скажем 1 вольт, что-то получится измерить?
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В простейшем случае это просто сложение скажем 64 измерений, получите 16-битное число.
Вот, прочитайте с цифрового входа 64 раза и напишите какое значение получилось.
0
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
05.12.2020, 17:41  [ТС] 7
Я для интереса провёл такой эксперимент. Взял число 1.273 и прибавил к 10 тыс. отсчётам нормально распределённого шума. Результат подверг двоичной дискретизации, и потом посчитал среднее значение. Получилось 0,7972.
В общем какая то ерунда, или я неправильно что то сделал.

Добавлено через 4 минуты
Если пытаться сделать подобие сигма-дельта АЦП - нужен ещё модулятор, без него ничего хорошего не выйдет. Для моего приложения это всё представляется неоправданно сложным.
0
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
05.12.2020, 17:41  [ТС] 8
Я для интереса провёл такой эксперимент. Взял число 1.273 и прибавил к 10 тыс. отсчётам нормально распределённого шума. Результат подверг двоичной дискретизации, и потом посчитал среднее значение. Получилось 0,7972.
В общем какая то ерунда, или я неправильно что то сделал.

Добавлено через 4 минуты
Если пытаться сделать подобие сигма-дельта АЦП - нужен ещё модулятор, без него ничего хорошего не выйдет. Для моего приложения это всё представляется неоправданно сложным.
0
2857 / 1726 / 353
Регистрация: 09.09.2017
Сообщений: 7,273
05.12.2020, 18:30 9
Цитата Сообщение от Alexis333 Посмотреть сообщение
Большой ток подавать на него нет ни возможности ни желания, поэтому оно включается в цепь смещения усилительного каскада на БТ, который используется и для других целей тоже (в Atmega8 предусилителя нет).
Так поставьте внешний операционник.
Цитата Сообщение от locm Посмотреть сообщение
Однобитным АЦП можно считать цифровой вход МК. Если на него подать скажем 1 вольт, что-то получится измерить?
Конечно. Если не забудете подмешать достаточно мощный шум.
Цитата Сообщение от locm Посмотреть сообщение
Вот, прочитайте с цифрового входа 64 раза и напишите какое значение получилось.
Сейчас на выходных под рукой нет отладочной платы. На неделе может и попробую, если время будет. И если не забуду.
Цитата Сообщение от Alexis333 Посмотреть сообщение
Я для интереса провёл такой эксперимент. Взял число 1.273 и прибавил к 10 тыс. отсчётам нормально распределённого шума. Результат подверг двоичной дискретизации, и потом посчитал среднее значение. Получилось 0,7972.
Вы в правильную сторону округляли?
0
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
05.12.2020, 18:46  [ТС] 10
Это не зависит от способа округления. Не зная дисперсии шума невозможно определить его среднее значение только по знакам. Всё, что можно определить в этом случае - это квантиль нулевого уровня. Есть подозрение, что и для более высокой разрядности имеют место аналогичные ограничения.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так поставьте внешний операционник
зачем городить "огороды" когда можно обойтись гораздо меньшей ценой во всех отношениях?
0
10 / 10 / 4
Регистрация: 09.12.2017
Сообщений: 292
06.12.2020, 08:44 11
Цитата Сообщение от Alexis333 Посмотреть сообщение
AVCC и VCC замкнуты внутри микросхемы
Не совсем правильно. Сопротивление между AVCC и VCC в Atmega8 - 5 Ом, в Atmega8a - больше мегаома.
1
2857 / 1726 / 353
Регистрация: 09.09.2017
Сообщений: 7,273
06.12.2020, 11:06 12
Цитата Сообщение от gogaze Посмотреть сообщение
Не совсем правильно. Сопротивление между AVCC и VCC в Atmega8 - 5 Ом, в Atmega8a - больше мегаома.
Еще точнее - в некоторых старых ATmega8 (без букв) в DIP-корпусе обнаружился баг что VCC и AVCC соединены. В SMD или с буквами такого нет. Какая попалась ТСу неизвестно.
С другой стороны, игрушечный АЦП в m8 в любом случае сложно превратить в АЦП высокого разрешения. Но если очень хочется, можно и LC-фильтр поставить, и в сон уводить, и измерения усреднять.
1
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
06.12.2020, 13:36  [ТС] 13
gogaze, COKPOWEHEU, спасибо за уточнение, действительно в моём Atmega8L VCC и AVCC не замкнуты, так что можно следовать рекомендациям и ставить дроссель.
0
ValeryS
08.12.2020, 09:26
  #14
 Комментарий модератора 
дальнейшее обсуждение,поскольку напрямую не относится к атмеге 8, вынесено сюда
https://www.cyberforum.ru/avr/thread2746591.html
0
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
08.12.2020, 10:57  [ТС] 15
В свете последних событий приходится констатировать, что хотя измерения АЦП усреднять и можно, конечная точность результатов измерений всё равно будет ограничена точностью используемого ИОН. С внутренним ИОН, который имеет точность 0,5%, нет никакого смысла использовать более 8 старших бит. И усреднение имеет смысл, если шумят именно они. Для получения 10 битной точности нужно уже использовать внешний прецизионный ИОН.

Видимо такое решение всё же будет оптимальным
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так поставьте внешний операционник
или ОУ, или дополнительный каскад на БП.
0
2857 / 1726 / 353
Регистрация: 09.09.2017
Сообщений: 7,273
08.12.2020, 12:35 16
Ну почему же.
Вам никто не мешает сравнить измеренное сопротивление с эталонным. Поскольку оба измерения проводятся относительно одного и того же ИОНа, можно провести калибровку. Причем эталонное может быть намного больше измеряемого, главное чтобы не дрейфовало.
0
123 / 113 / 28
Регистрация: 31.10.2016
Сообщений: 1,302
08.12.2020, 17:00  [ТС] 17
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Поскольку оба измерения проводятся относительно одного и того же ИОНа, можно провести калибровку
В том то всё и дело, что сам ИОН дрейфует плюс минус 0,5%, Вы же сами ссылку давали. И признаться, там очень убедительно об этом изложено. А заводской разброс параметров понятное дело я откалибрую, он кстати гораздо больше 0,5%.
0
2857 / 1726 / 353
Регистрация: 09.09.2017
Сообщений: 7,273
08.12.2020, 17:52 18
Ну и пускай дрейфует.
Но между измерением эталонного резистора и измеряемого сильно он не уплывет.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2020, 17:52

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как связать таймер с АЦП и АЦП с DMA?
Вообщем стоит такая задача: через определенные интервалы времени периодически запускать...

Расширение АЦП микроконтроллера и подключение к АЦП датчиков
Здравствуйте. У меня встала задача сделать устройство для элеватора, для контроля температуры в 864...

Алгоритм работы с ацп АЦП STM32F103
Здравствуйте, уважаемые форумчане. Подскажите пожалуйста алгоритм работы с ацп. Допустим мне надо...

Mega16 и неиспользуемый АЦП (питание ацп?)
Если я не использую АЦП контроллера нужно ли подавать на АЦП питание? Если нет, то просто оставить...

АЦП замена АЦП в AVR
Перешёл с AVR на STM32. И вот столкнулся с проблемой. Как подключить датчики с выходом 0-5В на АЦП...

Точность
Метод должен возвращать угол между сторонами a и b, в треугольнике abc. Тип возвращаемого значения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.