реклама на сайте
подробности

 
 
23 страниц V  « < 8 9 10 11 12 > »   
Closed TopicStart new topic
> ATxmega
Prov
сообщение Sep 24 2009, 18:52
Сообщение #136





Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 554



Цитата(Hope! @ Sep 24 2009, 13:07) *
Всем привет! Тут поднимали тему про АЦП Xmega. Может кто-то тоже сталкивался с подобной проблемой:
Я пыталась добиться точного измерения на 12-битном разрешении. Все настроила, сделала калибровку (переписала калибровочные значения в регистры CAL).В бесконечном цикле запускаю функцию:

void ADC__read(ADC_t * adc, int countOfMeasure, countOfMeasure)...
...
Может это нормально для XMEga, но все-таки хотелось большей точности от 12-разрядного АЦП

Полагаю, что это AVR-специфика. Нечто аналогичное у меня работало на mega32. Постоянный циклический опрос 8 каналов. Начало преобразования (измерения) последующего канала после сохранения результата предыдущего (в прерывании). Использовал только 8 бит (сдвинутый влево 10-ти битный результат). Два младших бита постоянно "фонили". К счастью, мне было достаточно 6-ти бит, но тогда я стал понимать тех, кто ставил к mege специализированный ADC на SPI, например.
Ваши 40 единиц - это, очевидно, младших 5 бит (с хвостиком), т.е. выше 7 битной (относительной) точности xmega не поднялась, хотя это почти на 1 бит выше, чем у просто-meg'и.
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Sep 24 2009, 19:17
Сообщение #137


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Цитата(Prov @ Sep 24 2009, 21:52) *
Полагаю, что это AVR-специфика. Нечто аналогичное у меня работало на mega32. Постоянный циклический опрос 8 каналов. Начало преобразования (измерения) последующего канала после сохранения результата предыдущего (в прерывании). Использовал только 8 бит (сдвинутый влево 10-ти битный результат). Два младших бита постоянно "фонили". К счастью, мне было достаточно 6-ти бит, но тогда я стал понимать тех, кто ставил к mege специализированный ADC на SPI, например.
Ваши 40 единиц - это, очевидно, младших 5 бит (с хвостиком), т.е. выше 7 битной (относительной) точности xmega не поднялась, хотя это почти на 1 бит выше, чем у просто-meg'и.

Это специфика разработчика. Даже не особо заморачиваясь с разводкой земли и фильтрацией питания, можно получить точность 8бит. Больше мне просто как-то не требовалось. Конечно при опросе нескольких каналов есть свои ньюансы, но и это не повод "обижать" процессор. Впрочем, на мой взгляд, рассмотрение особенностей АЦП AVR-ок лучше обсуждать не в этой ветке. 
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Sep 24 2009, 21:26
Сообщение #138


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Artem_Petrik @ Sep 24 2009, 22:17) *
Это специфика разработчика. ...не повод "обижать" процессор.


Тем не менее Процессор здесь тоже "при делах". Например, смею утверждать, что если на том же порте, что и АЦП у вас находится сильноточные цепи с импульсной нагрузкой ~ 20ма, то вы не получите точность выше 6 бит. При всех ухищрениях. Разработчики кристалла рекомендуют на время измерения вообще "засыпать". А это значит, что добится нормальной точности только схемотехническими методами не удаётся. Но процессор - есть процессор. Что если я не могу спать и отключать нагрузку? Значит я не получу объявленную точность? Тогда надо откровенно писать - точность 8бит если процессор используется как АЦП.

Короче качество АЦП AVR мне очень не нравится. Думаю, что можно было разработать получше. Видимо сэкономили. (Я про стандартные меги).
Go to the top of the page
 
+Quote Post
Hope!
сообщение Sep 25 2009, 09:08
Сообщение #139





Группа: Участник
Сообщений: 4
Регистрация: 22-07-09
Пользователь №: 51 458



