Почему большинство АЦП, таких как на Arduino , дают разрешение 10 бит, а не 8 или 16 бит?
Просто кажется странным, что они не соответствуют стандартным размерам данных, особенно для интегрированных.
Почему большинство АЦП, таких как на Arduino , дают разрешение 10 бит, а не 8 или 16 бит?
Просто кажется странным, что они не соответствуют стандартным размерам данных, особенно для интегрированных.
Ответы:
Нет большой технической проблемы с расширением АЦП SAR (последовательное приближение) для преобразования 16 бит, но проблема в том, что вы начинаете видеть минимальный уровень шума аналогового интерфейса. Это приводит клиентов к панике, потому что они видят скачки кодов АЦП и не всегда осознают, что они смотрят на десятки микровольт отклонения.
Предполагая , что опорное напряжение 5,00 В и 10-битный АЦП, младший бит представляет собой напряжение 4,88 мВ (5 В × 2 -10 ). Для 16-разрядного АЦП с опорным напряжением 5,00 В напряжение LSB будет 76 мкВ.
Но источник питания в цифровой системе не точно равен 5,00 В, он обычно задается в диапазоне от 4,75 В до 5,25 В. При каждом переходном процессе переключения внутри микроконтроллера возникает небольшой импульс тока, который вызывает питание. напряжения для подергивания. Если LSB составляет около 5 мВ, вы можете едва увидеть его, но на уровне 76 мкВ этот шум трудно не увидеть.
На самом деле, как только вы получите мимо 12-битный АЦП, что вам действительно нужно иметь аналоговый источник опорного напряжения, а не только с помощью цифрового источника питания. Так что это добавляет еще немного стоимости. Для достижения наилучших результатов это эталонное напряжение на самом деле должно быть отдельным чипом со своими собственными линиями электропередачи, и в идеале оно должно быть удалено от горячей / шумной цифровой схемы.
Если вы хотите 16-битный АЦП , чтобы дать хорошие показания стабильные, вам нужно очень очень чистый источник опорного напряжения и тепловой контроль, и желательно держать его подальше от любых быстрого переключения цифровых сигналов ... так интегрировании 16-битный SAR на тот же чип, что и микроконтроллер, фактически лишил бы цели иметь эти дополнительные биты. Вы бы просто измеряли случайный шум на этих дополнительных битах.
Есть пользовательские приложения, которые используют АЦП с более высоким разрешением. Компания, в которой я работаю, делает немало таких. Автоматизированное тестовое оборудование (ATE), медицинское УЗИ и некоторые другие специализированные клиенты используют АЦП с высоким разрешением, в некоторых случаях 18- или даже 24-разрядные.
Производственное тестирование АЦП с высоким разрешением занимает много времени (и, следовательно, дорого). Клиенты, которым нужна такая производительность, платят больше за внешний автономный АЦП, а не за дешевые типы SAR, встроенные во многие современные микроконтроллеры.
Кроме того, существуют высокоскоростные приложения, такие как радар или осциллограф с дискретной выборкой, для которых необходимо производить выборку с частотой 100 МГц или выше - на этих скоростях вам повезет получить 8 значащих бит.
Компромисс между разрешением и стоимостью.
8 битов дают 2 8 = 256 комбинаций, из которых 0 - это одна, оставляя от 0 до 255 в качестве возможных цифровых значений. Этого недостаточно для многих приложений. Каждый дополнительный бит удваивает разрешение, а 10-бит дает 1024 шага, что достаточно для большинства проектов. Промышленные системы могут использовать 12-битную версию для еще лучшего разрешения.
АЦП высокого разрешения требуют более жестких допусков и являются более дорогостоящими в производстве.
Ряд хороших и действительных замечаний уже сделан. В течение многих лет я широко использовал 8, 10, 12 и 16-битные АЦП, и в настоящее время довольно легко получить 16-битные данные со временем преобразования 4 или 5 микросекунд (лучше доступны, я буду придерживаться того, что возможно) для большинства людей), в автономном чипе. Но это сеть точных цепей, часто с использованием тонкопленочных резисторов и различных узкоспециализированных методов аналогового проектирования. (Также почти всегда существует потребность в высокопроизводительных биполярных транзисторах где-то в схеме прецизионного АЦП, но все современные микроконтроллеры имеют КМОП, поэтому существует множество дополнительных этапов изготовления, чтобы сделать что-либо с хорошей аналоговой точностью и объединенной КМОП-логикой. Хороший АЦП также стоит дороже, чем большинство микроконтроллеров! Не так легко сделать,
Например, рассмотрим TI ADS8509, чей предшественник ADS7509, не такой быстрый, я использовал во многих местах в большом и важном проекте.
http://www.ti.com/lit/ds/symlink/ads8509.pdf
Это довольно приземленный по сегодняшним меркам. Все же его внутренние конструктивные особенности не совместимы с дешевым производственным процессом для микроконтроллеров. И это стоит более $ 15,72, больше, чем большинство микроконтроллеров. Я использовал их в виде голых полупроводниковых кристаллов, встроенных в герметичные гибриды металлических банок, с тщательно разработанными опорными цепями, и действительно получил едва более 1 LSB pp шума, так что это можно сделать, если вы знаете, что делаете, и есть ресурсы, в том числе бюджет. Но вы никогда не увидите такой низкий уровень шума внутри или вокруг микроконтроллера.
Основная проблема, как объяснил хотя бы один человек, заключается в том, что шум на цифровой шине питания напрямую влияет на АЦП. Теперь вы можете обойти это, используя хороший внешний источник напряжения, где для этого предусмотрен вывод, но вы должны быть в состоянии сделать то же самое и с землей. И эти контакты должны быть ограничены в пределах нескольких сотен мВ от цифрового источника питания и заземления, иначе устройство взорвется. Плюс, конечно, внутренняя шумовая связь в кремнии, от логики, изменяющих состояния сложным образом на тактовой частоте, и, что еще хуже, от выводов ввода / вывода, некоторые из которых могут возбуждать и переключать 10 с мА, если вы загрузили их до предела. Шум, шум и больше шума ...
Часть, которую я процитировал (и Google предлагает более дешевые, более быстрые или разные, компромисс между гибкостью и затратами), имеет интерфейс SPI, поэтому его легко использовать ВНЕШНИЙ в микроконтроллере, с собственной локальной плоскостью заземления, фильтрацией и т. Д. Затем , с осторожностью, это действительно даст вам 16 бит.
Раньше было довольно сложно получить более чем около 10 свободных от шума битов из 12-битного АЦП, и он по-прежнему находится в грязной среде, например, близко к цифровой логике, и во многом поэтому встроенные АЦП внутри процессорных чипов более или менее застрявший в этом разрешении, и, вероятно, навсегда. Но у меня есть 32-битный внешний чип. Не смотрел на паспорт или стоимость ...
Если вы можете пожертвовать абсолютной точностью (т. Е. Коэффициент масштабирования может быть на 5% или более, не говоря уже о смещении постоянного тока и его смещении во времени и температуре, но линейность будет превосходной), вам может подойти АЦП для оценки качества звука. Они по меньшей мере 16 бит и предназначены для массового рынка, поэтому часто имеют хорошую стоимость, но не ожидайте, что они будут использованы в точном приборе, который должен измерять сигналы постоянного тока до +/- 0,1%.
Вы не можете иметь все сразу. Все дело в том, что важнее всего. Точность, шум, долговременный дрейф, скорость, стоимость, мощность, тип интерфейса (последовательный или параллельный) и т. Д. Также может потребоваться мультиплексирование нескольких каналов, поэтому необходимо быстрое время отклика шага, которое исключает многие сигма-дельта АЦП, которые в противном случае есть некоторые очень хорошие свойства.
При выборе АЦП. Google, как всегда, твой друг. Есть много статей и примечаний по применению от TI, Linear, National и различных других производителей полупроводников. Всегда остерегайтесь того, что в технических паспортах вам не говорят, и проверяйте, какие параметры подчеркивают их конкуренты.
Но если вы хотите, чтобы все это было на вашем микроконтроллерном чипе, не планируйте использовать в своих проектах более 10 бит (возможно, 9 используемых, с шумом LSB). И, планируйте отдельную аналоговую ссылку и заземление, если ваш чип позволяет. Таким образом, вы не будете тратить свое время.
8-битные АЦП ужасно использовать из-за шагов 0,49% - я видел достаточно этого. Arduino, предназначенный для электроники для хобби, использует в 4 раза больше шагов, так что он близок к 0,1%, что близко к достижимому соотношению сигнал-шум (плюс гул), ожидаемому от обычных схем операционного усилителя или транзисторного датчика. Лучше, чем это, будет потрачено впустую на самодельную электронику класса «хобиист», а хуже, чем то, что будет слишком крутым и ужасным.
Хотя 16-разрядные АЦП имеются в продаже, для их настройки требуется больше времени, в течение которых гул или шум переместились, поэтому вы не получите лучшего измерения, а оно медленнее.
Когда АЦП выполняет преобразование, он предоставляет цифровое (квантованное) значение для непрерывного аналогового сигнала. Поскольку цифровое значение не будет точно аналоговым значением в момент преобразования, эту разницу можно рассматривать как аддитивный шум. Чем выше разрешение АЦП, тем ближе цифровое значение от аналогового значения. Другими словами, мы улучшаем отношение сигнала к шуму квантования (SQNR), увеличивая биты АЦП. Следовательно, 10-разрядный АЦП лучше, чем 8-разрядный (примерно на 12 дБ).
Использование 16-битного A / D будет лучше с точки зрения SQNR. Однако они дороже. И во многих приложениях 10-битный АЦП обеспечивает достаточно требуемого SQNR.
Как правило, вы хотите, чтобы количество бит в вашем желателе было таким, чтобы ваш шаг квантования был немного ниже (аналогового) минимального уровня шума системы.
Использование большего количества битов и, следовательно, наличие шага квантования ниже минимального уровня шума дает вам незначительное улучшение общих шумовых характеристик, но использование большего количества кремния либо увеличивает время преобразования, либо требует, чтобы внутренние компоненты преобразователя работали быстрее (и, следовательно, были шумнее)
Использование меньшего количества битов и, следовательно, наличие шага квантования выше минимального уровня шума, как правило, плохо. Это означает, что вы теряете производительность аналоговой схемы, а в некоторых случаях это может привести к систематическим ошибкам, которые не могут быть устранены путем усреднения (в действительности, иногда разработчики намеренно добавляют шум в систему, чтобы избежать систематических ошибок из-за квантования).
Разница между 8 битами и 16 битами огромна. Первый из них заканчивается шагом квантования, который слишком велик даже в системах с довольно низким уровнем шума. Последний тратится впустую на любую систему, которая не имеет очень осторожного аналогового дизайна. Поэтому неудивительно, что микроконтроллеры оказываются где-то посередине.
Обратите внимание, что люди часто говорят о «шуме квантования», но важно помнить, что понятие «шум квантования» является упрощенной моделью реальности, которая в некоторых обстоятельствах разрушается.
Наиболее распространенное использование АЦП возможно в области обработки звука (VoIP, CD музыка и т. Д.). Музыка здесь не интересна, так как для этого требуется 16 бит. Но именно VoIP движет рынком младших бит АЦП. VoIP обычно использует компандирование, при котором из 12-битного входного сигнала создается 8-битный сжатый код PCM. Входные данные для шага сжатия должны иметь больше битов - обычно 12, а иногда 10 может быть достаточно (вы всегда можете подделать младшие два бита).
В результате спрос на 8-разрядные АЦП очень низок, но более высокие разрядные АЦП пользуются повышенным спросом и поэтому доступны дешево. Arduino, вероятно, будет использовать компоненты, которые являются дешевыми и вездесущими.