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

 
 
> Ацп в mege32, замер напруги с двух входов
Чип-Хрум
сообщение May 20 2007, 15:07
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 1-04-07
Пользователь №: 26 675



Проблемка значит-це такая , работаю с аккомулятором в сельской месности , при
отсутствии напруги в сети подключается батарея с помощью ацп (первый замер),
в сети постоянно напруга прыгает, посему диодами не отвертишься и приходится во втором
месте мерить напругу чтобы ББума не было.
А вопрос такой насколько быстро можно ацп с 0-й ноги переключить на 1-ю ногу и обратно
да так чтобы показания были верные? Потому как мерил отдельно все выходит ,а пробую вместе
ничего не выходит, даже с задержкой на 300мкс .
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
singlskv
сообщение May 21 2007, 07:49
Сообщение #2


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(defunct @ May 21 2007, 03:53) *
Нет, ADEN просто "подключает" питание к этому всему делу.
Работать же это все начинает по "запуску" (либо ADSC, либо внешний сигнал запуска)

datasheet:
The channel selection may be changed one ADC clock cycle after writing one to ADSC.

Еще раз,
Побробуйте относится к работе ADC как к таймеру с предделителем в ранних AVR.
ADC(таймер) запускает свой цикл не в момент когда Вы записали ADSC, а
только когда в соответствии с выбранным преддителем начнется новый цикл ADC.

Цитата
А в "физике" участвует еще входная цепь с RC..

ИМХО, А вот это как раз и есть основная причина почему много кто жалуется на
так называемое "перетекание" из канала в канал

Цитата(Dopler @ May 21 2007, 09:17) *
Автор про Free Runing mode ничего не говорил. Кто в данном случае мешает использовать Single Conversion mode по таймеру? Тогда никаких пустых циклов не нужно.

Ну вот собственно так и делаю, никаких "перетеканий" не замечал.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 21 2007, 10:28
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(singlskv @ May 21 2007, 09:49) *
The channel selection may be changed one ADC clock cycle after writing one to ADSC.

Как это связано с приведенной вами моей цитатой?
Я не советовал менять канал после запуска АЦП... А говорил о разнице между ADEN и ADSC..

Цитата
Цитата
А в "физике" участвует еще входная цепь с RC..

ИМХО, А вот это как раз и есть основная причина почему много кто жалуется на
так называемое "перетекание" из канала в канал

Ok, если отбросить Free Running, тогда согласен, что это и есть причина "перетекания".

В таком случае чтобы этого не было надо придерживаться рекомендаций даташита, относительно выходного сопротивления сигнала (не более 10k). Но не всегда это возможно, например при измерении напряжения сети 220В выходное сопротивление будет однозначно больше 10k.
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 21 2007, 13:27
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата
Нет, ADEN просто "подключает" питание к этому всему делу.
Работать же это все начинает по "запуску" (либо ADSC, либо внешний сигнал запуска)

Цитата(defunct @ May 21 2007, 14:28) *
Как это связано с приведенной вами моей цитатой?
Я не советовал менять канал после запуска АЦП... А говорил о разнице между ADEN и ADSC..

Так вот, как раз "запуск" (либо ADSC, либо внешний сигнал запуска), это на самом
деле не запуск преобразования, а всего лишь флаг который говорит процу
что мы хотим запустить преобразование. Реальный цикл преобразования
начнется в промежутке 0..(N-1)тактов от момента записи ADSC где N-значение предделителя.
Цитата
Ok, если отбросить Free Running, тогда согласен, что это и есть причина "перетекания".

А зачем его отбрасывать ?
Делаем так:
- включаем ADEN
- запускаем ADSC в режиме Singl Conversation на первом канале (это чтобы прошло первое
"длинное" преобразование)
- запускаем ADSC в режиме Free Running на первом канале и разрешаем прерывание ADC
- ждем N тактов (N - предделитель)
- меняем MUX на второй канал
- в прерывании ADC читаем значение последнего канала и в MUX выставляем следующий
Цитата
В таком случае чтобы этого не было надо придерживаться рекомендаций даташита, относительно выходного сопротивления сигнала (не более 10k).

Рекомендаций даташита нужно придерживаться всегда.
Никто ведь, например, не ставит в серийные устройства AVR на частоте 30 МГц smile.gif
А с АЦП рекомендации нарушают все кому не лень, после чего и появляются такие
топики smile.gif
Цитата
Но не всегда это возможно, например при измерении напряжения сети 220В выходное сопротивление будет однозначно больше 10k.

Ну операционник то, ведь можно поставить ?
Go to the top of the page
 
+Quote Post



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

 


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


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