Основы
Функционально схему любых подобных часов можно разделить на несколько блоков: источник питания всего устройства, преобразователь питания самих индикаторов, блок отсчитывания времени с календарём, сам индикатор или индикаторы (в зависимости от идеи и реализации) и какой-то микроконтроллер, который этим всем будет управлять. Так же «по вкусу» можно добавить, например, какой-то способ связи устройства со внешним миром, как сделал я для эксперимента и расширения функционала. И «пищалку» для будильника, конечно.
Питание
Всё питание часов будет осуществляться от обычного USB. В данном случае — с разъёмом mini (он же - Mini-B) USB, — этих разъёмов у меня в наличии достаточно много и нужно их куда-то тратить.
Индикатор
У ВЛИ всех типов и размеров есть несколько важных особенностей. Так как по внутреннему устройству они — суть те же радиолампы, только ориентированные на «видимость» во время работы, то для работы им нужны основное (анодное) напряжение и напряжение накала.
Видим, что напряжение на входе USB идеально совпадает с напряжением накала и можно питать накал непосредственно от USB, само собой, добавив небольшой резистор, который, в идеале, можно подобрать для конкретной имеющейся лампы.
Внимание! В отличие от «обычной» радиолампы, свечение накала не должно быть видно. Или видно совершенно минимально, на границе видимости и только в темноте. Иначе нить накала перегорит очень быстро, особенно, если лампа уже была в употреблении какое-то время до этого.
Дальше нужно организовать то самое напряжение анода-сегмента. И здесь ещё одно предупреждение.
Внимание! Если вы носите искусственный водитель ритма (кардиостимулятор) или имеете какие-то другие проблемы с сердцем, то работа с повышающим преобразователем, описанным ниже, может быть смертельно опасна для жизни! Не касайтесь токоведущих элементов при подключённом питании, особенно — выходных цепей преобразователя. Так же, выходной конденсатор будет сохранять свой заряд некоторое время после обесточивания схемы. Автор не несёт ответственности за ваши действия, всё написанное дальше описывается «как есть», на ваш страх и риск.
Повышающий DC-DC преобразователь построен на базе микросхемы-таймера NE555. Так как минимальное напряжение питания у неё - 4.5В, то она без проблем будет работать от того же USB. И, если все номиналы подобраны верно и компоненты исправны, то «схема работает сразу, дополнительных регулировок не требует», как писали раньше в технической литературе.
Здесь джампер XS1 исключительно
лишь для удобной отладки и быстрого обесточивания преобразователя, если что-то пойдёт не так.
Индуктивность катушки L1 можно подобрать по ходу дела, номиналом
100..300мкГн.
Теперь сам ВЛИ. Рассмотрим его распиновку
.
Как это работает: например, нам нужно отобразить цифру 7 в самом дальнем знакоместе от выводов - в 8-м разряде. Для этого нам понадобятся разряды (аноды-сегменты) а - вывод 12, в - вывод 10, е - вывод 4. На эти выводы подаём анодное напряжение от преобразователя, описанного выше, те самые 40В. Однако, теперь надо нужно «указать» на конкретный сегмент. Для этого нам нужно подать это же напряжение и на необходимую сетку. Для нашего 8-го разряда это будет сетка с выводом 18. После этого засветятся необходимые нам аноды-сегменты в нужном разряде. Используя этот принцип, подавая анодное напряжение на нужные нам аноды-сегменты для соответствующих цифр (и букв) и на сетку, мы получим свечение нужных сегментов. Перебирая цикл достаточно быстро (10-30 раз в секунду) мы получим динамическую индикацию и визуально светящиеся во всех разрядах нужные нам символы.
Коммутация. Теперь нам нужно как-то управлять подключением нужных анодов-сегментов и сеток к анодному напряжению. Конечно, сам микроконтроллер не сможет этого сделать, так как рабочее напряжение МК существенно ниже 40В. Для решения этой задачи существуют специальные микросхемы — драйверы ВЛИ.
В этом устройстве будет использован подобный драйвер для многовыводных ВЛИ - MAX6921AWI. Здесь можно посмотреть pdf с datasheet'ом.
Как видно, для этого устройства эта микросхема подходит идеально. Рассмотрим ещё блок-схему.
6931 и 6921 не отличаются блок-схемой — она взята из того же
datasheet'а.
Из дополнительного интересного: подавая ШИМ на вывод BLANK можно регулировать яркость свечения ВЛИ.
Вход микросхемы представляет собой обычный сдвиговый регистр, то есть, посылать на неё данные можно с помощью шины SPI микроконтроллера.
Cхема подключения
Здесь, для упрощения, не отображены остальные подключённые выводы МК..
Так же показан вывод накала индикатора ИВ-18 — VFD_FIL.
При проектировании я не обратил внимание на суть вывода BLANK, поэтому он здесь подключён на массу, то есть, яркость никак не регулируется (всегда максимальная), как и программное отключение отображения.
Основной принцип
Из микроконтроллера по SPI отправляем 20-битный пакет (слово), представляющий собой подготовленную битовую маску для включения/отключения соответствующих сеток и анодов-сегментов. Самые старшие 3 бита — выводы микросхемы OUT17, OUT18 и OUT19, — в моём случае не используются, но отправлять их всё равно нужно.
Общее питание логики
Здесь минимальный набор конденсаторов: по одному электролитическому и керамическому конденсатору на входе USB и один электролитический с двумя керамическими — на выходе регулятора напряжения.
Часы
Подключение к I2C производится стандартным способом.
Так же использую стандартную батарейку CR2032 — вывод V_Bat, —
для сохранения хода часов в обесточенном состоянии.
Для упрощения на схеме все остальные выводы, кроме питания и подтягивающих резисторов для шины I2C, показаны не подключенными.
USB/UART
Для упрощения на схеме все остальные выводы, кроме функциональных, показаны не подключенными.
Кнопки, «пищалка», кварц
Конденсатор и резистор для каждой кнопки — для простейшей схемы антидребезга.
Для упрощения на схеме все остальные выводы, кроме функциональных, показаны не подключенными.
Полная схема
Сборка