Всем привет!
У меня сейчас Arduino Duemilanove висит вокруг запасных и подумал, что мог бы попробовать несколько проектов аудиоинтерфейса. Мне просто интересно, какую частоту дискретизации я могу достичь, используя один аналоговый вход и применяя несколько простых алгоритмов к микросхеме, а затем сообщая об этом, используя несколько цифровых выходов, привязанных к светодиодам.
Я хотел бы сделать выборку на частоте ~ 44,1 кГц, если это возможно.
Для справки первое, что я хочу попробовать - это простой гитарный тюнер.
Ответы:
Я не думаю, что вы можете пробовать так быстро при полном разрешении. ATMega168 может выполнять выборку только при 15 к / с в полном разрешении.
Сказав это, вы должны быть в состоянии получить подходящую частоту дискретизации, чтобы получить работающий гитарный тюнер. 44,1 кГц, скорее всего, немного быстрее, чем вам нужно, учитывая, что основа струны для гитары с высокими значениями E составляет около 330 Гц.
источник
http://arduino.cc/en/Reference/AnalogRead
Роб.
источник
Google для «AVR гитара тюнер», есть пара проектов, которые уже делают это, и они, кажется, могут сделать это без особых проблем со скоростью AVR.
источник
Если вы используете аналоговый компаратор (либо внутренний в AVR, либо внешний операционный усилитель), который превращает аналоговый вход в прямоугольную волну, вы можете сэмплировать колебания на гораздо более высоких скоростях. Хотя это не настоящая аудиосэмплирование, для создания гитарного тюнера это часто все, что вам нужно, поскольку весь ваш код все равно будет выполнять подсчет пересечений нуля за единицу времени.
источник
Существует несколько последовательных АЦП, I2S - это стандарт NXP, основанный на I2C. Они позволяют довольно легко тянуть аналоговый сигнал даже на гораздо более высоких скоростях. Эта ссылка должна привести вас к части NXP, которая предназначена для аудио: UDA1361TS
Бесплатные образцы - ваш друг :)
источник
Во-первых, для вашего конкретного приложения вам действительно нужна частота дискретизации около 1 кГц, при условии, что вы настраиваете основную частоту, а не одну из негармонических частичек ...
В любом случае, что касается максимально возможной частоты дискретизации, руководство Arduino гласит:
Это будет означать, что частота дискретизации 10 кГц является максимальной. Однако. Вы можете получить более высокую частоту дискретизации, напрямую обращаясь к регистрам АЦП . Arduino в реальном времени аудио обработка страница использует два канала 15 кГц, например. Таким образом, максимальная частота 10 кГц возможна только при использовании встроенной функции AnalogRead (), поскольку она требует много дополнительных ресурсов.
АЦП оптимизирован для наилучшей работы с тактовой частотой от 50 кГц до 200 кГц:
Поскольку преобразование АЦП занимает 13 тактовых циклов, это будет частота дискретизации от 4 кГц до 15 кГц. Согласно AVR120: Характеристика и калибровка АЦП на AVR :
Тактовая частота 1 МГц = частота дискретизации 77 кГц, так что это реалистичный максимум.
Тема на форуме Faster Analog Читать? больше об этом.
источник
Как уже отмечали другие, встроенный преобразователь будет работать для этого приложения, но вы должны действительно использовать внешний АЦП. Это избавит вас от многих проблем и освободит ваш микро для выборки по SPI или I2C с намного более высокой скоростью передачи данных, с меньшим шумом от тактового сигнала микро, и с большей точностью, чем при использовании внутреннего АЦП. Если вам нужно большее разрешение и / или более высокая скорость передачи данных, используйте что-то вроде LTC1867, которое позволит вам производить выборку на частоте до 175 кГц (хотя вы можете синхронизировать ее, сколько хотите), а затем считывать 24-битные данные. на частоте до 20 МГц по сравнению с SPI. Посмотрите, что может сделать настоящий АЦП? :) Благодаря такой мощности (и 24- или 32-битному DSP) вы можете сжимать и сохранять аудио, фильтровать его, модулировать, воспроизводить ... возможности безграничны.
источник
Вас интересует частота дискретизации 64К? Посмотрите здесь
Теперь поднят до 150 кГц, 10 бит, без дополнительных компонентов!
Посмотрите там
источник