Например TDA7294

Форум РадиоКот • Просмотр темы - Atmega8: встроенный АЦП
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт апр 07, 2026 03:07:32

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Atmega8: встроенный АЦП
СообщениеДобавлено: Ср сен 06, 2006 17:19:28 
Мявтор!
Аватар пользователя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Ср май 17, 2006 18:39:01
Сообщений: 384
Откуда: Москва
Рейтинг сообщения: 0
Впервые пришлось иметь дело со встроенным в атмегу АЦП, и заметил такую пакость - некоторые измерения получаются совершенно левыми. Т.е. получаем корректные данные раз 20 подряд, а потом - БАЦ - и какая-то хрень вылезает. Дальше снова нормальные результаты.

Может быть какие-то есть схемотехнические приемы для уменьшения помех этих?

Я просто ноги AREF и AVCC посадил на +5 В с конденсатором на землю 0,1 мкФ.

Вот так инициализирую АЦП:

// ADC initialization
// ADC Clock frequency: 921,600 kHz
// ADC Voltage Reference: AVCC pin
ADMUX=0x40;
ADCSRA=0x83;

Это функция чтения результатов преобразования:

unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}


Вернуться наверх
 
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 06, 2006 18:32:13 
Модератор
Аватар пользователя

Карма: 27
Рейтинг сообщений: 58
Зарегистрирован: Пн апр 03, 2006 11:43:25
Сообщений: 4517
Откуда: Санкт - Петербург
Рейтинг сообщения: 0
Медали: 3
Получил миской по аватаре (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Лично я с таким не сталкивался... пока, по крайней мере.
возможно, стоит использовать внутренний ИОН с подцепленным на Aref кондером или, что еще лучше, специализированный ИОН?
насколько качественное питание используется для контроллера? Если источник импульсный - то я, в принципе, не удивлен...


Вернуться наверх
 
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 06, 2006 20:35:06 
Мявтор!
Аватар пользователя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Ср май 17, 2006 18:39:01
Сообщений: 384
Откуда: Москва
Рейтинг сообщения: 0
Питание от линейного стабилизатора, не импульсное. Про внешний ИОН думал.. Попробую. Но может быть все-таки еще какие решения есть? Меня напрягает то, что ошибочные преобразования случаются хаотично и они отдельные (т.е. проскочит раз и снова все нормально).

Может быть какие-то хитрые временные интервалы нужно выдерживать между измерениями?


Вернуться наверх
 
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 06, 2006 21:29:15 
Открыл глаза
Аватар пользователя

Зарегистрирован: Чт июн 15, 2006 23:46:55
Сообщений: 50
Откуда: Раша, Москоу
Рейтинг сообщения: 0
Код:
// ADC initialization
// ADC Clock frequency: 921,600 kHz
// ADC Voltage Reference: AVCC pin
ADMUX=0x40;
ADCSRA=0x83;


Сколько сколько частота преобразования? Я пробовал играться с 50кГц при 4Мгц ядра - вроде все работало при навесном монтаже. Для корректной работы рекомендуется до 200кгц(даташит). Для корректного преобразования необходимо, чтобы уровень напряжения был постоянным определенное время(13-25 тактов АЦП). Или хотя-бы достаточно медленно менялся...

Техника защиты от помех(из разных источников)
1) почитать даташит про атмегу - там есть про PCB - экранировать аналоговую часть по мере возможности
2) почитать про питание ПЛИС и применить аналогичноую методику для ARef - навесить разных конденсаторов для сглаживания бОльшего числа гармоник. Мне хватило 0.1 и 1 мкф
3) ввести мегу в режим легкого аналогового посапывания - ADC Noise reduction - это отрубит цифровую ВЧ часть\ядро на время преобразования
4) ну и самое страшное :) - повесить НЧ фильтр на ногу, с которой делается преобразование

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


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Atmega8: встроенный АЦП
СообщениеДобавлено: Ср сен 06, 2006 21:55:44 
Pavel V. писал(а):
Может быть какие-то есть схемотехнические приемы для уменьшения помех этих?


апноуты AVR040 AVR042 и раздел ДШ по АЦП используемого МК.

Pavel V. писал(а):
Я просто ноги AREF и AVCC посадил на +5 В с конденсатором на землю 0,1 мкФ.


AREF нужноподключить через резистор или через индуктивность.

Pavel V. писал(а):
ADC Clock frequency: 921,600 kHz


это много.

