My Nixie Clock IN-12 / Мои часы на ГРИ ИН-12
Решил пустить в дело накопленное добро.
2019.01.18
---
2019.01.30
Первая версия, годная для проверки железа - чтение из RTC и отображение
минут и секунд, раз в секунду переключение точки. Без кнопок.
Чтение из RTC сделано без малейших проверок, в случае проблем вместо
времени будет мусор.
---
2019.05.27
Опять застой.
Платы собраны и работают.
Забыл сделать запитку для ионисторов - пришло паять навесом.
Были нюансы с анодным питанием - нужен конденсатор на вывод обратной связи MC.
Был писк дросслей - почти избавился. !!! не забыть исправить схему и плату.
Конденсаторы на кнопках - не дают работать SPI для прошивки.
Само расположение кнопок - неудачное. Они должны "смотреть" назад, а
получилось, что вверх. Нужно или переставтиь на заднюю часть платы - для
уменьшения проблем с корпусировкой, или ставить другие - чтобы толкатели
выходили на заднюю стенку. Как вариант - убрать кнопки совсем, настраивать
через ком-порт.
Обработчик кнопок взял из "Старт 7231", который туда тоже взял из прошлого проекта.
---
2019.05.28
Кнопка1 - "выбор", 2 - "+", 3 - "-".
Пока не придумаю, как лучше сделать мигание разрядами...
---
2019.05.29
При нажатии на кнопки "1"/"2" должно переключать отображение.
---
2019.05.30
Вчера ничего не заработало.
Сегодня вспомнил, что атмел с памятью работает слегка по другому.
Упростил таблицу состояний, переписал обработчик - по идее должно работать.
---
2019.05.31
Вчера всё получилось.
Начинаю внедрять настройку часов.
---
2019.06.01
Всё отлично. Есть один-два несущественных момента.
Первый релиз.
---
2019.06.03
Продолжаем.
Пониженная яркость с 22:00 до 06:00.
Переход на зимнее/летенее время. Есть нюанс - если запускать прошивку в зимнее
время - будет работать неправильно. Доделывать лень - и так норм.
---
2019.06.05
Пока сделал всё, что хотел.
Регулировку яркости от освещения вообще не хочу делать.
Вообще планирую в версии для себя выкинуть эту регулировку - мне она кажется
лишней. Разве что ночью часы буду стоят возле головы и направлены в лицо.
Сделал эту фичу отключаемой через дефайн в мейкфайле - 234 байта.
Хочу подключить DHT-22, использую ногу захвата 1-го таймера, на прерываниях.
Повторим алогритм: запускаем измерения подтяжкой вывода к земле минимум на 800
мкс, через 20-200 мкс датчик должен выдать 80 мкс "0" и 80 мкс "1", после чего
идут 40 бит данных. Каждый бит - 50 мкс "0", потом 26/70 мкс "1" для лог 0/1.
Аналазитором заметил, что в начале каждого байта "0" не 50 мкс а почти 70.
В мануале упоминаний не нашёл. Тайминги, естественно +/- плавают.
При самых длинных таймингах вся операция должна занятьт 5570 мкс + время
запуска. Т.е. таймер можно настроить на счёт до 6 мс, и в прерывании по
переполнению признавать факт таймаута.
Тактовая - 16МГц, предделители есть 8 и 64, так-как я предпочитаю меньшие
числа - ставим 64(8), и считаем по 4(0.5) мкс. Итого мы ждём такие интервалы:
- ответ на запрос через 5-50 тиков (40-400)
- преамбула 18-22 тика (150-170)
- 40 штук "0" - 12-14(96-110) + "1" - 5-8(44-60)/17-19(136-150) тиков
== 17-22/29-33 (140-170/232-260)
- таймаут - 1500(12000) тиков.
Для тестов думаю поднять USART, делать опрос датчика, полученную инфу
складывать в массив, показывать в терминал и переходить на следующий круг.
Для начала будем считать период (по переходу из "1" в "0"), массив на 42 байта.
Потом попробую считать только длительность 40-ка "1" данных и сразу записывать их в байты.
Что-то сделал. Скорость ком-порта 19200. +556 байт.
---
2019.06.06
Похоже, что DHT22 на прерываниях не светит. Такое впечатление, что постоянно
срабатывает прерывание Capture, и соответсвенно получается полная херь. Хотя в
режиме поллинга - всё нормально. Но при поллинге нужно блокировать прерывания
- а процесс опроса занимает порядка 4 мсек, а это время обновления одного индикатора,
хотя на гляз и не заметно. Можно пробовать синхронизировать эти события - запускать опрос
сразу после обновления одного из индикаторов.
---
2019.06.07
В целом - работает. Единственное - не сходится контрольная сумма, ни разу -
явно что-то не так делал. Работает без запрета прерываний.
Частоту обновления поставил 400 Гц - на 250 дрожат цифры.
Нужно пересчитать значения яркости для новой частоты.
10 уровней явно не получится.
Облагородил, причесал, настроил оптимизации.
Нужно всё проверить, новых идей больше нет.
Поисправлял.
Появилась мысль - отображать температуру/влажность по нажатию кнопок +/-.
А по таймеру можно показывать только ночью :-)