Pull to refresh

От программирования к железу или «Почему оно не работает?».Ликбез

Reading time 9 min
Views 146K
image
Привет Хабр. В последнее время среди программистов все больше стала набирать популярность цифровая электроника, появляются все новые платформы, позволяющие без каких либо особых знаний в электронике собирать различные устройства. Сам я начинал заниматься аналоговой электроникой, позже — цифровой и программированием. Многие же — наоборот — сначала программированием, а потом пытаются заниматься железом, при этом знания по части электроники практически нулевые и люди не знают/не понимают элементарных для олдфажного электронщика вещей. В данной статье я постараюсь затронуть наиболее важные на мой взгляд моменты, как по части проектирования схем, так и по части разводки плат. Надеюсь мои советы помогут миновать некоторые грабли

Входы микросхем


Заглянем немного внутрь микросхем и посмотрим как устроены их части. Подавляющее большинство современных цифровых микросхем сделано по технологии КМОП. Базовым элементом является полевой транзистор с индуцированным каналом p или n типа. Объединив их по следующей схеме — получаем инвертор, при подаче высокого напряжения на входы — сопротивление n канального транзистора мало, а p канального — велико, нижний транзистор подключает выход к земле, если же наоборот — подать низкий уровень — сопротивление будет мало у p канального транзистора — и он подключит выход к высокому напряжению.

Тут кроется, на первый взгляд незаметная вещь — а что будет, если транзисторы будут открыты одновременно?
Правильно — короткое замыкание между питанием и землей — и тут уж что быстрее выйдет из строя — канал одного из транзисторов или питающая схема, которая не сможет обеспечить такой ток. И такое вполне может быть и бывает ведь. Дело тут в том, что для транзисторов существуют диапазоны напряжений на затворе в пределах которых мы считаем, что сопротивление транзистора мало или велико. В зависимости от транзисторов они разные — скажем до 0.6В мы считаем, что один транзистор гарантированно закрыт, а другой открыт, а выше 1.8В считаем, что наоборот. диапазон между этими напряжениями — ЗАПРЕЩЕННЫЙ в цифровой электронике, потому что один транзистор уже может приоткрыться, а второй еще не закрыться. Обеспечить такое условие достаточно просто — достаточно оставить неиспользуемый вход микросхемы болтаться в воздухе — напряжение в таком случае на нем может быть какое угодно. Поэтому
Совет номер 1: всегда подтягивайте неиспользуемые входы микросхемы к какому либо логическому уровню схемы. Потом будет меньше огромных глаз и возгласов «От статики сгорело! Нужно антистатические браслеты одевать.» — Нужно правильно делать схемы, тогда они САМИ гореть не будут. Всегда следите за тем, чтобы логический уровень на входах был четко задан в любой момент работы схемы. Невыполнение этого условия чревато не только ошибками в работе устройства, но и выходом его из строя. И хотя входы обычно оснащены защитными диодами, которые защищают от перенапряжения и задают напряжение на затворе — надеяться на них не стоит. Кроме того хаотично переключающиеся элементы внутри микросхемы повышают ее энергопотребление, что может быть критично в системах с батарейным питанием

Выходы микросхем


Кроме входов у микросхем есть еще и выходы — в зависимости от того — какое напряжение мы подаем на выходной каскад — открывается один или другой транзистор, через который течет ток — он либо вытекает либо втекает в микросхему, чтобы получить напряжение (ведь именно его мы измеряем) ток нужно пропустить через сопротивление. Это сопротивление и будет определять ток, протекающий через выход микросхемы, если мы нагружаем выход на высокоимпедансный вход 10МОм, при напряжении питания 5В — через выход контроллера будет протекать ток 0.5 мкА. Канал транзистора имеет ограничение по протекающему через него току — как правило это отражено в даташитах. Сопротивление на которое нагружается выход микросхемы не должно быть меньше допустимого. Скажем — если максимальный выходной ток 10мА, а напряжение питания 5В, то минимальное нагрузочное сопротивление будет 0.5кОм или 500Ом, если меньше — сгорит.

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

Индуктивности


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

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

Индуктивность выводов, срабатывание на удвоенной частоте


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

Допустим на выходе удерживался высокий логический уровень — тек небольшой ток через входное сопротивление приемника и была заряжена входная емкость, и тут происходит переключение выхода в низкий логический уровень. Открывается нижний транзистор, закрывается верхний, емкость C — заряжена, сопротивление R — велико, емкость будет разряжаться через нижний транзистор и индуктивность земляного вывода — что мы имеем? После переключения выхода из 1 в 0 — получаем бросок тока, обусловленный входной емкостью приемника, ток проходя через индуктивность земляного вывода вызывает ЭДС самоиндукции, внутренняя земля таким образом подпрыгивает относительно внешней на величину этой ЭДС равной -LdI/dt, причем знак производной сначала будет положительный — ток через индуктивность возрастает, а затем — отрицательный — ток падает. Получаем импульсную помеху по внутренней шине земли — её потенциал сначала подпрыгнет, а потом просядет на одинаковую величину.

