|
АЦП и энергопотребление |
|
|
|
Dec 1 2015, 13:55
|
Участник

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

|
Есть необходимость оцифровывать несколько сигналов, с разной частотой (2кГц, 256Гц, 16Гц) и разной разрядностью (8-12бит) и скидывать все это дело на карту памяти. Все это усложняется батарейным питанием. Как лучше поступить?
1. Вариант, запускать преобразование по таймеру, с самой большой частотой дискретизации, с максимальной разрядностью, по окончанию преобразования забирать через DMA. По заполнению буфера DMA, выдаст прерывание, после него заполнять другой буфер, а за это время разгребать то что накопилось. Чем нравится решение, тем что, наверное, будет время для сна. Чем не нравится - не гибко, это будет огромный массив, в который будут свалены все данные скопом. Придется вычленять нужные данные, преобразовывать их битность, затем распихивать по мелким массивам, чтобы отсортировать, затем снова правильно раскладывать.
2. Вариант постоянно преобразовывать значения АЦП и сразу складывать их через DMA в массив. Запускать таймер с частотой 2кГц, в прерывании забирать только нужные значения, сразу же преобразовывать и аккуратно складывать. Чем нравится, удобно, займет меньше места в оперативе. Чем не нравится, не понятно что получится с энергопотреблением, думаю что оно вырастет, этого не хотелось бы.
Еще вопрос: как лучше делать с т.з энергопотребления - копить большой буфер и скидывать на карту большим куском, или мелкими порциями
|
|
|
|
|
 |
Ответов
|
Dec 1 2015, 14:45
|

Частый гость
 
Группа: Участник
Сообщений: 101
Регистрация: 2-05-15
Из: Россия, Омск
Пользователь №: 86 474

|
Как понимаю, использовать собираетесь что-то из STM32? Если применить STM32L - то можно запускать ADC по таймеру, заранее выставив биты пониженного потребления. В таком случае - ADC запускается таймером, включается, инициализируется, проводит оцифровку и сбрасывает данные по DMA в участок памяти. На DMA потребуется настроить прерывания по половинному заполнению буфера и окончанию буфера. Просыпаться, соответственно, два раза за буфер. Оцифровывать можно с изначально известной частотой дискретизации. Причём, чем ниже частота выборки, тем больше времени будет контроллер находиться в состоянии сна при одинаковом размере буфера. Опять же, при оцифровке с достаточно большой частотой сэмплирования (более 100kSa/s) выигрыша Вы уже не получите. Хотя, для 16Гц (Sa/s?) можно проводить во сне более 99.5% времени.
Вариант с большми буфером для медленного заполнения (как у вас) будет наилучшим.
|
|
|
|
Сообщений в этой теме
data_stack АЦП и энергопотребление Dec 1 2015, 13:55 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 jcxz Цитата(data_stack @ Dec 1 2015, 19:55) Ещ... Dec 2 2015, 10:18 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|