Цитата
Тем не менее Процессор здесь тоже "при делах". Например, смею утверждать, что если на том же порте, что и АЦП у вас находится сильноточные цепи с импульсной нагрузкой ~ 20ма, то вы не получите точность выше 6 бит. При всех ухищрениях. Разработчики кристалла рекомендуют на время измерения вообще "засыпать". А это значит, что добится нормальной точности только схемотехническими методами не удаётся. Но процессор - есть процессор. Что если я не могу спать и отключать нагрузку? Значит я не получу объявленную точность? Тогда надо откровенно писать - точность 8бит если процессор используется как АЦП.


SasaVitebsk, переводить процессор xmega в режим сна я тоже пробовала, но это вообще не помогло. В Atmega бЫл режим сна специальный "Снижение шумов АЦП" и при преобразовании АЦП контроллер в него переводили, что если верить документации существенно повышало точность. Также в Atmega и в режиме холостого хода тоже написано что шумы снижаются. В XMEGA же ничего подобного не написано и режима "Снижения шумов АЦП" нет, есть только холостой ход.
Go to the top of the page
 
+Quote Post
Prov
сообщение Sep 25 2009, 10:07
Сообщение #140





Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 554



Цитата(Artem_Petrik @ Sep 24 2009, 21:17) *
Это специфика разработчика...
и это не повод "обижать" процессор...
рассмотрение особенностей АЦП AVR-ок лучше обсуждать не в этой ветке. 

Это специфика разрабатываемого устройства.
Факты не "обижают" процессор, а уточняют сферу его применения и подтверждают необходимость внешних специализированных ADC при повышенных требованиях к точности измерения. Для AVR - это реально 7-8 бит. Опыт Hope! дополнительно подтверждает это и, если кто-то знает как получить более высокую точность, пусть прокомментирует.
Полагаю, многим это будет интересно.
Go to the top of the page
 
+Quote Post
Duhas
сообщение Sep 25 2009, 16:43
Сообщение #141


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 13-04-07
Пользователь №: 27 018



неизвестно что там творится у Надежды на опоре.. и на аналоговом питании.. или я что-то пропустил ?
Go to the top of the page
 
+Quote Post
manul78
сообщение Sep 25 2009, 18:57
Сообщение #142


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(Hope! @ Sep 24 2009, 15:07) *
Может это нормально для XMEga, но все-таки хотелось большей точности от 12-разрядного АЦП


Errata для камня ATXMEGA серии А1 и последней ревизии G.
Цитата
5. The ADC has up to ±2 LSB inaccuracy

The ADC will have up to ±2 LSB inaccuracy, visible as a saw-tooth pattern on the input voltage/
output value transfer function of the ADC. The inaccuracy increases with increasing
voltage reference reaching ±2 LSB with 3V reference.

Problem fix/Workaround

None, the actual ADC resolution will be reduced with up to ±2 LSB.


Может это ? rolleyes.gif


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Sep 25 2009, 19:16
Сообщение #143


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Цитата(Prov @ Sep 25 2009, 13:07) *
Это специфика разрабатываемого устройства.
Факты не "обижают" процессор, а уточняют сферу его применения и подтверждают необходимость внешних специализированных ADC при повышенных требованиях к точности измерения. Для AVR - это реально 7-8 бит. Опыт Hope! дополнительно подтверждает это и, если кто-то знает как получить более высокую точность, пусть прокомментирует.
Полагаю, многим это будет интересно.

Чтож, у меня тоже в одном проете были проблемы с точностью АЦП. Тоже получалось чтото около 5-6разрядов. Однако ранее я уже работал с АЦП AVR, и знал, что уж 8 бит он точно может выдать, поэтому, вместо того, чтоб грешить на процессор, стал искать проблему "у себя". Там АВР-ка, помимо всего прочего, рулила преобразователем напряжения, и питалась с его выхода. Выяснилось, что на выходе преобразователя были довольно большие пульсации, около 100mVp-p. Для той нагрузки, для которой формировалось данное напряжение, пульсации были не особо важны, поэтому я решил фильтровать толко питание AVR-ки. Больших токов она у меня через себя не пропускала, поэтому я поставил ей на питание 10 Ом + 10мкф, а потом еще что-то подобное (точно уже не помню, может дроссель был) для фильтрации AVCC. Этого было достаточно для того, чтоб нужные мне 8 бит стояли железно. Такой вот нехитрый опыт.
Go to the top of the page
 
