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

 
 
> Ацп в 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
Ответов
defunct
сообщение May 20 2007, 15:15
Сообщение #2


кекс
******

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



Цитата(Чип-Хрум @ May 20 2007, 17:07) *
А вопрос такой насколько быстро можно ацп с 0-й ноги переключить на 1-ю ногу и обратно
да так чтобы показания были верные? Потому как мерил отдельно все выходит ,а пробую вместе
ничего не выходит, даже с задержкой на 300мкс .

После переключения канала, необходимо сделать одно холостое измерение.
На время "холостого" измерения включайте АЦП с предделителем 0, чтобы измерение проходило максимально быстро. Следующее измерение делайте с нормальными настройками предделителя.
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 20 2007, 21:51
Сообщение #3


дятел
*****

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



Цитата(defunct @ May 20 2007, 19:15) *
После переключения канала, необходимо сделать одно холостое измерение.

Где это написано в даташите ?
Цитата
На время "холостого" измерения включайте АЦП с предделителем 0, чтобы измерение проходило максимально быстро. Следующее измерение делайте с нормальными настройками предделителя.

И чем это поможет ? "Запоминающий" конденсатор перезарядится ?
А если сигнал быстро меняющийся ?
А если измерения происходят один раз в сек/мин/час я тоже должен для получения нужной
точности делать холостое измерение ???

На самом деле меня этот вопрос очень интересует, но к сожалению я ни разу еще не видел
в комплексе, схемы подключения + программы в которых происходит
так называемое "перетекание" из канала в канал.
Если у кого-то такое есть, приведите схему включения + прогу(все что касается данных с АЦП)
Go to the top of the page
 
+Quote Post
defunct
сообщение May 20 2007, 22:17
Сообщение #4


кекс
******

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



Цитата(singlskv @ May 20 2007, 23:51) *
Где это написано в даташите ?

In Free Running mode, always select the channel before starting the first conversion.
The channel selection may be changed one ADC clock cycle after writing one to ADSC.
However, the simplest method is to wait for the first conversion to complete, and then
change the channel selection. Since the next conversion has already started automatically,
the next result will reflect the previous channel selection.
Subsequent conversions
will reflect the new channel selection.


Сценарий программы где перетекание обязательно будет присутствовать (по схеме - будем считать что все рекомендациям ДШ учтены):

void Timer_ISR(void)
{
// Выбор канала
// Запуск АЦП в free running mode (SFIOR == 0)
}

void ADC_ISR(void)
{
// чтение АЦП
// если не последний канал
// то смена канала и запуск АЦП
// обработка текущего рез-тата
}
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 20 2007, 22:44
Сообщение #5


дятел
*****

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



Цитата(defunct @ May 21 2007, 02:17) *
In Free Running mode, always select the channel before starting the first conversion.
The channel selection may be changed one ADC clock cycle after writing one to ADSC.
However, the simplest method is to wait for the first conversion to complete, and then
change the channel selection. Since the next conversion has already started automatically,
the next result will reflect the previous channel selection.



Цитата(defunct @ May 21 2007, 02:17) *
In Free Running mode, always select the channel before starting the first conversion.
The channel selection may be changed one ADC clock cycle after writing one to ADSC.
However, the simplest method is to wait for the first conversion to complete, and then
change the channel selection. Since the next conversion has already started automatically,
the next result will reflect the previous channel selection.


Ну и где здесь написано что первое преобразование будет неверным ?
ИМХО, здесь всего лишь написанно что если будет ошибка с моментом выбора
следующего канала, то вероятно, будет "оцифрован" не тот канал...
Go to the top of the page
 
+Quote Post
defunct
сообщение May 20 2007, 22:56
Сообщение #6


кекс
******

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



Цитата(singlskv @ May 21 2007, 00:44) *
Ну и где здесь написано что первое преобразование будет неверным ?

Since the next conversion has already started automatically,
the next result will reflect the previous channel selection. Subsequent conversions
will reflect the new channel selection.
--
Т.к. следующее измерение уже было автоматически запущено - следующий результат будет отображать старый канал. Последующие преобразования будут относиться к новому каналу.

Цитата
ИМХО, здесь всего лишь написанно что если будет ошибка с моментом выбора
следующего канала, то вероятно, будет "оцифрован" не тот канал...

Нет, об ошибках там не сказано..
Там сказано, что если АЦП не выключать (ADEN = 0), то однозначно первый результат после переключения будет со старого канала, последующие - уже с нового канала.
Это справедливо по крайней мере для m16/m32.

Про ошибки Single conversion mode, в ДШ ничего не сказано, но они есть.

Или отключать АЦП - менять канал - потом включать,
или пропускать одно измерение,
или .. обрабатывать со сдвигом..
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 20 2007, 23:15
Сообщение #7


дятел
*****

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



Цитата(defunct @ May 21 2007, 02:56) *
Since the next conversion has already started automatically,
the next result will reflect the previous channel selection. Subsequent conversions
will reflect the new channel selection.
--
Т.к. следующее измерение уже было автоматически запущено - следующий результат будет отображать старый канал. Последующие преобразования будут относиться к новому каналу.
Нет, ни о каких ошибках там не сказано.. И там также не сказано "вероятно".
Там сказано что однозначно первый результат после переключения будет со старого канала, следущий результат - уже с нового канала.

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

Вы просто не очень хорошо понимаете как происходит преобразование в АЦП
и в АЦП AVR в часности,

АЦП последовательных приблежений с точки зрения MCU это всего лишь таймер
который запускает определенные действия в определенный моменты времени
То что Вы указали в переводе из даташита, говорит лишь о том что время выбора нового
канала было выбрано неправильно

Попробуйте понять работу АЦП как некоторый таймер, со своим предделителем, и
при этом нужно иметь в виду что этот таймер/делитель начинает работать в
момент когда Вы сказали ADEN...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 23:44
Рейтинг@Mail.ru


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