Nixie Clock, IN-12 + IN-15

Vladimir N. Shilov 323a432bfd Error fix. 2 years ago
.vscode 1e28ef3ff7 Delete HAL search path. 2 years ago
3D e74201e8a7 Clock Body 3D models. 3 years ago
Drivers 7157ed2ded Separate FLASH memory region for settings store. 2 years ago
Inc db3bc53655 Added tube refresh. 2 years ago
MDK-ARM a66c7428b2 Work. But not was expected. 2 years ago
Src 323a432bfd Error fix. 2 years ago
hw 6c6ee6f1c8 Version 3 of hardware. 3 years ago
.gitignore b6f7b26314 .gitignore for vscode. 3 years ago
MNC-IN12x5.cbp b4b765b6cf Begin create board module. 3 years ago
Makefile a707bf31d8 Added Flash Read/Write. 2 years ago
ReadMe.txt b4ed321a29 Improve HSV2LED. Added View/Edit Day/Night Hour/Bright/Mode/Colour. 2 years ago
STM32G030.svd 7bdc52c81a Added VSCode project. 3 years ago
flash.cmd 09f863d405 Src init. 3 years ago
in12x5.jlink ff005fd1fa It works. 2 years ago

ReadMe.txt

Часы по озарению
[IN12 IN12 IN15 IN12 IN12]

Одна плата, вертикальный корпус.
RGB-подсветка, "погодный" датчик BME-280.

MCU - STM32G030K8.
Управление катодами - TPIC6B595.

=====
05.05.2021

И снова - раньше нужно читуть даташиты...
у TPIC6B595 уровень логической единицы - 0.85 от питания, т.е. 3.3В логики тут
никак не хватает. К счастью, MOSI и SCK на FT выводах - переключил в OD и
подтянул резисторами с наружи на +5В. Вывод LATCH придётся переносить на 26-ой
вывод -- PA15.
Исправил схему и плату.
---
12.07.2021

Переход на новую версию железа.
---
04.09.2021

Вторая версия показала, что нужно переходить на третью - для гашения
индикатора необходимо убирать анодное напряжение, с 50В на катодах они не
гаснут - горит всё, хватает утечек тока в TPIC6B595.
---
07.09.2021

Закончил третю версии схемы и платы - с индивидуальным управлением анодами
ламп. Опыты показали, что писк на частоте 100 Гц отсутвует, на частотах 200 и
больше - появляется.
---
30.09.2021

Правка софта под третью версию железа.

Таймеры 1 и 3 пока 100 Гц.
PWM:
TIM1_CH1 - PWM_1
TIM1_CH2 - PWM_R
TIM1_CH3 - PWM_G
TIM1_CH4 - PWM_B
TIM3_CH1 - PWM_5
TIM3_CH2 - PWM_4
TIM3_CH3 - PWM_3
TIM3_CH4 - PWM_2

Таймер 14 попробую использовать для "блинка" - 0.75 сек вкл, 0.25 сек выкл.

может стоит Т14 пинать по прерыванию в начале каждой секунды в режме one
pulse mode? тогда будет синхронизация со сменой секунд. пока оставлю в
качестве идеи.
---
12.01.2022

Наконец то запустил первый таймер.
На очереди - SPI.
И глобальное причёсывание.
И HSV2RGB...
---
17.01.2022

Засады на каждом шагу...
Какая-то лажа с оптимизациями. Код из Кейла не работает. вернее не
"тикает", хотя минуты вроде меняются. Наверное, нужно код прервааний
оборачивать в "-O0" или как-то так.
---
01.02.2022

Предварительные итоги...
Пока условно успешно - всё запустил, всё работает, HAL_LL выбросил.
Код из gcc и Segger - не работает ни с какими уровнями оптимизаций.
Работает только Keil с клмпилятором 6-ой версии.
Код из Segger падает в HardFault, подозреваю, что с gcc таже беда.
Причём код из HAL_LL - всё работает. На урове Keil-а сровнял все регистры на
этапе инициализации. Отдебажить gcc (пока) нет возможности (лень заниматься).
В любом случае - очень странно...

Из хорошего - VSCode очень даже приятен. Segger тоже ничего, но горячие
влавиши совсем свои.
C::B скорее всего придётся хоронить - "плюсов" у него не осталось, поиск по
коду сломался или хз.

Из пока не реализованного - "бликование" разрядами.
Ничего не делал с ком-портом.
Не придумал ничего внятного по управлению/настройкам.

... бред... пришёл домой - всё работает.
ан нет - работает только с уровнем оптимизации "s", 2 и 3 - нет.
Ждём отладчик...
Segger убрал, в хардфаулт падает только он.
---
03.02.2022

Вчерашняя версия опять перестала работать под GCC...

Есть мысль повесить опрос кнопок на 16 или 17-ый таймер.

Получается, под GCC какая-то лажа с I2C - при инициализации получается
частота прерываний 4096 Гц.
---
07.02.2022

Информация, сохраняемая в FLASH:
час дня, час ночи - 2 байта;
яркость дня, яркость ночи - 2 байта (1 байт);
режим подсветки дня, режим подсветвки ночи - 2 байта (1 байт) - выкл/"радуга"/цвет;
код цвета дня, код цвета ночи - 2 байта (0..59).
Пока ужиматься не нужно - будет 8 байт, при необходимости можно сократить до 6-ти,
освободив 2 байта для чего-то другого.