Ваше лже-счастье – динамический процесс. Он неудовлетворим в принципе. А мы в первую очередь говорим о подлинном, фундаментальном счастье. Его условия определяются одним-единственным словом.
– Каким же?
Он ждал – и дождался.
– Ограничение..

Тему данного поста подсказали мне молодые коллеги, пришедшие с вопросом относительно линейности схемы, которую мы и будем далее рассматривать. Когда я ответил на их вопрос и объяснил, что так и должно быть и нулевое правило инженера в очередной раз доказало свою непогрешимость и «Чудес на свете не бывает», на следующий вопрос, как сделать правильно, я внезапно затруднился с ответом. После определенных размышлений я пришел к выводам, которыми и собираюсь поделиться. Но давайте по порядку.

Темой исследования будет простой резистивный делитель напряжения, который в данном конкретном случае предназначен для изменения диапазона напряжений перед аналогово-цифровым преобразователем (масштабирования).

Так какие же проблемы могут быть связаны со столь простым устройством?

Для начала немного несложной теории. Сформулируем задачу — имеется напряжение, которое необходимо измерить и оно изменяется от Umin до Umax. Имеется микроконтроллер со встроенным АЦП (это мог бы быть и внешний прибор, для дела это неважно, но строгость формулировок предпочтительнее), который способен принять на вход сигнал от U1min до U1max. Необходимо обеспечить превращение входного напряжения U в напряжение на входе АЦП U1, что может быть осуществленно простой математической формулой:
U1 = (U — Umin) * (U1max — U1min) / (Umax — Umin) + U1min

Есть и более красивая эквивалентная формула U = U1min * (Umax — U) / (Umax-Umin) + U1max * (U-Umin)/(Umax-Umin), но здесь речь не о красоте, а о физической реализуемости, а с ней у полинома Лагранжа не слишком хорошо.

Сразу возникает вопрос определения значений, входящих в эту формулу — если для максимального входного мы можем получить данные из ТЗ (надеюсь, у Вас оно есть) то для минимального не все так просто и тут остается простор для фантазии — должны ли мы измерять отрицательные значения и так далее. Конечно, можно директивным путем установить минимальное напряжение в ноль, но в таком случае мы можем существенно потерять в точности, если на самом деле интересующие нас входные напряжения лежат в диапазоне, к примеру 20-50В. А для входного сигнала АЦП тоже есть неопределенность — я знаю, как реализовываются схемы rail-to-rail усилителей (недавно совершенно неожиданно для себя обнаружил подобный прибор в линейке Microchip, вот уж не думал, что они занимаются подобным) и не уверен, что в стандартном МК сделано именно то, что нужно — но здесь мы можем (и должны) верить документации, пока не убедимся в обратном. И если в документации указано нижнее измеряемое значение 0В, то верхнее обычно будет Ucc-0.5В или около того и в любом случае измеряемое напряжение на входе не должно превышать напряжение опоры АЦП, если в качестве последнего берется Vref, то оно, как правило, составляет 1.2-2.5В и всегда ниже напряжения питания (обратите особое внимание на разброс этого параметра в документации на МК, он весьма значителен, но об этом позже).

Возвратимся к нашей формуле и если мы все таки (разумеется, после анализа задачи) примем, что Umin=U1min=0, то выражение получит вид U1 = U * U1max / Umax, и при условии k = U1max / Umax <= 1 данное преобразование может быть выполнено на простом резистивном делителе, для чего нам понадобятся резисторы с соотношением номиналов R / r = 1/k — 1, откуда сразу очевидно ограничение на k <= 1, поскольку в нашей вселенной отрицательное соотношение номиналов резисторов едва ли может быть реализовано (конечно, если речь идет о пассивной схеме).



Вроде бы все ясно и понятно, но в игру вступает новое ограничение — нельзя просто так взять и получить в общем случае необходимое нам соотношение резисторов. Дело в том, что постоянные резисторы выпускаются вполне определенных номиналов из стандартного ряда и это означает, что соседние резисторы, например в ряде Е24, отличаются в 1.1 раза (на самом деле в 1.10068, но такая точность нам не нужна, потому что иначе мы имеем дело с прецизионными измерениями и пост совсем не про них — там все очень и очень не просто), и это означает, что любое возможное отношение номиналов резисторов будет степенью этого числа и промежуточные значения невозможны в принципе. Например, если нам требуется ослабление входного сигнала в 5 раз и соответствующее требуемое значение отношения резисторов 4, то мы можем получить либо 3.83 либо 4.21 при использовании ряда Е24. Какое из этих значений надо предпочесть — зависит от ситуации и внутреннего убеждения — если Вы согласны несколько (на 10%) потерять в значении младшего разряда на всем диапазоне, то выбираем меньшее значение, если считаем приемлемой плату в 10% ошибки в верхней части диапазона, то большее. Мое личное мнение в общем случае — несомненно, меньшее значение, поскольку в этом случае ошибка прогнозируема, монотонна и компенсируема, но решать Вам.

