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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Atmega128 -ацп странное поведение
GYUR22
сообщение Apr 8 2011, 17:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



Atmega128a - используется 8 каналов ацп. 4-термисторных входа делитель с 10к/термистор , 4-по напряжению делитель 5к6/5к2 -все через повторитель lm324
Подключаю 10к резистор на первом канале ~2.5в - остальные 3 канала пустые без резисторов т.е. уних 5v на выходе -все нормально -сопротивление меряется хорошо

Подключаю 10к резистор на первом канале -любой другой канал подключаем на 10к еще один резистор - показания первого начинают ползти еще один канал 10к еще ползут т.е. например на первом канале было 9960 после подключения первого 10000, после второго 10060.
Если подключать 1к сопротивления или наоборот за 100к то влияния нет
Также влияет подключение на вольтовые входы -между 30% - 80% от диапазона ацп
Все конечно укладывается в5% но все равно как-то непонятно...

частота ацп 125000гц
ацп запускается с частотой 200раз в секунду - работает по прерыванию
чип 16МГц


Что за засада?

Сообщение отредактировал GYUR22 - Apr 8 2011, 17:41
Go to the top of the page
 
+Quote Post
kovigor
сообщение Apr 8 2011, 22:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(GYUR22 @ Apr 8 2011, 20:38) *
Что за засада?


Да кто ж ее знает ? Я, например, из ваших словесных излияний не понял почти ничего. Что стоило просто привести схему ?
Go to the top of the page
 
+Quote Post
нечитатель
сообщение Apr 9 2011, 01:31
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 20-11-10
Пользователь №: 61 032



Зачем схема? И так нормально.
Go to the top of the page
 
+Quote Post
GYUR22
сообщение Apr 9 2011, 08:02
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



проблема в том что - самые высокие значения ацп и низкие - не влияют друг на друга
влияют от ~30 до 80%

причем 4 канала на одном операционнике 4 на другом - и они влияют друг на друга в указанном диапазоне

прерывание
Код
ISR(ADC_vect)
{

  adc_val= ADCL;  
//shift from 8bit to 10bit*/
adc_val+= (ADCH<<8);

AI[adc_ch]=(AI[adc_ch]+adc_val)/2;


adc_ch++;
if(adc_ch>7)
adc_ch=0;

}


