Часы со счетом времени на МК – Часть 1

June 27, 2010 by admin Комментировать »

Часы мы будем делать на основе светодиодных индикаторов: поскольку схе­ма все равно будет потреблять довольно много, то так или иначе потребуется сетевой источник питания, и слепые ЖК-индикаторы ставить нет особого смысла. Также договоримся, что секунды мы не показываем (в настольных часах этого никто и не делает, заменяя их отсчет миганием разделительной точки или двоеточия).

Для выбора МК из предлагаемых фирмой Atmel просто подсчитаем, сколько нам требуется выводов. Во-первых, надо управлять четырьмя разрядами инди­кации (ЧЧ:ММ). Это мы будем делать в режиме динамической индикации, ко­гда в каждый отдельный момент времени напряжение питания подается только на один разряд индикаторов, и в это же время на сегменты, которые все соеди­нены между собой параллельно, подается код, соответствующий именно этому разряду. При четырех разрядах непосредственное управление предполагает 74 = 28 задействованных выводов, а динамическое — всего 7 + 4=11.

Затем нам надо засвечивать разделительный символ — в часах это традици­онно двоеточие. Наконец, нам надо часы устанавливать. Для этого мини­мально необходимо две кнопки (включение режима установки и собственно установка). Итого получилось по минимуму 14 выводов.

Остановимся на знакомом нам МК ATtiny2313— он выпускается в 20-цыводном корпусе (см. риС. 19.2), в котором 5 выводов занято под системные нужды (два питания. Reset и два вывода для подключения кварца). Итого нам остается на все про все 15 выводов, что нас устраивает (выводы для про­граммирования тоже задействуем). Мы даже вроде бы получаем один ре­зервный вывод, но далее увидим, что на самом деле под все желательные до­полнительные функции выводов нам будет не хватать, и придется изворачиваться (конечно, можно остановиться на ATmegaS, у которого 28 выводов корпуса, но мы делаем схему в учебных целях и тут дефицит даже полезнее). Программу и схему сделаем так, чтобы можно было заменить АТ-tiny2313 на 2313 Classic (см. пояснения в предыдущей главе). С точки зрения построения схемы никакой разницы не будет.

Общее построение схемы

Теперь общая схема. Выбираем индикаторы большого размера (с цифрой 1 дюйм или 25,4 мм высотой), с общим анодом, то есть типа SA10, если брать продукцию Kingbright. Лично я предпочитаю желтое свечение (например, SC10-21Y), но это не имеет значения. Так как падение напряжения у них мо­жет достигать 4 В, то от того же питания, что требует МК (5 В), питать их нельзя, поэтому нам потребуется два питания: одно стабилизированное +5 В и второе нестабилизированное (пусть будет +12 В). Управлять разрядами ин­дикаторов мы будем от транзисторных ключей с преобразованием уровня (когда на выходе МК уровень +5 В, ключ подает +12 В на анод индикатора), а сегментами — от простых транзисторных ключей (при уровне +5 В вывод сегмента коммутируется на «землю» — так как питание индикаторов повы­шенное, то, к сожалению, управлять прямо от выводов процессора не полу­чится). В обоих случаях управление получается в положительной логике — включенному индикатору и сегменту соответствует логическая единица (это совершенно не принципиально, но удобно для простоты понимания того, что именно мы делаем). Токоограничивающие резисторы в управлении сегмен­тами примем равными 470 Ом, тогда пиковый ток через сегмент составит примерно 20 мА, а средний для четырех индикаторов — 5 мА. Всех восьме­рок у нас быть не может, максимальное число одновременно горящих разря­дов равно 24 («20:08»), потому общее максимальное потребление схемы со­ставит 24-5 = 120 мА, плюс примерно 10 мА на схему управления, итого 130 мА. Исходя из этого, будем рассчитывать источник питания.

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

При питании в пределах 4—5 В контроллер типа 2313 потребляет около 5 мА, так что можно рассчитывать на непрерывную работу от щелочной батарейки типа АА с емкостью порядка 2 А-ч в течение не менее 2—3 не­дель. Так как на непрерывную работу мы не рассчитываем, а лишь на под­держку при сбоях длительностью максимум в несколько минут или часов (при длительном отключении от сети батарейку придется извлекать или отключать), то это нас устраивает. Для обеспечения работы понадобятся три таких элемента, соединенных последовательно, тогда их общее напря­жение составит 4,5 В.

Переключать питание с сетевого питания на батарейки можно автоматиче­ски, с помощью простой схемы из двух развязывающих диодов (чтобы уменьшить потери, диоды должны быть с переходами Шоттки, на них мень­ше падение напряжения). Чтобы сделать схему совсем «юзабельной», доба­вим также небольшой узел для сигнализации при необходимости замены ре­зервной батарейки — пусть это будет наше ноу-хау, так как такого почти ни у кого нет\ Хотя есть специальные микросхемы, которые «мониторят» пита­ние, и мы о них уже говорили, здесь в образовательных целях мы без них обойдемся. Схему такого узла удобно реализовать, «не отходя от процессо­ра», на встроенном компараторе, если сравнивать напряжение батарейки с каким-то фиксированным напряжением.