Вот только при принятии решения не следует забывать об еще одном факторе — это в идеальном мире резисторы имеют именно то значение, которое указано на упаковке, а в реальном есть еще отклонение, и оно составляет 5% либо 2.5% либо 1% (либо 0.1%, если Вы богатенький Буратино) для каждого из двух резисторов.

К счастью, наша расчетная формула удачна с точки зрения точности и мы не должны погрешность резистора умножать на 2, тем не менее и уменьшиться она не может, поэтому 5% для обычных резисторов «вынь да положЪ». А с учетом исходного отклонения отношения номиналов от требуемого результат может отклониться от необходимого на целых 10%. Поэтому в данном конкретном случае с необходимым отношением 4 нам надлежит выбрать отношение 3.83 и убедиться, что 3.83 * 1.05 = 4.012 находится в границах требуемого значения 4 (как мы и договорились, ошибкой менее одного процента пренебрегаем, поскольку измерения не прецизионные) и линейность преобразования во всем диапазоне входных напряжений гарантируется.

При этом мы должны четко понимать, что возможное отклонение коэффициента передачи от принятого к реализации может составить -+5% для данной точности резисторов. Если нас не устраивает такой результат, то нам следует либо использовать более точные резисторы, либо построить более точный составной резистор из менее точных (об этом у меня был пост) либо применить подстроечный резистор.

Что я имею в виду, когда говорю о подстроечном, а не о переменном резисторе, хотя это тонкости терминологии — то, что основную работу по формированию коэффициента передачи должны выполнять постоянные резисторы, а переменный резистор лишь способен его изменить, причем не слишком значительно (на те самые максимум 10%). Почему нам следует делать именно так, хотя мы могли бы ограничиться только переменным резистором соответствующего номинала — на это есть множество оснований, приведу лишь некоторые.

1. Начальные значения — сразу после правильной сборки эта часть схемы начнет работать с приемлемыми параметрами, и гарантировано не положит сигнал на упоры и не перегрузит источник, как бы не стоял движок в переменном резисторе.

2. Легкость понимания — достаточно бросить взгляд на схему, чтобы понять коэффициент передачи из номиналов (учитывая замечания к номиналам чуть ниже), иначе Вам придется отдельно указывать необходимый параметр в виде текста (хотя я все равно рекомендую это сделать в любом случае, информация лишней не бывает).

3. Легкость регулировки как после сборки, так и после замены ключевых элементов измерительного узла (например, МК, или внешней опоры), поскольку значения опорного напряжение, если Вы не применили высокоточные компоненты, будет плавать от экземпляра к экземпляру весьма значительно.

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

Теперь о номиналах — еще одно соображение не следует упускать из виду — одно и то же отношение номиналов резисторов (и, соответственно, коэффициент передачи) можно получить разными номиналами, и разными (но согласованными) множителями, так какие следует выбрать?
Прежде всего, следует учесть, что входное сопротивление схемы делителя составит в лучшем случае R+r, а в худшем R, и мы должны стремиться данную величину поднять. Поэтому множитель должен быть как можно большим, даже если у нас источник сигнала низкоомный, таскать от него лишний ток нам совершенно не стоит. С другой стороны, чем больше резистор, тем хуже дела с шумами, поэтому следует хорошенько подумать, прежде чем уходить на десятки мегаом. Кроме того, следует учитывать ограничения входной цепи АЦП, обычно он предъявляет требования по максимально допустимому выходному сопротивлению источника сигнала, обусловленному необходимостью перезарядки входной емкости. Ну и напоследок, при очень больших номиналах придется рассчитывать и учитывать падение напряжения на входном резисторе от токов утечки входов МК, а они совсем не нулевые. Поэтому мне представляется приемлемым множителем сотни кило либо метры, хотя истина всегда конкретна и у Вас может получиться по другому.

Теперь о номиналах — я настоятельно рекомендую меньший резистор брать номиналом 1 на множитель (10кОм, 100 кОм, 1МОм), потому что тогда, просто взглянув на схему, сразу можно в уме рассчитать коэффициент деления. Для рассматриваемого случая можно предложить 380 и 100 кило, либо 3.8 и 1 метр. Поскольку мы берем с недостатком, то переменник следует добавить к большему резистору, его номинал не должен быть меньше 10% от номинала постоянного резистора, иначе мы потеряем (в предельном случае) в диапазоне, ограничение сверху обусловлено практическими соображениями, мы же не хотим ловить 24 кило на 10 метровом резисторе, пусть даже и многооборотном. И еще одно — отделяем переменник от точки измерения входным резистором, иначе мы можем получить влияние емкости настройщика на результаты, а это нам совсем не нужно, об этих и многих других тонкостях можно и нужно прочитать в великолепной книге Роберта Писа «Обнаружение неисправностей в аналоговых схемах» («Goodbye, Sweet Prince»).

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

