Как улучшить частоту дискретизации Arduino Due АЦП?
Сейчас я работаю над проектом, который нуждается в дешевом аналоговом приемном устройстве с частотой дискретизации не менее 5 МГц. Раньше я пользовался только Arduino и редко управлял регистрами на Arduino. Я надеюсь использовать Arduino due для его завершения. Я потратил много времени на изучение и поиск решений, но это не увенчалось успехом. Я надеюсь, что кто-нибудь сможет мне помочь.
@gailulun, 👍0
Обсуждение1 ответ
Лучший ответ:
Я не пользовался Due, но понимаю, что его АЦП рассчитан на выборку 1 МГц. Если это его абсолютный предел, то вы не можете ожидать 5 МГц. Однако, судя по Unos, который я использовал, вы можете подтолкнуть процесс, ограничив количество битов. Это дает повышение скорости двумя способами: сокращает время, затрачиваемое АЦП на сбор данных, и если вы ограничитесь 8 битами, то у вас будет вдвое меньше байтов для перемещения в память.
Не пытайтесь использовать более одного канала, так как тогда у вас также будут задержки мультиплексора.
Кроме того, вы можете пропустить прерывания и просто попробовать в плотном цикле. Используя этот трюк петли удваивает полезную скорость АЦП Uno, от 50 кГц до более чем 100 кГц. (Вам нужно будет выяснить фактическую частоту дискретизации, прочитав таймер до и после цикла, а затем разделить на размер цикла и взять обратную.)
Большое вам спасибо за ваш ответ. После вашего напоминания я отключил прерывание. Это действительно эффективно, но этого все еще далеко не достаточно. Я думаю, что 12 цифр отключены для обеспечения точности.И поэтому, похоже, мне, возможно, придется найти другой способ., @gailulun
- Arduino Due vs Mega 2560
- Точность часов времени Arduino
- Регистры ввода-вывода SAM3X8E (Arduino Due)
- Построение графика на Python с использованием Tkinter Canvas
- Ручная установка Arduino Due
- analogRead всегда 1023 на Arduino Due
- Как выбрать пару SDA/SCL на Arduino Due?
- Как упаковать 16-битное целое число, чтобы отправить его с помощью serial.write?
Или есть какое-то другое решение?, @gailulun
Чтобы помочь нам придумать возможное решение, пожалуйста, расскажите нам, что именно вы пытаетесь сделать. Почему 5 МГц? Это довольно много. Сколько битов разрешения? Кроме того, при такой частоте дискретизации вы получите поток данных; что вы будете с ними делать?, @Boggyman
Я хочу собрать импульсный сигнал детектора сцинтиллятора. Длительность этого импульса составляет менее 1 us. Для поддержания точности частота дискретизации должна быть выше 5 МГц. Чем больше битов данных, тем лучше. Я временно сохраню полученные данные в Arduino, остановлю выборку после накопления определенного количества, а затем начну анализ. После анализа я отброшу данные выборки., @gailulun