И случилась со мной удивительная история, которая, будь она написана серебряными иглами в уголках глаз, послужила бы назиданием для поучающихся.
История эта началась с проектирования переносного устройства, в котором было желательно уменьшить потребление от аккумулятора в режиме отключения, но механический переключатель был неприемлем в силу конструктивных особенностей. Также было нежелательно использовать транзистор в качестве ключа ввиду значительных рабочих токов устройства (более 3А). Поэтому было принято распространенное решение о блокировке работы входящих в состав устройства источников питания (ИП) при помощи управления сигналом разрешения работы. Ничего нового и необычного, таких схем можно найти 12 на дюжину в устройствах с автономным питанием, однако совершенно неожиданно возникли определенные осложнения, которые привели к ряду поучительных выводов.
Для начала приведу схему, о которой дальше пойдет речь, она представлена в упрощенном варианте.
Здесь все просто — в исходном состоянии есть основное напряжение 5 Вольт (аккумуляторная батарея), однако источники питания выключены, что обеспечивается резистором R2. При этом источники питания потребляют от основного источника ток покоя, который весьма невелик (в данном случае 2мкА+2*1мкА=4мкА. Для включения нажимаем кнопку S1, напряжение от основного источника через диоды D3 и D2 поступает на разрешающие входы ИП, которые включаются и начинают вырабатывать требуемые напряжения, в том числе питание 3.3 В для МК. МК начинает работу, запускает программу и выставляет высокий уровень на соответствующем выводе, который через диод D1 дополнительно разрешает работу ИП. Начиная с этого момента, можно отпустить кнопку S1, дальнейшая работа ИП обеспечивается выходом МК до тех пор, пока не будет принято решение отключиться и МК не снимет высокий потенциал с диода D1, тогда ИП прекратят работу и мы возвращаемся в исходное состояние.
Данная схема была реализована, опробована, и показала себя вполне работоспособной. В ней есть свои подводные камни, связанные с дребезгом ключа S1, но в данном случае речь не о них.
Неожиданности подстерегали нас в другом месте. Дело в том, что примененный МК имеет встроенный загрузчик через UART, и для его использования был реализован дополнительный режим включения при помощи вспомогательных выводов МК. Особенностью данного режима, с точки зрения схемы управления питанием, являлось то, что в программе загрузчика соответствующий вывод не задействован, все выводы после начального сброса должны быть в высоко-импедансном (третьем) состоянии, поэтому по прекращению нажатия клавиши S1 питание устройства должно отключиться (обеспечивается R2), что существенно для предотвращения зависания МК в случае непредусмотренного входа в режим программирования (выход из программы загрузки без подключения программирующего устройства в данном МК не реализован).
Однако действительность опрокинула радужные планы, после отпускания кнопки S1 устройство оставалось включенным. Начинаем поиск неисправности: для начала отпаиваем диод D1 и убеждаемся, что выключение происходит — значит сигнал удержания включения питания приходит с МК (ну да вроде неоткуда больше, но мало ли).
Высказываем предположение, что тока утечки вывода достаточно для создания напряжения на резисторе R2, меняем его на номинал 10кОм, явление не пропадает. Расчет показывает, что ток утечки должен быть не менее 0.3мА, что явно превосходит утечки по ТУ на порядки. Меняем номинал на 1кОм, устройство начинает выключаться, это значит, что ток из вывода МК не превосходит 3мА. В принципе, схема заработала и можно заняться другими делами, но дух исследования зовет разобраться с тем, откуда на отключенном выводе берется такой большой ток (конечно, он не такой уж и большой, но на порядки превышает данные ТУ — 1мкА).
Измеряем исходящий ток других выводов в третьем состоянии и убеждаемся, что все в рамках ТУ, то есть не более 1мкА. Возвращаем старый номинал и пытаемся замерить ток на данном выводе МК, и тут начинаются непонятки. Как только мы прикасаемся щупом прибора (переносного, кстати, то есть без связи с сетью) к данному выводу МК, устройство тут же выключается, причем второй щуп прибора болтается в воздухе. Если смотрим осциллографом, то видим высокий уровень приблизительно в 3.3В. Такое поведение МК наводит на определенные подозрения, и для проверки их мы подключаем амперметр параллельно диоду D1. И наблюдаем, что при нажатой кнопке S1 в МК втекает 300мкА, но при ее отпускании устройство отключается, то есть прибор продолжает влиять на ситуацию.
Появляется предположение, что мы имеем дело с так называемым «тиристорное защелкиванием» КМОП структур, которое попортило немало крови разработчикам, но ушло в небытие вместе с серией 564. Но в отличие от тех защелкиваний, которые приводили к значительному сквозному току, данное защелкивание слабое и может быть нарушено даже незначительной изменением емкости, подключенной к выводу. Основным условием защелкивание служит превышение напряжения на выводе микросхемы над напряжением питания, для проверки данного факта снимаем осциллограмму напряжения на данном выводе МК (желтый цвет) совместно с напряжением питания МК (синий цвет) в процессе включения.
И точно, наблюдаем подтверждение данной гипотезы — напряжение на выводе МК стабильно превосходит напряжение питания до некоторого момента, видимо, в этот момент защелкивание и происходит.
Откуда мы можем получить на входе МК превышение — ответ прост: от основного источника питания через обратно смещенный диод D1. Проверим эту гипотезу, для чего включим последовательно с диодом D2 резистор номиналом в 2/3 номинала R2, тогда ограничим напряжение в точке управления значением менее 3 В, и соответственно, ограничим превышение над питанием МК. Получаем следующую осциллограмму
Видно, что наше предположение подтвердилось, превышение происходит только до значения питания 3В и устройство начинает стабильно отключаться при отпускании кнопки S1. Опять все хорошо, задача решена, но все таки мы имеем моменты, когда напряжение на выводе превосходит напряжение питания, а этой ситуации хотелось бы избежать — мы уже один раз получили непонятное защелкивание, кто знает, когда оно еще вылезет.
Устанавливаем на вход МК резистор 10кОм и подключаем его к земле. Осциллограмма показывает, что превышение напряжения над питанием отсутствует (на самом деле оно есть и составляет порядка 100 мВ, но считаем, что его нет).
Отсюда можно рассчитать ток, протекающий через обратно-смещенный диод D1 — порядка 10мкА, что хорошо коррелирует со значением из ТУ — не более 500мкА при напряжении -20В (у нас -5В).
Как мы можем уменьшить этот ток? Достаточно заменить диод Шоттки на обычный и, даже при старых номиналах резисторов, устройство начинает стабильно выключаться. Ну да и неудивительно, ведь у обычного диода обратный ток составляет не более 25нА при тех же -20В.
Тем не менее, на всякий случай, делаем все возможное: меняем диод Шоттки на обычный, снижаем номинал R2 до 10кОм, устанавливаем последовательно с диодом D2 резистор 6.8кОм, устанавливаем между выводом и землей МК резистор 10кОм, и убеждаемся, что устройство стабильно выключается.
Резюмируем — неправильное поведение устройства было вызвано состоянием защелкивания вывода МК, обусловленным подачей от внешнего источника напряжения, превосходящего напряжение питания МК, через обратно смещенный диод Шоттки в силу его высокого (по сравнению с обычным диодом, но строго в рамках ТУ) тока утечки.
Почему первоначально были выбраны диоды Шоттки — из за низкого падения в прямом направлении, хотя можно было открыть ТУ на источники питания и увидеть, что для них высоким уровнем является 1.2В, что прекрасно достигается и обычными диодами (3.3-0.7>1.2). В данном случае привычка минимизировать падения на диодах и, соответственно, тепловыделение на них, сыграла с автором злую шутку.
Почему вывод МК переходил в защелкнутое состояние, причем в какой-то непонятный момент, автору неизвестно, это наверняка какая то технологическая особенность, но в любом случае никаких претензий к разработчикам МК автор не имеет, ибо не фиг не следует подавать воздействия, выходящие за рамки ТУ.
Автор: GarryC