Разумеется, Вы не собираетесь работать вне первой зоны Найквиста, иначе Вы не читали бы столь простые посты, поэтому будем ставить низкочастотный фильтр, а этого легко добиться, включив конденсатор параллельно меньшему резистору. Поскольку конденсатор совершенно необходим (если я Вас не убедил, то «вы просто поверьте, а поймете потом»), то осталось только решить вопрос с его номиналом. Здесь все очевидно — увеличивать его следует до тех пор, пока это возможно, но не более того — кстати, довольно таки универсальное правило, жаль, что не я его придумал.

В переводе на инженерный данная фраза означает, что наш входной делитель должен существенно ослаблять внеполосные сигналы, но не должен вносить существенных искажений на основной гармонике измеряемого сигнала. Вы не задумывались об этом параметре и не очень понимаете о чем речь — Вы не одиноки в своих заблуждениях и это грустно. Большая (ударение в этом слове каждый ставит сам, исходя из уровня мизантропии, я склонен к букве «о», хотя и буква «а» тоже не радует) часть молодых инженеров в лучшем случае полагает, что это половина частоты дискретизации по времени, остальные вообще ничего не полагают. А ведь это ключевой параметр при разработке системы измерения и мы должны были от него отталкиваться. Так вот, частота среза нашего входного фильтра должна быть в разы (минимум в 2 но лучше в 10 раз) выше, чем вышеуказанная основная гармоника, а для сигналов сложной формы и еще больше.

Учитывая, что частота среза выражается как fs = 1/ (2 * Pi * r * C) >= 10 * fo, отсюда получим значение конденсатора C <= 1/ (2 * Pi * r * (2..10) * fo) — еще один аргумент в пользу увеличения множителя резисторов, мы получим ту же частоту среза при меньшем конденсаторе, но и напоминание о том, что при слишком большом резисторе мы получим низкую частоту среза и, соответственно, искажения основной гармоники даже на паразитных емкостях. Обратите внимание на размер буквы, обозначающей сопротивление резистора — это именно значение меньшего резистора, а отнюдь не входного, что следует из несложных выкладок, которые, к сожалению, не уместились на полях моего планшета. На самом деле там должно стоять сопротивление параллельно включенных резисторов r * R / (r + R), но для упрощения оставим только меньший, тем более, что картина от этого принципиально не меняется — мы очень далеки от сопротивления большого резистора и даже еще дальше.

Об этом не следует забывать, особенно, когда Ваш делитель имеет отношение в десятки, например, при измерении сетевого напряжения, иначе Вас ждут неприятные сюрпризы.
Ну и в завершение темы рассчитаем значение конденсатора при делителе 380 на 100 кило и звуковом диапазоне частот (3300 Гц) C = 1/ ( 2 * 3.14 * 100e3 * 2 * 3.3e3 ) = 10 / ( 2 * 3.14 * 2 * 3.3) е-9Ф = 240 пФ и оценим частотный диапазон при паразитной емкости 3 пФ — для синусоидального сигнала он составит 150 кГц (на самом деле гораздо меньше и вот почему).

Зададим себе вопрос — каков будет коэффициент передачи на частоте, в 2 раза меньшей частоты среза… несколько неожиданные 0.89, то есть уменьшение на 10%, чем пренебрегать совсем не следует. А вот для частоты в 10 раз меньше частоты среза все намного лучше — 0.995, то есть передача весьма близка к идеальной — вот для чего нам запас в 10 раз по частоте среза. Все это верно только для фильтра первого порядка, но ничего сложнее мы пока и не рассматриваем.

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

Разумеется, в этом случае (при появлении перенапряжения) не может идти речи о линейности, да она и не требуется, раз уж мы вышли из рабочей области, но нелинейность имела место и при значениях напряжения в пределах ожидаемых значений. Сначала я не очень понял вопроса и объяснил, что необходимо обеспечить гарантированный ток стабилизации, чтобы получить гарантированное значение напряжения, но потом вник в суть. Дело в том, что представление об идеальном стабилитроне, ВАХ которого изображена на рисунке, ни в коем случае нельзя переносить в реальный мир, где стабилитрон работает не совсем (совсем не) так, как на этом графике. А как именно он работает — описано (должно быть описано) в документации.