Кроме того, потребуется некий монитор питания для того, чтобы контроллер «знал», что он подключен к батарейке: при этом придется отключать внеш­ние порты, чтобы не было дополнительного потребления (вообще-то можно и задействовать режим пониженного энергопотребления, но это довольно сложно, и мы не будем здесь на этом останавливаться). Но в этом случае у нас набирается уже целых 18 функций (12 для осуществления индикации, 2 кнопки установки, 2 входа компаратора, 1 для сигнализации состояния ба­тарейки и еще 1 для входа монитора питания), а использовать процессор большего размера только для этой цели не хочется — ведь и потреблять он тоже будет больше. И уж совсем не хочется добавлять какие-то внешние схемы лишь для того, чтобы контролировать батарейку, которая, может быть, сядет этак лет через пять…

Поэтому мы объединим функции выводов: используем один из входов ком-.паратора также и под вторую кнопку, как обычный вывод порта. А на другой вход компаратора, который подсоединен к опорному источнику, «повесим» дополнительно функцию монитора — сигнализировать о пропадании внеш­него питания, все равно опорный источник подключен к напряжению пита-шя. Остается придумать, как обеспечить сигнализацию разряда батареи. Тут мы сделаем просто: пусть разделительный символ (двоеточие) мигает, когда все нормально, а когда батарея разряжена— горит все время. Таким образом мы получим наиболее экономичную схему с минимумом внешних элементов.

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

Теперь поглядим на схему разводки выводов ATtiny2313 (рис. 19.2) и выбе­рем, что и к чему мы будем подсоединять. Во-первых, удобно использовать вход внешнего прерывания, например, INT1 (вывод 7) под кнопку, которая будет вводить часы в режим установки. От порта D (портов А и С в этом микроконтроллере нет) осталось шесть разрядов, четыре из которых мы за­действуем под управление разрядами индикаторов (в скобках указаны номе­ра выводов): PDO (2), PD1 (3), PD2 (6) и PD4 (8). Из восьми выводов порта В два задействованы под входы компаратора AIN+ (вывод 12— к нему мы подсоединим опорный источник для контроля батареи и с него же будем снимать информацию о состоянии питающего напряжения и второй кнопки) и AIN- (вывод 13 — к нему подключим батарейку). Для управления мигани­ем разделительного двоеточия удобно использовать вывод 0С1 (15), который управляется автоматически от таймера (см. главу 19). Под управление сег­ментами мы задействуем оставшиеся выводы: PD5 (9), PD6 (11), РВ2 (14) и РВ4—РВ7 (16—19). То, что выводы для управления индикаторами располо­жены не по порядку — это, конечно, не здорово, нам фактически придется управлять каждым разрядом по отдельности, но обойдемся.

Схема

Вот, собственно, и все предварительные наметки, можно рисовать схему пла­ты управления. Она показана на рис. 20.1. Схема проста, правда, некоторую громоздкость ей придают ключи управления индикаторами, однако все равно ее можно без проблем уместить на плату примерно 70×100 мм, а с некоторы­ми усилиями — и на меньшую. Как мы говорили ранее, в ней можно без из­менений заменить ATtiny2313 на старый AT90S2313.

Игольчатый разъем XI типа IDC с 10 контактами — программирующий. Все остальные внешние соединения, кроме питания от сети, осуществляются че­рез такой же разъем, но с 16 контактами, два из которых — контакты «земля» и питание.

Обратите внимание, что программирующие выводы (кроме Reset) здесь ра­ботают в двух режимах. В нормальном режиме эти выводы работают, как выходы на нагрузку 5,1 кОм. Не помешает ли это процессу профаммирования? Нет, не помешает — такая нагрузка для программатора вполне приемлема. Более того, «чистые» (более нигде не задействованные) выводы программи­рования все равно следует нагружать «подтягивающими» резисторами, иначе не исключены сбои (об этом мы говорили в главе 18). Здесь же роль гасящей помехи нагрузки играют базовые резисторы ключей управления транзисто­рами, и дополнительных мер принимать не приходится.

clip_image002

Рис. 20.1. Схема часов на MKATtiny2313 (плата управления)

