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

 
 
 
Reply to this topicStart new topic
> Похоже очередная "особенность" AVR, АЦП у AtMega48
ArtemKAD
сообщение May 7 2007, 09:42
Сообщение #1


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Может уже кто заметил...
У AtMega48 наблюдается "перетекание" напряжения из одного канала АЦП в другой если переключение происходит при работе со SLEEP-сорежимом (в т.ч. IDLE). Если SLEEP-а нет или делать холостое преобразование (можно принудительно выключая, а затем включая АЦП сделать 25-тактное преобразование), то проблем с взаимной связью между каналами не наблюдается.
Эффект связан только с переключением MUX-ов, с переключением REFS-ов вроде все Ок...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение May 7 2007, 11:23
Сообщение #2


Гуру
******

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



Вроде я мельком в даташите читал о необходимости холостого измерения при выходе из sleep. Написано просто - данные не верны.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение May 7 2007, 11:32
Сообщение #3


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



В даташите не нашел sad.gif . Тем более ADC Noise Canceler завязан на Sleep.
Они не просто не верны - они взяты с некоторым коэффициентом из предыдушего канала. Если не делать переключения каналов - никаких замечаний не обнаружено.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 7 2007, 11:53
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



В m16/32 наблюдается тот же эффект и без sleep'a.
Я просто пропускаю первый рез-тат преобразования после смены канала.
Go to the top of the page
 
+Quote Post
mse
сообщение May 7 2007, 13:09
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Этой особенности сто лет в обед сёдня. Конденсаторные АЦП с фиксированным временем сэмплирования и узкой полосой пропускания этой болезнью болеют от рождения.
Работай на низкой тактовой АЦП. И всё.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение May 7 2007, 14:41
Сообщение #6


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Конденсаторные АЦП с фиксированным временем сэмплирования и узкой полосой пропускания этой болезнью болеют от рождения.
Работай на низкой тактовой АЦП. И всё.

Не думаю, что тут дело именно в конденсаторе - без использования Sleep-а в AtMega48 никаких проблем не обнаружил.
Собственно так на грабли и наткнулся. В одной части программы был Sleep, а в другой небыло. Вот оно и работало полностью корректно тогда, когда проц. не засыпал. Как только убрал Sleep-ы во всей программе - так проблема и исчезла...

Кроме того, не думаю, что 260мкс преобразование это "быстрая тактовая" для АЦП AVR

Сообщение отредактировал ArtemKAD - May 7 2007, 14:44
Go to the top of the page
 
+Quote Post
VDG
сообщение May 7 2007, 20:18
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 845
Регистрация: 10-02-06
Пользователь №: 14 193



Тысячу раз здесь на форуме уже разжёвывали -> сменил канал - пропусти одно преобразование.


--------------------
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение May 8 2007, 07:26
Сообщение #8


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Тысячу раз здесь на форуме уже разжёвывали -> сменил канал - пропусти одно преобразование.

Т.е. тысячу раз советовали увеличивать в два раза частоту выборок?!

Как по мне - проще избавиться от sleep-а
Go to the top of the page
 
+Quote Post
mse
сообщение May 8 2007, 08:41
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(ArtemKAD @ May 7 2007, 18:41) *
Не думаю, что тут дело именно в конденсаторе - без использования Sleep-а в AtMega48 никаких проблем не обнаружил.
Собственно так на грабли и наткнулся. В одной части программы был Sleep, а в другой небыло. Вот оно и работало полностью корректно тогда, когда проц. не засыпал. Как только убрал Sleep-ы во всей программе - так проблема и исчезла...

Кроме того, не думаю, что 260мкс преобразование это "быстрая тактовая" для АЦП AVR

Слип тут побоку. Просто при полосе пропускания канала АЦП Меги около 20-40КГц, имеешь все шанцы огрести остаточный заряд на УВХ от предыдущего канала/измерения. Бо время сэмпла УВХ=1,5 такта АЦП. А Р-Ц, типа, остаёцца постоянным. Одно дело когда Тсэмпл=15мкс, другое - когда 1,5мкс.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение May 8 2007, 08:51
Сообщение #10


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Так я и говорю - сэмпл 20мкс. На переключение более чем достаточно. Пробовал не засыпать в течении первых 3-х сэмплов - эффект без изменений.
Go to the top of the page
 
+Quote Post
mse
сообщение May 8 2007, 09:37
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(ArtemKAD @ May 8 2007, 12:51) *
Так я и говорю - сэмпл 20мкс. На переключение более чем достаточно. Пробовал не засыпать в течении первых 3-х сэмплов - эффект без изменений.

ХЗ.На 1МГц у м128 был заметный эффект. Канал со значением 1000 вызывал на другом ~10. Да и то удалось убрать. Забыл как, правда. Наверное частотой. А м48 у меня очень хорошо работала. Правда на ней BPF был. Всё отфильтровывалось, наверное.
Go to the top of the page
 
+Quote Post
NVade
сообщение May 8 2007, 12:23
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 7-07-06
Из: Новосибирск
Пользователь №: 18 652



А какое выходное сопротивление источника? Если это высокоомный делитель или медленный ОУ - вот и будет проникновение каналов при коммутации больше. На следующей неделе ради интереса посмотрю - есть ли отличие у M88 по сравнению со старыми мегами по проникновению.
Я обычно коммутирую мультиплексор по окончании текущего преобразования. К началу следующего все устаканивается. Делается что-то типа AutoScan в MSP.
Go to the top of the page
 
+Quote Post
sadat
сообщение May 10 2007, 13:05
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575



Согласен с NVade - сопротивление источника напряжения играет очень важную роль. Если источник напряжения - резестивный делитель (к примеру, мониторинг напряжения питания, батарейки и т.п.) и частота изменений мала - советую поставить конденсатор на вход АЦП мк - 0.1-1мк - смазанные предыдущие значения исчезнут.

К стати, по ДШ выходное сопротивление источника - не больше 10кОм, надо учитывать....
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение May 10 2007, 14:28
Сообщение #14


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Один вход - 300 ом, второй - 220ком||0,15мкФ. Взаимное влияние в обе стороны.
Еще раз - без sleep-а не "перетекает"...
Go to the top of the page
 
+Quote Post
defunct
сообщение May 12 2007, 01:02
Сообщение #15


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(ArtemKAD @ May 8 2007, 09:26) *
Т.е. тысячу раз советовали увеличивать в два раза частоту выборок?!
Как по мне - проще избавиться от sleep-а

Неизвестно что будет эффективнее - удвоенная частота выборок или отключение sleep.

Убрав sleep вы не сможете воспользоваться фичей sleep mode noise canceller. А значит потеряете в точности преобразования..

Вы можете увеличить частоту семплирования АЦП вдвое - ( у вас это будет 130mks на преобразование) 7Khz - без ущерба точности. Первое преобразование после смены канала делать грубым (без перехода в Sleep режим) во время этого преобразования можно обрабатывать данные полученные с предыдущего канала. Второе преобразование делать с помощью sleep.

Одновременно вы решите вопрос переносимости на старые меги, где вляние на соседние каналы есть и без sleep.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:48
Рейтинг@Mail.ru


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