Обратимся же к этому источнику информации для прибора 3v3 (конкретный прибор BZX84, но с другими будет не лучше) и что мы там увидим — прежде всего напряжение стабилизации при строго определенном токе через прибор, причем в нормальной документации мы должны увидеть минимальное и максимальное значение (можем еще увидеть типовое, но я, честно говоря, не очень понимаю, зачем оно мне может потребоваться), если же мы видим максимальное и типовое либо минимальное и типовое, а тем более только типовое, то для стабилитрона это явно недостаточно и мы вынуждены считать документацию не нормальной. Что делать в этом случае, я посоветовать не берусь, единственно правильное решение — не работать больше с продукцией данного производителя, но в жизни всегда есть место подвигу, так что решать Вам.



В данном случае мы имеем дело с нормальной документацией и нам указаны оба необходимых (на самом деле три, но третье нам не нужно) значения, причем для разных типов приборов с точки зрения точности, и мы можем нанести их на график ВАХ — точки 1 и 2. Сразу отметим, что эти значения никакой информации о поведении прибора при токе, отличном от заданного, не содержат и не следует вступать на зыбкую почву догадок и предположений. Можно, конечно, посмотреть на график типовой ВАХ, но, как я сказал выше, рассматривать типовые значения (и графики в том числе) — «это ни о чем». Поэтому обратим внимание на еще один параметр — ток через прибор при напряжении 1 вольт, для которого задано максимальное значение тока, и этого вполне достаточно, чтобы нанести на график точку 3 и отложить от нее вниз отрезок возможных значений тока. При этом мы должны принять решение о нижней границе этого отрезка, поскольку минимальный ток нам не задан. Хорошим значением будет ноль, так как в рамках пассивных приборов отрицательный ток при положительном напряжении представляется нонсенсом и подобное решение выглядит естественно. Эти соображения носят исключительно теоретический характер, поскольку в нашем случае и при нашем масштабе мы видим только точку на графике. Теперь мы можем построить целое семейство возможных характеристик (зеленые линии), проходящих через отмеченные точки, и лишь немногие из них будут линейными и нет никаких оснований предпочесть одни из них другим. Единственное, чего мы должны избегать в своих предположениях — это отрицательных сопротивлений, поскольку их физическая природа несколько загадочна (по крайней мере для меня, у Вас может быть иное мнение).

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

Нулевое решение — ничего не делаем, принимаем ситуацию как она есть («улыбаемся и машем»), но изменяем входной диапазон измеряемых напряжений так, чтобы работать до начала открывания стабилитрона, то есть до 1В и пересчитываем входной делитель. Первый минус данного решения очевиден — мы существенно теряем в динамическом диапазоне, не менее 10 дБ. Второй менее очевиден — даже в этом случае линейности не будет, но, наверное, этим можно пренебречь, особенно, если входной резистор не слишком большой. В общем, как и любое решение, пытающееся проигнорировать реальную проблему («это не баг, это фича такая»), не слишком впечатляет, так что поищем и другие возможности.

Первое решение — вообще убрать стабилитрон, полагаясь на встроенные защитные диоды МК, которые совместно со значительным входным сопротивлением должны ограничить напряжение на входе АЦП, а наличие конденсатора (как он оказывается к месту) позволит ограничить выбросы, с которыми встроенные диоды могут не справиться. Плюсы такого решения очевидны, самое главное, что не надо ничего делать (в смысле ничего добавлять, делать то что-то все равно приходится, это же не нулевое решение), только снять стабилитрон, но у него есть и минусы:

1) мы полагаемся на слабо-документированные функции МК (действительно слабо, прочитайте соответствующий раздел документации),
2) в общем случае эти диоды могут отсутствовать на некоторых ножках некоторых МК (я такого с ножками общего назначения не встречал, обычно это характерно для сброса и т.д., но кто знает...),
3) уровень ограничения составит более напряжения питания и точно неизвестен (ни в коем случае не надейтесь на Vcc+0.7В, мы уже надеялись на прямое напряжения стабилитрона и просчитались, прямое падение на диоде при малых токах ведет себя ничуть не лучше),
4) для 5В толерантных ножек будет еще бОльшее напряжение ограничения и, хотя это и не должно привести к повреждению ножек МК (иначе с чего бы они так назывались), поведение АЦП в такой ситуации предсказать сложно. Скорее всего, он ляжет на упоры сверху, но это не гарантируется никак, поскольку мы совершенно очевидно выходим за рамки ТУ. А я еще раз подчеркну — как только мы выходим за пределы ТУ, нам ничего не гарантировано. Мы можем строить различные предположения о поведении прибора в этой области, иногда они будут даже весьма обоснованы и правдоподобны, но если он поведет себя совсем по-другому, не так, как мы ожидали (например, выйдет из строя), то виноваты будем именно мы, как разработчики.

