ReadMe.txt 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. Часы по озарению
  2. [IN12 IN12 IN15 IN12 IN12]
  3. Одна плата, вертикальный корпус.
  4. RGB-подсветка, "погодный" датчик BME-280.
  5. MCU - STM32G030K8.
  6. Управление катодами - TPIC6B595.
  7. =====
  8. 05.05.2021
  9. И снова - раньше нужно читуть даташиты...
  10. у TPIC6B595 уровень логической единицы - 0.85 от питания, т.е. 3.3В логики тут
  11. никак не хватает. К счастью, MOSI и SCK на FT выводах - переключил в OD и
  12. подтянул резисторами с наружи на +5В. Вывод LATCH придётся переносить на 26-ой
  13. вывод -- PA15.
  14. Исправил схему и плату.
  15. ---
  16. 12.07.2021
  17. Переход на новую версию железа.
  18. ---
  19. 04.09.2021
  20. Вторая версия показала, что нужно переходить на третью - для гашения
  21. индикатора необходимо убирать анодное напряжение, с 50В на катодах они не
  22. гаснут - горит всё, хватает утечек тока в TPIC6B595.
  23. ---
  24. 07.09.2021
  25. Закончил третю версии схемы и платы - с индивидуальным управлением анодами
  26. ламп. Опыты показали, что писк на частоте 100 Гц отсутвует, на частотах 200 и
  27. больше - появляется.
  28. ---
  29. 30.09.2021
  30. Правка софта под третью версию железа.
  31. Таймеры 1 и 3 пока 100 Гц.
  32. PWM:
  33. TIM1_CH1 - PWM_1
  34. TIM1_CH2 - PWM_R
  35. TIM1_CH3 - PWM_G
  36. TIM1_CH4 - PWM_B
  37. TIM3_CH1 - PWM_5
  38. TIM3_CH2 - PWM_4
  39. TIM3_CH3 - PWM_3
  40. TIM3_CH4 - PWM_2
  41. Таймер 14 попробую использовать для "блинка" - 0.75 сек вкл, 0.25 сек выкл.
  42. может стоит Т14 пинать по прерыванию в начале каждой секунды в режме one
  43. pulse mode? тогда будет синхронизация со сменой секунд. пока оставлю в
  44. качестве идеи.
  45. ---
  46. 12.01.2022
  47. Наконец то запустил первый таймер.
  48. На очереди - SPI.
  49. И глобальное причёсывание.
  50. И HSV2RGB...
  51. ---
  52. 17.01.2022
  53. Засады на каждом шагу...
  54. Какая-то лажа с оптимизациями. Код из Кейла не работает. вернее не
  55. "тикает", хотя минуты вроде меняются. Наверное, нужно код прервааний
  56. оборачивать в "-O0" или как-то так.
  57. ---
  58. 01.02.2022
  59. Предварительные итоги...
  60. Пока условно успешно - всё запустил, всё работает, HAL_LL выбросил.
  61. Код из gcc и Segger - не работает ни с какими уровнями оптимизаций.
  62. Работает только Keil с клмпилятором 6-ой версии.
  63. Код из Segger падает в HardFault, подозреваю, что с gcc таже беда.
  64. Причём код из HAL_LL - всё работает. На урове Keil-а сровнял все регистры на
  65. этапе инициализации. Отдебажить gcc (пока) нет возможности (лень заниматься).
  66. В любом случае - очень странно...
  67. Из хорошего - VSCode очень даже приятен. Segger тоже ничего, но горячие
  68. влавиши совсем свои.
  69. C::B скорее всего придётся хоронить - "плюсов" у него не осталось, поиск по
  70. коду сломался или хз.
  71. Из пока не реализованного - "бликование" разрядами.
  72. Ничего не делал с ком-портом.
  73. Не придумал ничего внятного по управлению/настройкам.
  74. ... бред... пришёл домой - всё работает.
  75. ан нет - работает только с уровнем оптимизации "s", 2 и 3 - нет.
  76. Ждём отладчик...
  77. Segger убрал, в хардфаулт падает только он.
  78. ---
  79. 03.02.2022
  80. Вчерашняя версия опять перестала работать под GCC...
  81. Есть мысль повесить опрос кнопок на 16 или 17-ый таймер.
  82. Получается, под GCC какая-то лажа с I2C - при инициализации получается
  83. частота прерываний 4096 Гц.
  84. ---
  85. 07.02.2022
  86. Информация, сохраняемая в FLASH:
  87. час дня, час ночи - 2 байта;
  88. яркость дня, яркость ночи - 2 байта (1 байт);
  89. режим подсветки дня, режим подсветвки ночи - 2 байта (1 байт) - выкл/"радуга"/цвет;
  90. код цвета дня, код цвета ночи - 2 байта (0..59).
  91. Пока ужиматься не нужно - будет 8 байт, при необходимости можно сократить до 6-ти,
  92. освободив 2 байта для чего-то другого.