?

Log in

No account? Create an account

Previous Entry | Next Entry

Демоны в АЦП STM32

DSC_9526_s

Немного освоившись с ЦАП STM32, начал знакомиться с АЦП. Довольно много информации по нему содержится в документе AN2834. Но там полезные рекомендации, как на стр. 37: «Do not add any external capacitor (Cext) to the input pin when applying this above workaround» чередуются с вредными советами, как на стр. 39: «An extra large Cext enables sampling more often». Это подтолкнуло к написанию данного поста (updated).



Современные АЦП, как правило, имеют в своем составе УВХ. Причем этот УВХ подключен прямо к входному пину без всяких буферов, поскольку при однополярном питании сделать буфер проблематично. В некоторых сигма-дельта АЦП такой буфер есть, но он обычно отключаемый, так как при его использовании накладываются ограничения на допустимый диапазон входного напряжения. В STM32 входного буфера нет. Во время выборки к входному пину через ключ подключается конденсатор УВХ. Но что происходит с этим конденсатором дальше? К моменту следующей выборки на нем будет прежний заряд? Вряд ли. Дело в том, что современные интегральные АЦП подобного класса строятся на базе емкостного ЦАП. Во время преобразования методом последовательного приближения производится балансировка зарядов (а не токов, как было в АЦП на основе R-2R ЦАПа). Поэтому заряд входного конденсатора «расходуется» во время преобразования. Да и вообще, во многих АЦП конденсатор УВХ - это не какой-то отдельный элемент, а вся матрица конденсаторов емкостного ЦАП. Так что же будет с конденсатором в конце преобразования, он разрядится до нуля, или будет заряжен каким-то другим зарядом? Это зависит от конкретной схемы АЦП. Документация внятного ответа на этот вопрос не дает, придется прибегнуть к измерениям.

Последовательно со входом АЦП я включил резистор 10 кОм, падение напряжения на котором контролировал осциллографом. На всех осциллограммах по горизонтали 2 мкс/дел, по вертикали 100 мВ/дел. АЦП работает с частотой дискретизации 100 кГц. Измерения, конечно, не совсем достоверны в плане формы выброса, так как ко входу АЦП я подключил небольшую дополнительную емкость (щуп 1:10 имеет емкость около 18 пФ). Но качественно картина не меняется.

ch1_min

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

ch1_mid

При напряжении, равном половине шкалы, выбросы исчезают.

ch1_max

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

Чтобы не появлялась погрешность измерения, за время выборки конденсатор УВХ должен успевать заряжаться до входного напряжения с точностью не хуже 1 LSB. Получить это несложно, так как емкость конденсатора маленькая, около 8 пФ. В datasheet приведена соответствующая табличка, величина сопротивления на входе АЦП может быть порядка десятков кОм. Для источников сигнала с высоким входным сопротивлением можно увеличить время выборки АЦП, в STM32 такая возможность есть.

Но что будет происходить, если со входа АЦП включить емкость на землю? Это типичный прием, рекомендуемый почти везде. Вместе с входным резистором этот конденсатор образует anti-alias фильтр, который всегда необходим, плюс получается фильтр от помех. Если включить на входе АЦП емкость, выбросы напряжения «размажутся» во времени и к концу выборки напряжение может не успеть достигнуть входного с точностью 1 LSB. Придется увеличивать время выборки, чтобы все стало на свои места. Но это возможно для небольших емкостей порядка десятков пФ. Однако обычно речь идет о емкостях порядка 10 – 100 нФ. Тут никакое увеличение времени выборки не поможет. На входе АЦП выбросы исчезнут, мы будем видеть некоторое среднее значение напряжения. Но это значение не равно измеряемому напряжению. При увеличении емкости ошибка АЦП стремится к своему теоретическому максимуму. Хотя казалось бы, какой может быть вред от емкости на входе АЦП, кроме сужения полосы сигнала?