+Quote Post
Prov
сообщение Sep 25 2009, 20:18
Сообщение #144





Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 554



Цитата(Artem_Petrik @ Sep 25 2009, 21:16) *
...у меня тоже в одном проете были проблемы с точностью АЦП.

В проекте, о котором я писал выше, и AVCC, и AREF были достаточно хорошо стабилизированы, разводка соответствовала DS. Возможно, нужно было дать задержку на запуск следующего преобразования (не очень похоже) или поюзить предметнее и выйти на 8 бит, но меня устраивало 6 и я просто не стал тратить время понимая, что универсальных устройств нет и AVR не предназначено для относительно прецизионных (10-12 бит, что-бы "они там" не рекламировали) измерений. Учитывая, что в xmege AREF почти в два раза ниже чем у meg'и, действительно, нужно уделить внимание качеству питания.
Go to the top of the page
 
+Quote Post
777777
сообщение Sep 29 2009, 09:41
Сообщение #145


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Prov @ Sep 25 2009, 14:07) *
если кто-то знает как получить более высокую точность, пусть прокомментирует.
Полагаю, многим это будет интересно.

Как ее получить - знают все, об этом написано во всех учебниках, но почему-то большинство с завидным упрямством этого не делают. Для этого надо в непосредственной близости от процессора ставить хотя бы по два электролита и две керамики по 0.1 мкф, земли от сильноточных потребителей вести к источнику питания отдельным проводом, питание к процессору подводить широкими проводниками по одному слою, если же требуется переход, то делать переходные отверстия большого диаметра и т.д. Наконец, выполнять преобразование в те моменты, когда нет помех (переключение чего-л.) или хотя бы синхронизировать время преобразования с этими моментами. Уж 10 разрядов от АВРки добиться можно легко, и я не понимаю что нужно делать, чтобы у нее стали дрожали два разряда.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Sep 30 2009, 08:27
Сообщение #146


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Вот именно, что рекомендации знают все. И, естественно, их стараются исполнять. При этом, при применении внешнего АЦП получаешь 16 разрядов и претензий к точности никаких, а на AVR вылизываешь всё и с трудом получаешь 7.
Понятно, что если написано в даташите, то получить объявленную точность - реально. Но цена за её получение слишком высока. По моим оценкам лучше всего освободить порт АЦП от цифровых нагрузок. Регистр DIDR, введенный в новых однокристалках мало помогает. Синхронное измерение-переключение - делал, тоже влияет незначительно. Внешняя опора не повышает точность существенно. Значительно влияет - снижение частоты преобразования и повторные измерения. Получается что если хочется точности, то область использования - значительно уже чем область использования МК. Тут нет ничего плохого, просто надо это знать. Одно дело если вы можете измерять а потом обрабатывать - тут всё Ok, другое - если обрабатываете "на лету" и при этом машете ногами.

Читал, что АЦП встроенные в МК от AD имеют сопоставимую точность с внешними.
Go to the top of the page
 
