Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.
Статья представляет собой перечень из десяти основных правил проектирования, которые актуальны при разработке широкого класса устройств. В статье я намеренно не затрагиваю моменты, касающиеся проектирования печатных плат – это тема для отдельного разговора. Правила приведены в случайном порядке без каких-либо сортировок по алфавиту, значимости, частоте использования на практике и др. Этот перечень правил также не претендует на какую-то полноту и абсолютную истину, в нем содержится мой опыт разработки электронных устройств и не более того.
Наличие конденсаторов по питанию является необходимым условием нормальной работы любой микросхемы. Дело в том, что они обеспечивают импульсный ток, который потребляет микросхема при переключении внутренних транзисторов. Если в непосредственной близости от микросхемы нет конденсатора, то из-за индуктивности дорожек печатной платы фронт тока может быть завален, и необходимая скорость его нарастания не будет обеспечена. Вполне может быть, что микросхема вообще при этом не будет работать, такие случаи встречаются. В связи с этой особенностью, выбирать следует конденсаторы с низкими ESR и ESL (эквивалентным последовательным сопротивлением и эквивалентной последовательной индуктивностью). В подавляющем большинстве случаев хорошо себя показывают керамические конденсаторы, а если вдруг требуется большая емкость – танталовые.
Количество конденсаторов у каждой микросхемы должно быть не менее количества ножек питания данной микросхемы. То есть, если микросхема имеет 10 выводов питания, то надо ставить не менее 10 конденсаторов только на одну эту микросхему, причем располагать эти конденсаторы на печатной плате надо как можно ближе к выводам питания. Часто производители рекомендуют ставить еще один дополнительный конденсатор большего номинала общий для всех выводов питания микросхемы. Ниже на рисунке приведен пример из документации на сверхпопулярный микроконтроллер STM32F103: как видим, помимо 5 конденсаторов 0,1 мкФ у выводов VDD, производитель рекомендует также ставить один общий конденсатор 4,7 мкФ.
Отдельного внимания заслуживает выбор емкости конденсатора. В большинстве случаев вы не ошибетесь, если выберете емкость 0,1 мкФ. Однако не поленитесь заглянуть по данному вопросу в документацию на микросхему: здесь тоже могут быть тонкости. Например, ВЧ-микросхемы часто требуют наличие конденсатора меньшей емкости. Ниже приведена картинка из документации на микросхему смесителя LT5560. Как видно из рисунка, производитель советует применять конденсаторы 1 мкФ и 1 нФ.
Возможны отклонения и в другую сторону: например, 4G модуль WP7502 требует установки конденсатора в целых 1500 мкФ рядом с выводами питания:
В общем, лучше всегда уточнять номиналы требуемых конденсаторов в документации на конкретную микросхему.
К сожалению, не так редко встречаются схемы, где резистор в корпусе 0402 стоит в цепи 220 В или что-то аналогичное. Так делать нельзя! Перед установкой любого (абсолютно любого) компонента на схему вы должны убедиться, что ни при каких условиях не превышены максимально допустимые параметры по току, по напряжению и по рассеиваемой мощности для этого компонента. Все расчеты необходимо производить для наихудших условий эксплуатации (в частности, для максимально возможного напряжения на схеме), а предельные параметры смотреть в документации на конкретный компонент.
Рассмотрим простой пример с резистором. Допустим, мы рассчитали схему и нам требуется обеспечить сопротивление 25 кОм, а максимально допустимое напряжение в этой цепи составляет 100 В. Какой резистор мы заложим в схему? Открываем документацию на резисторы серии RC от Bourns и видим основные предельные параметры:
В цепях с напряжением 100 В могут работать резисторы серии CR0805 или CR1206. CR0603 туда ставить нельзя. А что с рассеиваемой мощностью? Как гласит школьный курс физики, для цепи постоянного тока она считается по формуле:
Такую мощность не выдержит ни один из представленных резисторов в таблице, однако мы можем соединить их несколько штук параллельно: 4 штуки CR0805 или 2 штуки CR1206. Только не забывайте, что при параллельном соединении резисторов их эквивалентное сопротивление уменьшается. Например, мы можем взять 4 шт. CR0805-JW-104ELF (100 кОм): соединив их параллельно, получим как раз 25 кОм. Для ответственных применений можно еще дополнительно снизить нагрузку на каждый из резисторов, соединив параллельно не 4 штуки, а 6 штук.
Максимально допустимый ток для резистора серии RC составляет 2 А, и он тут явно не будет превышен, это легко проверяется по закону Ома. Более того, данный параметр в основном актуален для резисторов с маленьким сопротивлением, для остальных гораздо быстрее вы уткнетесь в превышение мощности.
А как выбирать конденсаторы? После определения типа применяемого конденсатора (керамика, тантал, пленка, электролит и др.), необходимо обеспечить запас по напряжению хотя бы в 25-30%. Если есть возможность, то для ответственных применений лучше брать запас в два раза. В ряде случаев, помимо напряжения необходимо еще учитывать и импульсный ток через конденсатор. Про этот параметр очень часто забывают, хотя перегрузка конденсатора по току в цепях какого-нибудь импульсного источника питания ничем хорошим не закончится. Рассмотрим пример. Допустим, мы рассчитали наш импульсный источник питания и определили, что он:
Емкость и напряжения конденсатора достаточно велики, поэтому оправданным будет применение электролитического конденсатора. Например, подойдут конденсаторы EEH-ZA от Panasonic.
Открываем на них документацию:
На первый взгляд, вроде бы, 35 В больше 30 В, и нам должен подойти этот конденсатор. Однако в данном случае запас будет всего 5 В, что очень мало. Правильным решением будет выбрать конденсатор на 50 В.
Смотрим дальше: у нас есть конденсатор на 50 В с требуемой емкостью в 100 мкФ. Можно было бы взять его, но у него максимальный ток равен нашим ожидаемым 2 А (для частоты 100 кГц), то есть опять запаса по этому параметру не будет.
Поэтому правильно будет взять два конденсатора на 68 мкФ 50 В и соединить их параллельно. Таким образом, мы получим общую емкость в 132 мкФ, максимальное напряжение в 50 В и максимальный импульсный ток в 3,6 А. Такая система будет надежной и проработает долго.
Аналогичным образом выбираются и дроссели, и транзисторы, и вообще любые другие компоненты. Всегда надо помнить про их предельные параметры и брать компоненты с запасом минимум 25-30%.
К предельным параметрам можно также отнести и температуру. Существует три основные температурные группы:
Данное деление не является абсолютным, существуют также и всякие расширенные поддиапазоны. Но важно одно – все (абсолютно все) компоненты на вашей схеме должны попадать в заданный техническим заданием температурный диапазон. То есть, при проектировании схемы всегда надо держать в голове требуемый диапазон рабочих температур и выбирать компоненты в соответствии с ним. Диапазоны рабочих температур (а также и диапазоны предельных температур) всегда приводятся в документации.
Стоит также отметить, что микросхемы диапазона Military вы, скорее всего, не сможете купить: они продаются далеко не всем желающим.
Электростатический разряд способен за долю секунды выжечь порты микросхемы стоимостью в тысячи долларов. По этой причине следует всегда помнить о нем и предпринимать меры по защите своих устройств. Вообще тема защиты от статического электричества довольно обширна и уже сама по себе заслуживает отдельной статьи. В рамках этой попробуем лишь кратко рассмотреть основные правила, которые я выработал для себя:
К элементам защиты от статики предъявляются следующие требования:
Что именно использовать в качестве защиты от статики? Сейчас имеется достаточно богатый выбор:
Главное правило врача – не навреди. Главным правилом разработчика должно стать «Создавай безопасные для окружающих устройства». В данном разделе я рассмотрю некоторые наиболее часто встречающиеся моменты, за которыми может таиться опасность:
Более подробную информацию на тему безопасности можно получить в ГОСТах и других стандартах.
Если вы думаете, что пользователь не перепутает распиновку вашего разъема питания или не подаст 27 В вместо 12 В, то вы заблуждаетесь, такое рано или поздно случится. Этого еще как-то можно избежать, если у вас аппаратура питается через какой-нибудь стандартный разъем, но в любом другом случае я рекомендую защищать входные цепи питания от ошибок пользователя. Конечно, от ядерного взрыва или от прямого подключения к подстанции 10 кВ мало что спасет, но базовые элементы защиты должны быть. В рамках данной статьи я очень кратко рассмотрю два типа защит: от переполюсовки и от повышенного входного напряжения.
Схем для защиты от переполюсовки изобретено уже довольно много, но в своей практике я широко использую две из них: с использованием диода и с использованием полевого транзистора.
Схема защиты от переполюсовки с использованием диода приведена на рисунке:
Достоинством данной схемы является предельная простота, но она обладает большим недостатком: диод VD1 может сильно греться. Выделяемую на нем мощность можно грубо прикинуть, умножив 0,4…0,8 (падение напряжения на открытом диоде) на ток потребления схемы. Для точного расчета можно воспользоваться ВАХ диода, которая всегда есть в документации на него. Но и так очевидно, что при токе в 1 А на диоде будут выделяться несколько десятых долей ватта, которые не только пропадут впустую, но, при отсутствии теплоотвода, скорее всего, быстро убьют диод (особенно, если он в маленьком корпусе). Поэтому такую схему защиты можно применять, только если потребляемый ток не превышает единиц-десятков миллиампер.
Для более мощных схем лучше применять схему защиты на полевом транзисторе, она приведена на рисунке:
В рамках данной статьи я не буду рассказывать, как эта схема работает и как ее считать, про это уже написано много где, и у заинтересованного читателя не будет проблем с поиском информации. Поэтому сразу перейдем к схемам защиты от перенапряжения.
Для защиты от перенапряжения существует как минимум два подхода: установка каких-либо электронных предохранителей (хотсвапов, контроллеров питания) на входе схемы, либо же установка ограничителей напряжения. Безусловно, можно объединить эти два подхода в одной схеме.
Микросхемы электронных предохранителей бывают с самым разным функционалом: они могут уметь мониторить повышенное напряжение, пониженное напряжение, обеспечивать защиту по току, температуре, мощности, обеспечивать плавное нарастание тока и еще много всего. Примером неплохого электронного предохранителя может служить микросхема TPS1663, типовая схема включения которой приведена ниже:
Эта микросхема обеспечивает защиту от перенапряжения, однако у нее самой максимально допустимое напряжение составляет 67 вольт. Как же защититься в этом случае? К сожалению, бесконечно наращивать защиту не получится, и в таком случае остается один-единственный вариант: допустить, чтобы в схеме сгорело что-то дешевое и разорвало цепь, спасая всю ценную начинку схемы. И тут мы плавно перемещаемся к ограничителям напряжения.
В качестве ограничителя напряжения может выступать варистор, защитный диод (TVS) или вообще газовый разрядник. Говорить о плюсах и минусах каждого потянуло бы на отдельную статью, поэтому в рамках данной рассматриваться не будет. Применять ограничители напряжения имеет смысл совместно с плавким предохранителем: при таком подходе варистор или защитный диод ограничивают напряжение, пропуская через себя большой ток, что вызывает сгорание плавкого предохранителя и разрыв цепи. Если обстоятельства сложатся не очень удачно, сгореть может также и сам ограничитель, однако ценные микросхемы на плате должны быть спасены и, что тоже очень важно, возможное возгорание предотвращено. Простейшая схема защиты устройства с использованием варистора приведена ниже:
Мы рассмотрели основные схемы защиты платы от переплюсовки питания и от перенапряжения. Разработчик должен выбрать оптимальную комбинацию схем защиты, исходя из требований к надежности, вероятности ошибки пользователя, места на печатной плате и стоимости изделия. В качестве заключения для этого раздела, приведу фрагмент схемы входного каскада, реализованного в одной из последних моих разработок. В этой схеме представлен полный комплекс защит: защита от переполюсовки на полевом транзисторе, защита от пониженного и повышенного напряжения, а также защита по току на микросхеме TPS1663, и в довершении всего защита с помощью варистора и плавкого предохранителя.
Очень частая ошибка начинающих разработчиков – нарисовать схему, развести плату (может быть, даже изготовить ее) и только после этого задуматься о корпусе устройства. И вот тут начинается самое интересное: вроде бы вот, есть в продаже отличный корпус под устройство, практически подошел бы… если бы плата была миллиметра на два покороче. А следующий типоразмер корпуса уже в полтора раза больше, но приходится брать его, потому что альтернатива – изготовление корпуса на заказ – слишком дорога. В результате имеем неоправданно большой корпус, в котором болтается маленькая печатная платка. А ведь этого можно было избежать, если бы вопрос проработки корпуса аппаратуры не оставлять на потом, а решать одновременно с разработкой печатной платы.
Когда разрабатывается какое-то сложное устройство с кастомным корпусом, то тут качественная разработка в принципе не может происходить без плотной совместной работы конструктора, схемотехника и тополога (иногда, правда, это один и тот же человек :)). Важно понимать, что эта работа происходит одновременно: схемотехник рисует схему и передает ее топологу, конструктор в это время определяет габариты печатных плат в зависимости от конструкции изделия, а также выдает всевозможные ограничения на высоту компонентов и запретные зоны, тополог делает предварительную расстановку компонентов на печатной плате и передает ее конструктору для интеграции в общую 3D-модель, схемотехник все согласовывает и, при необходимости, реагирует на пожелания типа «вот тут бы дроссель подобрать на пару миллиметров пониже».
Но комплексный подход к разработке не ограничивается только конструкцией.
Если изделие предполагает написание встроенного софта, необходимо взаимодействие схемотехника с программистами еще на этапе разработки структурной схемы будущего устройства. Это необходимо как для планирования сроков разработки, так и для определения возможности программной реализации заложенный схемотехнических решений. К сожалению, при недостатке у схемотехника знаний об особенностях разработки программного обеспечения, некоторые заложенные в схему решения могут оказаться в принципе неосуществимыми с точки зрения написания софта, а выяснится это все только после изготовления печатных плат. Поэтому для того, чтобы избежать такой грустный сценарий, стоит продумать и согласовать все принципиальные с точки зрения ПО вопросы с теми, кто потом это ПО будет писать.
Кроме того, при разговоре о комплексном подходе, нельзя не упомянуть и такой важный момент, как организация будущего производства. Уже на этапе рисования схемы необходимо задуматься о том, как потом эта плата будет производиться, как ее отлаживать, проверять, тестировать. Уже сейчас нужно заложить контрольные точки для измерения напряжения источников питания, подумать про рабочие места, про всевозможные кабели и куда их подключать, про методику проверки. Очень может быть, что для тестирования вашей платы в условиях серийного производства понадобится специальная оснастка – ее разработку (хотя бы в эскизном виде) надо начинать параллельно с проверяемой платой, потому что это два взаимосвязанных устройства.
В общем, в качестве краткого резюме по текущему разделу – подходите к разработке комплексно. Думайте о конструкции изделия, о корпусе, о разработке программного обеспечения, о том, как будут производиться и тестироваться ваши устройства в самом начале проектирования, а не тогда, когда уже большая часть работ сделана, и любой шаг в сторону сопровождается огромными затратами ресурсов.
Я уверен, что любому разработчику знакома такая ситуация: схема разработана, плата разведена, компоненты запаяны, и вот изделие попадает на отладку. Включаем – и не работает. Начинаем искать причину – вот незадача, перепутаны RX и TX у UART. Или D+ и D- у USB. Или MOSI и MISO в SPI. Или… да ошибиться можно где угодно, особенно если данный кусок схемы делается в первый раз. Приходится брать скальпель, резать дорожки на печатной плате, зачищать маску и пытаться припаяться к этим самым дорожкам проводами. А что если дорожки во внутренних слоях печатной платы? А микросхемы – в BGA корпусе? Да еще и с использованием технологии Via-In-Pad? Вот где настоящая боль. В такие моменты невольно начинаешь завидовать программистам, у которых проблему можно решить путем перекомпиляции программы, тогда как здесь маячит перспектива полной переделки печатной платы без возможности оживить текущую. Можно ли как-то избежать такого грустного финала? Зачастую да. В случае, когда какой-то кусок схемы делается впервые, а топология печатной платы не располагает к экспериментам, «сомнительные» цепи лучше соединять не напрямую, а через нулевой резистор (резистор с сопротивлением 0 Ом).
В таком случае, даже если вы ошибетесь в схеме, ошибка не будет фатальной. Достаточно будет снять запаянные резисторы и скоммутировать схему правильным образом. Обойдется без перерезания дорожек и, тем более, без ковыряния меди на внутренних слоях платы.
Может возникнуть вопрос – а не слишком ли расточительно вот так вот ставить резисторы на плату, которые не очень-то и нужны? Ну, на момент написания статьи, цена на DigiKey нулевого резистора в корпусе 0402 составляла порядка 2$ за 1000 штук. Пусть каждый сам для себя решит дорого это или нет. Кроме того, замечу, что нулевые резисторы необходимы только на опытных образцах, когда еще нет уверенности в правильности схемы. При запуске серийного производства, когда все недостатки схемы устранены, в новой ревизии платы вполне можно их исключить.
К выбору типа нулевого резистора необходимо подходить комплексно. Необходимо учитывать как минимум следующие параметры:
Например, если вы поставите проволочные резисторы в высокоскоростные цепи, то схема, скорее всего, не будет работать: паразитная индуктивность их слишком велика. Для большинства цифровых цепей хорошо подходят SMD резисторы. Обычно я использую корпус 0402 – это некий компромисс по занимаемому месту на печатной плате и удобству монтажа. Нулевые резисторы в корпусе 0402 не оказывают существенного влияния даже на относительно высокочастотные цепи: High Speed USB (480 Мбит/с) и гигабитный Ethernet устойчиво функционируют. Не возникало проблем даже в суб-гигагерцовом диапазоне у радиотрактов: нулевые резисторы случалось применять и там как элемент согласования. Но, конечно, при проектировании высокочастотной схемы всегда стоит помнить про паразитные параметры нулевых резисторов (да и не только их) и при необходимости выполнить моделирование.
На практике очень часто встречаются случаи, когда на одной печатной плате присутствуют одновременно высокочувствительные аналоговые тракты и шумные цифровые процессоры. Или мощные импульсные преобразователи и склонные к сбоям цифровые системы управления. В общем, когда по соседству на одном куске текстолита находится какой-то источник помех и рядом с ним чувствительные к ним компоненты. Как в таком случае быть? Практика говорит, что 90% успеха при создании таких устройств – это грамотно разведенная печатная плата. С правильной компоновкой элементов, с грамотным стеком и с формированием полигонов земель и питания по определенным правилам. Но текущая статья не про печатные платы, кроме того, нельзя недооценивать и таким вещи, как фильтрация питания и разделение земель, про которые мы и поговорим в настоящем разделе.
Основная суть процесса разделения земель заключается в том, чтобы возвратные токи «шумной» цифровой или силовой частей схемы не протекали совместно с возвратными токами чувствительных цепей: в противном случае чувствительные цепи могут улавливать колебания напряжения шумов на земляных полигонах и интерпретировать их как часть полезного сигнала, что неминуемо приведет к ошибкам в работе. Для этого в проекте создаются две цепи с разными именами (например, A_GND и D_GND). Чувствительные земляные цепи подключаются к A_GND, а «шумные» – к D_GND. Но если цифровые и аналоговые блоки общаются между собой (а такое бывает практически всегда), необходимо соединить цепи A_GND и D_GND между собой (иначе возвратным токам негде будет протекать). Как это правильно сделать? Существуют разные мнения на этот счет. Я обычно соединяю эти цепи между собой нулевым резистором, располагая его вблизи источника питания на печатной плате.
Если вы работаете в Altium Designer, то для этих целей там предусмотрен специальный тип компонента под названием Net Tie, можно использовать и его.
Иногда для соединения этих земляных цепей рекомендуют использовать индуктивность, мотивируя это тем, что она хорошо блокирует высокочастотные помехи. Но я это делать категорически не советую: не стоит забывать, что через эту индуктивность будут течь и возвратные токи сигналов между цифровой и аналоговой частями схемы. Это приведет к сильному искажению формы сигналов и, возможно, к полной неработоспособности схемы. Индуктивности полезно применять в цепях питания для его фильтрации, однако делать это тоже надо аккуратно. Давайте рассмотрим этот вопрос немного подробнее.
Прежде всего необходимо запомнить одно простое правило: индуктивность фильтра всегда должна идти в паре с конденсатором. Схема без конденсатора, скорее всего, вообще работать не будет. Почему? См. первый раздел настоящей статьи.
Тип и номинал индуктивности выбирается исходя из ожидаемой интенсивности помех по питанию, спектра помех и особенностей вашей схемы. Разумеется, должен быть соблюден запас по току. В своей практике для фильтрации питания я достаточно часто использую индуктивности серии BLM от Murata: они предназначены специально для фильтрации помех в аппаратуре самого разного типа. Краткая характеристика индуктивностей серии BLM приведена на рисунке.
Переходные процессы – это как себя ведет система до момента наступления установившегося состояния. В частности, под переходными процессами можно понимать моменты включения питания, моменты подключения нагрузки к источнику, коммутацию ключей и многое другое. Вообще подробное рассмотрение переходных процессов – это тема под целую серию статей. В данной же статье мы рассмотрим более подробно вопрос включения питания, как встречающийся наиболее часто.
Ситуация 1. Вы подключили какую-нибудь плату проводами к лабораторному источнику питания. Подаете питание и обнаруживаете, что у вас плата вместо того, чтобы запустится, находится в режиме циклической перезагрузки. Что происходит и что делать?
Действительно такие ситуации могут возникать и причина – в переходном процессе. В момент старта ваша плата может потреблять в несколько раз больше тока, чем в момент штатной работы. Особенно это хорошо заметно, если на плате стоит какой-нибудь мощный процессор.
Нарастающий импульс тока проходит от источника питания к плате через провода, которые, увы, совсем не идеальны: у них есть и паразитное сопротивление, и паразитная индуктивность. Все это приводит к провалу напряжения на плате: этот провал отрабатывает супервизор процессора и по итогу имеем циклическую перезагрузку. Решений у проблемы несколько: укоротить провода и увеличить площадь их сечения, использовать лабораторные источники питания с обратной связью, либо же вообще поставить на плате преобразователь питания и подавать на плату более высокое напряжение.
Ситуация 2. Вы подаете питание на свою плату и тут замечаете, что в начальный момент почему-то слегка подмигивает светодиод, который должен быть выключен. Или на короткий момент начинает работать какой-нибудь преобразователь питания, который, вроде как, должен быть заблокирован в ПО процессора. Либо хаотично щелкает реле. В чем же дело? Ошибка в коде? Все может быть и проще, и сложнее одновременно. Возможно, вы просто не учли состояние портов ввода-вывода процессора (или же какой-то другой микросхемы) в моменты сброса и начальной инициализации. А между тем, это важный параметр, про который нельзя забывать. Обычно такие моменты прописаны в документации. Например, STMicroelectronics в документации на свой микроконтроллер STM32F750 явно пишет, что все ножки, кроме тех, которые отвечают за программирование и отладку, в течение сброса и сразу после него сконфигурированы как входы, не подтянутые ни к питанию, ни к земле.
Чем нам это грозит? Дорожка на печатной плате, где с обоих сторон высокоимпедансные входы – отличная антенна для улавливания всевозможных помех. И если она заведена, например, на вход EN какого-нибудь источника питания, либо управляет реле, то в моменты начальной загрузки этот источник питания может хаотично включаться и выключаться, а реле щелкать с безумной скоростью буквально по мановению руки. К счастью, данная проблема решается достаточно просто: достаточно поставить подтягивающие резисторы к GND либо к VCC номиналом 10…100 кОм на критичные цепи. Они надежно зафиксируют уровень сигнала в моменты инициализации и не допустят хаотичного переключения периферийных устройств.
Однако стоит помнить, что состояние выводов микросхемы в моменты сброса и начальной инициализации очень индивидуально и зависит от конкретной микросхемы. И если в том же STM все довольно просто и понятно, то, например, в процессоре AM4376 от Texas Instruments все гораздо хитрее: часть GPIO имеет состояние HIGH-Z, часть имеют подтяжки PU, другие PD:
Ситуация 3. Вы полностью обесточили свою плату, но на ней продолжает гореть светодиод или микросхемы проявляют какую-то активность? В чем дело, неужто вечный двигатель? Увы, все гораздо проще. Скорее всего, у вас остался подключен к плате какой-нибудь преобразователь USB-UART или другая периферия, запитанная на стороне и имеющая высокий логический уровень на своих выводах. Дело в том, что любая микросхема имеет на своих входах по два диода, включенных между GND и VCC. Через эти диоды напряжение с входа микросхемы может проникать на вывод питания микросхемы и дальше распространяться по всей плате, как это показано на рисунке.
Конечно, полноценно запитать всю плату таким образом вряд ли получится. Однако на цепи VCC может образоваться какой-нибудь промежуточный уровень напряжения: меньший, чем напряжение питания микросхемы, но тем не менее достаточный, чтобы микросхемы оказались в «непонятном» состоянии. К счастью, большинство микросхем все-таки не особо чувствительны к подобным натеканиям напряжения, однако про эту проблемы нельзя забывать, и в случае необходимости следует ставить в критичные цепи специальные изолирующие буферы.
Ну и теперь у нас остался последний пункт настоящей статьи.
Внимательно. Всегда. В ней действительно находятся ответы на большинство вопросов, в том числе и на те, которые мы рассмотрели в данной статье. Да, порой эта документация содержит десятки, сотни или даже тысячи страниц, но потраченное время на их изучение на этапе проектирования устройства, с лихвой окупится в процессе запуска изделия и отладки. Изучайте также схемы на отладочные платы, предоставляемые производителем, а также проглядите примеры топологии печатных плат: обычно лучше производителя никто вам не скажет, как правильно обвязывать микросхему и разводить под нее печатную плату. Не забывайте про Errata, там иногда таятся неожиданности. Всегда старайтесь понять, что делает каждая ножка в применяемой вами микросхеме: казалось бы ничем не примечательный вывод, не подключенный как надо, может испортить всю работу.
В данной статье мы рассмотрели десять основных правил проектирования электрических схем. Надеюсь, это поможет начинающим разработчикам избежать хотя бы самых простых ошибок при проектировании схем. Ну и самое главное – разрабатывайте устройства и не бойтесь экспериментов, потому что практика, в конечном итоге, все равно лучший учитель.
Введение
Статья представляет собой перечень из десяти основных правил проектирования, которые актуальны при разработке широкого класса устройств. В статье я намеренно не затрагиваю моменты, касающиеся проектирования печатных плат – это тема для отдельного разговора. Правила приведены в случайном порядке без каких-либо сортировок по алфавиту, значимости, частоте использования на практике и др. Этот перечень правил также не претендует на какую-то полноту и абсолютную истину, в нем содержится мой опыт разработки электронных устройств и не более того.
1. Ставьте конденсаторы по питанию микросхем
Наличие конденсаторов по питанию является необходимым условием нормальной работы любой микросхемы. Дело в том, что они обеспечивают импульсный ток, который потребляет микросхема при переключении внутренних транзисторов. Если в непосредственной близости от микросхемы нет конденсатора, то из-за индуктивности дорожек печатной платы фронт тока может быть завален, и необходимая скорость его нарастания не будет обеспечена. Вполне может быть, что микросхема вообще при этом не будет работать, такие случаи встречаются. В связи с этой особенностью, выбирать следует конденсаторы с низкими ESR и ESL (эквивалентным последовательным сопротивлением и эквивалентной последовательной индуктивностью). В подавляющем большинстве случаев хорошо себя показывают керамические конденсаторы, а если вдруг требуется большая емкость – танталовые.
Количество конденсаторов у каждой микросхемы должно быть не менее количества ножек питания данной микросхемы. То есть, если микросхема имеет 10 выводов питания, то надо ставить не менее 10 конденсаторов только на одну эту микросхему, причем располагать эти конденсаторы на печатной плате надо как можно ближе к выводам питания. Часто производители рекомендуют ставить еще один дополнительный конденсатор большего номинала общий для всех выводов питания микросхемы. Ниже на рисунке приведен пример из документации на сверхпопулярный микроконтроллер STM32F103: как видим, помимо 5 конденсаторов 0,1 мкФ у выводов VDD, производитель рекомендует также ставить один общий конденсатор 4,7 мкФ.
Отдельного внимания заслуживает выбор емкости конденсатора. В большинстве случаев вы не ошибетесь, если выберете емкость 0,1 мкФ. Однако не поленитесь заглянуть по данному вопросу в документацию на микросхему: здесь тоже могут быть тонкости. Например, ВЧ-микросхемы часто требуют наличие конденсатора меньшей емкости. Ниже приведена картинка из документации на микросхему смесителя LT5560. Как видно из рисунка, производитель советует применять конденсаторы 1 мкФ и 1 нФ.
Возможны отклонения и в другую сторону: например, 4G модуль WP7502 требует установки конденсатора в целых 1500 мкФ рядом с выводами питания:
В общем, лучше всегда уточнять номиналы требуемых конденсаторов в документации на конкретную микросхему.
2. Учитывайте предельные параметры компонентов
К сожалению, не так редко встречаются схемы, где резистор в корпусе 0402 стоит в цепи 220 В или что-то аналогичное. Так делать нельзя! Перед установкой любого (абсолютно любого) компонента на схему вы должны убедиться, что ни при каких условиях не превышены максимально допустимые параметры по току, по напряжению и по рассеиваемой мощности для этого компонента. Все расчеты необходимо производить для наихудших условий эксплуатации (в частности, для максимально возможного напряжения на схеме), а предельные параметры смотреть в документации на конкретный компонент.
Рассмотрим простой пример с резистором. Допустим, мы рассчитали схему и нам требуется обеспечить сопротивление 25 кОм, а максимально допустимое напряжение в этой цепи составляет 100 В. Какой резистор мы заложим в схему? Открываем документацию на резисторы серии RC от Bourns и видим основные предельные параметры:
В цепях с напряжением 100 В могут работать резисторы серии CR0805 или CR1206. CR0603 туда ставить нельзя. А что с рассеиваемой мощностью? Как гласит школьный курс физики, для цепи постоянного тока она считается по формуле:
Такую мощность не выдержит ни один из представленных резисторов в таблице, однако мы можем соединить их несколько штук параллельно: 4 штуки CR0805 или 2 штуки CR1206. Только не забывайте, что при параллельном соединении резисторов их эквивалентное сопротивление уменьшается. Например, мы можем взять 4 шт. CR0805-JW-104ELF (100 кОм): соединив их параллельно, получим как раз 25 кОм. Для ответственных применений можно еще дополнительно снизить нагрузку на каждый из резисторов, соединив параллельно не 4 штуки, а 6 штук.
Максимально допустимый ток для резистора серии RC составляет 2 А, и он тут явно не будет превышен, это легко проверяется по закону Ома. Более того, данный параметр в основном актуален для резисторов с маленьким сопротивлением, для остальных гораздо быстрее вы уткнетесь в превышение мощности.
А как выбирать конденсаторы? После определения типа применяемого конденсатора (керамика, тантал, пленка, электролит и др.), необходимо обеспечить запас по напряжению хотя бы в 25-30%. Если есть возможность, то для ответственных применений лучше брать запас в два раза. В ряде случаев, помимо напряжения необходимо еще учитывать и импульсный ток через конденсатор. Про этот параметр очень часто забывают, хотя перегрузка конденсатора по току в цепях какого-нибудь импульсного источника питания ничем хорошим не закончится. Рассмотрим пример. Допустим, мы рассчитали наш импульсный источник питания и определили, что он:
- Работает на частоте 100 кГц.
- Напряжение выходной цепи равно 30 В.
- Требуется конденсатор емкостью не менее 100 мкФ.
- Через него будет протекать импульсный ток в 2 А (действующее значение).
Емкость и напряжения конденсатора достаточно велики, поэтому оправданным будет применение электролитического конденсатора. Например, подойдут конденсаторы EEH-ZA от Panasonic.
Открываем на них документацию:
На первый взгляд, вроде бы, 35 В больше 30 В, и нам должен подойти этот конденсатор. Однако в данном случае запас будет всего 5 В, что очень мало. Правильным решением будет выбрать конденсатор на 50 В.
Смотрим дальше: у нас есть конденсатор на 50 В с требуемой емкостью в 100 мкФ. Можно было бы взять его, но у него максимальный ток равен нашим ожидаемым 2 А (для частоты 100 кГц), то есть опять запаса по этому параметру не будет.
Поэтому правильно будет взять два конденсатора на 68 мкФ 50 В и соединить их параллельно. Таким образом, мы получим общую емкость в 132 мкФ, максимальное напряжение в 50 В и максимальный импульсный ток в 3,6 А. Такая система будет надежной и проработает долго.
Аналогичным образом выбираются и дроссели, и транзисторы, и вообще любые другие компоненты. Всегда надо помнить про их предельные параметры и брать компоненты с запасом минимум 25-30%.
К предельным параметрам можно также отнести и температуру. Существует три основные температурные группы:
- Commercial (0 ℃…+70 ℃)
- Industrial (-40 ℃…+85 ℃)
- Military (-55 ℃…+125 ℃)
Данное деление не является абсолютным, существуют также и всякие расширенные поддиапазоны. Но важно одно – все (абсолютно все) компоненты на вашей схеме должны попадать в заданный техническим заданием температурный диапазон. То есть, при проектировании схемы всегда надо держать в голове требуемый диапазон рабочих температур и выбирать компоненты в соответствии с ним. Диапазоны рабочих температур (а также и диапазоны предельных температур) всегда приводятся в документации.
Стоит также отметить, что микросхемы диапазона Military вы, скорее всего, не сможете купить: они продаются далеко не всем желающим.
3. Защищайтесь от статики
Электростатический разряд способен за долю секунды выжечь порты микросхемы стоимостью в тысячи долларов. По этой причине следует всегда помнить о нем и предпринимать меры по защите своих устройств. Вообще тема защиты от статического электричества довольно обширна и уже сама по себе заслуживает отдельной статьи. В рамках этой попробуем лишь кратко рассмотреть основные правила, которые я выработал для себя:
- Все интерфейсные разъемы (USB, UART, RS-232 др.), с которыми потом будет контактировать пользователь, однозначно должны иметь защиту от статического электричества.
- Все кнопки, на которые нажимает пользователь, должны иметь защиту от статики, при условии, что они заведены на чувствительные микросхемы.
- В случае, если оконечный драйвер уже имеет встроенную защиту от статики, и если эксплуатация изделия не предполагает суровых условий, дополнительную защиту можно не ставить. Примером может послужить преобразователь RS-232 SN65C3223, у него уже есть встроенная защита от статики.
В случае, если предполагается эксплуатировать изделие в суровых условиях, встроенной защиты может быть недостаточно и потребуется ставить дополнительно еще и внешние элементы. - Защищать ли от статики внутриблочные разъемы – это зависит от культуры вашего производства. Если монтаж происходит в специальных комнатах с антистатической мебелью и покрытием полов, а все монтажники применяют антистатические браслеты – это может быть и не обязательно. При других условиях защита тоже лишней не будет.
К элементам защиты от статики предъявляются следующие требования:
- Они должны выдерживать заданную энергию электростатического разряда.
- Они должны быть рассчитаны на соответствующее рабочее напряжение. Мало смысла ставить защитный диод на 15 В в цепь, максимальное допустимое напряжение для которой 3,6 В.
- Они должны иметь малую паразитную емкость (для высокоскоростных цепей – единицы пикофарад максимум). Если вы поставите какой-нибудь мощный защитный диод (который почти наверняка будет обладать большой емкостью) в цепь USB 3.0, то просто завалите фронты сигналов и ничего работать не будет.
- Они должны иметь маленькие токи утечки. Типовое значение – единицы нА.
- На печатной плате они должны располагаться в непосредственной близости от разъема, и дорожка печатной платы должна проходить строго «вывод разъема -> элемент защиты-> защищаемый компонент».
- После защитного диода и перед микросхемой нелишним будет поставить резистор в единицы-десятки Ом, если это допустимо. Этот резистор будет способствовать рассеиванию возможного всплеска напряжения на защитном диоде при сильном разряде.
Что именно использовать в качестве защиты от статики? Сейчас имеется достаточно богатый выбор:
- Защитные диоды с фиксированным уровнем напряжения. Примером может служить диод CDSOS323. Существуют как однонаправленные, так и двунаправленные варианты таких защитных диодов:
- Защитные диоды с уровнем напряжения, определяемым источником питания. Примером может служить диодная сборка TPD4E001: рабочий диапазон напряжения Vcc составляет от 0,9 до 5,5 вольт.
Рядом с такими диодами рекомендуется располагать конденсатор небольшой емкости, включенный по питанию. - Варисторы. Есть специальные виды, предназначенные для защиты от статики. Примером может служить CG0402. Благодаря ультра маленькой емкости в сотые доли пикофарад, они могут применяться в таких высокоскоростных устройствах как USB 3.0 или HDMI:
- Не используете для защиты от статики стабилитроны! Они предназначены для другого.
- В особо тяжелых случаях может потребоваться использование газовых разрядников, но это уже не совсем про статику :)
4. Безопасность – превыше всего
Главное правило врача – не навреди. Главным правилом разработчика должно стать «Создавай безопасные для окружающих устройства». В данном разделе я рассмотрю некоторые наиболее часто встречающиеся моменты, за которыми может таиться опасность:
- Как только напряжения в вашей схеме превышают 30 В (а при эксплуатации в условиях повышенной влажности 12 В), начинайте думать о том, как обезопасить пользователя от них.
- При работе с сетями 220 В будьте предельно внимательны. Обеспечиваете надежную гальваническую развязку между первичными и вторичными цепями. Вырезы в печатной плате будут здесь совсем нелишними. Контакт пользователя с первичной цепью должен быть совершенно исключен!
- Если проектируете устройства, питающиеся от сети, разберитесь, что такое конденсаторы Х и Y типа, применяйте их в соответствующих местах и никогда не заменяйте их на обычную пленку или керамику.
- При работе с высокими напряжениями металлический корпус вашей аппаратуры должен быть заземлен.
- Предохранители и другие устройства защиты – совсем нелишняя вещь
- При организации цепей защитного отключения не полагайтесь на микроконтроллеры, они склонны зависать. Всегда дублируйте такие важные цепи какой-нибудь дубовой логикой.
- Предусматривайте цепи разряда для высоковольтных конденсаторов. После выключения прибора они должны разряжаться как можно быстрее.
- Медицинская техника – отдельная история. Не начинайте ее разрабатывать, не ознакомившись со всеми требования безопасности, которые предъявляются к аппаратуре данного типа.
Более подробную информацию на тему безопасности можно получить в ГОСТах и других стандартах.
Примеры
- ГОСТ 12.2.091-2012 Безопасность электрического оборудования для измерения, управления и лабораторного применения
- ГОСТ 27570.0-87 Безопасность бытовых и аналогичных электрических приборов. Общие требования и методы испытаний
- ГОСТ Р 12.1.019-2009 Электробезопасность. Общие требования и номенклатура видов защиты
5. Ставьте защиту от дурака
Если вы думаете, что пользователь не перепутает распиновку вашего разъема питания или не подаст 27 В вместо 12 В, то вы заблуждаетесь, такое рано или поздно случится. Этого еще как-то можно избежать, если у вас аппаратура питается через какой-нибудь стандартный разъем, но в любом другом случае я рекомендую защищать входные цепи питания от ошибок пользователя. Конечно, от ядерного взрыва или от прямого подключения к подстанции 10 кВ мало что спасет, но базовые элементы защиты должны быть. В рамках данной статьи я очень кратко рассмотрю два типа защит: от переполюсовки и от повышенного входного напряжения.
Схем для защиты от переполюсовки изобретено уже довольно много, но в своей практике я широко использую две из них: с использованием диода и с использованием полевого транзистора.
Схема защиты от переполюсовки с использованием диода приведена на рисунке:
Достоинством данной схемы является предельная простота, но она обладает большим недостатком: диод VD1 может сильно греться. Выделяемую на нем мощность можно грубо прикинуть, умножив 0,4…0,8 (падение напряжения на открытом диоде) на ток потребления схемы. Для точного расчета можно воспользоваться ВАХ диода, которая всегда есть в документации на него. Но и так очевидно, что при токе в 1 А на диоде будут выделяться несколько десятых долей ватта, которые не только пропадут впустую, но, при отсутствии теплоотвода, скорее всего, быстро убьют диод (особенно, если он в маленьком корпусе). Поэтому такую схему защиты можно применять, только если потребляемый ток не превышает единиц-десятков миллиампер.
Для более мощных схем лучше применять схему защиты на полевом транзисторе, она приведена на рисунке:
В рамках данной статьи я не буду рассказывать, как эта схема работает и как ее считать, про это уже написано много где, и у заинтересованного читателя не будет проблем с поиском информации. Поэтому сразу перейдем к схемам защиты от перенапряжения.
Для защиты от перенапряжения существует как минимум два подхода: установка каких-либо электронных предохранителей (хотсвапов, контроллеров питания) на входе схемы, либо же установка ограничителей напряжения. Безусловно, можно объединить эти два подхода в одной схеме.
Микросхемы электронных предохранителей бывают с самым разным функционалом: они могут уметь мониторить повышенное напряжение, пониженное напряжение, обеспечивать защиту по току, температуре, мощности, обеспечивать плавное нарастание тока и еще много всего. Примером неплохого электронного предохранителя может служить микросхема TPS1663, типовая схема включения которой приведена ниже:
Эта микросхема обеспечивает защиту от перенапряжения, однако у нее самой максимально допустимое напряжение составляет 67 вольт. Как же защититься в этом случае? К сожалению, бесконечно наращивать защиту не получится, и в таком случае остается один-единственный вариант: допустить, чтобы в схеме сгорело что-то дешевое и разорвало цепь, спасая всю ценную начинку схемы. И тут мы плавно перемещаемся к ограничителям напряжения.
В качестве ограничителя напряжения может выступать варистор, защитный диод (TVS) или вообще газовый разрядник. Говорить о плюсах и минусах каждого потянуло бы на отдельную статью, поэтому в рамках данной рассматриваться не будет. Применять ограничители напряжения имеет смысл совместно с плавким предохранителем: при таком подходе варистор или защитный диод ограничивают напряжение, пропуская через себя большой ток, что вызывает сгорание плавкого предохранителя и разрыв цепи. Если обстоятельства сложатся не очень удачно, сгореть может также и сам ограничитель, однако ценные микросхемы на плате должны быть спасены и, что тоже очень важно, возможное возгорание предотвращено. Простейшая схема защиты устройства с использованием варистора приведена ниже:
Мы рассмотрели основные схемы защиты платы от переплюсовки питания и от перенапряжения. Разработчик должен выбрать оптимальную комбинацию схем защиты, исходя из требований к надежности, вероятности ошибки пользователя, места на печатной плате и стоимости изделия. В качестве заключения для этого раздела, приведу фрагмент схемы входного каскада, реализованного в одной из последних моих разработок. В этой схеме представлен полный комплекс защит: защита от переполюсовки на полевом транзисторе, защита от пониженного и повышенного напряжения, а также защита по току на микросхеме TPS1663, и в довершении всего защита с помощью варистора и плавкого предохранителя.
6. Практикуйте системный подход к разработке
Очень частая ошибка начинающих разработчиков – нарисовать схему, развести плату (может быть, даже изготовить ее) и только после этого задуматься о корпусе устройства. И вот тут начинается самое интересное: вроде бы вот, есть в продаже отличный корпус под устройство, практически подошел бы… если бы плата была миллиметра на два покороче. А следующий типоразмер корпуса уже в полтора раза больше, но приходится брать его, потому что альтернатива – изготовление корпуса на заказ – слишком дорога. В результате имеем неоправданно большой корпус, в котором болтается маленькая печатная платка. А ведь этого можно было избежать, если бы вопрос проработки корпуса аппаратуры не оставлять на потом, а решать одновременно с разработкой печатной платы.
Когда разрабатывается какое-то сложное устройство с кастомным корпусом, то тут качественная разработка в принципе не может происходить без плотной совместной работы конструктора, схемотехника и тополога (иногда, правда, это один и тот же человек :)). Важно понимать, что эта работа происходит одновременно: схемотехник рисует схему и передает ее топологу, конструктор в это время определяет габариты печатных плат в зависимости от конструкции изделия, а также выдает всевозможные ограничения на высоту компонентов и запретные зоны, тополог делает предварительную расстановку компонентов на печатной плате и передает ее конструктору для интеграции в общую 3D-модель, схемотехник все согласовывает и, при необходимости, реагирует на пожелания типа «вот тут бы дроссель подобрать на пару миллиметров пониже».
Но комплексный подход к разработке не ограничивается только конструкцией.
Если изделие предполагает написание встроенного софта, необходимо взаимодействие схемотехника с программистами еще на этапе разработки структурной схемы будущего устройства. Это необходимо как для планирования сроков разработки, так и для определения возможности программной реализации заложенный схемотехнических решений. К сожалению, при недостатке у схемотехника знаний об особенностях разработки программного обеспечения, некоторые заложенные в схему решения могут оказаться в принципе неосуществимыми с точки зрения написания софта, а выяснится это все только после изготовления печатных плат. Поэтому для того, чтобы избежать такой грустный сценарий, стоит продумать и согласовать все принципиальные с точки зрения ПО вопросы с теми, кто потом это ПО будет писать.
Кроме того, при разговоре о комплексном подходе, нельзя не упомянуть и такой важный момент, как организация будущего производства. Уже на этапе рисования схемы необходимо задуматься о том, как потом эта плата будет производиться, как ее отлаживать, проверять, тестировать. Уже сейчас нужно заложить контрольные точки для измерения напряжения источников питания, подумать про рабочие места, про всевозможные кабели и куда их подключать, про методику проверки. Очень может быть, что для тестирования вашей платы в условиях серийного производства понадобится специальная оснастка – ее разработку (хотя бы в эскизном виде) надо начинать параллельно с проверяемой платой, потому что это два взаимосвязанных устройства.
В общем, в качестве краткого резюме по текущему разделу – подходите к разработке комплексно. Думайте о конструкции изделия, о корпусе, о разработке программного обеспечения, о том, как будут производиться и тестироваться ваши устройства в самом начале проектирования, а не тогда, когда уже большая часть работ сделана, и любой шаг в сторону сопровождается огромными затратами ресурсов.
7. Используйте нулевые резисторы
Я уверен, что любому разработчику знакома такая ситуация: схема разработана, плата разведена, компоненты запаяны, и вот изделие попадает на отладку. Включаем – и не работает. Начинаем искать причину – вот незадача, перепутаны RX и TX у UART. Или D+ и D- у USB. Или MOSI и MISO в SPI. Или… да ошибиться можно где угодно, особенно если данный кусок схемы делается в первый раз. Приходится брать скальпель, резать дорожки на печатной плате, зачищать маску и пытаться припаяться к этим самым дорожкам проводами. А что если дорожки во внутренних слоях печатной платы? А микросхемы – в BGA корпусе? Да еще и с использованием технологии Via-In-Pad? Вот где настоящая боль. В такие моменты невольно начинаешь завидовать программистам, у которых проблему можно решить путем перекомпиляции программы, тогда как здесь маячит перспектива полной переделки печатной платы без возможности оживить текущую. Можно ли как-то избежать такого грустного финала? Зачастую да. В случае, когда какой-то кусок схемы делается впервые, а топология печатной платы не располагает к экспериментам, «сомнительные» цепи лучше соединять не напрямую, а через нулевой резистор (резистор с сопротивлением 0 Ом).
В таком случае, даже если вы ошибетесь в схеме, ошибка не будет фатальной. Достаточно будет снять запаянные резисторы и скоммутировать схему правильным образом. Обойдется без перерезания дорожек и, тем более, без ковыряния меди на внутренних слоях платы.
Может возникнуть вопрос – а не слишком ли расточительно вот так вот ставить резисторы на плату, которые не очень-то и нужны? Ну, на момент написания статьи, цена на DigiKey нулевого резистора в корпусе 0402 составляла порядка 2$ за 1000 штук. Пусть каждый сам для себя решит дорого это или нет. Кроме того, замечу, что нулевые резисторы необходимы только на опытных образцах, когда еще нет уверенности в правильности схемы. При запуске серийного производства, когда все недостатки схемы устранены, в новой ревизии платы вполне можно их исключить.
К выбору типа нулевого резистора необходимо подходить комплексно. Необходимо учитывать как минимум следующие параметры:
- Максимально допустимый ток через резистор
- Паразитную индуктивность и емкость резистора
- Тип корпуса и занимаемую площадь на печатной плате
Например, если вы поставите проволочные резисторы в высокоскоростные цепи, то схема, скорее всего, не будет работать: паразитная индуктивность их слишком велика. Для большинства цифровых цепей хорошо подходят SMD резисторы. Обычно я использую корпус 0402 – это некий компромисс по занимаемому месту на печатной плате и удобству монтажа. Нулевые резисторы в корпусе 0402 не оказывают существенного влияния даже на относительно высокочастотные цепи: High Speed USB (480 Мбит/с) и гигабитный Ethernet устойчиво функционируют. Не возникало проблем даже в суб-гигагерцовом диапазоне у радиотрактов: нулевые резисторы случалось применять и там как элемент согласования. Но, конечно, при проектировании высокочастотной схемы всегда стоит помнить про паразитные параметры нулевых резисторов (да и не только их) и при необходимости выполнить моделирование.
8. Разделяйте земли и фильтруйте питание
На практике очень часто встречаются случаи, когда на одной печатной плате присутствуют одновременно высокочувствительные аналоговые тракты и шумные цифровые процессоры. Или мощные импульсные преобразователи и склонные к сбоям цифровые системы управления. В общем, когда по соседству на одном куске текстолита находится какой-то источник помех и рядом с ним чувствительные к ним компоненты. Как в таком случае быть? Практика говорит, что 90% успеха при создании таких устройств – это грамотно разведенная печатная плата. С правильной компоновкой элементов, с грамотным стеком и с формированием полигонов земель и питания по определенным правилам. Но текущая статья не про печатные платы, кроме того, нельзя недооценивать и таким вещи, как фильтрация питания и разделение земель, про которые мы и поговорим в настоящем разделе.
Основная суть процесса разделения земель заключается в том, чтобы возвратные токи «шумной» цифровой или силовой частей схемы не протекали совместно с возвратными токами чувствительных цепей: в противном случае чувствительные цепи могут улавливать колебания напряжения шумов на земляных полигонах и интерпретировать их как часть полезного сигнала, что неминуемо приведет к ошибкам в работе. Для этого в проекте создаются две цепи с разными именами (например, A_GND и D_GND). Чувствительные земляные цепи подключаются к A_GND, а «шумные» – к D_GND. Но если цифровые и аналоговые блоки общаются между собой (а такое бывает практически всегда), необходимо соединить цепи A_GND и D_GND между собой (иначе возвратным токам негде будет протекать). Как это правильно сделать? Существуют разные мнения на этот счет. Я обычно соединяю эти цепи между собой нулевым резистором, располагая его вблизи источника питания на печатной плате.
Если вы работаете в Altium Designer, то для этих целей там предусмотрен специальный тип компонента под названием Net Tie, можно использовать и его.
Иногда для соединения этих земляных цепей рекомендуют использовать индуктивность, мотивируя это тем, что она хорошо блокирует высокочастотные помехи. Но я это делать категорически не советую: не стоит забывать, что через эту индуктивность будут течь и возвратные токи сигналов между цифровой и аналоговой частями схемы. Это приведет к сильному искажению формы сигналов и, возможно, к полной неработоспособности схемы. Индуктивности полезно применять в цепях питания для его фильтрации, однако делать это тоже надо аккуратно. Давайте рассмотрим этот вопрос немного подробнее.
Прежде всего необходимо запомнить одно простое правило: индуктивность фильтра всегда должна идти в паре с конденсатором. Схема без конденсатора, скорее всего, вообще работать не будет. Почему? См. первый раздел настоящей статьи.
Тип и номинал индуктивности выбирается исходя из ожидаемой интенсивности помех по питанию, спектра помех и особенностей вашей схемы. Разумеется, должен быть соблюден запас по току. В своей практике для фильтрации питания я достаточно часто использую индуктивности серии BLM от Murata: они предназначены специально для фильтрации помех в аппаратуре самого разного типа. Краткая характеристика индуктивностей серии BLM приведена на рисунке.
9. Учитывайте переходные процессы
Переходные процессы – это как себя ведет система до момента наступления установившегося состояния. В частности, под переходными процессами можно понимать моменты включения питания, моменты подключения нагрузки к источнику, коммутацию ключей и многое другое. Вообще подробное рассмотрение переходных процессов – это тема под целую серию статей. В данной же статье мы рассмотрим более подробно вопрос включения питания, как встречающийся наиболее часто.
Ситуация 1. Вы подключили какую-нибудь плату проводами к лабораторному источнику питания. Подаете питание и обнаруживаете, что у вас плата вместо того, чтобы запустится, находится в режиме циклической перезагрузки. Что происходит и что делать?
Действительно такие ситуации могут возникать и причина – в переходном процессе. В момент старта ваша плата может потреблять в несколько раз больше тока, чем в момент штатной работы. Особенно это хорошо заметно, если на плате стоит какой-нибудь мощный процессор.
Нарастающий импульс тока проходит от источника питания к плате через провода, которые, увы, совсем не идеальны: у них есть и паразитное сопротивление, и паразитная индуктивность. Все это приводит к провалу напряжения на плате: этот провал отрабатывает супервизор процессора и по итогу имеем циклическую перезагрузку. Решений у проблемы несколько: укоротить провода и увеличить площадь их сечения, использовать лабораторные источники питания с обратной связью, либо же вообще поставить на плате преобразователь питания и подавать на плату более высокое напряжение.
Ситуация 2. Вы подаете питание на свою плату и тут замечаете, что в начальный момент почему-то слегка подмигивает светодиод, который должен быть выключен. Или на короткий момент начинает работать какой-нибудь преобразователь питания, который, вроде как, должен быть заблокирован в ПО процессора. Либо хаотично щелкает реле. В чем же дело? Ошибка в коде? Все может быть и проще, и сложнее одновременно. Возможно, вы просто не учли состояние портов ввода-вывода процессора (или же какой-то другой микросхемы) в моменты сброса и начальной инициализации. А между тем, это важный параметр, про который нельзя забывать. Обычно такие моменты прописаны в документации. Например, STMicroelectronics в документации на свой микроконтроллер STM32F750 явно пишет, что все ножки, кроме тех, которые отвечают за программирование и отладку, в течение сброса и сразу после него сконфигурированы как входы, не подтянутые ни к питанию, ни к земле.
Чем нам это грозит? Дорожка на печатной плате, где с обоих сторон высокоимпедансные входы – отличная антенна для улавливания всевозможных помех. И если она заведена, например, на вход EN какого-нибудь источника питания, либо управляет реле, то в моменты начальной загрузки этот источник питания может хаотично включаться и выключаться, а реле щелкать с безумной скоростью буквально по мановению руки. К счастью, данная проблема решается достаточно просто: достаточно поставить подтягивающие резисторы к GND либо к VCC номиналом 10…100 кОм на критичные цепи. Они надежно зафиксируют уровень сигнала в моменты инициализации и не допустят хаотичного переключения периферийных устройств.
Однако стоит помнить, что состояние выводов микросхемы в моменты сброса и начальной инициализации очень индивидуально и зависит от конкретной микросхемы. И если в том же STM все довольно просто и понятно, то, например, в процессоре AM4376 от Texas Instruments все гораздо хитрее: часть GPIO имеет состояние HIGH-Z, часть имеют подтяжки PU, другие PD:
Ситуация 3. Вы полностью обесточили свою плату, но на ней продолжает гореть светодиод или микросхемы проявляют какую-то активность? В чем дело, неужто вечный двигатель? Увы, все гораздо проще. Скорее всего, у вас остался подключен к плате какой-нибудь преобразователь USB-UART или другая периферия, запитанная на стороне и имеющая высокий логический уровень на своих выводах. Дело в том, что любая микросхема имеет на своих входах по два диода, включенных между GND и VCC. Через эти диоды напряжение с входа микросхемы может проникать на вывод питания микросхемы и дальше распространяться по всей плате, как это показано на рисунке.
Конечно, полноценно запитать всю плату таким образом вряд ли получится. Однако на цепи VCC может образоваться какой-нибудь промежуточный уровень напряжения: меньший, чем напряжение питания микросхемы, но тем не менее достаточный, чтобы микросхемы оказались в «непонятном» состоянии. К счастью, большинство микросхем все-таки не особо чувствительны к подобным натеканиям напряжения, однако про эту проблемы нельзя забывать, и в случае необходимости следует ставить в критичные цепи специальные изолирующие буферы.
Ну и теперь у нас остался последний пункт настоящей статьи.
10. Читайте документацию на применяемые компоненты
Внимательно. Всегда. В ней действительно находятся ответы на большинство вопросов, в том числе и на те, которые мы рассмотрели в данной статье. Да, порой эта документация содержит десятки, сотни или даже тысячи страниц, но потраченное время на их изучение на этапе проектирования устройства, с лихвой окупится в процессе запуска изделия и отладки. Изучайте также схемы на отладочные платы, предоставляемые производителем, а также проглядите примеры топологии печатных плат: обычно лучше производителя никто вам не скажет, как правильно обвязывать микросхему и разводить под нее печатную плату. Не забывайте про Errata, там иногда таятся неожиданности. Всегда старайтесь понять, что делает каждая ножка в применяемой вами микросхеме: казалось бы ничем не примечательный вывод, не подключенный как надо, может испортить всю работу.
Заключение
В данной статье мы рассмотрели десять основных правил проектирования электрических схем. Надеюсь, это поможет начинающим разработчикам избежать хотя бы самых простых ошибок при проектировании схем. Ну и самое главное – разрабатывайте устройства и не бойтесь экспериментов, потому что практика, в конечном итоге, все равно лучший учитель.