Итак, у нас имеются теплые ламповые часы на накальных индикаторах ИВ-16, убедительно прошу не путать с газоразрядными! В первой части
ссылка я показал, каким образом можно неплохо поразвлечься не выходя из дома. ;) По многочисленным просьбам трудящихся выкладываю схему и прошивку этого извращения. Разумеется, делать конструкцию «как она есть» не имеет ни малейшего смысла, а вот настольный вариант- с питанием от USB порта компьютера или зарядки для телефона- может украсить вашу жизнь и сделать ее теплее (в прямом смысле). Потому- приводимая схема будет в упрощенной версии.
А вот примеров разводки печатной платы не будет. Плату разведите сами- под имеющиеся у вас корпуса и компоненты. «Ведь без мучений не будет развлечений». Я лично рисую в программе SprintLayout, весьма удобна и интуитивно понятна.
Схема получилась объемная, поэтому я ее разбил на три части.
Часть первая: стабилизатор напряжения.
Ничего необычного, ничего интересного. Микросхема NCP1529 в штатном включении. DC-DC преобразователь малой мощности. 5 вольт от USB-порта получает, 3 вольта отдает. В отличие от линейных стабилизаторов типа LM317 совершенно не греется и почти не расходует энергию впустую.
Ссылка на документацию по этому замечательному клопу:
ссылка
Три вольта питания выбраны не случайно: штатное напряжение накала сегмента лампы- 3,15 вольта, максимально допустимое- 4,5. Таким образом, индикаторы будут работать в оптимальном режиме- и проживут весь гарантированный производителям срок наработки без отказа (10 000 часов).
Пара замечаний по стабилизатору: конденсаторы обязательно должны быть керамическими, микросхема работает на частоте 1,7 мегагерца, никакие электролиты с фильтрацией помех не справятся. С1- по личному опыту чем больше- тем лучше (особенно если у вас в качестве источника питания зарядка некачественная), но не меньше 4,7 микрофарад, С3 увеличивать нет смысла. Дроссель L1 я применил CD43 (с алиэкспресса), он достаточно маленький, но мощный. Рекомендации по выбору дросселя можно почитать в даташите. На входе схемы нарисован TVS-диод, его можно не ставить, но лучше поставить- сгодится любой на 5 вольт, существуют специализированые TVS-диоды для шин USB. Дешевые китайские зарядки выдают черти знают что, лишняя защита не повредит. По поводу самой микросхемы: существует множество ее клонов, полностью совместимых по ногам. Мне лично китайцы подсунули вместо оригинала аналог М3406, он способен выдавать максимальный ток только 0,8 ампера (оригинал- до 1 ампера), однако- в самом худшем случае схема не потребляет больше 450 миллиампер, так что «клоны» вполне годятся.
Но если вам убеждения не позволяют делать DC-DC преобразователи- можете применить привычный линейный стабилизатор, никому от этого плохо не станет, главное- чтоб на выходе 3 вольта выдавал при токе не менее половины ампера.
Часть вторая: мозги-и-и-и…
Основой является микроконтроллер фирмы Microchip Attiny24а, почему-то не популярный в народе, но свободно продающийся в разных корпусах, я использовал в корпусе SO-14.
Даташиты на него можно почитать тут:
ссылка
Файл прошивки можно скачать тут:
ссылка
Пара слов по прошивке. Фьюзы можно не трогать. Контроллер с завода идет с прошитыми фьюзами:
Brown-out detection disabled.
Serial program downloading (SPI) enabled.
Internal RC oscillator 8 MHz, start-up time PWRDWN/RESET 6CK/14CK+64ms.
Divide clock by 8 internally.
Единственный фьюз, который стоит прошить: «Watch-dog timer always on», но если вы этого не сделаете- ничего страшного не произойдет, собака по-любому включается в программе.
Я шью программой SinaProg 2.1 посредством программатора USBASP V2.0, купленного на алиэкспрессе. Он умеет шить контроллеры на напряжении 3,3 вольта, что дало мне возможнось некоторой модернизации программы на уже собранном железе. Но есть один неприятный подводный камушек… Иногда контроллер на этом напряжении отказывается инициализироваться и старательно делает вид, что его вообще не существует. Причину такого безобразного поведения я не нашел (да и не особо искал). Если шить при 5 вольтах питания- все без сучка и задоринки. Однако, пять вольт- уже недопустимый для индикаторов уровень напряжения, пара ниточек вполне может перегореть. Поэтому настоятельно рекомендую СНАЧАЛА прошить контроллер, а уже ПОТОМ запаивать индикаторы. Или хотя бы отпаивать «общие» выводы индикаторов от схемы на время прошивки. Разумеется, внешнее питание от схемы на время прошивки в любом случае надо отключать.
Пояснения по схеме: С1, С2, С6, R1, R3, R5 поставить обязательно (конденсаторы- как можно ближе к микросхемам), прочие резисторы и конденсаторы можно не ставить- все входы контроллера «подвязаны», я эту рассыпуху вешаю исключительно «чтоб наверняка».
Кнопкой S1 увеличивается счетчик часов (один раз в секунду) по кругу, кнопкой S2- счетчик минут (один раз в секунду, счетчик секунд микросхемы при этом каждый раз обнуляется) по кругу.
Поскольку ресурс индикаторов всего лишь 10 000 часов- в схеме предусмотрена возможность их гашения выключателем S3. При этом схема продолжит работу, лампочка-точка между индикаторами будет мигать. О лампочке будет ниже, она работает в таком режиме, что практически бессмертна. Если вы не намерены гасить индикаторы- оставьте вывод 13 ни к чему не подключенным.
Если вы не хотите чтоб лампочка-точка мигала, а хотите чтоб горела постоянно- посадите вывод 12 на землю, в противном случае- можете оставить не подключенным.
В качестве первичных часов я применил микросхему DS3231m. Даташит на нее тут:
ссылка
Она хороша тем, что не требует внешнего кварцевого резонатора, поскольку имеет встроенный mems-резонатор повышенной (по заверению производителя) точности. Думаю, всяко точнее, чем дешевые китайские кварцы. Кстати, микросхема предусматривает возможность программной подстройки резонатора, но у меня таковой необходимости не возникло. DS3231m бывает в SO-8 и SO-16 корпусах, я использовал восьминогий, но шестнадцатиногий дешевле и шире распространен. Однако, нумерация выводов у него другая- имейте в виду. Микросхема предназначена для работы с «двойным» питанием, переключение между основным и резервным источником выполняет сама. В качестве источника резервного питания лучше всего применить батарею 2032, однако, если вы не хотите заморачиваться с резервным питанием- вместо С2 запаяйте перемычку (не оставьте болтаться в воздухе, а именно перемычку!). Резервная батарея нужна, чтобы ход часов сохранялся, когда отсутствует основное питание. Кушает её только микросхема первичных часов, остальная схема при этом обесточена. На одной 2032 DS3231m может прожить несколько лет.
Часть третья: блок индикации.
Динамическая индикация на этих лампах оказалась невозможной (пробовал и так, и этак- не получилось)- нити накала слишком инертны, поэтому пришлось применить статическую. В основе блока- регистры сдвига 74HC595. Даташита не привожу- по этой микросхеме полным-полно отличных статей, она достаточно древняя, очень удачная, и не выпускал ее только ленивый. Всего применено четыре микросхемы, включенные последовательно- по количеству индикаторов. Я нарисовал две, чтоб было понятно как именно они соединяются. При повторении схемы соблюдайте очередность! Данные (по линии Data) приходят на вход регистра единиц минут, далее с его выхода попадают в регистр десятков минут, потом- в регистр единиц часов, потом- в регистр десятков часов. Не наоборот! Линии Clock и Latch для всех четырех микросхем общие.
К выходам микросхем подключены уже наши лампы, но не просто так, а через ключи на полевых (mosfet) транзисторах. Нить накала кушает на трех вольтах ток примерно в 19 миллиампер. Чисто технически- постоянный ток через любой выход микросхемы- аж 25 мА, но при этом суммарный ток через вывод Vcc или GND микросхемы не должен превышать 70 мА. Таким образом, подключать индикаторы к регистрам напрямую нельзя- все семь сегментов (для отображения цифры 8) микросхема просто не потянет, допустимый ток будет превышен вдвое. В качестве ключиков я применил сдвоенные N-канальные полевички АО6800, но прекрасно подойдут любые другие маломощные мосфеты (например, мои любимые АО3400- очень дешевые).
В качестве ключей также можно применить очень распространенную дарлингтоновскую сборку ULN2003, но в этом случае придется поднять напряжение питания до 4х вольт (увеличив номинал резистора R1 в блоке стабилизатора до 680 КОм).
Нумерацию выводов индикатора я указал для версии с 9 выводами. Поскольку существовали также индикаторы в исполнении с 14 выводами- я указал заодно какой конкретно сегмент к какому выходу подключается. Вместо ИВ-16 можно применить ИВ-9, они отличаются только наличием «точки» под цифрой, этот сегмент висит на втором выводе- он нам не нужен.
Справочный листок на лампу можно почитать тут:
ссылка
Отдельно про маленькую лампочку. В качестве лампочки-точки я применил СМН-6.3-20-2, очень распространенная и дешевая индикаторная лампа. Она расчитана на работу с напряжением 6,3 вольта, при этом ток, потребляемый нитью, составляет 20 миллиампер. Это дало мне возможность повесить ее напрямую на ногу контроллера, без ключа. Бонусом я получил то, что при вдвое сниженном напряжении питания яркость нити лампочки полностью совпала с яркостью нитей индикаторов! При этом ресурс лампы расширился до космических масштабов, потому ее гашение не предусмотрено. В крайнем случае недолго и заменить… Если вы будете использовать дарлингтоновские ключи- включите последовательно с этой лампой диод 1n4148, чтобы уравнять яркости. Если вы будете использовать какую-то другую, более мощную лампу- не вешайте ее на ногу контроллера напрямую, а обязательно примените ключ!
Обязательно попытайтесь повторить это дома- чтобы осень стала теплее и уютнее.
P.S. Ради мешканцiв України завантажив прошивку на іншу хмару:
ссылка У кого еще проблемы с Яндексом- качайте тут.
Словом — терминология.
Терминология, брат…
ЗЫ: это вот в этих пиках такая убогая EEPROM, которая может не сохранять данные при выключении питания? :))
Раз EEPROM в пиках не сохраняется, значит и DS3231 можно прошить. :)
В DS3231 мы также программируем, скажем так, память данных — EEPROM. Но эти данные при перезагрузке питания DS3231 теряются.
Таким образом нет ничего ошибочного в утверждении, что DS3231 программируется. Кому как удобнее, так и называет.
Нет, в ней мы записываем значения в регистры, некий аналог SRAM. И эти значения сбрасываются (всегда, а не «могут») при выключении питания.
Вы утверждаете, что программную память (которую означают как flash) в контроллере можно изменить самой программой?? Что-то новое…
Как по-Вашему, обновляют прошивки без использования отладочных средство — через USB, через COM-порт, с карт памяти, с флэшек? К примеру, как та же Ардуина через ком-порт прошивается?
Вы вообще уверены, что у Вас достаточно знаний в этой области, чтобы ввязываться в такие споры? :) У меня вот уже сложилась уверенность, что знания Ваши очень поверхностны :)
С оговоркой — если в контроллере прописан загрузчик.
Загрузчик — это просто часть прошивки в той же самой флэш-памяти. Он точно так же прошивается в микроконтроллер, как и любая другая прошивка. Ситуации, когда для этого используется встроенный заводской загрузчик, довольно редки. И да, сам загрузчик так же может быть обновлен, как и остальная прошивка.
Как выгладит собранный вариант.
«Динамическая индикация на этих лампах оказалась невозможной- нити накала слишком инертны, поэтому пришлось применить статическую. » — странно. По идее наоборот, даже лучше должно было получиться, без мерцания.
Когда динамическая индикация- на нитку подано напряжение не в течении всего времени свечения, а в течении этого времени, поделенного на количество индикаторов, если совсем грубо говоря. Нитка просто не успевает раскалиться. :( А то было б хорошо, конечно… Если снизить частоту переключения максимально- мобыть что получится, но тогда лампы стопудово будут «мерцать» (пока одна разгорается- остальные гаснут). Как вариант- задрать напряжение на сегменте- чтоб калился побыстрее, но перегореть не успевал. Но это надо проверять экспериментальным путем (сделав стенд с динамической индикацией и постепенно задирая питание ламп), мне было лень. Кроме того- неизвестно что будет со сроком службы в таком варианте… В общем, на мой взгляд- дело гиблое.
В статике светятся даже при одном вольте. Но еле-еле…
Как раз от стабилизатора можно избавиться.
Но косяк в программе/завис мк может оказаться для индикаторов фатальным
Синеву категорически не одобряю (не нравится), питание через диоды- тоже. Падение напряжения на диоде не постоянно, а зависит от тока через диод и кучи прочих факторов.
В остальном- все правильно сделали, единственное- к176ид3 не позволяет менять подключение выводов ламп «как хошь», там жесткое соответствие. Если вас это не напрягает- почему бы и нет? Я просто купил по случаю у китайцев 74hc595- вот их и поставил. :)
Однако…
Вот тут показана защита от переполюсовки: ссылка
А вот тут- защита от перенапряжения: ссылка
Обзоры тоже мои, пользуйтесь на здоровье. :)
Имейте в виду, что защита от переполюсовки «сложная»- потому что два источника тока- зарядное устройство и батарея. Если у вас только батарея без каких-либо зарядок и прочих источников- защита от переполюсовки делается на одном-единственном мосфете без каких-либо исчо элементов, погуглите.
По защите от перенапряжения: китайский TL431 у меня в этой схеме работать отказался. «Фирменный» работает аки часы.
1. Вопрос по питанию
В переносных конструкция напрашивается либо литиевая батарея либо литий-ионный (полимерный и пр.) аккумулятор
На сколько актуально здесь питание от 5В и дальнейшей преобразование до 3.3 импульсным стабом?
При такой разности входа и выхода КПД линейного стаба будет примерно эквивалентен импульснику (ведь там тоже потери на катушке и диоде)
Более того, стабилизатор можно вообще не ставить. ИВ на накале вполне работает с 4В и уж тем более остальные микросхемы нормально будут работать.
Зато сразу поставить зарядку на том де 4056 (или даже корпус поменьше взять
2. По поводу динамической индикации мне кажется все наоборот.
ИВам без разницы что на накале — переменка, постоянка. Инертность нитей только снизит мерцание цифр. Зато динамическая адресация позволит отказаться от регистров и сократить до 12 число транзисторов
3. Исходя из п1 — два источника питания — непозволительная роскошь. На крайняк воткнуть туда малюсенькую батарейку.
Зачем я все это пишу? Просто можно уменьшить габариты раза в 1.5 особо не напрягаясь с применением всяческих QNF корпусов и совсем уж маленьких деталей, когда размеры корпуса будут определяться исключительно индикаторами. Воткнуть туда литий-полимерную батарейку и получится вполне годный прибор похвастаться перед друзьями, а также как реквизит для участия во всяких ролевых сборищах и квест-румах
Исходник выкладывать не буду. По ряду причин…
1. Эффективность DC-DC около 80%. Примерно. Грубо говоря. Может и больше… Если стабилизатор линейный: 2 вольта уходит в тепло, 3 вольта уходят в дело, ток один и тот же. До 80% явно не дотягивает (заниматься расчетами мне лень), еще и жутко греется. Тепло надо как-то отводить- получаем здоровенный радиатор, проигрываем в габаритах. «Эквивалентен импульснику» он не будет. Диода в этой схеме нет, катушка- три витка, «потери» чисто теоретические. Касаемо напряжения накала: чем оно меньше- тем дольше срок службы. Лампы могут работать даже на 4,5 вольтах (производитель допускает), но долго не протянут. Все мучения с питанием- чтоб лампы прожили как можно дольше.
2. Выше в каментах это уже обсуждается. Пробовал. У меня динамическая индикация не получилась.
3. Резервная батарея нужна, чтобы часы сохраняли ход, когда отсутствует основное питание. Она как раз маленькая. Питается от нее только микросхема часов, и больше ничего. От резервной батареи индикаторы светиться не будут.
Габариты прибора в основном определяются габаритами индикаторов. Увы. :(
Дорогая только, зараза. :(
Вообще, даташит я глянул сейчас повнимательнее на нее- логическая часть на стандартных 5 вольтах у нее работает. 7 вольт- это «предельно допустимое». Для моей схемы не подходит, но еще существовали в мире лампы ИВ-13 (большие)- вот с ними можно использовать.