Плату индикации мы делаем отдельно (рис. 20.2). На ней мы ставим четыре индикатора и две управляющих кнопки (о них далее), а также в точности та­кой же разъем IDC-16, как и на плате контроллера, причем он должен стоять на стороне платы, противоположной индикаторам. Разводка у него также должна быть идентичной. Эти разъемы мы соединим плоским кабелем. Изго­товить такой плоский кабель с разъемами IDC-16F самостоятельно без нали­чия специального инструмента практически невозможно, потому либо при­дется такой инструмент приобрести, либо попросить вам установить разъемы на кабель в любой фирме, которая занимается сборкой и ремонтом компью­теров. Можно употребить и готовый кабель даже с большим количеством линий, если на плате использовать разъемы PLD (то есть если не установлен кожух). Это решение не очень красивое, так как при этом кабельная часть разъема будет выходить за пределы разъема на плате, и это нужно преду­смотреть в разводке, иначе разъем кабеля может во что-нибудь упереться.

clip_image004

Рис. 20.2. Схема часов на МК AT90S2313 (плата индикации)

Разберем немного работу схемы платы упрааления. При включении питания цепочка R1C1 обеспечивает надежный Reset. Напомню (см. главу 18), что ставить эту цепочку необязательно — производитель МК гарантирует нор­мальный Reset и без каких-либо внешних элементов, однако для лучшей за­щиты от помех это не помешает, ведь часы у нас должны работать по идее годами в круглосуточном режиме.

После установления питания диод VD2 «запрет» батарею, которая имеет на­пряжение заведомо ниже, чем на выходе стабилизатора. Оба диода — с пере­ходом Шоттки, падение напряжения на них не превышает 0,2—0,4 В.

Теперь разберемся с нашими компараторными примочками. В нормальном режиме кнопка Кн2 (S3 на плате индикации рис. 20.2) разомкнута и на работу схемы не влияет. Напряжение батареи фактически напрямую (делитель R4/R5 делит сигнал в отношении 300/301 и эта ошибка не имеет значения) попадает на инвертирующий вход компаратора. Это напряжение сравнивает­ся с напряжением на стабилитроне VD3, равном примерно 3,9 В (стабили­трон обязательно должен быть маломощный, типа КС139Г в стеклянном корпусе, или соответствующий импортный, в противном случае сопротивле­ние резистора R35 надо снизить примерно в два-три раза). Когда напряжение батареи упадет ниже этого уровня (выбранного с некоторым запасом — при 3 В МК еще может нормально работать, но часть напряжения батареи упадет на диоде VD2, кроме того, следует учитывать, смена батарейки может про­изойти не сразу), то компаратор перебросится в состояние логической едини­цы по выходу.

Программа (см. далее) зарегистрирует падение напряжения батарейки, и раз­делительное двоеточие (пара светодиодов VD1 и VD2 на схеме по рис. 20.2, подключенных к выводу мигания от Timer 1) перестанет мигать и будет го­реть постоянно. Восстановление произойдет сразу, как только батарею сме­нят на свежую. Та же реакция будет, если просто отключить батарею тумб­лером «Бат» (S1 на рис. 20.1) или удалить ее. Для того чтобы в этих случаях вход компаратора не оказывался «висящим в воздухе», и предназначен рези­стор R5. Ток через него настолько мал (около 1,5 мкА), что на разряд батареи это не оказывает влияния. С8 защищает вход от наведенных на этом резисто­ре помех.

Разумеется, отличить нажатие кнопки Кн2 от внезапного выключения бата­рейки МК не в состоянии, но «правильная» реакция на нажатие Кн2, как мы увидим далее, происходит только в режиме установки часов — когда предва­рительно была нажата кнопка Кн1 (S2 на рис. 20.2). Нажатие Кн2 и в самом деле будет восприниматься, как отключение батарейки — ив режиме уста­новки, и в рабочем режиме, но только на время ее нажатия, а после отпуска­ния состояние МК сразу восстановится. Поэтому функции друг другу не ме­шают, за исключением невероятного совпадения, если батарейка «захочет» разрядиться как раз в момент установки времени (и при разряженной или от­ключенной батарейке, увы, установку времени производить нельзя).

При пропадании внешнего питания запирается диод VD1, а диод VD2 откры­вается, и напряжение батареи попадает на питание МК. Резистор R6 вкупе с развязывающим конденсатором С2 служат для большей устойчивости работы МК в момент перепада напряжений при переключении питания, для той же цели служит конденсатор С7, установленный параллельно кнопке Кн1 (иначе при перепадах напряжения может спонтанно возникать прерывание и часы войдут в режим установки, о котором далее). Одновременно с переключени­ем питания становится равным нулю напряжение на стабилитроне, а так как при этом стабилитрон представляет собой обрыв в цепи, то установлен рези­стор R36, который служит тем же целям, что и резистор R5. Компаратор ра­ботать перестает (точнее, он всегда будет показывать «нормальную» бата­рею), но нас это не волнует, так как индикации все равно нет. Тумблер «Бат» (S1 на рис. 20.1) нужен для отключения батареи в случае, если вы хотите ос­тановить часы надолго, а вот тумблер для включения сетевого питания тут совершенно не требуется (разве что на время отладки).

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты