Как снизить точность АЦП?

В этом техническом описании atmega328p на странице 308 я прочитал следующее:

Из раздела 28.4:

По умолчанию схема последовательного приближения требует входного сигнала Тактовая частота от 50 до 200 кГц для достижения максимального разрешения. Если требуется разрешение ниже 10 бит, входная тактовая частота к АЦП может быть выше 200 кГц, чтобы получить более высокую частоту дискретизации.

Это Модуль АЦП содержит предделитель, который формирует приемлемый АЦП Тактовая частота любого процессора выше 100 кГц. Предварительное масштабирование выбранных битами выбора предварительного делителя АЦП в управлении АЦП и Регистр состояния A (ADCSRA.ADPS). Предделитель начинает отсчёт с момент включения АЦП путем записи бита разрешения АЦП ADCSRA.ADEN = 1. Предделитель продолжает работать, пока ADEN = 1. и постоянно сбрасывается, когда ADEN=0.

При запуске однотактного преобразование путем записи «1» в бит начала преобразования АЦП (ADCSRA.ADSC), преобразование начинается по следующему переднему фронту тактовый цикл АЦП.

Обычное преобразование занимает 13 тактов АЦП. Первое преобразование после включения АЦП (т.е. ADCSRA.ADEN записывается в «1») требуется 25 тактов АЦП для инициализации аналоговая схема.

Требуемая полоса пропускания составляет 120 кГц, а точности 5 бит будет достаточно для моих целей. Насколько я понимаю, этого можно добиться, изменив предделитель на более низкий коэффициент деления, тем самым увеличив тактовую частоту, подаваемую на АЦП (согласно схеме в вышеупомянутом документе).

Однако в документе указаны только минимальное и максимальное время, необходимое для преобразования АЦП для частоты 50 кГц (от 12 до 280 микросекунд при полосе пропускания 50 кГц).

Мой вопрос: учитывая мои требования к полосе пропускания 120 кГц, какое наименьшее значение деления предварительного делителя частоты мне следует использовать, чтобы гарантировать время завершения АЦП в пределах 1/120 кГц секунды (8,3 мкс)?

EDIT: У меня есть ещё один вопрос: почему точность меняется при использовании меньшего значения делителя? Мы же просто меняем тактовую частоту, подаваемую на АЦП, а не сам алгоритм АЦП. Так почему же должна меняться точность разрядности?

, 👍0


1 ответ


2

От: http://forum.arduino.cc/index.php?topic=6549.0

В документации указано, что для преобразования АЦП требуется 13 циклов. Таким образом, при использовании конфигурации делителя clk/13*8 и системной частоты 16 МГц верхняя граница составляет 154 кГц.

В сообщении на форуме по ссылке выше по-прежнему говорится, что «тактовые частоты АЦП выше 1 МГц не охарактеризованы», однако это цитата из другого документа, ссылка на который недоступна. В последней версии документации я этого утверждения не нашёл.

Редактировать: Еще одно сообщение на форуме, в котором пользователь успешно использовал atmega328p для достижения 360000 выборок/с, так что технически это возможно: http://forum.arduino.cc/index.php?topic=8795.0

,