вторник, 18 декабря 2012 г.

Часы с будильником и термометром из подручных средств

Прекрасно понимаю что подобных проектов в сети валяется тоннами, но в этой реализации мне был важен не результат, а процесс, кроме того, преследовалось 2 цели.
Первая: поиграться с микросхемой RTC, присланой в бесплатных семплах горячо любимой мною фирмой NXP.
Вторая: сборка проекта под девизом "Ни копейки вложений", то есть ни одной купленой специально детали, все из подручных средств, надежно лежащих в заначках.
Итак, отталкиваемся от того что есть:
1. Мозг - Tiny2313. Было с избытком куплено под проект, лежат давно
2. Индикация - два двухразрядных семисегментника DA-11GWA зеленого цвета, выпаяны из древней ISA POST-карты.
3. Часы  - PCA2129. Очень вкусный девайс с генератором не требующим внешнего кварца.
4. Термодатчик - широко известный DS18B20. Уже висел за окном.
5. Корпус - старый и мертвый свитч Surecom.
6. Рассыпуха. Ну тут комментарии излишни.
О схемотехнике особо говорить и нечего. Катоды индикаторов на порт, управление анодами P-канальными полевиками, индикация динамическая. Часы подключены по шине I2C, датчик температуры, светодиоды индикации секунд, буззер будильника, кнопка его выключения тоже на порт и....все, лапы тиньки кончились. А так хотелось оставить UART для настройки часов с компьютера. Ну не беда, выкрутился программно. При подаче питания можно зажать кнопку и часы войдут в сервисный режим с отключеным термодатчиком и буззером, но включеным UART.
В целях экономии кода пришлось настроечный функционал урезать до минимума желаемого, всего 4 команды - инициализация настроечных регистров RTC, установка времени, установка дня недели и установка времени срабатывания будильника. Фильтр будильника по дням недели пришлось задать жестко - только будни. Чтобы даже это поместилось в маленькую память Тиньки немного покосил избыточную инициализацию периферии, автоматически генерируемую в CodeWizard. В результате 1023 слова или 99,9% занятой памяти :)
В силу конструктивных особенностей корпуса нормально вписать плату не вышло, индикаторы утоплены вглубь, но в пределах рабочей зоны комнаты обзор получился достаточный.

Пожелания, предложения принимаются на почту. Всем доброго дня!

Комментариев нет: