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

 
 
> Влияние каналов АЦП друг на друга?, ATMega16
hd44780
сообщение Sep 25 2011, 06:47
Сообщение #1


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

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Собирается прибор для одновременного измерения сетевого напряжения и тока.
Входные каскады - схема. БП на LM7805, МК (ATMega16, 8 MHz), LCD типа HD4478, кнопки, светодиодики не рисовал, там всё стандартно.

ОУ DA2.1 - средняя точка 2.5в, регулируется R3.
Входы ADC1, 2 АЦП опрашиваются 20 раз за период 50 Гц (в обработчике таймера, 1 мс):

// Замер напряжения - ADC1
adc = read_adc(ADC_U);
// убираем смещение
adcU=adc-adcUsm;

// Квадрат
adcSqr=adcU;
adcSqr*=adcU;

// Сумма квадратов напряжения
summUsqr+=adcSqr;

....................................

Для тока (ADC2) абсолютно также, переменные другие. Все расчёты здесь - 100% целочисленные, никакой плавающей точки.
АЦП работает без прерываний, по опросам:

// ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: None
ADMUX=0x00;
ADCSRA=0x83; // 0x10000011 - Enable, CLK/8=1MHz
.......................

// Read the AD conversion result
word read_adc(byte adc_input)
{
ADMUX=adc_input;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);

// Start the AD conversion (ADSC)
ADCSRA|=0x40;

// Wait for the AD conversion to complete (ADIF)
while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10;

// Обнуляем мл. бит
return ADCW&0xFFFE;
} // read_adc

Функция read_adc сгенерирована генератором кода CvAVR. Я её не менял.
Напряжение средней точки (ADC0) - adcUsm - замеряется в начале каждого цикла замеров. Каждый цикл - 0.5 сек - 10 периодов 50 Гц.
ADC2 - канал измерения большого тока (>4A) контроллером пока не обрабатывается.

Далее идут пересчёты в напряжение сети и ток.

Начал отлаживать. Канал напряжения (ADC1) откалибровал, работает. Показывает почти также, как и мультиметры. Для нашего брата сойдёт biggrin.gif .

Приступил к току (ADC2). Вот тут начались странности.
Когда напряжение подано, а нагрузки нет, тока нагрузки нет, на выходе ТТ - чистый 0, а прибор показывает на входе АЦП - 0.01-0.02в (округлённо - %.2f). Вопроса пересчёта напряжения на АЦП в амперы я здесь не касаюсь.
Облазил весь код - ничего, всё нормально.

Потом случайно отключил обмотку измерения напряжения T3 (подключена через разъёмчик), остался только R2, запаянный в плату. И, о, чудо - увидел 0в на обоих входах АЦП 08.gif .
После целенаправленных разборок в этом направлении увидел, что напряжение на ADC1 как-то влияет на ADC2.

Вопрос - можно ли как-то избавиться от этого влияния и как? Может я чего не учёл? Или взять модификацию ATMega16A? Слышал, что у них аналоговая часть сделана более грамотно.
Ставить внешний АЦП? У меня есть микрочиповский MCP3202. Где гарантия, что и у него нету подобных эффектов?

PS. Пошарив по интернету, нашёл ещё пару жалоб на такой же эффект в ATMega8, но решений так и нету. Где-то предлагали реже опрашивать АЦП, но мне это не выход, т.к. идеально вообще - ток и напряжение замерять строго одновременно.

Спасибо.

Сообщение отредактировал hd44780 - Sep 25 2011, 06:50
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
hd44780
сообщение Sep 26 2011, 06:14
Сообщение #2


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

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



BAS70-04 в прайсе нашёл, доберусь до магазина, куплю. Они заразы, SMD, у меня макетка DIP crying.gif . Придётся изголяться ...
Пока на канал ADC2 поставил шоттки SR110, были под руками. На ADC3 оставил те, что указаны на схеме. Там некритично.
Резисторы R7, R8 пока вообще убрал. Для экспериментов.
Изменений не увидел.