Проверим на практике. На входе АЦП те же 10 кОм, показания АЦП 4001, что соответствует поданному входному напряжению. Подключаем на вход АЦП емкость 10 нФ. Показания стали 3987, т.е. АЦП начал врать на 14 единиц вниз. Теперь уменьшим входное напряжение. Показания АЦП без емкости 101. Подключаем 10 нФ. Показания стали 116, т.е. АЦП начал врать на 15 единиц вверх. Совет включать на вход АЦП емкость является вредным.

Рассмотренные эффекты легко рассчитать, оперируя средним входным током АЦП. Этот ток легко измерить, тестер на основе АЦП двойного интегрирования покажет именно средний входной ток. При нулевом входном напряжении ток оказался равным -1.13 мкА, на середине шкалы он равен нулю, при максимальном входном напряжении он равен +1.09 мкА. Что хорошо согласуется с расчетами. Согласно datasheet конденсатор УВХ имеет емкость 8 пФ. Перезаряжается он максимум на 1/2 шкалы, что при опорном напряжении 3.3 В составляет 1.65 В. Заряд будет равен Q = V * C. А средний ток при частоте дискретизации Fs будет равен Iavg = V * C * Fs = 1.65 * 8E-12 * 1E5 = 1.32 мкА. Что практически совпадает с измеренным значением. Входной ток пропорционален частоте дискретизации, измерение при нулевом входном напряжении и частоте 50 кГц дало значение -0.56 мкА, что тоже соответствует теории.

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

ch1_min_ch2_max

АЦП1 = 0, АЦП2 = 4000. Iavg(АЦП1) = -2.45 мкА.

ch1_min_ch2_mid

АЦП1 = 0, АЦП2 = 2048. Iavg(АЦП1) = -1.64 мкА.

ch1_max_ch2_mid

АЦП1 = 4000, АЦП2 = 2048. Iavg(АЦП1) = +1.99 мкА.

ch1_max_ch2_min

АЦП1 = 4000, АЦП2 = 0. Iavg(АЦП1) = +2.51 мкА.

Как видим, напряжение на входе канала 2 непосредственно влияет на входной ток канала 1. Причем этот ток может быть вдвое выше, чем при работе одного канала. На показания это тоже влияет, при наличии на входе RC-цепочки показания канала 1 менялись при изменении напряжения на входе канала 2, ошибка достигала 30 единиц. Для худшего случая ответ на вопрос "что с конденсатором УВХ происходит потом" можно дать таким образом: во время каждой выборки конденсатор УВХ нужно перезаряжать на величину Vref. Средний входной ток АЦП для худшего случая нужно принимать Iavg = Vref * Cувх * Fs.

Выводы - первый случай: чтобы иметь право подключать конденсатор большой емкости на вход АЦП, сопротивление резистора на входе АЦП (вместе с внутренним сопротивлением источника сигнала) не должно превышать такого значения, когда средний входной ток создает на нем падение напряжения не больше 1/2 LSB. Т.е. R < 1 / (2^(N+1) * Cувх * Fs), где N - разрядность АЦП, Cувх - емкость внутреннего УВХ, Fs - частота дискретизации. Для встроенного АЦП STM32 и Fs = 100 кГц сопротивление должно быть не более 153 Ом. При понижении частоты дискретизации сопротивление можно пропорционально увеличить. А вот время выборки в данном случае не влияет.

Выводы - второй случай: если по каким-то причинам резистор не может быть таким маленьким (например, если источник сигнала сам обладает более высоким выходным сопротивлением), тогда на вход АЦП не может быть подключена произвольная емкость. Если емкость будет превышать некоторое значение, будет появляться ошибка, которая с ростом емкости достигнет своего максимума, о чем было сказано выше. Возникает вопрос, какой номинал емкости является допустимым для выбранного резистора. Чем ниже частота выборок и чем больше время выборки, тем емкость может быть больше. Можно, наверное, составить формулу, но я вместо этого составил модель входной части АЦП. Кроме внешней RC-цепочки учитывается внутренняя емкость УВХ и сопротивление ключа.

adc_model

Для частоты выборок Fs = 100 кГц и времени выборки 2 мкс для получения ошибки не более 1/2 LSB при сопротивлении резистора 100 Ом емкость не должна превышать 10 нФ, а при сопротивлении 1 кОм емкость должна быть не более 330 пФ.

