Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #111, МАРТ 2008 г.

Электронные исходники

Артемий «Di Halt» Исламов (di_halt@mail.ru)

Хакер, номер #111, стр. 111-120-1

Базовые основы электроники для самых маленьких

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

Учиться, учиться и еще раз учиться! Недаром говорят, что лучший способ освоить программирование – взять дебаггер и посмотреть, как это делают другие. Тут точно такая же ситуация. Поэтому статью я посвящу не конкретному устройству, а базовым знаниям электроники и простейшим схемотехническим элементам, и в качестве примеров, с целью вскипятить тебе мозг, я буду брать фрагменты реальных принципиальных схем. А чтобы лучше усваивалось, доставай макетку и разогревай паяльник или запускай ISIS Proteus.

Электротехника для всех

Довелось мне однажды преподавать электронику в одной шараге. Нетривиально занятие, скажу я тебе. Дабы облегчить усвоение материала, я вводил ряд упрощений. Совершенно бредовых и антинаучных, но более-менее наглядно показывающих суть процесса. Методика «канализационной электрики» успешно показала себя в полевых испытаниях, а посему будет использована и тут. Хочу обратить внимание, что это всего лишь наглядное упрощение, справедливое для общего случая и конкретного момента, и к реальной физике процесса не имеющее практически никакого отношения. Зачем оно тогда? А чтобы проще запомнить, что к чему, и не путать напряжение и ток, и понимать, как на все это влияет сопротивление, а то я от студентов такого наслушался…

Ток, напряжение, сопротивление

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

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

Итак, подведем итог. Электроцепь содержит источник, создающий между своими полюсами разность потенциалов – напряжение. Под действием этого напряжения ток устремляется через нагрузку туда, где потенциал ниже. Движению тока препятствует сопротивление, образуемое из полезной нагрузки и потерь. В результате напряжение-давление ослабевает тем сильнее, чем больше сопротивление. Ну, теперь положим нашу канализацию в математическое русло.

Закон Ома

Сила тока в цепи пропорциональна напряжению и обратно пропорциональна полному сопротивлению цепи:

I = U/R

U – величина напряжения в вольтах

R – сумма всех сопротивлений в Омах

I – протекающий по цепи ток.

Для примера просчитаем простейшую цепь, состоящую из трех сопротивлений и одного источника. Схему я буду рисовать не так, как принято в учебниках по ТОЭ, а ближе к реальной принципиальной схеме, где принимают точку нулевого потенциала – корпус, обычно равный минусу питания, а плюс считают точкой с потенциалом, равным напряжению питания. Для начала будем считать, что напряжение и сопротивление известны, а значит, нам нужно найти ток. Сложим все сопротивления (о правилах сложения сопротивлений читай на врезке), дабы получить общую нагрузку, и поделим напряжение на получившийся результат – ток найден! Теперь посмотрим, как распределяется напряжение на каждом из сопротивлений. Выворачиваем закон Ома наизнанку и начинаем вычислять.

U=I*R

Поскольку ток в цепи един для всех последовательных сопротивлений, то он будет постоянен, а вот сопротивления будут разные. Итогом стало, что U источника = U1 +U2 +U3. Исходя из этого принципа, можно, например, соединить последовательно 50 лампочек, рассчитанных на 4.5 вольта, и спокойно запитать от розетки 220 вольт – ни одна лампочка не перегорит. А что произойдет, если в эту связку, в серединку, всандалить одно здоровенное сопротивление, скажем на кОм, а два других взять поменьше – на один Ом? Из расчетов станет ясно, что почти все напряжение выпадет на этом большом сопротивлении.

Закон Кирхгоффа

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

Мощность и потери

Мощность, которая расходуется в цепи, выражается, как произведение напряжения на ток.

Р = U * I

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

P= R * I^2

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

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

Резистор

Он же сопротивление. На схеме выглядит как белый узкий прямоугольник (на буржуйских схемах часто обозначен угловатой пружинкой). Замечательная деталь! Отличается тем, что не делает вообще ничего. Тупо потребляет энергию и греется. Основное предназначение в схеме это либо токоограничение, либо перераспределение напряжения. Сейчас поясню. Вот, например, светодиод. Для работы ему нужен мизерный ток, порядка 20 миллиампер, но вот беда – сопротивление светодиода мало, поэтому если воткнуть напрямую в 5 вольт, то через него ломанется ток в 400 миллиампер. От такой нагрузки бедняжка пожелтеет, позеленеет, а потом и вовсе загнется, источая вонь. Что делать? Правильно – поставить ему последовательно резистор, чтобы тот ограничил ток, не пустив излишнюю мощу на хилый диодик. Даже если диод теперь закоротить, то, исходя из закона Ома, ток в цепи не превысит того, который разрешит резистор.

