Варианты использования для внешнего АЦП

9

Большинство микроконтроллеров (ОК) имеют аналого-цифровой преобразователь (АЦП) в составе своего периферийного устройства, что является феноменальным, поскольку объединяет два компонента в один пакет. Эти АЦП обычно также отображаются в регистре, что позволяет быстро и легко извлекать данные.

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

  • АЦП должен быть изолирован от ОК.
  • Битовая глубина отсчетов АЦП должна быть выше, чем АЦП ОК.
  • Определяемое напряжение далеко от микроконтроллера, и длинные аналоговые линии не приемлемы.
  • Напряжение на ощупь в суровых условиях, не подходит для ОК.
  • Внешний АЦП сэмплирует намного быстрее, чем АЦП ОК.
  • Опорное напряжение для некоторого образца отличается, чем для других, требующих нескольких штифтов Vref (и, таким образом, несколько внешних АЦП).
  • Нынешнему ОК не хватает каналов АЦП, и стоимость установки нового ОК непомерно высока.
  • Внешний АЦП потребляет меньше энергии, чем АЦП ОК (мне нужен пример, чтобы в это поверить).
  • Каналы АЦП должны выбираться одновременно (редкий сценарий).
  • Стоимость программно-аппаратного обеспечения во время производства превышает стоимость более дорогой части АЦП (маловероятно).
  • Печатная плата имеет ограниченное пространство, и никакой UC не подходит (маловероятно).

Это все хорошо, но то, что мне кажется странным, это то, что внешние АЦП, как правило, немного дороже своих аналогов в УК, но обеспечивают эквивалентную функциональность. Например, вы можете приобрести деталь EFM32Z с 12-битным АЦП 1 Мбит / с (с внутренней ссылкой) примерно за 1 доллар США или купить эквивалентный 12-битный АЦП 200 кбит / с примерно за 3,50 доллара США (те же скорости (ish), относительно те же цифры мощности и т. Д.) И выполнить ту же задачу (извлечение данных АЦП).

Тогда возникает вопрос: есть ли веские причины, по которым инженер предпочел бы внешний АЦП, а не АЦП ОК, когда последний может выполнять те же функции?

TRISAbits
источник
1
Одновременная выборка на самом деле является довольно распространенным сценарием в некоторых прикладных областях, таких как обработка сигналов.
Джейсон Р

Ответы:

12

Если внутренний АЦП вашего микроконтроллера выполняет ту работу, которая вам нужна, то нет, внешние АЦП не нужны. Но тогда это не то, на кого они нацелены.

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

  1. Вам нужна другая технология выборки - например, внутренний АЦП - это SAR, но вам нужно сделать Delta Sigma.
  2. Внутренний АЦП, поскольку он является внутренним и использует тот же кристалл, что и основной MCU, никогда не будет на 100% свободен от шума остальной части MCU, поэтому внешний можно было бы создать с очень низким уровнем шума.
  3. Ваш микроконтроллер / SoC / FPGA по выбору не имеет АЦП. Последние два наиболее вероятны - наиболее распространенные SoC и FPGA вообще не имеют АЦП. Да, вы можете получить те, которые делают, но многие этого не делают. Таким образом, вы добавляете внешний.

Для пункта 3, например, возьмите Raspberry Pi. У него вообще нет доступного АЦП, вы должны добавить внешний, чтобы вообще выполнять аналоговую работу.

Majenko
источник
Теперь это интересно. Когда речь идет о шуме, вместо того, чтобы платить за получение внешнего АЦП, можно было бы достичь того же результата, если получить АЦП с большей битовой глубиной и игнорировать младшие биты дискретизированного результата (это, очевидно, предполагает, что дополнительное время преобразования из дополнительные биты не являются препятствующим фактором).
TRISAbits
3
Фактическая обработка сигнала может помочь только с шумом от процессов, которые не зависят от времени выборки (и таким образом вносят «случайный» шум). Большая часть шума в процессорной системе будет результатом изменений в питании и нагрузке на землю, которые в некоторой степени синхронизированы с процессом выборки; Единственный способ избежать их - это использовать АЦП на своих отдельных питающих шинах. Обратите внимание, что полная изоляция не требуется, поскольку многие АЦП могут легко выдерживать 100 мВ или около того между аналоговым и цифровым VDD / VSS.
Суперкат
9

Еще несколько причин отдать предпочтение внешнему АЦП:

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

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

  3. Даже если внутренний АЦП имеет ширину в двенадцать битов, это, как правило, не означает, что он принимает показания с точностью до одной части в 4096 году. Типичный внешний АЦП часто будет иметь лучшие характеристики, чем внутренний, даже если оба имеют одинаковую объявленную битовую глубину.

Интегрировать АЦП в микроконтроллер очень просто. Интегрировать хороший АЦП гораздо сложнее. Угадай, что более распространено.