Насчёт частоты выборки не понял sad.gif .
-SANYCH- советует её понизить, для снижения эффекта взаимовлияния каналов, Клим советует увеличить для улучшения точности.
Я помню, раньше, ещё где-то в мае, пытался поднять частоту выборок за период раз в 10 кажется - 200 на период. Вообще фигня была - все показания "дрожали" - очень быстро менялись вблизи каких-то центральных значений. Усреднять тогда не стал, понизил частоту выборок.
Чую, дело пахнет заменой АЦП ...


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- hd44780   Влияние каналов АЦП друг на друга?   Sep 25 2011, 06:47
- - Клим   Цитата(hd44780 @ Sep 25 2011, 09:47) а пр...   Sep 25 2011, 08:05
|- - hd44780   Цитата(Клим @ Sep 25 2011, 11:05) Попробу...   Sep 25 2011, 09:38
|- - Клим   Цитата(hd44780 @ Sep 25 2011, 12:38) А чт...   Sep 25 2011, 15:54
- - hd44780   Дифф режим не использую, смещение вычитается прогр...   Sep 25 2011, 08:15
- - -SANYCH-   ЦитатаВопрос - можно ли как-то избавиться от этого...   Sep 25 2011, 10:45
- - Юрий_СВ   Цитата(hd44780 @ Sep 25 2011, 09:47) (ATM...   Sep 25 2011, 11:23
- - hd44780   Поставил частоту синхронизации 125 кГц и добавил 2...   Sep 25 2011, 13:14
- - dac   имхо косяк в отрицательном напряжении на входе. мн...   Sep 25 2011, 13:24
|- - Юрий_СВ   Цитата(dac @ Sep 25 2011, 16:24) 100кОм с...   Sep 25 2011, 14:23
|- - MaslovVG   Цитата(hd44780 @ Sep 26 2011, 10:14) Насч...   Sep 26 2011, 09:46
|- - Stanislav_S   Известная проблема Я делаю так: - делитель тактир...   Sep 26 2011, 09:47
- - Navovvol   Я как то словил интересный баг на быстром переключ...   Sep 26 2011, 11:01
- - Юрий_СВ   Попробуйте увеличить задержку в word read_adc(byte...   Sep 26 2011, 11:20
|- - dac   а еще попробуйте померить осциллографом, что реаль...   Sep 26 2011, 12:12
- - hd44780   Осциллографом глядел миллион раз. Когда нагрузки н...   Sep 27 2011, 10:19
|- - Клим   Цитата(hd44780 @ Sep 27 2011, 13:19) Осци...   Sep 28 2011, 03:50
- - ArtemKAD   Как-то натыкался на взаимовлияние каналов. Лечилос...   Sep 27 2011, 18:05
- - -SANYCH-   Сначала не обратил внимание но когда присмотрелся ...   Sep 28 2011, 06:55
|- - Клим   Цитата(-SANYCH- @ Sep 28 2011, 09...   Sep 28 2011, 08:00
|- - hd44780   Цитата(Клим @ Sep 28 2011, 11:00) назначе...   Sep 28 2011, 08:08
- - Lexdaw   Вы будете смеятся ,но в одном из приборов взаимовл...   Sep 29 2011, 07:06
- - SAWushka   Не по делу, так как все что мог придумть уже посов...   Sep 29 2011, 09:41
|- - hd44780   Цитата(SAWushka @ Sep 29 2011, 12:41) Как...   Sep 29 2011, 13:27
- - hd44780   Вот изобразил текущую схему. Может уже оффтоп в д...   Sep 29 2011, 15:12
- - defunct   Пропускайте первое измерение после смены канала.   Oct 1 2011, 21:57
- - hd44780   Всё работает. Сделал 50 нс ожидания после переключ...   Oct 9 2011, 16:24


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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 09:53
Рейтинг@Mail.ru


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