Настольные часы на советском вакуумно-люминесцентном индикаторе ИВ-18. STM32F030 + MAX6921AWI + DS3231, питание от USB, повышающий преобразователь на NE555. Проект 2019 года.
Подробный разбор схемы и принципов работы — в статье на сайте: 0x0001 — ВЛИ (VFD) ИВ-18
Повышающий преобразователь на выходе даёт около 40 В, и выходной конденсатор сохраняет заряд некоторое время после обесточивания схемы. При наличии кардиостимулятора или других проблем с сердцем работа с этой схемой может быть опасна. Не прикасайтесь к токоведущим элементам при включённом питании и сразу после выключения.
Схема и разводка выполнены в DipTrace.
- schematics/sc_iv18_clock_schematic.pdf — схема в PDF
Проект создан в STM32CubeIDE (исходно версия 2019 года, совместим с актуальными релизами). Для открытия:
File->Import->Existing Projects into Workspace- Выбрать корень этого репозитория
- Build
Для работы с .ioc также потребуется STM32CubeMX
- Динамическая индикация (8 разрядов × 7 сегментов + точка)
- Режим отображения времени (
HH-MM-SSс мигающими разделителями) - Режим отображения даты (
DD.MM.20YY) - Режим отображения температуры DS3231 и дня недели (
NN°C D) - Автоматическое переключение режимов по таймауту
- Переключение режимов вручную кнопкой BTN_3
- Чтение времени/даты/температуры из DS3231 по I²C
- Отладочный вывод через USB-UART (
#define USE_USART) - исключён из кода - AT-команды (настройки/переключения режимов etc.)
Текущая прошивка — только отображение. Установка времени и даты
выполняется через закомментированный вызов DS3231_SetDateTime() в main()
(см. /* USER CODE BEGIN 2 */): раскомментировать, прошить, дать часам
один раз синхронизироваться, закомментировать обратно, прошить повторно.
Пользовательская настройка часов через кнопки задумана, но не реализована:
- Обработка
BTN_1— навигация по позициям внутри режима настройки - Обработка
BTN_2— инкремент/декремент значения на выбранной позиции - Циклы режимов
MODE_SETTINGS_*в основном цикле main loop - Переход в режим настройки долгим нажатием
BTN_3 - Сохранение настроек обратно в DS3231
Эти точки в коде помечены комментариями TODO.
Фиксирован в .clang-format в корне репозитория:
Применить форматирование ко всему проекту:
find Inc Src -name '*.c' -o -name '*.h' | xargs clang-format -iMIT.
Сторонний компонент xprintf (файлы xprintf.c, xprintf.h)
распространяется под собственной BSD-подобной лицензией — см. заголовок
внутри самих файлов.
Sergey Petrov / coder's lair
MANV ET MENTE - by hand and mind.
