АЦП Атмега16 сигналы на входах

Обсуждаем контроллеры компании Atmel.
Ответить
Аватара пользователя
dima1967
Прорезались зубы
Сообщения: 215
Зарегистрирован: Вс апр 30, 2017 17:54:36
Откуда: Юрмала

АЦП Атмега16 сигналы на входах

Сообщение dima1967 »

Всем здравствуйте.
Подали на вход ноги 39 (ADC1) постоянку через делитель 600К+200К. Индикатор показывает корректно то, что в прошивке "заказали". Потом подали на ногу 38 (ADC2) другую постоянку через свой делитель 56К+5,1К и хотели на индикатор выводить соответствующую информацию. Коды измерений для обоих входов одинаковые по сути. Но возникла проблема: Напряжение, поданное на вход 38 (ADC2) начинает как-то "пролазить" на вход 39 (ADC1). По отдельности входы корректно читают постоянку и выводят на индикатор то, что должны, а если одновременно подаем сигналы на входы, то они смешиваются. Входы включены как входы, подтягивающие резисторы не включены. Проверили правильность сборки делителей, косяков не нашли. Я новичок в теме AVR. Может надо как то АЦП настроить, чтобы входы независимо работали? Подскажите где искать. :?
Реклама
Аватара пользователя
khomych
Мучитель микросхем
Сообщения: 423
Зарегистрирован: Сб фев 21, 2009 16:11:32
Откуда: Харьков
Контактная информация:

Re: АЦП Атмега16 сигналы на входах

Сообщение khomych »

плату отмыть от флюса спиртом или бензином. дважды )). и код в студию. и схему. информация со входом АЦП не смешивается. возможно в программе ошибка
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: АЦП Атмега16 сигналы на входах

Сообщение ARV »

информация со входов может смешиваться, потому что на первый вход сигнал подан неверно. по даташиту источник сигнала на входе АЦП должен иметь внутреннее сопротивление не более 10К, у вас же минимум в 60 раз больше. теперь смотрите: каждй вход имет собственную емкость - несколько пик. и существует емкостная связь между соседними выводами - те же несколько пик. а теперь внимание: вы подали напряжение на вход 2, при этом за счет емкостной связи оно в виде импульса проникло и на вход 1 и зарядило его. когда вы включаете 1-й канал, то из-за большого сопротивления источника питания он намного хуже перезаряжает все эти емкости, в итоге что-то "от второго" остается. особенно, если на первом входе уровень ниже, чем на втором. эти процессы практически незаметны, если параметры измерительных каналов одинаковы и корректно выбраны, но на высоких скоростях семплирования они все равно возникают.
борьба с ними может быть разными способами, но начать надо с правильного сигнала. затем можно попробовать проводить измерения "через один раз": после измерения на 1-ом канале переводить его на выход, выводить в него 0, затем делать "пустой цикл" измерения второго канала, затем "правильный цикл измерений" второго канала, потом то же самое со 2-ым каналом и т.д.
то есть принудительно обеспечивать разряд паразитнх емкостей на за счет того, что соседние пины заземлены.
наконец, можно работать не с каналами 1 и 2, а с каналами 1 и 3, а второй держать в нуле принудительно.
и да, я не говорю, что плату мыть не надо от флюса и т.п. - вероятно, одним этим все может и вылечиться...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
khomych
Мучитель микросхем
Сообщения: 423
Зарегистрирован: Сб фев 21, 2009 16:11:32
Откуда: Харьков
Контактная информация:

Re: АЦП Атмега16 сигналы на входах

Сообщение khomych »

из личного опыта. когда разбирался с АЦП на Atmega8 то тоже получил кашу на двух каналах. но по отдельности работали норм. решил внедрить "фильтр" среднее арифметическое. один буфер на оба канала. вот и каша получилась
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
dima1967
Прорезались зубы
Сообщения: 215
Зарегистрирован: Вс апр 30, 2017 17:54:36
Откуда: Юрмала

Re: АЦП Атмега16 сигналы на входах

Сообщение dima1967 »

ARV писал(а): но начать надо с правильного сигнала.
Первый делитель у меня действительно с завышенными номиналами. Я такой поставил, потому что хотел исключить влияние этого делителя на работу источника сигнала. там тоже есть делитель с не большими номиналами.
А проблему удалось решить путем добавления задержки 1 мс между выбором входа АЦП и запуском измерения. Теперь ничего не смешивается и индикатор все показывает корректно.
Вот кусочек прошивки:

Сразу поясню: Вместо котика в очках в прошивке стоит цифра 8 и потом ). Редактор превращает эту 8 и ) в котика в очках :))
Комменты через // написаны как памятки для себя лично, не обращайте на них внимание....

// чтение напряжения из АЦП (нога 39)
ADMUX:=%11000001;
delay_ms 1;
ADCSRA.6:=1; //запускаем аналоговое измерение
delay_ms 1;

adcread:= ADCL; //сначала читаем младший регистр
adcread:= ((ADCH shl 8) + adcread);


// чтение напряжения из ноги 38
ADMUX:=%11000010;
delay_ms 1;
ADCSRA.6:=1; //запускаем аналоговое измерение
delay_ms 1;

adcvolt:= ADCL; //сначала читаем младший регистр
adcvolt:= ((ADCH shl 8) + adcvolt)/3.65 + 17;
Реклама
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: АЦП Атмега16 сигналы на входах

Сообщение GoldenAndy »

в качестве антикотика в редакторе есть кнопка CODE, добавляющая соответствуюшие теги:

Код: Выделить всё

adcread:= ADCL; //сначала читаем младший регистр
adcread:= ((ADCH shl 8) + adcread);
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
Реклама
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: АЦП Атмега16 сигналы на входах

Сообщение parovoZZ »

Кстати, такой проблемы на новых Аттинях нет. Я пробовал переключать каналы с частотой 70 кГц - на даташитовских 10к "уход" всего 1 значащий бит. На старом атмеловском хламе о таком только мечтать.
Ответить

Вернуться в «AVR»