Как улучшить частоту дискретизации Arduino Due АЦП?

Сейчас я работаю над проектом, который нуждается в дешевом аналоговом приемном устройстве с частотой дискретизации не менее 5 МГц. Раньше я пользовался только Arduino и редко управлял регистрами на Arduino. Я надеюсь использовать Arduino due для его завершения. Я потратил много времени на изучение и поиск решений, но это не увенчалось успехом. Я надеюсь, что кто-нибудь сможет мне помочь.

, 👍0

Обсуждение

Или есть какое-то другое решение?, @gailulun

Чтобы помочь нам придумать возможное решение, пожалуйста, расскажите нам, что именно вы пытаетесь сделать. Почему 5 МГц? Это довольно много. Сколько битов разрешения? Кроме того, при такой частоте дискретизации вы получите поток данных; что вы будете с ними делать?, @Boggyman

Я хочу собрать импульсный сигнал детектора сцинтиллятора. Длительность этого импульса составляет менее 1 us. Для поддержания точности частота дискретизации должна быть выше 5 МГц. Чем больше битов данных, тем лучше. Я временно сохраню полученные данные в Arduino, остановлю выборку после накопления определенного количества, а затем начну анализ. После анализа я отброшу данные выборки., @gailulun


1 ответ


Лучший ответ:

2

Я не пользовался Due, но понимаю, что его АЦП рассчитан на выборку 1 МГц. Если это его абсолютный предел, то вы не можете ожидать 5 МГц. Однако, судя по Unos, который я использовал, вы можете подтолкнуть процесс, ограничив количество битов. Это дает повышение скорости двумя способами: сокращает время, затрачиваемое АЦП на сбор данных, и если вы ограничитесь 8 битами, то у вас будет вдвое меньше байтов для перемещения в память.

Не пытайтесь использовать более одного канала, так как тогда у вас также будут задержки мультиплексора.

Кроме того, вы можете пропустить прерывания и просто попробовать в плотном цикле. Используя этот трюк петли удваивает полезную скорость АЦП Uno, от 50 кГц до более чем 100 кГц. (Вам нужно будет выяснить фактическую частоту дискретизации, прочитав таймер до и после цикла, а затем разделить на размер цикла и взять обратную.)

,

Большое вам спасибо за ваш ответ. После вашего напоминания я отключил прерывание. Это действительно эффективно, но этого все еще далеко не достаточно. Я думаю, что 12 цифр отключены для обеспечения точности.И поэтому, похоже, мне, возможно, придется найти другой способ., @gailulun