adc_vin

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

adc_vin_4n7

Чтобы не прибегать к моделированию, номиналы RC-цепочки можно рассчитать, пользуясь упрощенными эмпирическими формулами. В [1] рекомендуют выбирать внешнюю емкость примерно в 20 раз больше емкости УВХ. Резистор выбирается из соображений времени установления напряжения на емкости с точностью 1/2 LSB. При этом можно ввести некий коэффициент k, который для выбранной разрядности АЦП показывает, во сколько раз постоянная времени цепочки должна быть меньше времени выборки. Для 10 бит k = 8, для 12 бит k = 9, для 14 бит k = 11, для 16 бит k = 12. Надо сказать, что значения этого коэффициента приблизительные, так как не учитывается отношение внешней емкости к емкости УВХ. Но этими значениями вполне можно пользоваться, взяв постоянную времени с некоторым запасом меньше расчетной. Для приведенного выше примера расчет для 12 бит, Tвыборки = 2 мкс, C = 330 пФ дает R примерно 700 Ом. По результатам моделирования R = 1000 Ом. Вполне хорошее соответствие.

Есть и еще одна функция у RC-цепочки на входе АЦП. Она изолирует выход буферного ОУ от входа АЦП и предотвращает паразитные колебания. Если источником сигнала служит ОУ, то при резком изменении тока нагрузки (что происходит в момент начала выборки) на его выходе может начаться затухающий колебательный процесс. В этом случае при малых временах выборки можно получить непредсказуемую величину погрешности. Вот как ведет себя встроенный буферный ОУ ЦАП STM32, нагруженный на вход АЦП через резистор 100 Ом (масштаб - 100 мв/делю и 1 мкс/дел.):

100R

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

1K

При подключении после резистора 1 кОм даже небольшой емкости, такой как 100 пФ, колебания исчезают:

1K_100PF

Поэтому совет "Do not add any external capacitor" тоже нельзя отнести к полезным. В datasheets на большинство подобных АЦП рекомендуется на входе включать RC-цепочку. Главное - правильно выбрать номиналы. Нужно отметить, что подключая RC-цепочку на выход ОУ, нужно убедиться в устойчивости ОУ при работе на такую нагрузку. Разные типы ОУ имеют разные способности по работе на емкостную нагрузку, определяющим параметром здесь является выходное сопротивление ОУ с разомкнутой петлей ОС. Обычно соответствующие данные есть в datasheet на ОУ.

Озвученный выше выбор емкости "в 20 раз больше емкости УВХ" является во многом произвольным, никакого физического смысла этот коэффициент не несет. Внешнюю емкость часто называют "резервуаром заряда" для емкости УВХ. В идеале величина этой емкости должна быть такой, чтобы при зарядке емкости УВХ напряжение на ней упало не более, чем на 1/2 LSB. Т.е. величина внешней емкости для 12-разрядного АЦП должна быть больше емкости УВХ в 8192 раза. Соответствующий номинал R будет очень малым, реальные ОУ вряд ли смогут работать на такую нагрузку. Поэтому используют менее жесткий критерий выбора емкости. Тогда часть заряда емкость УВХ получает от внешней емкости, а часть - за счет выходного тока ОУ.

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

И еще один аспект: если аналоговый сигнал, который поступает на вход АЦП, используется еще для чего-нибудь, то вход АЦП может явиться дополнительным источником помех - "иголок" с частотой сэмплирования. Лучший вариант - развязать вход АЦП от остальной аналоговой схемы отдельным буфером на ОУ. Тогда и необходимую фильтрацию можно выполнить на входе буфера, не ограничивая себя рамками допустимого сопротивления на входе.

Иногда для повышения эффективной разрядности АЦП используют оверсемплинг. В этом случае частота выборок выбирается побольше, что влечет за собой увеличение среднего входного тока. К тому же, в расчетах нужно брать ошибку 1/2 LSB не для исходного АЦП, а для выходного кода повышенной разрядности. Это еще больше ограничит значения номиналов R и C сверху.