на вход тоже желательно конденсатор повесить.


Вернуться наверх
   
 
 Заголовок сообщения: Помеха?
СообщениеДобавлено: Ср сен 06, 2006 22:16:49 
Понятно, что в даташите много всего написано на тему улучшения качества конверсии (и какой фильтр на AVcc повесить - емкость+индуктивность, и как усыплять процессор на время конверсии, чтобы не шумел зря, и что внутренний Vref куда лучше, чем Vcc, и что при >200КГц в качестве ADC clock не получится честных 10 бит, и прочее, и прочее)... И даже понятно, что именно оно и есть искомые "схемотехнические приемы". Но все это, похоже, к делу не относится - ведь помеха, чем бы она ни была, возникает редко, но сильно.

С налету я бы проверил следующее:

1. Не стал бы пока для пущего спокойствия инициализировать ADC каждый раз (ADMUX=adc_input|ADC_VREF_TYPE; ) - просто для проверки, а если нужно даже во время экспериментов - то пропускал бы после инициализации один отсчет (если невовремя поменять выбранный канал - то можно получить отсчет с предыдущего). Но дело почти наверняка не в этом - я подозреваю, что эта процедура пока вызывается с одним и тем же каналом, да?

2. Включил бы ADC во free-running mode (чтобы исключить влияние любых манипуляций с его настройками), и посмотрел бы, тупо читая и проверяя результат почаще (и _ничего_ больше с АЦП не делая), что за сигнал там идет на самом деле (входную ногу привязал бы для начала к земле, потом к Vcc, и только потом к сигналу - мало ли, вдруг сигнал _и_правда_ такой?).

И, конечно, очень сильно может быть, что это просто честная помеха. Ну, мало ли - наводка какая-нибудь от ближайшего электроприбора... Но это выяснится в пункте 2, я думаю. Как бороться, если это она? Экранировать, наверное - прибор в железный ящик... Для проверки - завернуть в бумагу, затем в фольгу ;) Если помеха приходит не на вход АЦП, а на питание - менять питание ;)

У меня с ADC как раз на ATmega8L-8AI все нормально: +5V из розетки через трансформатор, диодный мост и линейный (обвешанный должными конденсаторами) стабилизатор, 8МГц внутренний clock, ADPS=0 (то есть 4МГц ADC clock), по 13 тактов АЦП (то есть 26 тактов процессора) на отсчет - в итоге 300K отсчетов в секунду. Vref - внутренний (и я даже поленился вешать на AVcc фильтр!), АЦП во free-running mode, чтобы ничего не проверять по дороге, и читаю я его строго раз в 26 тактов отполированным вручную циклом, чтобы обеспечить максимальную скорость захвата. Восемь бит там не получается, но никаких резких выбросов в случайные моменты нет, просто некий небольшой шум...


Вернуться наверх
   
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 10, 2006 12:33:21 
Мявтор!
Аватар пользователя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Ср май 17, 2006 18:39:01
Сообщений: 384
Откуда: Москва
Рейтинг сообщения: 0
Много всего перепробовал, так и не помогло. Пришлось программно отбрасывать некорректные результаты.


Вернуться наверх
 
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 14, 2006 15:59:19 
Мявтор!
Аватар пользователя

Карма: 5
Рейтинг сообщений: 42
Зарегистрирован: Вс дек 18, 2005 20:04:42
Сообщений: 825
Откуда: Свердловская обл.
Рейтинг сообщения: 0
У меня подобная шляпа на m16 была . Вот из-за чего выяснилось . Я как написано в умной книжке запускал преобразование АЦП с спящем режиме, соответственно ток потребления менялся и из-за маленькой ёмкости в БП напруха питания чуть изменялась. Навешал кондеров и усё нормально бегает максимум +- 1 значение. Единственное что я так и не заставил его делать так эт из спящего режима ADC выходить ибо не герит и всё прерывание от АЦП. Использовал Igle благо у мя Т2 от внешнего кварца тикает.

_________________
Настоящий кот всегда либо голоден,
либо невыспался ...


Вернуться наверх
 
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 16, 2006 07:10:07 
Мявтор!
Аватар пользователя

Карма: 5
Рейтинг сообщений: 42
Зарегистрирован: Вс дек 18, 2005 20:04:42
Сообщений: 825
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Я думаю эт с железом чёто на m8 пробовал нормально.

_________________
Настоящий кот всегда либо голоден,
либо невыспался ...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y