Источники питания сетевого напряжения на DIN-рейке MEAN WELL
РадиоЛоцман - Все об электронике

Удерживайте этот пик с помощью PIC

Microchip MCP6021 MCP6022

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

LED-драйверы MOSO для индустриальных приложений

Рисунок 1 иллюстрирует основные принципы, используемые в схеме. Возможно, позже мы захотим добавить некоторые усложнения.

Базовая схема удержания пика. Вывод PIC, обозначенный как ANA, измеряет напряжение на конденсаторе C1, а затем разряжает его на землю, готовясь к следующей выборке.
Рисунок 1. Базовая схема удержания пика. Вывод PIC, обозначенный как ANA,
измеряет напряжение на конденсаторе C1, а затем разряжает его
на землю, готовясь к следующей выборке.

Элементы A1 и D1 образуют «активный диод», который через резистор R1 быстро заряжает конденсатор C1 до пикового входного напряжения всякий раз, когда напряжение на неинвертирующем входе A1 превышает напряжение на катоде диода и, следовательно, напряжение на инвертирующем входе. C1 сохраняет свой заряд, поскольку пути разряда у него нет (за исключением утечек) до тех пор, пока PIC не потребуется выполнить выборку, когда соответствующий вывод (обозначенный как ANA) перенастраивается как вход АЦП, и запускается период выборки данных, в течение которого заряд C1 делится с внутренним запоминающим конденсатором CHOLD микроконтроллера PIC. После этого можно начинать преобразование, которое также немедленно отсоединяет этот вывод от АЦП, позволяя ему изменить функцию с аналогового входа на цифровой выход (активный низкий уровень) для разряда конденсатора C1, восстанавливая готовность схемы к следующему циклу. Таким образом, один вывод процессора выполняет две функции. Типичный код для основных функций показан в Листинге 1.

Листинг 1. Упрощенный код для выборки напряжения, удерживаемого на конденсаторе C1, и его немедленного разряда для сброса схемы в готовность к следующему циклу выборки.

;;    Предполагается, что выбранный вами вывод уже настроен как
;;    аналоговый вход. (В этом примере он указан как porta,l или ANI/RAI,
;;    но на Рисунке 1 обозначен как ANA). Точный метод выполнения этой
;;    процедуры сильно зависит от выбора PIC, как и от выбора тактовых
;;    частот, опорных напряжений и даже относительных приоритетов
;;    аналоговых и цифровых функций. Осторожно! Также в начале программы
;;    очистите цифровой выход для этого вывода, чтобы использовать его
;;    в качестве вывода сброса.
    bcf      PORTA,1              ; низкий уровень на выводе, если он выход
;;    - и убедитесь, что вывод, обеспечивающий питание ОУ,
;;    настроен как цифровой выход с высоким уровнем. На Рисунке 1 он
;;    обозначен как OUT, а здесь — как PORTA,0.
    bcf      TRISA,0              ; назначить как выход -
    bsf      PORTA,0              ; - с активным высоким уровнем

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

;;    Начало преобразования уже стабильной аналоговой выборки,
    bsf      ADCONO,GO          ;  выборка вывода (ANI/ANA)

;;    Теперь назначение вывода можно изменить на цифровой выход (низкий)
;;    для разряда C1.
    bcf      TRISA,1            ; настраивает вывод как цифровой выход,
                                ; переопределяя аналоговую функцию

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

Loop_ADC
    btfsc    ADCONO,GO         ; цикл до завершения преобразования
    bra      Loop_ADC          ; - или используйте goto для устройств младше PIC18F

;;    Теперь данные доступны в регистре(ах) результата преобразования.

;;    Восстановление функции вывода как аналогового входа,
;;    готов к следующему циклу выборки.
    bsf      TRISA,1           ; переопределяет вывод как аналоговый вход

Теперь, когда мы разобрались с тем, как все работает, пришло время указать на недостатки решения и предложить некоторые обходные пути.

Напряжение на конденсаторе C1 никогда не может быть выше напряжения питания усилителя A1 за вычетом падения напряжения на диоде, что ограничивает эффективный диапазон измерений. (Хотя для D1 можно использовать диод Шоттки с более низким прямым напряжением, больший обратный ток ухудшит точность). Если в диапазон измерений должен попадать весь входной сигнал, проще всего сначала ослабить его, и либо смириться с несколько ограниченным разрешением при измерениях, либо использовать более низкое опорное напряжение (идеальным было бы 2.55 В) для ЦАП. Чтобы обеспечить полный положительный размах, можно повысить напряжение питания VDD усилителя A1. Аналогично, можно сместить в область отрицательных значений напряжение VSS, если нужно измерять уровни напряжений, близкие к земле. Опять же: см. далее.