При увеличении эффективной разрядности путем добавления на вход АЦП треугольного сигнала (подобно Figure 22 документа AN2834) номиналы нужно выбирать с учетом среднего входного тока АЦП. Если в такой схеме применяется емкостной делитель с относительно большой емкостью со входа АЦП на землю, то входной резистор должен выбираться малым, как было описано для первого случая.

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

1. Optimize Your SAR ADC Design
2. External components improve SAR-ADC accuracy
3. Using a SAR ADC for Current Measurement in Motor Control Applications
4. The operation of the SAR-ADC based on charge redistribution
5. Start with the right op amp when driving SAR ADCs
6. ADS8342 SAR ADC Inputs
7. Front-End Amplifier and RC Filter Design for a Precision SAR Analog-to-Digital Converter

Comments

( 59 comments — Leave a comment )
Сергей Макаренков
Feb. 21st, 2014 04:34 am (UTC)
Отличное исследование! Возможно стоит опубликовать где-нибудь? На радиокоте, например, или на easyelectronics?
leoniv
Feb. 21st, 2014 09:40 am (UTC)
Когда лежит в разных местах, неудобно исправлять/дополнять.
mamonth_
Feb. 21st, 2014 05:34 am (UTC)
Спасибо.
vano79
Feb. 21st, 2014 06:35 am (UTC)
Здорово! А можно пару вопросов:
"тестер на основе АЦП двойного интегрирования покажет именно ... -1.13 мкА," это что за тестер? И ставить конденсаторы порядка 0,01 на вход АЦП, да без буфера - это для каких таких случаев? Экономия пространства-денег не повод.
leoniv
Feb. 21st, 2014 08:32 am (UTC)
Тестер самый обычный, использовал на пределе 200 мВ, в качестве датчика тока служил резистор 10 кОм, который был включен на входе АЦП.

Конденсаторы на вход АЦП обычно ставят всегда, чтобы реализовать anti-alias фильтр и отфильтровать помехи. И даже если есть буфер, конденсатор ставят не прямо ему на выход, а после резистора, так что буфер картину не меняет. Емкость порядка 10 нФ с резистором 10 кОм образует ФНЧ с частотой среза примерно 1.5 кГц, вполне можно представить сигналы с такой полосой. Важным здесь является то, что RC-цепочка на входе АЦП может привести к появлению ошибки по DC. Вот и здесь сделали вывод, что нужно поставить емкость, не понимая последствий.


Edited at 2014-02-21 09:47 am (UTC)
(no subject) - vano79 - Feb. 21st, 2014 11:16 am (UTC) - Expand
(no subject) - leoniv - Feb. 21st, 2014 12:57 pm (UTC) - Expand
Viktor Gorbunov
Feb. 21st, 2014 04:26 pm (UTC)
Перешли с AVR на STM, и ходили по тем же граблям.
Мало того, что ток из канала в канал перетекает, еще шума добавляется, а железка радиоприемная.
Про 300 Ом на входе в даташите написано, кстати.
leoniv
Feb. 21st, 2014 05:27 pm (UTC)
В AVR такие же грабли, только они намного менее заметные, так как скорость и разрядность АЦП ниже.

