Внешний АЦП и ардуина
- Войдите на сайт для отправки комментариев
Вс, 06/05/2018 - 05:53
Добрый день. Может кто подсказать есть ли смысл брать внешний АЦП с высокой частотой, например 1 миллион считываний в секунду для работы с ардуино? Со встроенным АЦП работал, все норм, но хочется большей скорости. Вопрос в том, сможет ли сама арудина обрабатывать сигнал с внешнего АЦП с высокой частотой?
Например, мне надо оцифровать синусоиду 5В, 20кГц,
АЦП с частотой 1ГГц получается будет делать 50 замеров на период, что вполне неплохо.
Моя задача сохранить эти замеры на арудино в массив, ну а дальше уже с ним работать, реально это сделать?
Если нет, то в какую сторону смотреть, какие МК могут справиться с такой задачей?
По теореме Найквиста-Котельникова, чтобы оцифровать синусоиду частотй 20 кГц, достаточно делать измерения с частотой вдвое выше, т.е. 40 кГц. Отсюда как раз "растут ноги" частоты оцифровки CD дисков, равной 44.1 кГц. Если с запасом, то можно частоту 20 кГц оцифровывать с частотой 100 кГц. А вот 1 МГц - это уже большой перебор, не говоря уж о 1 ГГц.
Внутренний АЦП у Атмеги-328 может оцифровывать с частотой до 79.6 кГц на низком разрешении, или до 15 кГц на полном разрешении. То есть, на низком разрешении он 20 кГц синус кое-как оцифровать успевает. Но в Атмеге ОЗУ всего 2 кБ , при 8-битной оцифровке с частотой 50 кГц эта память будет полностью заполнена всего за 40 мс.
Поэтому лучше использовать ARM с большой памятью, например, Arduino DUE.
АЦП с частотой 1ГГц получается будет делать 50000 замеров на период.
Ну да ладно.
С какой частотой может Ардуина обрабатывать сигнал, зависит от алгоритма обработки и от квалификации программиста, который будет реализовывыать этот алгоритм.
Подумайте еще, как будете вводить оцифрованный сигнал в Ардуину: обычно используются последовательные интерфейсы, значит частота передечи должна быть не ниже, чем частота оцифровки, умноженная на разрядность.
STM32 имеют АЦП с оцифровкой 1МГц и памяти достаточно для сохранения в массив и програмировать можно в среде ардуино.
А как же 5В? Делить?
И, кстати, на сколько суток хватит этих "достаточно памяти"?
С учётом на программу и стек милисекунд на 15, но на проанализировать спектр синусоиды 20 кГц вполне хватит.
С учётом на программу и стек милисекунд на 15, но на проанализировать спектр синусоиды 20 кГц вполне хватит.
20 кГц - это, насколько я понимаю, верхняя частота, а как Вы оцениваете нижнюю?
Верхняя 500кГц. Нижняя в этом случае 60 Гц. Но АЦП можно цифровать реже. В этом случае диапазон можно сдвинуть 25кГц - 3Гц. Это если амплитуда 20кГц ещё интересует.