Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.05.2005, 12:55
|
|
Частый гость
Регистрация: 18.01.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
AtMega АЦП
люди если кто нибудь работал со встроенными ацп помогите решить проблему.
Ниже приведена часть написанной мной программы. Вроде все правильно, но ацп ни чего невыдает.
Если если у кого есть пример может скините, был бы очень благодарен.
.include "m8535def.inc"
.org 0
rjmp st
.org $00E ;прерывание конец праобразования АЦП
reti
.org 22
st:
ldi r20,low(ramend)
out spl,r20 ;задаю стек
ldi r20,high(ramend)
out sph, r20
ldi r20,0xff
out ddrb,r20 ;порт b выход
sei ;разрещить все прерывания
loop:
ldi r20, 0b00100000; задаю режим АЦП
out admux, r20
ldi r20, 0b10001001
out adcsra, r20
ldi r20, 0b01010011;разрешаю sleep, режим подавления шумов АЦП
out mcucr,r20
sleep ;жду завершения работы АЦП
in r18,adcl
in r19,adch
out portb, r19
nop
nop
nop
nop
rjmp loop
|
|
|
|
18.05.2005, 20:18
|
|
Гость
|
Да ошибок много.
Я бы вынес инициализацию АЦП за метку loop. И сперва надо разрешить работу АЦП, а уже потом настраивать его(ИОН и каналы), т.е. сначала забивается рр ADCSRA, а уже потом ADMUX. Именно такая последовательность.
И с установкой энергосберег режима тоже косячки по-моему, внимательно посмотри даташит.
ldi r20, 0b10001001
out adcsra, r20
ldi r20, 0b11100000;cтаршие 2 бита определяют ИОН
out admux, r20
ldi r20, 0b10010011; вроде так должно быть.!Проверь!
out mcucr,r20
loop:
sbi adcsra, ADSC ;старт преобразования
......
|
|
|
|
22.05.2005, 09:43
|
|
Частый гость
Регистрация: 18.01.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
По поаоду ошибок: я же написал что это всего лишь кусок программы.
ldi r20, 0b01010011
out mcucr,r20 -- здесь все правильно, это режим "Noise Canseler ".
|
|
|
|
27.05.2011, 00:29
|
|
Вид на жительство
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 346
Сказал спасибо: 67
Сказали Спасибо 8 раз(а) в 7 сообщении(ях)
|
Re: AtMega АЦП
Зарекался никогда не работать с АЦП на борту однокристалки, но вот столкнулся... Схема такая: Atmega 88PU, на 8канал повесил выход буфера на OP777. Дак вот... Усредняю 4096 значений (просто больше заняться нечем, а засыпать не охота, хотя измерения в режиме ADс noice). Гляжу - при напряжениях на входе под 3В, результат скачет на 4 младших разряда... Глянул осциллографом на входе АЦП (после буфера - то, дающего 30 мА и кондея в 10мкФ !!!!! чистая такая синусойда 40 -50 мВ с полупериодом около 10 мкСек...). Ну, думаю, а вдруг, операционник гнутый... Поставил OPA277U... Амплитуда уменьшилась, ну и понятно, он повысокочастотней (TI рулит !). Единственное что спасло - кондеев на вход повесил суммарно на 100 мкФ.... Амплитуда стала около 10мВ.
Сколько с АЦП работал - буфер святое дело, и никаких проблем. Но тут....
Да, на вход операционника сигнал подавался от калибратора. Проверял - там все чисто. Отключил вход АЦП - на выходе буфера вообще никаких пульсаций.
Может кто сталкивался ?
Последний раз редактировалось Mike121234; 27.05.2011 в 00:46.
|
|
|
|
27.05.2011, 03:59
|
|
Прописка
Регистрация: 17.10.2010
Сообщений: 113
Сказал спасибо: 2
Сказали Спасибо 20 раз(а) в 12 сообщении(ях)
|
Re: AtMega АЦП
4 разряда - конечно много ...
По моему надо обратить внимание на:
Развязка по питанию цифровой и аналоговой части МК - желательно фильтр с индуктивностью как в апноуте по питанию и даташите, блокировки по 0,1 МкФ - ОБЯЗАТЕЛЬНЫ по всем питаниям, многие забивают на эт, если нет под рукой индуктивности - то хотя бы RC фильтр .
Из Вашего сообщения не понятно - как организованно опорное напряжение для АЦП
Возможно - небольшая нестабильность питающего напряжения при переходе в режим ADс noice и обратно, особенно если опорное напряжение берется от питания ...
Как вариант - стоит на входе поставить делитель из резисторов и задействовать внутренний источник опорного напряжения.
|
|
|
|
27.05.2011, 08:51
|
|
Вид на жительство
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 346
Сказал спасибо: 67
Сказали Спасибо 8 раз(а) в 7 сообщении(ях)
|
Re: AtMega АЦП
Сообщение от avtoneru
|
4 разряда - конечно много ...
По моему надо обратить внимание на:
Развязка по питанию цифровой и аналоговой части МК - желательно фильтр с индуктивностью как в апноуте по питанию и даташите, блокировки по 0,1 МкФ - ОБЯЗАТЕЛЬНЫ по всем питаниям, многие забивают на эт, если нет под рукой индуктивности - то хотя бы RC фильтр .
Из Вашего сообщения не понятно - как организованно опорное напряжение для АЦП
Возможно - небольшая нестабильность питающего напряжения при переходе в режим ADс noice и обратно, особенно если опорное напряжение берется от питания ...
Как вариант - стоит на входе поставить делитель из резисторов и задействовать внутренний источник опорного напряжения.
|
Ну.... Да там все в порядке. LC фильтр по питанию аналоговому - 10мкГн +0.1мкФ с обоих сторон + 10 мкФ керамика со стороны входа Atmega + проходной конденсатор. Цифровое питание - проходной кондей + фильтр + 0.1 + 10.0 керамика. Да питание - как лом. Земли раздельные. Опора -REF 198. Стоит как лом.
Меня волнует - откуда синусойда на входе. Ну пусть у АЦП входное 1кОм, но для операционника, способного выдать зо мА, да еще если у него на выходе емкость в 10 мкФ стоит - детский лепет.
4 разряда - результат усреднения синусоиды. Когда на входе напряжение 0.1 В и менее - шебуршит только младший разряд. А вот при 4В - уже 4.
|
|
|
|
27.05.2011, 14:00
|
|
Прописка
Регистрация: 17.10.2010
Сообщений: 113
Сказал спасибо: 2
Сказали Спасибо 20 раз(а) в 12 сообщении(ях)
|
Re: AtMega АЦП
Такая мысль - эта самая переменка - "паразитка" насколько я понял из первого сообщения - присутствует только при соединении выхода операционника и входа МК.
Все таки попробуйте вместо внешней опоры - внутренню ... у меня мега88 нормально работала с делителем 100к + 20к, измеряло точно и не фонило ничего.
Ешё я бы попробывал между операционником и входом МК поставить резистор 1-2 кОм, а уже после резистора емкость 0,1-1 мкФ ...
Ещё вопрос - а операционник Rail-to-Rail? возможно 4 В ему - много .
|
|
|
|
27.05.2011, 14:25
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: AtMega АЦП
Нагружать ОУ выход на емкость напрямую есть дурной тон. Большинство не допускает единиц нан, максимальные цифры отражены в ДШ.
|
|
|
|
27.05.2011, 14:37
|
|
Вид на жительство
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 346
Сказал спасибо: 67
Сказали Спасибо 8 раз(а) в 7 сообщении(ях)
|
Re: AtMega АЦП
Сообщение от Alecsej
|
Нагружать ОУ выход на емкость напрямую есть дурной тон. Большинство не допускает единиц нан, максимальные цифры отражены в ДШ.
|
Это почему?
Что может произойти сверхъестественного? Особенно, если сигнал слабоизменяющийся во времени... Ну не знаю. Первый раз слышу про дурной тон. Там же не 10 000 мкФ.... И скорости не 10 кГц, и АЦП НЕ параллельный....
И где в документации написано, что емкость не может быть большой? http://www.analog.com/static/importe...77_727_747.pdf
Единственная проблема - это ее перезарядка при вкючении или резком изменении напряжения (ток надо большой выдавать). Но для современных ОУ это не проблема. И потом, емкость в 100 мкФ это не криминал. А процесс, повторюсь, очень медленный.
Последний раз редактировалось Mike121234; 27.05.2011 в 14:48.
|
|
|
|
27.05.2011, 14:42
|
|
Вид на жительство
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 346
Сказал спасибо: 67
Сказали Спасибо 8 раз(а) в 7 сообщении(ях)
|
Re: AtMega АЦП
Сообщение от avtoneru
|
Такая мысль - эта самая переменка - "паразитка" насколько я понял из первого сообщения - присутствует только при соединении выхода операционника и входа МК.
Все таки попробуйте вместо внешней опоры - внутренню ... у меня мега88 нормально работала с делителем 100к + 20к, измеряло точно и не фонило ничего.
Ешё я бы попробывал между операционником и входом МК поставить резистор 1-2 кОм, а уже после резистора емкость 0,1-1 мкФ ...
Ещё вопрос - а операционник Rail-to-Rail? возможно 4 В ему - много .
|
Операционник запитан +15В, так что +4 ему не много
А вот насчет резистора с кондеем.... Внутри АЦП, как известно, стоит резистор от 100 до 1кОм последовательно с емкостью, и постановка последовательно 2кОм образует делитель, там даже в доке где-то написано, что источник должен иметь сопротивление не больше 1кОм....
Сейчас мне платы спаяют с 88 из другой партии - гляну. А делитель... Попробую, но все же чистая опора на ref 198 мне представляется куда как лучше....
Последний раз редактировалось Mike121234; 27.05.2011 в 14:49.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Трансивер+ATmega= неработает АЦП !!
|
Tcom |
Микроконтроллеры, АЦП, память и т.д |
2 |
27.05.2011 14:16 |
ATMega 8 + TWI
|
_OXY_GEN_ |
Микроконтроллеры, АЦП, память и т.д |
4 |
03.06.2009 17:33 |
Проблема с АЦП в ATmega 16L
|
malyshevsergey |
Микроконтроллеры, АЦП, память и т.д |
5 |
16.06.2007 00:55 |
АЦП на МК без АЦП
|
zelanez |
Микроконтроллеры, АЦП, память и т.д |
7 |
29.07.2006 09:59 |
АЦП ATmega 48
|
Tcom |
Микроконтроллеры, АЦП, память и т.д |
2 |
11.10.2005 20:32 |
Часовой пояс GMT +4, время: 17:54.
|
|