В datasheet ничего нет про внешний конденсатор на входе АЦП, поэтому про эти 300 Ом там ничего быть не может.
(no subject) - Viktor Gorbunov - Feb. 22nd, 2014 07:31 am (UTC) - Expand
(no subject) - leoniv - Feb. 22nd, 2014 07:45 am (UTC) - Expand
(no subject) - Viktor Gorbunov - Feb. 22nd, 2014 09:57 am (UTC) - Expand
(no subject) - leoniv - Feb. 22nd, 2014 01:11 pm (UTC) - Expand
(no subject) - Viktor Gorbunov - Feb. 22nd, 2014 02:21 pm (UTC) - Expand
(no subject) - leoniv - Feb. 22nd, 2014 02:53 pm (UTC) - Expand
(no subject) - Viktor Gorbunov - Feb. 22nd, 2014 03:12 pm (UTC) - Expand
(no subject) - leoniv - Feb. 22nd, 2014 04:45 pm (UTC) - Expand
(Anonymous)
Feb. 22nd, 2014 06:51 am (UTC)
А может для уменьшения межканальных наводок вставить между измерениями нужных каналов ещё один, который посадить на землю или Vcc/2? Тогда от остального можно избавиться калибровкой.
leoniv
Feb. 22nd, 2014 07:37 am (UTC)
Можно, но это плохое решение. Во-первых, тратится время на лишнее измерение. Иногда это очень критично. Во-вторых, даже сведя калибровкой эффект влияния входного сопротивления к нулю, нельзя быть уверенным в стабильности. Например, из-за высокого ТКЕ внутренних емкостей может ухудшиться температурная стабильность. Лучше изначально не допускать погрешности правильным выбором схемотехники.
(Anonymous)
Feb. 25th, 2014 11:54 pm (UTC)
Какой частотой(fАDC) при этом ваш АЦП тактируется?
Каково время сэмплирования(Ts)?
В каком режиме( continuous mode or single mode) работает ваш АЦП?
leoniv
Feb. 26th, 2014 08:15 am (UTC)
Частота тактирования АЦП составляет 6 МГц, но на данные эффекты она не влияет.
Время выборки указано в тексте, оно равно примерно 2 мкс (13.5 тактов).
АЦП запускается таймером, используется scan mode для инжектированной группы из одного или двух каналов. Но это не важно. Здесь имеет значение лишь период выборок и время выборки.
(no subject) - (Anonymous) - Feb. 27th, 2014 02:48 pm (UTC) - Expand
(no subject) - leoniv - Feb. 27th, 2014 03:46 pm (UTC) - Expand
(no subject) - (Anonymous) - Feb. 27th, 2014 04:23 pm (UTC) - Expand
(no subject) - leoniv - Feb. 27th, 2014 06:45 pm (UTC) - Expand
(no subject) - (Anonymous) - Feb. 28th, 2014 12:10 am (UTC) - Expand
(Anonymous)
Feb. 27th, 2014 06:38 am (UTC)
Ридико, как обычно, пропиарился, пересказывая очередной апноут своими словами ))))
Но такое впечатление, что ты сам этот AN2834 прочитал наискосок, иначе бы не писал ересь про якобы "вредные советы" на 35 и 37 стр.
Никаких вредных советов там нет, все предельно четко и точно, и даже даны все необходимые формулы, чтобы не надо было ничего придумывать и рожать лишние сущности, типа "среднего тока". Понятие "среднего тока" здесь вообще неуместно. Поэтому его нет в апноуте.
Про минимальное значение конденсатора ничего не читали?
leoniv
Feb. 27th, 2014 09:51 am (UTC)
Ваше право, можете руководствоваться рекомендациями AN2834. Только не удивляйтесь, когда воспользовавшись советом для высокоимпедансных источников сигнала "An extra large Cext enables sampling more often" увидите, что ошибка не снижается с увеличением Cext, а при увеличении частоты выборок она растет. Формула в конце стр. 40 документа AN2834 справедливая, но не сказано то, что при Cext, стремящейся к бесконечности, tc стремится к своему пределу tc = Csh * Rin * (Vmax/Vlsb). Это же значение получается при расчетах, оперирующих средним входным током. Поэтому применение "extra large Cext" ничего не дает.

По поводу минимальной емкости есть рекомендация "Do not add any external capacitor (Cext)". Именно без внешней емкости в datasheet даны значения максимального значения Rain. Не устанавливать внешнюю емкость - правильная рекомендация с точки зрения погрешности АЦП, но она не учитывает реакцию буферного усилителя на скачок тока нагрузки. В большинстве случаев все-таки Cext желательна. Не зря в datasheet производителей микросхем АЦП она практически всегда есть.