инит
Код
//  ADC module initialization
void adc_init(void)
{
//select reference voltage
//AVCC with external capacitor
ADMUX|=(0<<REFS1)|(1<<REFS0);
//set prescaller and enable ADC
ADCSRA|=(1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
adc_ch=0;

}



опрос 200раз в секунду - 8 каналов == каждый канал 25 раз в секунду

Код
//  ADC single conversion routine
void adc_start_conversion(void)
{
//set ADC channel
ADMUX=(ADMUX&0xF0)|adc_ch;
//Start conversionio with Interupt after conversion
ADCSRA |= (1<<ADSC)|(1<<ADIE);

}


Сообщение отредактировал GYUR22 - Apr 9 2011, 08:10
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
nk@
сообщение Apr 9 2011, 08:25
Сообщение #5


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

Группа: Участник
Сообщений: 78
Регистрация: 8-12-09
Пользователь №: 54 138



1.Проверьте сперва цифровым вольтметром напряжения на ножках контроллера, чтоб убедиться, что аналоговая часть работает корректно.
2. Попробуйте сэмплировать каждый канал по 3-4 раза, может результаты такого теста дадут доп. информацию к размышлениям.
3. Я бы попробовал вставить задержку после переключения канала и началом сэмплирования. И "поигрался" с ней, наблюдая результат.
Например, так:
CODE
//set ADC channel
ADMUX=(ADMUX&0xF0)|adc_ch;
//delay
_delay_us(100);
//Start conversionio with Interupt after conversion
ADCSRA |= (1<<ADSC)|(1<<ADIE);

PS: Лично я с такой проблемкой не сталкивался, правда я ни разу не использовал мультиплексор, мне нужен был только один канал.

Сообщение отредактировал nk@ - Apr 9 2011, 08:31
Go to the top of the page
 
+Quote Post
aleksey_g
сообщение Apr 9 2011, 08:51
Сообщение #6


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

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Как подключены AVCC, AREF?
Есть ли в их цепи какие-то фильтры?
По земле нету перекосов?
Go to the top of the page
 
+Quote Post
GYUR22
сообщение Apr 9 2011, 10:05
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



аналоговая часть работает корректно - по крайней мере с очень большой долей вероятности тк мерил напряжение на ногах оно не скачет (при вышеописанных действиях) по земле нет вроде особых проблем - питальник в другом конце платы на 3 напряжения 5/12/15. т.е. просто показания не скачут и никаких левых нагрузок на аналоговых напряжениях нет.

avcc подключено через фильтр 100uH+220uF +aref на 0.1 сидит - используется референс с avcc.

Цитата
3. Я бы попробовал вставить задержку после переключения канала и началом сэмплирования. И "поигрался" с ней, наблюдая результат.

насчет задержки - интересная тема я тоже думал но не пробовал - спасибо в понедельник попробую отпишу
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Apr 9 2011, 22:56
Сообщение #8


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

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



Посмотри на наличие на других портах камня напряжений превышающих питающее. В т.ч. и на цифровых. Кроме того, не забывай о том, что влет в Sleep автоматом запускает преобразование АЦП...
Go to the top of the page
 
+Quote Post
GYUR22
сообщение Apr 10 2011, 06:17
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



sleep не использую- и так нормально
напряжения на ногах проверю - хотя мало вероятно тк там же защитные диоды а ноги подключены либо на 5в либо через резисторы 10к
Go to the top of the page
 
+Quote Post
GYUR22
сообщение Apr 11 2011, 08:21
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



короче не помогает задержка
даже если оставить только нулевой канал все равно влияют другие софтварно отключенные каналы и именно в диапазоне ~30-80%
буду щас их железно отпаивать и смотреть

походу это дроссель avcc (=ref у меня) влияет как оказалось
стоял чип дроссель 1210 -100uH - у него сопротивление ~20Ом - падало до 40мв
поменял на выводной 100uH ~0608 все в порядке - <2.5мв

Сообщение отредактировал GYUR22 - Apr 11 2011, 09:02
Go to the top of the page
 
+Quote Post
ARIM
сообщение Apr 11 2011, 08:25
Сообщение #11


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

Группа: Свой
Сообщений: 94
Регистрация: 14-04-05
Из: Россия
Пользователь №: 4 130



На схеме не видно, но показалось, что на выходах ОУ стоят 10к резисторы. Зачем??
Go to the top of the page
 
+Quote Post
GYUR22
сообщение Apr 11 2011, 09:03
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



для защиты входов ацп от перенапряжения - чтобы мегу не сожгло если на выходе вдруг будет 15в аналогового питания
Go to the top of the page
 
+Quote Post
ARIM
сообщение Apr 11 2011, 09:31
Сообщение #13


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

Группа: Свой
Сообщений: 94
Регистрация: 14-04-05
Из: Россия
Пользователь №: 4 130



Цитата(GYUR22 @ Apr 11 2011, 13:03) *
для защиты входов ацп от перенапряжения - чтобы мегу не сожгло если на выходе вдруг будет 15в аналогового питания

рекомендуется меньше 10к выходное сопротивление источника сигнала. Смысла тогда нет в повторителе ИМХО
Go to the top of the page
 
+Quote Post
GYUR22
сообщение Apr 11 2011, 10:10
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 16-02-09
Пользователь №: 44 931



об этом думали ~5к6 поставить
но решили пока в угоду надежности оставить
Go to the top of the page
 
+Quote Post
нечитатель
сообщение Apr 11 2011, 12:06
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 20-11-10
Пользователь №: 61 032



С резисторами неубедительно. Если посреди схемы ВНЕЗАПНО появляются 15 вольт какого-то питания, то это, как бы, ну. Да, резисторов в каждый провод навтыкать. Для защиты каждой детали от каждой другой детали.

Зато вспомнил про другие резисторы я. Которые internal pull-up. И которые автоматически сами собой отключаться не обещали, когда хочем мерять АЦП ту же ногу.
Конкретно за сабжёвую микросхему про это не гарантирую, а вообще есть такая тема.

(изображение схемы профессионально подготовлено к вылаживанию, детектед: чтоб ни один шпиён, зато наглядно и не при...дёрёшься)
(и ещё детектед: этой весной стало модно топеки про АЦП AVR заводить разные одинаковые, но различающиеся точным названием микросхемы, автором и разделом)
Go to the top of the page
 
+Quote Post

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

 


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


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