+Quote Post
Petka
сообщение Sep 30 2009, 09:18
Сообщение #147


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(SasaVitebsk @ Sep 30 2009, 12:27) *
Вот именно, что рекомендации знают все. И, естественно, их стараются исполнять. При этом, при применении внешнего АЦП получаешь 16 разрядов и претензий к точности никаких, а на AVR вылизываешь всё и с трудом получаешь 7.
Понятно, что если написано в даташите, то получить объявленную точность - реально. Но цена за её получение слишком высока. По моим оценкам лучше всего освободить порт АЦП от цифровых нагрузок. Регистр DIDR, введенный в новых однокристалках мало помогает. Синхронное измерение-переключение - делал, тоже влияет незначительно. Внешняя опора не повышает точность существенно. Значительно влияет - снижение частоты преобразования и повторные измерения. Получается что если хочется точности, то область использования - значительно уже чем область использования МК. Тут нет ничего плохого, просто надо это знать. Одно дело если вы можете измерять а потом обрабатывать - тут всё Ok, другое - если обрабатываете "на лету" и при этом машете ногами.

Читал, что АЦП встроенные в МК от AD имеют сопоставимую точность с внешними.

Полностью разделяю точку зрения.
Могу добавить что у меня получалось получить все 10 разрядов стоящими, только используя цифровую обработку: медианный фильтр минимум на 5 отсчётов, только после этого ФНЧ. Понятно, что от этого встроенный АЦП лучше не работает, но в задачах где не требуется большая точность, а требуется большое разрешение такой подход очень даже применим. Само собой ценой уменьшения фактической частоты АЦП на несколько порядков.
Go to the top of the page
 
+Quote Post
Prov
сообщение Oct 2 2009, 18:30
Сообщение #148





Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 554



Цитата(Petka @ Sep 30 2009, 11:18) *
Полностью разделяю точку зрения.
...у меня получалось получить все 10 разрядов стоящими, только используя цифровую обработку: медианный фильтр минимум на 5 отсчётов...

Согласен на 100%. Не хотелось вспоминать, но был прецедент... Срочно (!) сделать цифровой вольтметр. Была плата с mega8: кварц 4,194304 МГц (время считать), три семисегментных индикатора с ключами на РС0..2 (именно на ADC), кнопки и реле. Измеряемое напряжение подключил на PC5 (ADC5). Буфер на 64 отсчета и достаточно "хитрый" анализ. Напряжение индицировалось в двух форматах: XX.X и X.XX (т.е. самым неприятным был переход 9.99-10.0, пришлось "притормаживать" в этом месте). Точность измерения была не хуже 1%, естественно, путем программной подгонки.
Поэтому если не заниматься ничем более (про разводку, конденсаторы и проч. не говорю - это аксиома), то можно получить эти 10 бит. Думаю, что разработчики AVR это знают, но, естественно, специально не рекламируют. Формально они правы: 10 бит - это реально, но какой ценой и устроит ли это Вас.

У меня более "приземленный" вопрос для тех, кто уже работает с xmeg'ой: на сколько реально она работает на 32 МГц? Кто-то уже пробовал? Вопрос не праздный. У меня альтернатива выбора LPC или xmega. Самая сложная функция - поиск записи в массиве из 120-150 тыс.записей. Пробы на макете из LPC2378 (45 МГц) дают 6-10 мс (меня устроит и 50 мс). Но, как посмотрю на разводку - xmega гораздо проще и удобнее. Ищу и другие плюсы кроме, ес-но, и стоимости.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 2 2009, 19:42
Сообщение #149


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Самая сложная функция - поиск записи в массиве из 120-150 тыс.записей. Пробы на макете из LPC2378 (45 МГц) дают 6-10 мс


Мда. Ладно, с АЦП не получается справиться, слишком сложно для эмбеддера. Но, блин, бинарный поиск надо знать как "Отче наш" - неужели 18 сравнений занимают столько времени?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Oct 3 2009, 06:51
Сообщение #150


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



smile.gif
Ну может у человека неупорядочено дерево почему-то. smile.gif Хотя, конечно непонятно почему. Обычно при добавлении записей и упорядочивают сразу.
Также может сам ключ сравнения слишком велик, что тоже увеличит время поиска, хотя иногда свёртку делают.
Может он не заморачивался просто. Пишет же что его 50мс устроит. smile.gif
Go to the top of the page
 
+Quote Post

23 страниц V  « < 8 9 10 11 12 > » 
Closed TopicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 20:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016