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

 
 
> АЦП и энергопотребление
data_stack
сообщение Dec 1 2015, 13:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 16-10-15
Пользователь №: 88 891



Есть необходимость оцифровывать несколько сигналов, с разной частотой (2кГц, 256Гц, 16Гц) и разной разрядностью (8-12бит) и скидывать все это дело на карту памяти. Все это усложняется батарейным питанием. Как лучше поступить?

1. Вариант, запускать преобразование по таймеру, с самой большой частотой дискретизации, с максимальной разрядностью, по окончанию преобразования забирать через DMA. По заполнению буфера DMA, выдаст прерывание, после него заполнять другой буфер, а за это время разгребать то что накопилось. Чем нравится решение, тем что, наверное, будет время для сна. Чем не нравится - не гибко, это будет огромный массив, в который будут свалены все данные скопом. Придется вычленять нужные данные, преобразовывать их битность, затем распихивать по мелким массивам, чтобы отсортировать, затем снова правильно раскладывать.

2. Вариант постоянно преобразовывать значения АЦП и сразу складывать их через DMA в массив. Запускать таймер с частотой 2кГц, в прерывании забирать только нужные значения, сразу же преобразовывать и аккуратно складывать. Чем нравится, удобно, займет меньше места в оперативе. Чем не нравится, не понятно что получится с энергопотреблением, думаю что оно вырастет, этого не хотелось бы.

Еще вопрос: как лучше делать с т.з энергопотребления - копить большой буфер и скидывать на карту большим куском, или мелкими порциями
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение Dec 2 2015, 10:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(data_stack @ Dec 1 2015, 19:55) *
Еще вопрос: как лучше делать с т.з энергопотребления - копить большой буфер и скидывать на карту большим куском, или мелкими порциями

вариант 3:
Имеем большой пустой буфер, есть диаграмма опроса 3-х АЦП каналов (каждый со своей частотой), CPU работает на предельно малой частоте (1МГц или ниже, PLL выкл.),
по диаграмме запускает очередное преобразование для очередного канала (внутри ISR), затем выходит из ISR в фоновый цикл команды WFI, до след. прерывания, в котором считывает полученное значение, записывает в буфер без какой-либо обработки, запускает след. преобразование если буфер ещё не заполнен.
И так - пока не заполнится буфер. По его заполнению включаем PLL, разгоняем CPU, в фоновом процессе обрабатываем накопленный буфер (пакуем, сортируем и т.п.) и пишем на SD. В это время измерительный процесс в ISR
продолжает работать (частота работы АЦП не должна измениться при увеличении тактовой CPU), но пишет во 2-й буфер.
После записи на SD опять понижаем частоту ядра.
Процесс повышения/понижения тактовой частоты должен быть реализован так, чтобы не нарушал временную диаграмму работы процесса чтения АЦП.
DMA здесь не нужен и такой алгоритм работы будет думаю самым экономичным.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- data_stack   АЦП и энергопотребление   Dec 1 2015, 13:55
- - AlanDrakes   Как понимаю, использовать собираетесь что-то из ST...   Dec 1 2015, 14:45
|- - data_stack   Видимо не очевидно проблему описал. Использовать б...   Dec 1 2015, 15:02
|- - Сергей Борщ   Цитата(data_stack @ Dec 1 2015, 18:02) не...   Dec 1 2015, 16:39
- - Alechek   Не знаю как для STM32L, но я бы сравнил потреблени...   Dec 2 2015, 06:54
|- - data_stack   Была и такая мысля. Почему не понравилась. В STM32...   Dec 2 2015, 11:58
- - AlanDrakes   Итак, обобщу снова. - DMA в L1 достаточно экономны...   Dec 3 2015, 06:42
|- - jcxz   Цитата(AlanDrakes @ Dec 3 2015, 12:42) TI...   Dec 3 2015, 08:14
|- - data_stack   Цитата(jcxz @ Dec 3 2015, 09:14) Либо иск...   Dec 3 2015, 08:44
|- - jcxz   Цитата(data_stack @ Dec 3 2015, 14:44) Ви...   Dec 3 2015, 09:07
- - data_stack   Вы не внимательно читали мой первый вопрос Запуск...   Dec 3 2015, 10:12
|- - jcxz   Цитата(data_stack @ Dec 3 2015, 16:12) Вы...   Dec 3 2015, 11:38
- - data_stack   Да именно так, вроде так я и писал.   Dec 3 2015, 12:22
- - Сергей Борщ   Есть возможность более редкие измерения делать от ...   Dec 3 2015, 13:22
|- - jcxz   Если так важно получить минимальное потребление, т...   Dec 3 2015, 14:00
|- - AlanDrakes   Цитата(jcxz @ Dec 3 2015, 14:14) ТСу врод...   Dec 4 2015, 14:13
|- - MiklPolikov   Я постоянно занимаюсь вопросами потребления, счита...   Dec 5 2015, 03:45
|- - jcxz   Цитата(MiklPolikov @ Dec 5 2015, 09:45) Я...   Dec 5 2015, 08:29
- - data_stack   Кругозор действительно ограничен, наличие того что...   Dec 3 2015, 14:42
- - data_stack   Если кому интересно, то в конкретно моем случае о...   Jan 15 2016, 13:39


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:53
Рейтинг@Mail.ru


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