Второе решение — сделать влияние стабилитрона на делитель малозначимым, для чего уменьшить резистор таким образом, чтобы шунтирующее влияние стабилитрона не было заметно. Учитывая, что динамическое сопротивление стабилитрона при 1В составляет 600 Ом, а вблизи напряжения стабилизации 80 Ом, придется выбирать сопротивление меньшего резистора в единицы Ом, что представляется несколько непрактичным.

Третье решение — заменить плохо себя ведущий стабилитрон на нечто более предсказуемое (а вот это вполне здравая мысль и мы ее позже разовьем), в качестве чего были предложены (не мною) последовательно включенные диоды. Ведь общеизвестно, что диод при прямом напряжении на нем менее 0.7В ток не проводит вообще (ага, конечно) и все будет замечательно. Не то, чтобы такая схема не встречалась в моей практике (когда была нужна отсечка по низким уровням напряжения, в связной аппаратуре два параллельных диода на входе каскада вообще на каждом шагу стояли, но она применялась при низкоомных источниках сигналов), но при высокоомном выходе линейностью она если и будет отличаться от имеющейся схемы со стабилитроном, то совсем не в лучшую сторону.

А вот следующее решение такого типа было предложено мною и, на первый взгляд, выглядело вполне красиво — поставить трехвыводной стабилитрон типа 431 и получить отлично контролируемое и весьма стабильное (не могу не выразить восхищения, которое я испытал, когда впервые измерил напряжение стабилизации в партии таких приборов — отклонение менее 0.2% на 50 образцах прибора с заявленной точностью 1% — это действительно круто) ограничение напряжения, причем схема давно известна и чуть менее, чем все, источники питания с гальванической развязкой ее используют (немного по другому используют, но это же мелочи, а мелочами мы смело пренебрегаем).

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

Но продолжим поиск третьего решения, что требует наличие компонента, в чьих параметрах мы в некоторой (достаточно широкой) области не сомневаемся. Вспомнилось, как один мой хороший знакомый применял (когда мы были ограничены в выборе элементной базы) вместо стабилитронов КС133, разброс значений которых был просто беспредельным (хотя и полностью в рамках ТУ), светодиоды АЛ307Б, которые значительно лучше укладывались в требования по точности, но это было от безысходности, поскольку документацией никак не регламентировалось. Быстро проведенный поиск показал, что светодиоды (конечно, современные, хотя и на 307 я взглянул) действительно дольше сохраняют закрытое состояние, но все равно имеют ярко выраженную зону нелинейности перед открытием и решением быть не могут. Использование переключающего элемента типа биполярного либо полевого транзистора не приводит к существенному изменению ситуации, а применение компаратора, которое решает все проблемы с линейностью, выглядит чем то вроде стрельбы из пушек по воробьям и приводит к существенному усложнению схемы.

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

Простое последовательное включение диода и стабилитрона не приводит к желаемому результату (строим вольт-амперную характеристику и продолжаем наблюдать существенную нелинейность), поэтому схема несколько усложняется для обеспечения гарантированного напряжения на стабилитроне и приведена на рисунке. Здесь все хорошо с линейностью до измеряемых напряжений, не превосходящих напряжение стабилизации, все почти хорошо с напряжением ограничения, которое составит не более, чем на 0.7В выше напряжения ограничения стабилитрона. Конечно, линейность в области отсечки будет никакая, но мы должны понимать что это уже не область измерений и путем выбора соответствующего стабилитрона добиться нужного значения.

Еще одно замечание — не следует брать диод Шоттки в расчете на его меньшее прямое падение, поскольку его обратный ток существенно (на порядок, а то и не на один) превосходит обратный ток обычного диода, а резисторы у нас значительные, поэтому лишнее падение точности измерений нам никак не компенсирует возможное (не гарантированное) уменьшение напряжения отсечки. Ну или очень внимательно читать документацию и рассчитывать падение на входном резисторе, связанное с обратным током, решать, как всегда, Вам, я только даю советы.



К данной схеме остался только один вопрос — номинал сопротивления Rv. Первое и очевидное значение, обеспечивающее ток стабилизации стабилитрона Rv <= ( Uv — Uf) / If = (36-3.3)/5е-3 = 6.5кОм приводит к значительным токам потребления от измеряемого источника (да, я считаю единицы мА значительным током) во всем диапазоне входных значений, особенно при перенапряжении. Еще одно не очевидную особенность следует принять во внимание — где у нас гарантия, что при напряжениях, менее ограничиваемого, диод будет смещен в обратном направлении, то есть напряжение на стабилитроне всегда будет выше, чем на входе измерения (на делителе). Ведь я неоднократно подчеркивал, что поведение стабилитрона при токах, меньших токе стабилизации, не определено. Я от своих слов не отказываюсь, но, как говорилось в одном весьма неприличном анекдоте «а остальное — нюансы», и мы можем кое-что гарантировать, не зная точного поведения стабилитрона, но учитывая определенные ограничения, прямо взятые из документации.



