Расширенная настройка АЦП на Due (SAM3X8E) для повышения точности

Я хочу провести точные измерения с помощью Arduino Due. Хотя я использую очень хороший внешний источник опорного напряжения (LTC6655), измеренные данные все еще скачут, что особенно важно, когда я пытаюсь измерить низкие напряжения (0,1–0,05 В). Могу ли я повысить точность АЦП, изменив его настройки?

Настройки АЦП Arduino Due по умолчанию:

// Инициализируем аналоговый контроллер
pmc_enable_periph_clk(ID_ADC);
adc_init(ADC, SystemCoreClock, ADC_FREQ_MAX, ADC_STARTUP_FAST);
adc_configure_timing(ADC, 0, ADC_SETTLING_TIME_3, 1);
adc_configure_trigger(ADC, ADC_TRIG_SW, 0); // Отключить аппаратный триггер.
adc_disable_interrupt(ADC, 0xFFFFFFFF); // Отключаем все прерывания АЦП.
adc_disable_all_channel(ADC);

Итак, с помощью adc_init мы можем настроить частоту и время запуска. А с помощью adc_configure_timing мы настраиваем время отслеживания, время установления и время передачи. Но как выбрать эти значения? Увеличивает ли увеличение этого времени точность?

Полезные ссылки:

Таблица данных – начинается описание АЦП. на странице 1317.

Atmel Software Framework – см. adc.h и adc.c.

, 👍0

Обсуждение

Что вы измеряете? Возможно ли, что он внутренне изменчив (прыгает)?, @Squats

@Приседания, я измеряю напряжение батареи., @kelin

@LookAlterno, это старый вопрос, я точно не помню. Что-то около 10-20%., @kelin


3 ответа


0

Разрешение по умолчанию — 10b из-за обратной совместимости, поэтому вы можете начать с настройки analogReadReadResolution(12);, как указано на Справочная страница по аналогу Arduino.

Если этого все еще недостаточно, вы можете использовать настройку GAIN для используемого канала АЦП. Для несимметричного входа GAIN можно установить до 4. Но это означает, что вы можете измерять напряжения до 1/4 от Uref

,

Я думаю, что увеличение разрешения не улучшит реальную точность. Это просто добавит больше мусорных битов, которые не имеют ничего общего с реальным измеренным значением. Я решил использовать внешний АЦП., @kelin

@kelin — степень, в которой увеличение разрешения увеличивает точность, во многом зависит от того, насколько чиста конструкция аналоговой схемы, платы и источника, и даже от того, сколько «происходит» в цифровом виде во время чтения — часто сложные конструкции отключите большую часть чипа, снимая чувствительные показания. Кроме того, даже «зашумленные» биты могут обеспечить точность, если их оценивать статистически, например, помещая множество показаний в фильтр., @Chris Stratton


0

Измеренные данные все еще колеблются

он всегда будет прыгать -> вот почему модули adc являются такими замечательными генераторами случайных чисел (с использованием младшего разряда). прыжки на 8–9 младших разрядов не такая уж редкость. все, что сверх этого, должно быть расследовано.

На что стоит обратить внимание:

  1. используйте хорошую ссылку;
    1. выделите достаточно времени;
    2. обратите внимание на макет;
    3. убедитесь, что сопротивление источника не слишком велико;
    4. поместите на вход схему формирования сигнала. фильтр 1 к/0,1 мкФ может творить чудеса;
    5. выберите правильный генератор для модуля adc — см., например, код c8051f350;
    6. напишите правильный код;
    7. передискретизация.
,

Спасибо за развернутый ответ, но мой вопрос касается настройки АЦП на SAM3X8E., @kelin

Я нашел http://sim.okawa-denshi.jp/en/CRlowkeisan.htm полезным для разработки фильтра нижних частот, но убедитесь, что вы не выполняете выборку чаще, чем конструкция фильтра., @Squats


2

Вообще говоря, входная полоса пропускания аналогового сигнала является основной причиной шума в схеме АЦП, а также неправильного заземления и методов генерации опорного сигнала и компоновки. Будьте очень осторожны, чтобы ВСЕ аналоговые пути не имели цифровых путей возврата тока. Помните, что при 12 битах для опорного напряжения 1,25 В младший бит составляет ~ 300 мкВ. Я никогда не измерял SNR АЦП SAM, но сомневаюсь, что оно соответствует указанным значениям ~60 дБ (т. е. 10 бит), если при компоновке/маршрутизации не соблюдать абсолютную осторожность. Рекомендовать: 1) Ограничьте входную полосу пропускания правильной землей канала. (значительно ниже BW Найквиста, если возможно, чтобы избежать наложения) 2) Передискретизация, если это возможно. 3) Обеспечьте низкий уровень цифрового ввода-вывода периферийных устройств в течение периода выборки.

,