Июл 17 2011

Прецизионный АЦП с гальванической развязкой

Рассматривается прецизионный АЦП с гальванической развязкой, обладающий крайне высоким входным сопротивлением, малыми токами входа, высокой температурной стабильностью. Возможна настройка АЦП на различные диапазоны входных сигналов. Высокое входное сопротивление позволяет подключать самые различные датчики, в том числе обладающие достаточно высоким внутренним сопротивлением.

Структурная схема АЦП приведена на рис. 1.

Рис. 1. Структурная схема АЦП.

Непосредственно аналого-цифровое преобразование выполняет АЦП AD7792 (16 бит) либо AD7793 (24 бит). Входным буфером, обеспечивающим высокое входное сопротивление, является инструментальный усилитель AD8220. Коэффициент усиления инструментального усилителя задается прецизионным резистором R2 (выделен красным). Фильтрация сигнала осуществляетя фильтром R1C1.

Выход инструментального усилителя сдвигается вверх на величину 2500 mV (1/2 напряжения питания), для того, чтобы вывеси нулевой уровень входного сигнала на половину шкалы АЦП. В качестве источника напряжения сдвига используется внешний источник опорного напряжения REF192. Его выходное напряжение подается на вход сдвига инструментального усилителя и на вход (-) АЦП через буфер-повторитель.

Такой АЦП позволяет измерять постоянные входные напряжения, поступающие с датчиков, обеспечивая точность порядка 0,05% полного диапазона (точность зависит от режима работы АЦП и может быть повышена).

Следует отметить, что при подключении АЦП по схеме, изображенной на рисунке, зависимость кода АЦП от напряжения будет обратной, т.е. при нулевом сигнале код АЦП будет около 32768 (16-битный АЦП, биполярный режим), при максимальном входном напряжении код АЦП будет иметь околонулевое значение.