Вот сейчас мы это и проделаем — следите за руками.

Мы установили, что кривая ВАХ реального прибора лежит ниже ломаной 0-3-3'-2. Постоим передаточную характеристику системы из входного резистора и стабилитрона, для чего проведем нагрузочную прямую и начнем ее сдвигать вправо, увеличивая входное напряжение. До точки 1 напряжение на стабилитроне практически повторяет входное напряжение, с точностью до падения на входном резисторе тока, не превосходящего начальный ток, то есть коэффициент передачи близок к единице. Начиная с точки 3, ток через стабилитрон увеличивается и напряжение все более отстает от входного, коэффициент передачи падает, но не может стать меньше эквивалентного резистивного делителя с подтягивающим резистором, равным дифференциальному сопротивлению прибора. После точки 3' сопротивление скачкообразно меняется (конечно же, но не может измениться таким образом, меняются ограничения, которые его описывают) и коэффициент передачи падает еще больше (хотя и не становится равным нулю). Поэтому, если мы обеспечим, чтобы коэффициент передачи на участке 3-3' был не менее, чем у основного резистивного делителя, то легко добьемся требуемого условия — диод обратно смещен на всем диапазоне входных напряжений. Из рисунка видно, что зеленая линия (напряжение на стабилитроне) всегда выше красной линии (напряжение на делителе) до тех пор, пока не станет ниже и тогда красная линия будет ограничена (синяя кривая). Отсюда получаем k1 = Rv / (Rv + R1) >= r / (r + R), и затем путем несложных манипуляций получим R1 <= Rv * r / R, что для наших значений составит 600 * 11 = 6.6кОм, то есть все отлично сошлось.



Почему нам все удалось — потому что, если для измерения мы должны знать точное значение коэффициента передачи, то для вспомогательной цепи нам необходимо, чтобы оно не было меньше определенного предела, а конкретное значение совершенно не существенно. Тем не менее, определенный привкус трюкачества остается (мы сделали некоторые предположения относительно поведения дифференциального сопротивления стабилитрона, вполне себе работоспособные, но напрямую в документации не прописанные), а этого следует избегать. Кроме того, нам приходится отбирать значительный ток (единицы мА) от источника измеряемого напряжения, а если это, к примеру, батарейка? Поэтому крайне желательно использовать для получения напряжения отсечки не источник сигнала, а некоторое внутреннее напряжение устройства, у него же должно быть питание, что приводит нас к модификации схемы на следующем рисунке. Здесь вообще не о чем беспокоиться, напряжение на стабилитроне зафиксировано и стабильно, независимо от входного напряжения и диод не может быть смещен в прямом направлении до достижения входных значений, выше граничных, никогда, если мы верим технической документации («в Бога мы верим, все остальное требует доказательств»).



Обратим внимание на то, что вместо обычного стабилитрона включен так называемый «трехвыводной стабилитрон» серии 431, который я уже упоминал и временно отложил. Что дает применение именно такого прибора — прежде всего непревзойденную стабильность напряжения, вроде нам это не особо и нужно в данной ситуации, но лучше сразу привыкать к хорошим решениям. Второе — он позволяет существенно снизить требования к прямому току через прибор (в разы) и, хотя мы потребляем этот ток уже не от входного сигнала, а от напряжения питания, зачем брать лишнее. Вот последний аспект хотелось бы рассмотреть подробнее.

Те, кто читал уже мои посты, не удивятся, а для начинающих моих читателей сразу скажу, что сейчас начнется «плач Ярославны». Да, я люблю порассуждать на тему о степени зелености травы, но Вы сначала прочтите мое мнение, потом посмотрите источники, потом составьте свое, и только потом осуждайте (или присоединяйтесь).

Итак, мы начинаем обсуждение документации на 431.

Речь пойдет о совершенно замечательном электронном устройстве, которое разработано действительно мастерами своего дела, которое производится серийно многими известными фирмами и серийно же применяется в миллионах экземпляров (а может и в десятках миллионов) по всему миру и в этой фразе нет ни грана сарказма. Я применяю этот прибор более 20 лет и всегда он оставлял о себе самое лучшее впечатление, но сегодня я внимательно посмотрел документацию на него (от фирм-производителей ON, Motorola, NSC, TI — других не смотрел, но, думаю, достаточно) и обнаружил, что она не полна (ну или я туповат, прошу с обоснованием последнего тезиса в комментарии). Рассматриваем электрические параметры и видим:

— напряжение стабилизации при фиксированном токе (ни фига себе ток, скажете Вы, целых 10 мА, и будете правы, но подождите немного), причем заданы минимальное и максимальное значения (еще и типовое, которое непонятно зачем нужно, но пусть будет);
— влияние температуры на значение напряжения стабилизации (зачем то под таблицей дан типовой график этой зависимости, но вреда от этого я не вижу, если Вы будете помнить, что это ТИПОВОЙ график и, следовательно, ничем не гарантируется);
— влияние катодного напряжения на опорное напряжение (весьма незначительное, ослабление почти в 40 дБ, что замечательно);
— значение дифференциального сопротивления при токе опять-таки 10 мА, причем весьма небольшое — существенно менее одного Ома (действительно замечательный прибор);
— минимальный ток стабилизации, причем дано типовое значение в 0.4 и максимальное в 1 мА (вот оно, посмеемся над маловерами, которых отпугнула строка о 10 мА в начале таблицы) — «а вот с этого момента подробнее, пожалуйста».

Что это за параметр — нет, я понимаю, что означают все три слова, входящие в название параметра, я могу ясно представить, что означает их сочетание, но, прошу прощения, мы имеем дело с технической документацией, и здесь не должно быть места для трактовок. Единственная документация, где делается попытка как то намекнуть на поведение прибора при этом токе — это отечественное описание на ЕН19, где встречается фраза о токе стабилизации от 1 до 10 мА, но и там она не развернута в нормальное описание. А в документации импортных производителей просто задается этот параметр и все.

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

Есть красивые картинки (если бы над ими не стояло слово «типичный», их можно было бы назвать графиками, а так это картинки), из которых можно предположить, что при уменьшении тока коллектора до 1 мА напряжение стабилизации существенно не изменяется. Но, во-первых, это картинки, а, во-вторых, меня еще в институте отучили снимать значения даже с графиков (тем более с картинки) путем приложения к ним линейки с делениями. Если Вам требуются конкретные значения, то они либо должны быть занесены в таблицу, либо даны аналитические формулы для ограничивающих параметр кривых, рисунки и графики — материал иллюстративный. Причем некоторые производители специальной стрелочкой на ВАХ в области малых токов показывают минимальный ток стабилизации (но почему то не максимальный, а типовой, еще раз заклинаю – не ведитесь на типовые значения), то есть догадываются, что надо бы его как то привязать к реальности, но (наверное, именно так проявляется воля мирового правительства) не осмеливаются сделать это четко и ясно, не оставив места для догадок и предположений.

Да, я сам многие годы устанавливал начальный ток стабилизации в 1 мА, и все схемы прекрасно работали и показывали отличную повторяемость результатов, И на схеме, представленной Вашему вниманию, установлен именно такой ток, но все это неправильно, хотя и работает.
Если кто то из читателей данного поста работает в одной из перечисленных фирм, передайте своим коллегам, что в далекой России по крайней мере один инженер просит их четко прописать поведение 431 приборов при минимальном токе стабилизации.

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

Проголосовало 17 человек. Воздержалось 18 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Поделиться с друзьями
-->