Второе популярное применение – это делители напряжения. Цель делителя – подать на какую-либо точку сети строго определенное напряжение. Часто приходится это делать при согласовании между сигналами разных напряжений. Делитель представляет собой два последовательно соединенных резистора, один из которых подсоединен к точке нулевого потенциала (корпус), а второй к напряжению, которое нужно поделить. Средняя точка между резистором – это выход нашего поделенного напряжения. Ток в последовательной цепи везде одинаков, а вот сопротивление разное, значит, напряжение (по закону Ома) разделится на резисторах пропорционально их сопротивлениям. Одинаковые резисторы – напряжение пополам, а если нет, то уже надо садиться и вычислять, где как.

Простой пример:

Напряжение порта RS232 в компьютере 12 вольт, а для программирования микроконтроллера требуется всего 5 вольт. Тем не менее, простейший программатор для СОМ порта, найденный на сайте avr.nikolaew.org, не требует каких-либо специализированных микросхем преобразователей. Там стоят обычные делители, которые 12 вольт преобразуют в 6 вольт, что уже не смертельно для контроллера (на самом деле, вольт не 12, а 11,5, так как еще, минимум, 0.5 вольта упадет на диоде).

Надо учитывать, что делитель работает лишь в том случае, если напряжение с него снимается на нагрузку, сопротивление которой в разы – а лучше, в порядки – выше сопротивления делителя. Как правило, это входы микросхем, имеющих сопротивление в десятки МегаОм.

Еще один пример применения резисторов – подтяжка, она же pullup. Дело в том, что раз входы микросхем имеют огромное сопротивление, то на них наводится куча помех буквально из воздуха, следовательно, значение на входе может принимать совершенно случайный вид. Поэтому неиспользованные входы сажают на землю либо через резистор подтягивают к плюсу, чтобы там было определенное напряжение: или ноль, или плюс питания, соответственно. Если собирал мои прошлые девайсы на AVR, то, наверное, помнишь, что сигнал RESET я подтягивал резистором к напряжению питания. Можно, конечно, просто припаять RESET к плюсу, но тогда ты не сможешь сбросить процессор подведением туда земли – вызовешь короткое замыкание между плюсом и минусом. А с подтягивающим резистором этот фокус пройдет на ура, слабый подтяг вывода RESET до плюса будет пересилен прямым замыканием на минус, и произойдет сброс.

Конденсатор

Он же емкость – еще один вид пассивных элементов. На схеме обозначен, как две одинаковые параллельные черточки. В отличие от резистора, конденсатор – это нелинейный элемент. По нашей канализационной аналогии его можно сравнить с резиновым баком. Вначале, когда он пуст, вода резко его заполняет, растягивая стенки. Постепенно, когда стенки растянутся до предела, его сопротивление возрастет настолько, что поток воды остановится. А если убрать внешнее давление, то хлынет обратно.

Так и электрический конденсатор: когда он не заряжен, то его сопротивление можно принять за равное нулю, а когда зарядится, то – за бесконечность, обрыв. Ток через него идет только лишь в момент заряда или разряда. После отсоединения источника тока конденсатор сам начинает действовать как источник, пока не разрядится.

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

Емкостное сопротивление рассчитывается так

Хс = 1/w*C

Где Хс – емкостное сопротивление в Омах

С – емкость в фарадах

w – угловая частота переменной составляющей в радиан/с

w = Pi* f

где f - частота колебаний сигнала в герцах.

Конденсатор может служить еще и времязадающим элементом в генераторах разного рода – от него будет зависеть частота генерации. Либо использоваться в качестве формирователя импульса, как пример, сброс в схемах на контроллере с инверсным Reset (мой любимый АТ89С51). Основан прикол на том факте, что конденсатор пропускает постоянный ток только в период заряда. Значит, если подключить инверсный reset через конденсатор на плюс, а через резистор на землю, то в начальный момент, пока конденсатор не заряжен, на reset будет подан плюс питания (так как незаряженный конденсатор – это почти короткое замыкание). Потом, когда конденсатор зарядится и превратится в обрыв, ножка reset окажется через резистор на земле. Получается, во время пуска на ножке reset будет кратковременный импульс положительного напряжения, достаточный для первичного сброса процессора. Таким образом, например, поступили в схеме программатора для АТ89С51 с сайта http://www.atprog.boom.ru/schprog.html.

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

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

Основное применение катушка находит в колебательных контурах генераторов и фильтрах, так как она имеет свойство пропускать через себя постоянную составляющую и подавлять переменную. В паре с конденсатором они образуют отличный Г-образный или П-образный фильтр.