Любое входное смещение усилителя A1 повлияет на точность. 1 LSB (младший значащий бит) составляет около 13 мВ при использовании 8-битного АЦП с опорным напряжением 3.3 В или порядка 800 мкВ при 12 битах, поэтому допустимое смещение должно быть вдвое меньше. (Максимальное напряжение смещения, указанное для MCP6021, составляет 500 мкВ).

Обратите внимание, что хотя напряжение на конденсаторе C1 будет измеряться относительно вывода AVSS микроконтроллера (или, возможно, его вывода опорного напряжения), конденсатор будет разряжаться на вывод DVSS. (В устройствах с небольшим количеством выводов AVSS и DVSS объединены на одном земляном выводе). Будьте осторожны с любым относительным смещением их потенциалов, если на первом месте стоит точность при низких уровнях входного сигнала. Для минимизации таких ошибок во время аналоговых измерений микроконтроллеры часто переводятся в спящий режим, так как ошибки могут зависеть от того, насколько интенсивно работает устройство.

Более трудноуловимый источник ошибок заложен в работе АЦП. В нем используется небольшой конденсатор (CHOLD) емкостью от 10 пФ до 120 пФ в зависимости от возраста устройства, который удерживает входные данные для обработки. Во время выборки данных заряд внешнего конденсатора C1 перераспределяется с внутренним конденсатором, поэтому, если АЦП не подключен к выводу в момент поступления входного импульса, он будет считывать заниженный уровень, масштабированный на величину

При C1 = 10 нФ, и если емкость запоминающего конденсатора ЦАП CHOLD равна 10 пФ, как в более современных микроконтроллерах PIC, ошибка составит примерно 1 LSB для 10-битного результата, но будет незначительна для 8-битного; более низкие значения C1 приведут к бóльшим ошибкам.

Если этот входной импульс короче периода разряда и поступает в то время, когда вывод удерживается на низком уровне, он будет ослаблен и фактически потерян. (И убедитесь, что развязывающий конденсатор усилителя A1 сможет выдержать неизбежные переходные процессы по питанию). Добавление дополнительного MOSFET, для чего потребуется еще один вывод GPIO (вход/выход общего назначения), как показано на Рисунке 2 ниже, обеспечивает «мгновенный» разряд (или примерно в тысячу раз быстрее, возможно, в течение одного цикла инструкции), причем на истинную землю, а не на внутреннюю землю PIC. (Тогда вывод АЦП будет оставлен в аналоговом режиме). В особо критических ситуациях можно продублировать схему выборки на другом выводе и поочередно считывать каждый канал, выбирая более высокое значение в коде.

Повышение напряжения шин питания операционного усилителя может обеспечить истинный режим rail-to-rail, в то время как дополнительный MOSFET позволяет «мгновенно» разрядить C1.
Рисунок 2. Повышение напряжения шин питания операционного усилителя
может обеспечить истинный режим rail-to-rail, в то время как
дополнительный MOSFET позволяет «мгновенно» разрядить C1.

В моем первоначальном приложении, измерявшем мощность импульсов радиочастотного сигнала, ни один из этих пунктов не представлял проблемы, поскольку входной сигнал всегда находился в диапазоне от 0.2 до 2.5 В и длился сотни микросекунд, в то время как выходной уровень масштабировался для значений от 0 до 9.

Несмотря на эти оговорки, такой подход без обратной связи может быть быстрее стандартной конфигурации, в которой операционный усилитель охватывает конденсатор. Поскольку C1 управляется напрямую, нарастание входного импульса теперь может быть сколь угодно быстрым. Выходной сигнал усилителя A1 может на мгновение превысить допустимый уровень, но этот выброс будет поглощен большей постоянной времени R1C1.

Для обеспечения высокой точности сопротивление R1 следует выбирать таким образом, чтобы ток выходного каскада операционного усилителя никогда не превышал предельно допустимого значения, поскольку это разорвет петлю обратной связи, что приведет к выбросам и недостоверным завышенным показаниям. Кроме того, для чистой работы постоянная времени R1C1 должна быть не меньше времени нарастания выходного напряжения усилителя A1 от шины до шины. 10 нФ + 47 Ом (470 нс примерно соответствуют измеренному времени нарастания) позволяют проводить точные измерения импульсов амплитудой 2.5 В длительностью всего примерно 3 мкс. Эксперименты показали, что сопротивление R1 можно уменьшить до 27 Ом, что для входных импульсов 1 мкс/2.5 В дает погрешность –10%.