Но все внутренние измерительные цепи используют потенциал земли как опорный! Подпрыгивает только он, с другими сигналами на затворах ничего не происходит. А теперь представим, что микросхема наша тактируется от внешнего генератора и выходов у неё не 1, а 8 — 32 — какая нибудь микросхема памяти с раздельными выводами для чтения и записи — одновременно и пишем и читаем — сначала выставляем данные на входах, которые хотим записать, потом выдаем тактовый сигнал — входные данные защелкиваются, а выходные выставляются. Механизм распознавания тактового сигнала — дифференциальный — внутри измеряется разница между напряжением на входе тактовой синхронизации и внутренней землей. Допустим произошло переключение по тактовому сигналу выходов из состояния 0xff в 0x00 — при этом напряжение импульсной помехи будет в 8 раз больше, чем с 1 ножкой — внутренняя земля сначала подпрыгивает, а поскольку важна разница между входным сигналом и внутренней землей — может подпрыгнуть настолько, что внутренний компаратор переключится в 0, затем земля опустится и компаратор снова переключится в 1 — получаем дополнительный такт сразу за первым, при этом новые входные данные еще не выставлены, а выходные еще не приняты. Внешне это не проявится никак — схема просто будет сбоить непонятно почему — на осциллографе все будет чисто, вы же не можете ткнуться в кристалл микросхемы.
Производители решают эту проблему, снижая индуктивность выводов, создавая безвыводные корпуса, которые к тому же экономят место. Но все это ценой снижения механической надежности и усложнения монтажа. Кроме того — одно из решений — использовать отдельные выводы для измерительных цепей, так же используются несколько выводов земли и питания — таким образом индуктивности выводов соединяются параллельно и общая индуктивность снижается, кроме того это позволяет распределить токи внутри кристалла и уменьшить их влияние друг на друга.
Совет номер 3:
Если микросхема имеет раздельные выводы питания — у каждого должна быть своя точка соединения с шиной земли или питания- не нужно соединять их вместе, а затем одной сопелькой все это присоединять к шине — так вы убиваете всю задумку!

Взаимная индукция контуров с током, наводки


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

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

Емкости


Везде, где есть 2 проводящие поверхности — есть емкость — будь то провода, проводники на печатной плате или ножки микросхем — иногда емкость это хорошо иногда плохо. Например в случае срабатывания на удвоенной частоте — большая входная емкость приемника — плохо, потому что увеличивается количество принимаемого ей заряда, соответственно амплитуда импульсной помехи. Если в случае индуктивности — связь идет по магнитному полю, то в случае с емкостью — по электрическому, решающую роль здесь играет площадь проводников и расстояние, а также то, что расположено между ними. Например емкостная связь между проводниками в шине — плохо(например шлейф IDE) — минимизировать её можно пустив между дорожками земляной проводник, тогда эквивалентная схема будет следующей: C — емкость между двумя проводниками. — в таком случае влияние взаимной емкости снижается во первых — в 2 раза за счет увеличения расстояния, во вторых — имеем 2 параллельно соединенных конденсатора — один идет в землю, второй в другой проводник — один имеет импеданс 1/iwC, другой 2/iwC, переменный ток поделится между ними в отношении 2/1, то есть наличие земляного проводника между линиями позволяет снизить влияние взаимной емкости в 4 раза

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

Блокировочные конденсаторы


Вообще говоря для переменного тока не имеет никакого значения — течь по земле или по шине питания — для него они равноправны. В идеальном случае источник питания должен обладать нулевым импедансом, но в реальности это не так, вклад в это вносят подводящие провода и разводка питания. Чем это плохо? Допустим — какой то выход микросхемы переключился из состояния 0 в состояние 1 — при этом должна зарядиться выходная емкость. а где взять электроны для заряда? правильно — из батарейки, то есть при каждом переключении у нас происходит импульсный бросок тока в цепи питания — и так при каждом переключении чего то внутри микросхемы, а что делает ток, протекая через индуктивности цепи питания? создает помехи для других таких же цепей — если не обеспечен низкий импеданс по переменному току между питанием и землей и у тока нет другого пути кроме как через батарейку — уровень перекрестных помех в схеме возрастает. Проблема решается установкой блокировочных конденсаторов рядом с каждой микросхемой — это по сути маленькие батарейки с низким импедансом — при помощи них мы разделяем и уменьшаем контура переменных токов микросхем. Стоит остановиться немного на конденсаторах — на приведенной схеме L2, C2, ESR, ES — эквивалентная схема конденсатора — L2 — последовательная индуктивность выводов, C2 — собственно емкость, ES — сопротивление диэлектрика,ESR — эквивалентное последовательное сопротивление — засуньте кусок текстолита в микроволновку и включите на несколько секунд — теплый? Вот это и есть — эквивалентное последовательное сопротивление — дело в том, что диэлектрик это диполи — по сути 2 шарика, соединенные пружинкой — это колебательная система, которая имеет свою частоту — если вы меняете внешнее поле с близкой частотой — сопротивление мало, если с отличной — систему все сложней заставить колебаться — ESR зависит от частоты и имеет резонансный пик — в окрестности этого пика ESR мало — положение этого пика зависит от материала диэлектрика — у электролитических конденсаторов он находится на низких частотах, у керамических — на более высоких. Таким образом, чтобы конденсатор имел малый импеданс мы должны обеспечить минимальную индуктивность выводов и минимальное ESR


Совет номер 5:
Для уменьшения перекрестных помех по линиям питания старайтесь минимизировать импеданс разводки линий питания, по возможности используйте полигоны для питания и земли — емкостная связь между ними способствует уменьшению импеданса.
Поскольку для переменного тока не имеет значения — возвращаться по линии питания или по земле — используйте конденсаторы, чтобы возвратный ток мог перетекать из слоя в слой при необходимости. Располагайте блокировочные конденсаторы в непосредственной близости от микросхем, для минимизации перекрестных помех по линиям питания. Используйте конденсаторы с различными типами диэлектриков.

На этом все — надеюсь кому то статья была полезна — свои вопросы и замечания оставляйте в комментариях или в ЛС
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+136
Comments 36
Comments Comments 36

Articles