Диод

Основные пассивные элементы рассмотрели, теперь бегло расскажем про полупроводники.

Первым в списке будет диод. Это такая хитрая фиговина, пропускающая ток только в одну сторону. Его можно сравнить с ниппелем. Применяется, например, в выпрямителях, когда из переменного тока делают постоянный. Или когда надо отделить обратное напряжение от прямого. Погляди в схему программатора (там, где был пример с делителем). Видишь, стоят диоды, как думаешь, зачем? Все просто. У микроконтроллера логический нуль – это около 0 вольт, а у СОМ порта нуль – минус 12 вольт. Вот диод и отрезает этот минус 12, образуя 0 вольт. А поскольку у диода в прямом направлении проводимость неидеальная, то на его сопротивление упадет примерно 0.5-0.7 вольта. Остаток, будучи поделенным резисторами надвое, окажется примерно 5.5 вольт, что не выходит за пределы нормы контроллера.

Есть еще один интересный тип диода – стабилитрон. Я юзал его в одной из прошлых статей. Особенностью стабилитрона является, что в прямом направлении он работает как обычный диод, а вот в обратном его срывает на каком-либо напряжении, например, на 3.3 вольта, подобно ограничительному клапану парового котла, открывающемуся при превышении давления и стравливающему излишки пара. Стабилитрон используют, когда хотят получить напряжение заданной величины, вне зависимости от входных напряжений. Это может быть, к примеру, опорная величина, относительно которой происходит сравнение входного сигнала. Им можно обрезать входящий сигнал до нужной величины или использовать его как защиту. В своих схемах я часто ставлю на питание контроллера стабилитрон на 5.5 вольт, чтобы в случае, если напряжение резко скакнет, стабилитрон стравил через себя излишки. Также есть такой зверь – супрессор, тот же стабилитрон, только двунаправленный. Используется для защиты по питанию.

Транзистор

Жуткая вещь, в детстве все не мог понять, как он работает, а оказалось, очень просто.

В общем, транзистор можно сравнить с вентилем, при помощи которого мы небольшим усилием управляем мощнейшим потоком. Чуть повернул – и тонны дерьма умчались по трубам, открыл посильней – и вот уже все вокруг захлебнулось в нечистотах. Выход пропорционален входу, умноженному на какую-то величину. Этой величиной является коэффициент усиления.

Транзисторы делятся на полевые и биполярные.

В биполярном есть эмиттер, коллектор и база (смотри рисунок). Между эмиттером и коллектором идет большой ток полезной нагрузки, направление которого определяется стрелочкой на эмиттере. А вот между базой и эмиттером идет маленький управляющий ток. Грубо говоря, величина управляющего тока влияет на сопротивление между коллектором и эмиттером. Биполярные транзисторы бывают двух типов: p-n-p и n-p-n, принципиальная разница только в направлении тока.

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

Короче, транзистор позволит тебе слабеньким сигналом, например, с ноги микроконтроллера, управлять мощной нагрузкой типа реле, двигателя или лампочки. Если не хватит усиления одного транзистора, их можно соединять каскадами – один за другим, все мощней и мощней. А порой хватает и одного могучего полевого MOSFET транзистора. Посмотри, как в схемах сотовых телефонов управляется виброзвонок. Там выход с процессора идет на затвор силового MOSFET ключа.

Обозначение транзисторов или камень преткновения всех студентов.

Как запомнить тип биполярного транзистора по его условной схеме? Представь, что стрелочка это направление твоего движения на машине. Если едем в стенку, то слышится дружный вопль: «Писец - Нам - Писец»( p-n-p). А если от стенки, то – облегченное: «Не - Писец - Нам» (n-p-n). Все просто! Мнемотехника форева!

Микросхемы – кубики нашего конструктора

Диоды, резисторы, транзисторы и конденсаторы – это так, лишь обвязка. Особо на них не развернешься (нет, маньяки, конечно, могут, но габариты устройств будут феерические). Самое вкусное нас поджидает в микросхемах.

Делятся они на цифровые и аналоговые. Для начала кратко по цифровым микросхемам.

Миром правит цифра!

Краеугольным камнем цифровой схемотехники служит понятие нуля и единицы. Понятие совершенно условное, потому как фактически нет никакого нуля и единицы нет, есть лишь уровни напряжения – высокий и низкий, а также некий порог, после которого данный уровень напряжения принято считать высоким или низким. Скажем, все, что ниже 0.7 вольт, считаем за низкий уровень (0), все, что выше 2.4 вольт – высоким (1). Между 0.7 и 2.4 вольта, когда неясно, какой уровень – получаем третье состояние, неопределенное, и на выходе в таком случае результат непредсказуем.