Время разряда конденсатора C1 до половины значения LSB будет равно

где ROUT(LOW) – выходное сопротивление порта в состоянии «лог. 0», типичное значение которого для микроконтроллера PIC, работающего от источника питания 3.3 В, равно примерно 100 Ом.

Здесь «≈1.6» – это, конечно же,

Для 8 бит, 10 нФ и 100 Ом это время приблизительно равно 14 мкс и может быть сокращено, если не нужно измерять напряжения непосредственно до уровня земли. (В любом случае, у некоторых PIC с этим могут возникнуть проблемы, особенно если во входном тракте их АЦП используется внутренний операционный усилитель). Выбор в пользу отмены разряда и повторного подключения аналогового входа сразу после завершения аналого-цифрового преобразования, которое в моей реализации занимало примерно 20 мкс, был более чем адекватным и упростил код.

Показанная на рисунке микросхема A1 – это КМОП усилитель MCP6021 с rail-to-rail входами и выходом, напряжением питания 2.5–5.5 В, напряжением смещения менее 500 мкВ и произведением коэффициента усиления на полосу пропускания, равным 10 МГц. Усилитель MCP6001 дешевле, но и характеристики его хуже. Кроме того, сдвоенный MCP6022 отлично подходит для экспериментов и создания макетов с питанием от 5 В, поскольку доступен в корпусе DIP-8.

Как показано на Рисунке 1, усилитель A1 может питаться от вывода GPIO, что позволяет отключать его, когда PIC находится в спящем режиме. Очевидно, что это ограничивает значение его VDD напряжением питания PIC, ограничивая диапазон входных сигналов, как отмечалось выше. Если требуется полный диапазон и доступна более высоковольтная шина, используйте ее; если нет, то решение обеспечит простой удвоитель напряжения, возможно, питаемый от выхода ШИМ.

Низкий уровень выходного напряжения MCP6021 превышает VSS не более чем примерно на 5 мВ (меньше ½LSB при 8-битном разрешении). Для работы с напряжениями вплоть до уровня земли еще один удвоитель напряжения может обеспечить большее отрицательное напряжение питания, а простой регулятор снизит его до –0.6 В, необходимых для низковольтных операционных усилителей. Убедитесь, что общее напряжение на усилителе A1 находится в допустимых пределах; чтобы гарантировать это, может потребоваться дополнительный диод в удвоителе положительного напряжения – D6 на Рисунке 2. Все эти дополнения собраны вместе на Рисунке 2. Внутренние диоды защиты выводов PIC рассчитаны на ток 25 мА и должны оставаться в безопасности при повышении напряжения вследствие любых неисправностей. Хотя эти простые удвоители напряжения, управляемые PIC, рассчитаны всего на несколько миллиампер, при необходимости они могут помочь в питании других устройств.

Все это заставляет задуматься: от какого источника питается предшествующая схема, и действительно ли он обеспечивает сигнал rail-to-rail? Если нет, то беспокоиться не нужно.

Еще одна проверка реального положения вещей: если доступны обе шины с повышенным напряжением, почему бы не использовать более высоковольтный операционный усилитель, не поддерживающий rail-to-rail? В этом случае отпадает необходимость в регуляторе отрицательного напряжения Q2/Q3 и прочих компонентах. Дополнительные усложнения, показанные на Рисунке 2, вероятно, здесь не понадобятся, но могут пригодиться в другом месте.
Во многом из-за ограничений PIC простая схема на Рисунке 1 является скорее точной, чем прецизионной, но все же она оказалась надежной и полезной, особенно в тех случаях, когда на плате не хватает места. Ее также можно использовать в качестве входного каскада для внешнего периферийного АЦП, измеряющего пиковые значения. Основной принцип также может быть использован в микропроцессорной конструкции для привязки сигнальной линии к земле, хотя и с эффективным последовательным сопротивлением 100 Ом или около того, возможно, там, где MOSFET добавил бы слишком большую емкость.

Материалы по теме

  1. Datasheet Microchip MCP6021
  2. Datasheet Microchip MCP6022
  3. Datasheet Fairchild FDC604

EDN

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Hold that peak with a PIC

71 предложений от 34 поставщиков
Интегральные микросхемы Аналоговая техника — усилители — инструменты, ОУ (операционные), буферные
Allelco
Весь мир
MCP6021T-E/OT
Microchip
27 ₽
727GS
Весь мир
MCP6021-E/ST
Microchip
от 35 ₽
Элитан
Россия
MCP6021T-E/OT
Microchip
63 ₽
Зенер
Россия и страны ТС
MCP6021RT-E/OT
Microchip
от 90 ₽
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя