как увеличить разрядность аналогового ввода на ARDUINO DUE
- Войдите на сайт для отправки комментариев
Пт, 19/10/2018 - 13:28
Обычные атмеговские ардуины функцией analogRead возвпащает число от 0...до 1023 т.к там стоит10бит АЦП
в ARDUINO DUE стоит 12 разрядное АЦП, а возвращает теже значения от 0...до 1023 , как увеличить разрядность?
Говорят так analogReadResolution()
Отказаться от IDE и писать в Keil
Отказаться от IDE и писать в Keil
угу, только Keil это тоже IDE
kalapanga, спасибо. Ещё вопрос как увеличить скорость оцифровки? Задача такая по внешнему прерыванию заполнить массив данных, обработать в другой масив и вывести на индикатор.
должна получится такая картинка.
Это нужно для импульсных металодетекторов.
http://acdc.foxylab.com/node/47
kalapanga, спасибо. Ещё вопрос как увеличить скорость оцифровки? Задача такая по внешнему прерыванию заполнить массив данных, обработать в другой масив и вывести на индикатор.
Насколько я понимаю, нужно вообще отказаться от прерываний, настроить ADC на срабатывание по внешнему сигналу, а DMA - по сигналу от ADC. И, собственно, прерывание использовать один раз - когда весь буфер DMA будет заполнен.
Если внешний сигнал - единственный импульс, а не на каждый отсчет, то настроить ADC на оцифровку по таймеру, а таймер настроить на нужную частоту дискретизации.
то есть чтобы увеличить частоту АЦП, нужно обработчик повесить на прерывание от таймера, частота которого равна частоте дискретизации?
Можно быстрее, есть прерывание по завершению цикла работы АЦП?, чтобы реализовать максимально возможную частоту дискпетизации. как програмируется DMA ?
то есть чтобы увеличить частоту АЦП, нужно обработчик повесить на прерывание от таймера, частота которого равна частоте дискретизации?
Нет.
Вход в прерывание - это дополнительное время, которое будет снижать максимальную частоту преобразования.
АЦП нужно настраивать непосредственно на срабатывание от внешнего сигнала (или таймера).
Собственно, мне кажется, Вы неправильно ставите вопрос. Нужно не "увеличивать частоту", а "добиваться максимальной частотоы, указанной в дэйташите". Кстати, может оказаться, что для достижения максимально возможной частоты оцифровки нужно будет снизить рабочую частоту процессорного ядра.
Можно быстрее, есть прерывание по завершению цикла работы АЦП?, чтобы реализовать максимально возможную частоту дискпетизации. как програмируется DMA ?
Есть. Но оно Вам тоже не нужно: АЦП должен давать сигнал ПДП, чтобы тот забрал данные и занес их в массив. Участие процессора на этом этапе тоже не нужно. Имеет смысл инициировать прерывание только после того, как буфер будет либо полностью, либо наполовину (при непрерывном преобразовании) заполнен.