Комментарии (21)


  1. Quanzi
    05.05.2017 16:45
    +1

    А где вариант «ничего не понял, но это просто я дурак, побольше бы такого на Хабре?»


  1. kolu4iy
    05.05.2017 17:15

    Знаете, в процессе чтения перед глазами несколько раз проходил грустный ослик Иа-иа, который нес в зубах 431 стабилитрон…


    1. GarryC
      05.05.2017 17:32

      Интересные у Вас ассоциации… представил себе Ослика с 431… много думал…


      1. kolu4iy
        05.05.2017 17:38

        На самом деле ослика в подсознание мне засунул стиль изложения — "… где стабилитрон работает не совсем (совсем не) так.."


  1. Rosomaha
    05.05.2017 18:03

    Приятно встретить на Хабре цитату из любимого автора (авторов :)


    1. fireSparrow
      06.05.2017 13:19

      Я тоже обратил внимание :) Имхо, цикл про Ойкумену — лучшее из творчества Олди.


  1. nehrung
    05.05.2017 20:28
    +1

    В принципе всё по делу (в т.ч. и воззрения автора из области технической философии), но слишком многословно. Суть нетрудно изложить парой-тройкой абзацев. Но… как выражался один классик «извините, что пишу длинно — не было времени написать коротко».


  1. ogoNEKto
    05.05.2017 20:28

    Только мне непонятно, почему автор описывает обратный ток через диод, а на последних схемах он включен в прямом направлении, между входом МК и стабилитроном?! (D1)


    1. GarryC
      05.05.2017 20:31

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


  1. IIvana
    06.05.2017 06:19
    +2

    А если я напишу, что вместо танцев с бубнами вокруг противоречивых требований к номиналам резисторов делителя и ужасов со стабилитронами я бы применил простейший эмиттерный повторитель по совместительству являющийся ФНЧ или, не к ночи будет помянуто, вообще фильтр на рэйл-то рэйл операционнике, которые дадут нам и нужные нагрузочные способности, и задание коэффициента ослабления, и органичение выходного сигнала — и все это без особых костылей — вы мне начнете оппонировать, что там вылезут свои сложности из-за нелинейности активных компонентов и прочее? Но смотри ТЗ — у нас не прецизионные измерения (ТС писал).


    1. Serge78rus
      06.05.2017 23:21

      Простейший эмиттерный повторитель внесет ошибку на величину напряжения смещения перехода база-эмиттер, которое к тому же будет зависеть от температуры.


    1. GarryC
      06.05.2017 23:28
      -1

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


  1. master__v
    06.05.2017 23:19

    А зачем здесь tl431? Почему бы катод диода D1 не подключить непосредственно к шине питания МК?


    1. GarryC
      06.05.2017 23:20
      -1

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


      1. Serge78rus
        08.05.2017 13:27

        Чтоб не выйти за питание, достаточно вместо двух последовательно соединенных резисторов использовать три (далее R1, R2, R3): ограничительный диод подключить к точке соединения R1 и R2, а вход АЦП подключить к точке соединения R2 и R3. Как дополнительный бонус получаем несколько большую гибкость при выборе номиналов из стандартного ряда.


        1. GarryC
          09.05.2017 09:02

          Боюсь, что ничего не получится — даже на первой ступени (R1.VD) будет ярко выраженная нелинейность.


          1. Serge78rus
            09.05.2017 11:36

            Схема
            <img src="http://" alt=«image»/>


            1. GarryC
              09.05.2017 22:40

              Ну и подумайте, что будет при входном напряжении выше 4В? Напряжение просто ляжет на верхний упор и дальше увеличивать его бессмысленно. Я то думал, что Вы стабилитрон поставить хотите вольт на 40 и будет нелинейность, в тут будет даже еще хуже


              1. Serge78rus
                10.05.2017 10:01

                Ну и подумайте, что будет при входном напряжении выше 4В?

                Вопрос некорректный без знания соотношения резисторов, а оно, в свою очередь, будет зависеть от исходных данных (в каком диапазоне требуется измерять) Два примера «с потолка»:

                1. Хотим мерить 0...3В, опорное напряжение АЦП 1В, номиналы всех резисторов равны. Во всем рабочем диапазоне входных напряжений (0...3В) напряжение в точке соединения R1 и R2 изменяется в пределах 0...2В, диод всегда обратносмещен и не вносит нелинейности. При входном напряжении порядка 6В (за пределами требуемого диапазона) диод откроется и начнется ограничение. При этом напряжение на входе АЦП не превысит 2В, т.е. не выйдет за пределы питания.

                2. Хотим мерить 0...10В, опора АЦП 1В, номиналы R1, R2, R3 соотносятся как 8:1:1. Во всем рабочем диапазоне входных напряжений (0...10В) напряжение в точке соединения R1 и R2 изменяется в пределах 0...2В, диод всегда обратносмещен и не вносит нелинейности. При входном напряжении порядка 20В (за пределами требуемого диапазона) диод откроется и начнется ограничение. При этом напряжение на входе АЦП не превысит 2В, т.е. не выйдет за пределы питания.

                На какую из этих схем Вы хотите подать 4В? Если на первую, то 4В — это за пределами рабочего диапазона, т.е. ничего померить мы не сможем и о нелинейности можно не вспоминать, но напряжение на входе АЦП не выйдет за пределы питания. Если на вторую, то 4В — это в пределах рабочего диапазона, диод будет заперт (на его аноде 0.8В, на катоде — 3.3В), никакой нелинейности не будет.


  1. Gryphon88
    08.05.2017 00:21

    Так вот, частота среза нашего входного фильтра должна быть в разы (минимум в 2 но лучше в 10 раз) выше, чем вышеуказанная основная гармоника, а для сигналов сложной формы и еще больше.

    Не подскажете, где про это почитать подробнее? Во всех туториалах, которые я читал, просто говорят «поднимите частоту дискретизации в 5-10 раз».


    1. GarryC
      08.05.2017 21:38

      Да даже и не вспомню, во многих книгах по измерениям, например в «Что нужно знать цифровому разработчику об аналоговой электронике» Бонни Бэйкер.