Самый простой способ — написать скрипт для Arduino и самостоятельно выполнить некоторые временные тесты.
Другой способ — выполнение этого по спецификации — требует дополнительных входных данных для каждого задействованного уровня.
На самом нижнем уровне находится чип ATmega328. Документы по части ADC говорят:
По умолчанию схема последовательного приближения требует входной тактовой частоты от 50 кГц до 200 кГц для получения максимального разрешения. Если требуется разрешение ниже 10 бит, входная тактовая частота АЦП может быть выше 200 кГц, чтобы получить более высокую частоту дискретизации.
Предполагая тактовую частоту 16 МГц для ATMega, единственное доступное значение предварительного делителя для тактовой частоты АЦП равно 128, что составляет 125 кГц для 10-битного разрешения. Вы можете использовать значение предварительного делителя 64 (250 кГц), если можете обойтись 8-битным разрешением.
Далее: В документе говорится:
Обычное преобразование занимает 13 тактов АЦП. Первое преобразование после включения АЦП (установлен ADEN в ADCSRA) занимает 25 тактовых циклов АЦП для инициализации аналоговой схемы.
Таким образом, при тактовой частоте АЦП 125 кГц это будет означать частоту дискретизации ~ 9600 Гц в режиме «одиночного преобразования». Это 104 мкс на выборку. Это настройки Ардуино по умолчанию.
По сравнению с вашим требованием 160 мкс это кажется хорошим.
НО: до сих пор рассматривалась только конверсия. Вы должны передать данные куда-то. ТАКЖЕ функция Arduino analogRead()
имеет некоторые накладные расходы, как вы можете видеть в файле wiring_analog.c
в дистрибутиве Arduino.
Эти накладные расходы могут быть слишком большими — вы должны проверить это сами.
С другой стороны: никто не заставляет вас использовать функцию Arduino analogRead
. Некоторые доступные варианты:
- вы можете отказаться от накладных расходов на
analogRead
и/или
- вы можете перенастроить АЦП в соответствии с вашими потребностями (только 8 бит, более высокая тактовая частота АЦП) и/или
- вы можете использовать «расширенные» режимы, такие как непрерывная выборка («автономный режим»9 АЦП или
- вы можете использовать даже прерывания для запуска преобразований.
Конечно, все эти варианты сильно зависят от ваших знаний и бюджета времени. :-)
person
A.H.
schedule
01.05.2012