Схема, изображенная на рисунке рассчитана только на положительные значения входного сигнала, однако она с легкостью может быть использована и для датчиков с двуполярным выходом. Для этого питание инструментального усилителя должно осуществляться от источников как положительного, так и отрицательного напряжения.

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

  • reAKTIVE

    А как же напряжение смещение ИУ и погрешность коэффициента усиления?
    Никакой речи о точности данной схемы 0,05% и быть не может. Около 1 % набежит.
    Единственное, что автор выбрал самое хорошее АЦП и ИУ у AD.

  • arktur04

    Сами по себе постоянное напряжение смещения и точность задания коэффициентов усиления не имеют значения.

    Имеет значение стабильность этих параметров (в первую очередь температурная) и линейность передаточной функции.

    Влияние постоянного смещения и коэфф. усиления устраняется введением в программу пары калибровочных параметров.

    Фактически точность выше, чем 0,05%. 0,05% — это значение, взятое с большим запасом, в диапазоне температур от 10 до 50 С.

    Проведенные измерения показывают, что фактические отклонения не превышают 0,03% от полного диапазона входа.

  • Дмитрий

    Добрый день!

    Борюсь с чипом АЦП AD7792. Точнее сразу с двумя, они у меня подключены на один SPI канал процессора и выбираются поочерёдно подачей нуля на CS входы чипов.
    АЦП используются для измерения сопротивления RTD элементов (PT100 и PT1000).
    Для теста подключил резистор 1000 Ом 1% на вход первой АЦП, и затем на вход второй, сняв показания АЦП. Одна стабильно выдаёт 13022-13023 дискрет, вторая — 13083-13084. Разница 61 дискрет — это много
    Затем брал другой резистор того же номинала и точности — показания отличаются в пределах точности резистора, и получаем ту же разницу в 61 дискрет между первой и второй АЦП.
    При подключении резистора 500 Ом поочерёдно, разность между каналами становится 30..31 дискрет, при нулевом сопротивлении оба АЦП выдают нули. Мультипликативная погрешность(отличие между АЦП) на лицо.

    Исходные условия:
    — схема подключения термоэлемента — трёхпроводная, взята из даташита.
    — External reference mode, референтный резистор Rref 4.99 КОм, 0.1%.
    — Для обоих чипов применён один и тот же программный код.

    Начал искать.
    Поменял местами Rref, перепаяв их, всё тоже самое, один в один. Я думаю что хардварным проблемам больше негде быть и вероятно, что-то не так либо с самими АЦП, либо с их настройками.

    Начал копатья с калибровками. На мой взгляд внутренние калибровки (internal calibrations) могут решить проблему, но тут непонятки с ней.
    1. После калибровки значения регистров OFFSET и FULL SCALE (калибровочной пары)не меняются (в них установлены значения по умолчанию — 0x8000 и 0x5555 соответственно).
    2. Калибровка никак не влияет на результаты измерений.
    3. Мне не понятно что физически означают цифры в калибровочной паре. В даташите читаем, что из результата АЦП, вычитается значание OFFSET и помножается на FULL SCALE. То есть

    ADC_out = -OFFSET + FULL_SCALE*ADC_raw.

    В моём случае мы получаем:

    ADC_out = (-0x8000+13023)*0x5555. Бред какой-та… кто разобрался с калибровкой — нужна ваша помощь!!!

    4. Вопрос-утверждение. Int калибровку полезно проводить периодически, раз в 5 мин например, с целью компенсировать возможное изменение температуры самой AD7792. Я прав?

  • Дмитрий

    PS В формуле ошибка

    вместо ADC_out = -OFFSET + FULL_SCALE*ADC_raw

    надо ADC_out = (-OFFSET +ADC_raw ) * FULL_SCALE

  • arktur04

    Я так и не разобрался толком с этими внутренними калибровками, да и не слишком было нужно.
    1. Как я понимаю, у вас подключается терморезистор и референтный резистор, и они запитываются от источника тока. Так как в моих устройствах измеряется напряжение, поступающее с датчиков, я использовал внешний источник опорного напряжения REF192. Показания АЦП в программе приборе преобразуются в значение напряжения как ax + b, где a, b — калибровочные коэффициенты. Каждый прибор калибруется по высокоточному вольтметру. Как показали измерения, сама AD7792 (и AD7793) достаточно термостабильна, особенно при работе с внешним источником опорного напряжения. Однако она имеет склонность к зависанию при воздействии электромагнитных помех. Поэтому программа должна следить за тем, что АЦП не зависла, и производить программный RESET.

    В итоге удалось получить базовую погрешность при измерении напряжения менее 0,05% от диапазона измерения (0-35 мВ и 0-250 мВ для разных датчиков).

  • Дмитрий

    Схема из даташита которую я брал за основу хреноватая. Два источника тока не могут быть одинаковыми и в этом проблема. Переделал на один источник. Да, теперь надо падение на проводах РТД вычитать из основного результата ручками, ну и наплевать. Разница между чипами уменьшилась на порядок.
    Цель вроде бы достигнута, однако с калибровкой хотелось бы разобраться всё равно. Попробовал феном плату нагреть, показания съехали на ~30 дискрет, не хорошо. Думаю периодически если int калибровку проводить то прибор сам по себе должен стать более термостабильным.

    С уважением.

  • arktur04

    Если разрабатываемый вами прибор должен иметь температурный дрейф не выше определенного, записанного в техзадании значения, то лучше всего не нагревать плату феном, а потратить время и сделать термостат с контролируемой температурой.
    Это позволит получить значение температурного дрейфа и принимать решения о пригодности / непригодности прибора на его основе. Если же это не последний разрабатываемый прибор, то тем более затраты по изготовлению термостата окупятся.

  • Дмитрий

    Я немного ложанулся, нагревал и плату и чувствительный элемент (резистор на 1000 Ом подключенный прямо к разъёму девайса) :-)
    Исправив ситуацию, получил отклонение около 5 дискрет. Вполне сносный результат. А на калибровку я забил, получается и без неё хорошо.

    А можно поподробней про термостат ? Я не в теме.

  • arktur04

    У меня в техническом задании на разработку указываются величины температурных дрейфов, причем весьма жесткие.
    Для того, чтобы их измерять, мы сделали термостат, то есть взяли большой деревянный ящик, в нём стоит нагреватель с вентилятором и термопара. Контроллер осуществляет поддержание заданной температуры.
    Я помещаю свой прибор в термостат, нагреваю, например, до 50 градусов, и могу измерить отклонения параметров и записать их в протокол испытаний.
    В сторону охлаждения тоже проводили измерения, в холодильнике.
    То есть получается не «нагрел неизвестно на сколько, вроде нормально», а точные значения, на основании которых принимается решение о пригодности изделия к работе.