Про выбор этой емкости в AN2834 не сказано ничего. Внешняя емкость рассматривается только для высокоимпедансных источников сигнала, где дана ее минимальная оценка как Cext > Csh*(Vmax/Vlsb). Такое большое значение емкости чаще всего не может быть использовано во входном RC-фильтре, так как для получения нужной полосы пропускания потребуется очень малое значение R, на такую нагрузку ОУ не сможет работать. На Figure 26, даны рекомендуемые значения элементов внешней RC-цепочки в зависимости от полосы входного сигнала. Если просто взять и применить номиналы, указанные на графике, это может привести к заметной ошибке по DC из-за влияния входного тока, который здесь не учтен. В целом документ AN2834 хороший, но полной картины он не дает.
(no subject) - (Anonymous) - Feb. 28th, 2014 01:05 am (UTC) - Expand
(no subject) - leoniv - Feb. 28th, 2014 06:35 am (UTC) - Expand
(no subject) - (Anonymous) - Feb. 28th, 2014 03:47 pm (UTC) - Expand
(no subject) - leoniv - Feb. 28th, 2014 04:45 pm (UTC) - Expand
(no subject) - (Anonymous) - Mar. 2nd, 2014 09:08 pm (UTC) - Expand
(Anonymous)
Feb. 28th, 2014 01:34 am (UTC)
И ведь не стыдно Лёне Ридико профанировать, предлагать наивным дурачкам измерять обычным китайским тестером "на основе АЦП двойного интегрирования" сигнал сложной формы, далекой от синусоидальной, малой длительности, короткими сериями и вдобавок, возможно, с очень большим периодом повторения. И ведь не стыдно... )))
leoniv
Feb. 28th, 2014 05:58 am (UTC)
Вы путаете измерение значения переменного напряжения сложной формы (где действительно будет ошибка для сигнала, отличающегося от синусоидального) и измерение постоянной составляющей сигнала. Во втором случае АЦП двойного интегрирования как раз и покажет среднее значение, независимо от формы сигнала. Естественно, будет показано среднее значение за интервал интегрирования, который для тестера составляет порядка сотен мс. Измерить среднее значение импульсного сигнала с очень большим периодом повторения, конечно, не получится. Хотя это можно сделать, добавив внешнюю интегрирующую цепочку с заведомо большей постоянной времени. А в данном случае имеем не "короткие серии", а периодический сигнал с частотой сэмплирования АЦП, среднее значение которого тестер без проблем покажет.
(no subject) - (Anonymous) - Mar. 1st, 2014 02:36 pm (UTC) - Expand
(no subject) - leoniv - Mar. 1st, 2014 04:55 pm (UTC) - Expand
(no subject) - (Anonymous) - Mar. 3rd, 2014 02:33 pm (UTC) - Expand
(no subject) - leoniv - Mar. 3rd, 2014 02:50 pm (UTC) - Expand
(no subject) - (Anonymous) - Mar. 7th, 2014 01:21 am (UTC) - Expand
(no subject) - leoniv - Mar. 7th, 2014 08:50 am (UTC) - Expand
(Anonymous)
Mar. 8th, 2014 07:50 am (UTC)
AD предлагает ещё с другого бока зайти.
Со стороны входа Vref, к которому коммутируются конденсаторы АЦП последовательного приближения во время квантования. Например: http://www.analog.com/static/imported-files/application_notes/AN-931.pdf

С уважением, Точка опоры.
leoniv
Mar. 13th, 2014 01:29 pm (UTC)
Re: AD предлагает ещё с другого бока зайти.
Со входом Vref такая же ситуация. По этому входу тоже идет импульсное потребление тока. Но ADI снова рассматривает проблему только по AC, хотя там возможна ошибка и по DC. Наблюдал такое на 24-разрядном АЦП ADS1256. Если включить в цепь Vref RC-фильтр со сколь угодно большой емкостью и резистором хотя бы порядка десятков Ом, то получим погрешность полной шкалы в зависимости от частоты. При этом меняется средний входной ток входа Vref, который нужно учитывать. TI не вводит понятия среднего входного тока, вместо него использует "effective input impedance", который зависит от частоты.
mamonth_
Oct. 14th, 2014 04:04 am (UTC)
Леонид Иванович, та же проблема - война с демонами АЦП.