Сопротивление входов очень высокое, практически можно считать его бесконечным.

Выход в микросхеме бывает разных типов. Различают Push-Pull и Open Drain (в нашей литературе второй тип называют «открытым коллектором» или «ОК»). Отличие заключается в способе выдачи сигнала на выход. В Push-Pull, когда нужен низкий уровень, выход беспрекословно сажается на землю, имеющую нулевой потенциал, а когда высокий, то на напряжение питания.

В открытом коллекторе все обстоит несколько иначе. Когда нам надо получить низкий уровень, мы тупо сажаем ногу на землю, а вот высокий уровень получаем подтягивающим резистором (pullup), который, в отсутствии посадки на землю и большого сопротивления висящей на выходе нагрузке, заводит на ногу высокий потенциал. Тут можешь вспомнить закон Ома и посчитать, какое будет напряжение выхода на открытом коллекторе, если подтягивающий резистор обычно порядка 1кОм, а сопротивление входа больше 1МегаОм. Тип выхода определяется из документации на микросхему, некоторые микрухи имеют программируемый выход, например, все контроллеры AVR. Исходя из этого, становится понятен смысл регистров Port и DDR в контроллере AVR – они определяют тип выхода Open Drain+PullUp, Push-Pull или просто Open Drain.

О микросхемах дискретной логики И, ИЛИ, НЕ рассказывать не буду, описать каждую – это справочник не на одну сотню страниц. Да и они постепенно уходят в прошлое, вытесняемые контроллерами и программируемыми матрицами. Скажу лишь одно – работают эти микросхемы по жесткой таблице истинности, которую можно найти в соответствующем datasheet.

Аналог рулит!

Цифра может и правит, но я в последнее время предпочитаю аналоговую технику. Ряд задач автоматики и регулирования на аналоговых цепях выполнить в разы проще, чем на микроконтроллере или цифровой логике. Главное отличие от цифровых микрух в том, что тут нет четких состояний, а вход и выход могут плавно изменяться от минус питания до плюс питания. Основой аналоговой схемотехники является операционный усилитель.

Адская вещь, скажу тебе. Содержит выход и два входа. Один вход прямой, другой инверсный. Внутри напряжения по этим двум входам математически складываются (с учетом знака входа), а результат умножается на коэффициент усиления и выдается на выход. Коэффициент усиления этого девайса в идеальном случае достигает бесконечности, а в реальном близок к сотням тысяч. В чем это выражается? А в том, что ты подаешь на вход, скажем, 1 милливольт, а выход сразу же зашкаливает под максимум – выдавая напряжение питания. Как же тогда работать, если его зашкаливает от малейшего сигнала? Зависит от задачи. Например, если нам нужно сравнивать два сигнала, то один мы подаем на отрицательный вход, а другой на положительный. В данном случае выход нам покажет либо минимум напряжения, либо максимум, в зависимости от того, где сигнал больше – на отрицательном входе или на положительном. Такой режим работы операционного усилителя называется компаратором. Недавно я его применил, чтобы отследить просадку напряжения питания на устройстве. Смотри схему: на минус у меня идет опорное напряжение со стабилитрона. Оно всегда равно 3.3 вольта – за этим стабилитрон и следит. А вот на второй вход идет напряжение с делителя – оно зависит от общего напряжения питания. В нормальном режиме, когда на входе 12 вольт, с делителя идет порядка 4 вольт, это выше чем 3.3 опорного, и с компаратора выходит +5 вольт (максимум питающего). При просадке напряжения ниже определенного порога, с делителя начинает выходить уже менее 3.3 вольт, и компаратор резко перекидывается в противоположное положение – 0 вольт (миниум питающего). Этот переход отслеживает микроконтроллер и дает сигнал тревоги.

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

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

Заключение

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

Как вычислять общее сопротивление цепи?

Если резисторы идут один за другим, последовательно, то просто складываешь их сопротивление. Если же они включены параллельно, то суммарное сопротивление будет равно 1/Rсуммы = 1/R1+1/R2+1/R3+..+1/Rn

Конденсаторы складываются несколько иначе. Суммарная емкость батареи конденсаторов будет равна: при последовательном включении –

1/Ссуммы = 1/С1+1/С2+1/С3+..+1/Сn,

а при параллельном – обыкновенным сложением емкостей

Ссуммы = С1+С2+С3+..+Сn

Индуктивности складываются так же, как и сопротивления. Последовательное соединение вызывает сложение индуктивностей, а параллельное соединение будет вычисляться по формуле:

1/Lсуммы = 1/L1+1/L2+1/L3+..+1/Ln

Содержание