Supercat
источник
1
АЦП SAR немного страдают от инжекции заряда, потому что мгновенное подключение массива дискретизирующих конденсаторов к входу нарушает то, что измеряется. Если источник входного сигнала восстанавливается недостаточно быстро, это вызывает ошибку измерения. Большее разрешение обычно требует большей емкости внутренней выборки. Разрешение дельта-сигма зависит только от расширения цифрового счетчика. (Хотя хорошие спецификации INL / DNL с высоким разрешением не тривиальны для достижения.)
MarkU
@supercat: Я никогда не рассматривал каскад усилителя как часть преобразования. Это открывает интересные возможности выбора схемы.
TRISAbits
2
@MarkU: Я наблюдал проблему с инжекцией заряда в некоторых цепях. Любопытно, что некоторые преобразователи, кажется, пытаются зарядить вход к предыдущему выбранному значению (от того, какой вход был выбран последним), некоторые пытаются зарядить его к нулю, и, по крайней мере, один, казалось, произвольно («случайно») заряжает его к более высокому или более низкое напряжение, которое я нашел довольно раздражающим. Я не понимаю, почему часть сделала бы последнее; даже если бы ему приходилось заряжаться к чему-то, зарядка к нулю последовательно была бы лучше, чем зарядка к некоторому «случайному» значению.
Суперкат
4

Еще одна причина существования некоторых внешних АЦП: они существовали намного дольше, чем микро-с внутренними АЦП, и встроены во многие продукты. Возможно, на 20 или 30 лет дольше. (Вероятно, это не относится к связанной части SOIC, хотя это может быть модернизированный вариант классической детали)

Там, где АЦП не имеет звездного разрешения, точности или скорости, но требует более высокой цены, это может быть причиной.

Даже для новых разработок может быть предпочтительнее повторно использовать блоки, которые работают хорошо, а не заново проектировать вокруг новой детали (даже если полученная интеграция снижает стоимость спецификации). Этот реинжиниринг может быть дорогим; процесс испытаний и одобрения регулирующих органов, тем более.

Теперь, если вы начинаете с нуля, и у выбранного вами микроконтроллера достаточно каналов АЦП, которые соответствуют вашим требованиям, ни одно из вышеперечисленного не применимо.

Брайан Драммонд
источник
2

Я понимаю, что это очень старый вопрос, но этот вопрос мы обсуждаем довольно часто.

Вы правы, было бы необычно выбирать внешний АЦП, если бы внешняя версия была точно функционально эквивалентной. Однако, по моему опыту, у недорогих микро обычно есть паршивые АЦП с температурным дрейфом, низким количеством битов (10 - 12 бит) и шумом от VCC (+/- 20 мВ в некоторых случаях) ... хотя обратное может быть правдой. .. вы можете улучшить отношение S / N, если у вас есть избыточный сэмпл и присутствует шум. В нашей деятельности по разработке продуктов довольно редко основывать наш выбор MCU на качестве АЦП, присутствующего внутри. Обычно это больше о наборе инструментов, стоимости, существующем встроенном программном обеспечении и т. Д. Внутренние АЦП обычно ограничены некритическими задачами, такими как считывание напряжения батареи.

С различными микро-устройствами также могут быть проблемы с общими таймерами, которые необходимо монополизировать для быстрого времени выборки, но мешать другим вещам в MCU (программные последовательные порты, ISR и т. Д.), Когда они монополизированы для АЦП.

Кроме того, что такое VREF? Если вы используете VCC в качестве эталона в прошивке, даже если вы калибруете по «настоящему» VCC, это значение может довольно сильно колебаться во время работы. Если у вас на борту имеется сильнотоковое устройство (радио, Wi-Fi, MCU и т. Д.) С большим переходным током, VCC может упасть до 4,8 вольт во время передачи, и если ваша выборка происходит во время этого окна, и вы наивно конвертируете 0-1023 АЦП считывает значение напряжения с помощью ADC_VAL / 1023 * 5.0 - вы потеряли колоссальные 200 мВ точности. Или, если у вас разные режимы питания (USB, Wall wart, battery) - VCC на MCU может измениться (особенно с USB). Внешние АЦП (даже с одинаковым количеством битов) могут обеспечить надежное внутреннее vref в условиях колебания VCC.

Разрешение довольно важно. Я предполагаю, что есть какое-то использование (в реальном мире) для разрешения 10-12 бит, но для любого реального применения (детектирование газа, акустические измерения, измерение акселерометра, точное измерение температуры и т. Д.) Обычно используется 16 бит минимальное разрешение для достижения адекватного соотношения сигнал / шум и разрешения. Даже действительно хороший 32-битный MCU, такой как SAMD от Atmel, ограничен 12-битными внутренними АЦП.

Дрожание тактовых импульсов также является проблемой, и существует также некоторая внутренняя неточность, когда другие 8-битные микросхемы требуются для считывания 12-битной ширины, и для манипулирования 12-битным значением требуются как минимум 2 тактовых цикла, что может быть неверно с внешним АЦП (так как они могут иметь внутренние генераторы).

Есть также моменты, когда важна физическая близость к вашему датчику и изоляция от MCU. Некоторые очень чувствительные преобразователи требуют собственной кондиционированной мощности, изолированных заземляющих плоскостей и чрезвычайно чувствительных усилителей с трансимпедансными прерывателями с пассивом 0,01%.

Иногда есть веские причины для использования внутренних АЦП. DMA - одна из причин ... частота дискретизации - другая. Легкость передискретизации - это другое. Сопряжение с внешними АЦП с высокими скоростями передачи данных может поглотить много ценных мультиплексированных выводов ввода / вывода и создать более сложную конструкцию. Кроме того, многие из используемых нами АЦП основаны на I2C, поэтому частота дискретизации очень ограничена скоростью шины I2C. Даже при скорости 1 Мбит / с 16-битное чтение занимает мучительно много времени.

ElDuderino
источник
Это отличное понимание! По мере того, как проходили годы (и мой опыт рос), я должен был согласиться: внутренние АЦП MCU могут быть довольно паршивыми.
TRISAbits