Всю статью раза на 3 прочитал. Хочу задать чисто практический вопрос: у меня есть много потенциометров (порядка 50 штук). Завел их через мультиплексоры (405х) и при помощи кучки 595ых рулю ими. STM32F405 не напрягаясь абсолютно успевает их опрашивать 1000 раз в секунду.

А вот буферного ОУ я не поставил. Кроме этого, стоит делитель на резисторах для согласования 10В на потенциометрах с 3.3 на STM. Потенциометры имеют сопротивление 10К + делитель - ток получается на входе АЦП мизерный, а частота сигнала приличная.

Правильно ли я понял, что установка добавочного ОУ и резистора на его выход порядка 150 Ом решит мою проблему?
leoniv
Oct. 14th, 2014 07:49 am (UTC)
Буфер никогда не помешает. А что, даже с потенциометрами проблема вылезла? Вроде, точность там особая не нужна.
(no subject) - mamonth_ - Oct. 14th, 2014 10:41 am (UTC) - Expand
(no subject) - mamonth_ - Oct. 14th, 2014 12:04 pm (UTC) - Expand
(Anonymous)
Sep. 6th, 2015 03:59 pm (UTC)
Прекрасная статья, мне очень сильно помогла. Спасибо, Леонид Иванович !
leoniv
Sep. 6th, 2015 04:33 pm (UTC)
Спасибо! Если что, пишите на почту wubblick@yahoo.com.
zoog2
Nov. 18th, 2015 04:24 am (UTC)
Вы не написали, что ошибка при подключении ёмкости происходит из-за перераспределения заряда между Свнеш и Сувх, при 10нФ и 12бит она составляет 3бит, при 80нФ соответственно исчезнет, останется только входной ток. Наверно, это кажется очевидным, но я надолго застопорился)
Без ёмкости Сувх заряжается за 500нс до точности 1бит, с 10нФ - за 8нс до 3бит и потом 150000нс до 1бит, как я понял.
leoniv
Nov. 18th, 2015 06:56 am (UTC)
Перераспределением заряда лучше не оперировать, это только запутывает. При внешней емкости 10 нФ ошибка может быть 3 бита, а может ее и не быть вовсе, это зависит от выходного сопротивления источника сигнала и времени выборки. Лучше оперировать только средним входным током, он дает оценку ошибки для любых условий.

"Без ёмкости Сувх заряжается за 500нс до точности 1бит, с 10нФ - за 8нс до 3бит и потом 150000нс до 1бит" - этого я не понял. При каких условиях получены такие значения?
(no subject) - zoog2 - Nov. 18th, 2015 07:13 am (UTC) - Expand
(no subject) - leoniv - Nov. 18th, 2015 09:31 am (UTC) - Expand
(no subject) - zoog2 - Nov. 18th, 2015 02:54 pm (UTC) - Expand
(no subject) - leoniv - Nov. 18th, 2015 03:38 pm (UTC) - Expand
hardegor
Dec. 15th, 2015 03:58 am (UTC)
Что-то как-то непонятно, есть же расчеты "External components improve SAR-ADC accuracy" http://m.eet.com/media/1126892/6447231.pdf зачем было вводить какой-то средний ток?
leoniv
Dec. 15th, 2015 07:25 am (UTC)
Ну и что там есть? Попробуйте по той статье рассчитать погрешность, которая получится при высокоомном источнике сигнала и большой входной емкости АЦП. А через средний входной ток - запросто.
livejournal
Apr. 6th, 2016 01:08 am (UTC)
Оглавление журнала
User moz_apm referenced to your post from Оглавление журнала saying: [...] (неприятное свойство микросхемы ULN2003) Демоны в АЦП STM32 [...]
livejournal
May. 15th, 2016 05:26 am (UTC)
Hello! Your entry got to top-25 of the most popular entries of Belarus in LiveJournal! Learn more about LiveJournal Ratings in FAQ.
( 59 comments — Leave a comment )

Latest Month

June 2018
S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930

Tags

Powered by LiveJournal.com
Designed by Jamison Wieser