Берегите себя

Берегите себя

17 июл. 2017 г.

Часы для мотоцикла "Simple": LED + Attiny 2313 + DS1307

Большой сказ о том, как Серж велосипед изобретал часы делал, без кукушки, увы.

Большие корпорации жадные. Очень. Это аксиома. Слышал, что в одной из компаний, производящей накопители, пришлось создать тайный отдел, задачей которого было сэкономить один доллар в конечной стоимости единицы продукта. Они корпели долго, но в итоге справились. Если помните СССР, то там на производстве постоянно вносились "рацухи", которые позволяли высвободить N человеко-часов или сэкономить пять болтов М6 при строительстве комбайна Дон. Так он легче станет на 125 граммов, а в масштабе страны можно будет пуд или два железа сэкономить! Тому кто подал и внедрил - полагалась денежная премия (в доле с начальником, конечно), а самым упоротым настойчивым удавалось получить авторское свидетельство и даже отжать у государства какое-то небольшое бабло.
Но я отвлекся. Инженеры Yamaha (Ямаха кабусики гайся, епрст!) создали прекрасный легкий мотоцикл YBR125. Этот драндулет нетороплив и вечен, (но при этом и своенравен!) как воды Тэнрю-гава. При попутном ветре и тощей жопе наездника он вполне может разогнаться до 100 км/ч! Оснастили инженеры этот дришпак двигателем, колесами, тормозами, спидометром и даже рулем, но пожадничали на часы. Раз ты такой не быстрый, значит и не спешишь, а раз не спешишь, тогда зачем тебе вообще часы? Да и вряд ли ты на ЭТОМ поедешь в закат, а в городе и на столбах часы есть.
Вообще, видно, что экономили японцы на всем как умели, спасибо что моторесурс оставили.
И вот, бывает едешь на таком неторопливом и вечном мотоцикле японского производства, ветерок трепет, постигаешь ками вещей вокруг, прогоняешь магацухи, и тут неожиданно ментально соскальзываешь в мирское. По ощущениям, твои колеса давно должны были переехать первую змеюку в Монголии, ан нет, ты еще у поворота на г. Видное и пилить тебе еще минут семь. Нет, без часов просто зарез.
Все началось с переходника, кои у меня валялись после изготовления платы металлоискателя.

Заготовка
Именно он попался мне на глаза первым и он стал первым камнем в фундаменте будущих часов. В переходнике есть место для монтажа микроконтроллера в корпусе SO20 и разводка его ножек на две ряда штырей с шагом 2,54 мм для имитации корпуса DIP20 плюс место для нескольких блокировочных конденсаторов по питанию. В отверстия для штырьков очень хорошо встал четырехразрядный сверхъяркий LED-индикатор (c общим анодом). Других четырехразрядных индикаторов у меня нет.
Имея базу, стал размышлять дальше, накидывая в блокноте идейки и очертания будущего ТЗ. Питание 12-15В. Контроллер ATTiny 2313 в SO20 - некоторые подозрительные экземпляры, отбракованные мной с рабочих приборов по признаку глюкавости, вполне исправно дергают ногами в моих игрушках. И тактовую частоту в 12 мГц вполне держат, пробовал. Видно, те сбои зависят от полноты использования флэша или EEPROM.
Автономным часам нужна крепкая память - отсюда появилась необходимость пригласить в конструкцию микросхему RTC - RealTimeClock. Собственно она и есть Главная Хранительница Времени, а процессор лишь иногда обращается к ней по шине i2c с вопросом "Который час, ваше Высочество?", и получив цифры, спешит выплюнуть их на дисплей. Из имеющихся RTC доступной оказалась DS1307. Я уже баловался с ней в составе Ардуино, ее присутствие здорово облегчает код часов, можно выкинуть из программы все таймеры, формирующие тактовый сигнал и не заморачиваться на прерывания и кварцевание тиньки. Точное время (а еще и дату и даже год) RTC хранит в регистрах своей памяти, так что если отключить основную жрущую часть схемы (процессор и светодиоды), часы будут "тикать" в мозгах микрухи.
Любые RTC требуют двух важных компонентов, источника дежурного питания и кварца. С кварцем все понятно, ей нужен часовой, 32768 Гц, качественные образчики которых в изобилии попадаются на материнских платах - маленький цилиндрик рядом с батарейкой это он. А вот трехвольтовая батарея типоразмера 2032, это  #бандура и #дичь!
Чертеж литиевого элемента 2032

Холдеры

И так немаленькая блямба, с держателем B или D разрастается до совершенно недопустимых величин, а я все же хотел остаться в габаритах базового "бывшего переходника". А без держателя таблетку ставить не стал, ибо ненадежно.

Батарейка не влезает!!!

Удалось спереть найти батарейку CR1225, она заметно поменьше и отлично входит в габарит корпуса вместе с держателем. Да, емкость меньше, всего 50 мА·ч, против 225 мА·ч, но даже если ее хватит только на год, я удовлетворюсь. Подпитка памяти микросхемы DS1307 требует  наноампер, так что срок службы  "таблетки" скорее сведется к саморазряду.
Писать с нуля программу часов в 2017 году занятие для упоротых одержимых. А я ленив и рационален, как яйцеварка. Нет, я конечно могу (самообразования для) поковырять чужой код или посношаться с таймерами и предделителями. Но в данном случае сношения излишни. Старина Гугл по запросу %часы% %конфигурация "железа"% четко выдает подходящие мне конструкции пачками, только выбирай. А я еще и не брезглив.
Выбрал эту схемотехнику, с http://www.tehnari.ru/f170/t95348/. Минимум рюшечек, 6 прошивок с разными функциями  и под любой индикатор, минимум деталей, динамическая индикация. Несмотря на то что автор отчасти схалтурил и схему выложил упрощенную, в виде экрана симулятора, чутье подсказало - оно!
Схема



Фьюз-биты

Алгоритм работы прошивок с коррекцией:
Нажатие только кнопки +часы - меняет значение "часы"
Нажатие только кнопки +минуты - меняет значение "минуты"
Одновременное нажатие двух кнопок- меняет значение корректировки секунд в сутки, границы значения -9.....+9. Корректировка производится в 22:00 ежедневно.
В архиве 6 видов прошивок.1. Общий анод без коррекции
2. Общий катод без коррекции
3. Общий анод, разделитель между 2 и 3 сегментом (одна точка)
4. Общий анод, разделитель между 2 и 3 сегментом, 3 и 4 сегментом (две точки)
5. Общий катод, разделитель между 2 и 3 сегментом (одна точка)
6. Общий катод, разделитель между 2 и 3 сегментом, 3 и 4 сегментом (две точки)
Недостатки у схемы, конечно же, есть: 1 - общие аноды подключены напрямую к процессору без внешних ключей (перегружаются четыре ноги проца), 2 - установка времени через целых две кнопки, олдскульно, но вполне достаточно одной, 3 - нет функции даты, а ее, с учетом возможностей RTC, довольно легко организовать программно (но при этом сильно нагромоздится управление, что нехорошо!), 4 - 7805 это самый мой страшный сон, греется, а с учетом внешнего  питания 14-15В оно еще и сильно греется, 5 - нет "железных" подтяжек на VCC с портов кнопок. В общем, часы делал любитель с уклоном в программизм. Тем не менее, конструкция выглядела работоспособной и удовлетворяла моим требованиям.
Прошил я прошивкой №3 "ОА с коррекцией" тиньку и отложил ее в сторону. После чего запаял индикатор, и, перерезая лишние соединения ножиком, и, наводя новые проводом МГТФ-0,07, привел "переходник" к схеме часов, соединив нужные ноги тиньки с нужными ногами индикатора, не забывая ставить резисторы типоразмера SMD 0603 на катоды сегментов. Сделав это, накинул процессор на место.
Понадобилась еще одна плата. На ней я разместил стабилизатор LM2940 (та же кренка, но LDO, ставить ее было удобнее из-за корпуса ТО263), RTC DS1307, ее кварц и батарейку. 
Первые испытания

Эту плату вырезал по размеру переходника из стеклотекстолита и вырезал нужные соединения ножиком. Соединив платы электрически, залил их лаком и слепил на двухсторонний скотч, обработав стык герметиком. Да, кнопки. 
Поставил кнопки
Перед загермечиванием конструкции, взял пару SMD кнопок, вырезал под них переходную платку, и поставил рядом с индикатором, уперев кнопки в его торец, чтобы они не проминались от нажатия. Припаял эту платку на штыри и, подключив, пролил эпоксидкой, стараясь не залить сами кнопки.
Заработали часы сразу и без вопросов. Установка часов реализована хорошо, дается секунда или две, чтобы войти в режим коррекции, защита от случайного нажатия отличная. Режим компенсации ухода вызывается по нажатию двух кнопок одновременно и дает поставить величину ухода в секундах, именно на эту цифру будет изменяться показания часов каждые 22:00, при условии что процессор в это время будет запитан от бортсети, что вовсе необязательно.
Осталось сделать корпус. Доделать. Взял две пластмассовые заготовки от половин корпуса нашего рабочего приборчика, обрезал их до нужного размера, в верхней половине прорезал окно под индикатор, вклеил туда стеклышко из матового поликарбоната. 
Работаю над корпусом

Из остатков крышки какого-то ноута выпилил торцы корпуса, слева вывел провод питания, справа - толкатели кнопок. Бутерброд из плат вклеил на двухсторонний скотч в нижнюю половину, выровнял верхнюю и на эпоксидку наклеил торцы корпуса. Несмотря на тщательную подготовку поверхностей, адгезия смолы к пластику вызывает у меня недоумение. Щели между верхней и нижней половинами корпуса залил, опять же, герметиком (этот липнет ко всему и засыхает намертво). А, еще момент. Крепление на руль сделано из клипсы для водопроводной пластиковой трубы, ПП-труба 20 мм, а руль 22 мм - защелкиваются часы на руле прочно, не шевелятся даже.
Питание на часы должно подаваться по задумке с кнопки габаритов, но я не выдержал, сделал им временную запитку от АКБ через выключатель, заодно поставив рядом модуль вольтметра с алиэкспресса (были у меня вопросы к состоянию АКБ и генератора). Массу взял все там же, с руля, подсунув латунный лепесток в клипсу на руле.
одна цифра потому что выдержка короткая, а индикация динамическая
Что же, теперь я с часами. Стоило ли столько ковыряться, спросите вы? Да, повозиться пришлось, больше всего сил ушло чтобы сделать монолитный и, наверное, герметичный "батончик" и еще больше времени, чтобы оформить все сделанное в виде поста, который вы  сейчас прочли. У китайцев, наверняка, такие часы продаются в готовом виде, но разве это путь самурая? Терпение и смирение - вот наши главные помощники, а дорога в тысячу ли всегда начинается с первого шага.

***
Труд не напрасен,
Если душу ты вложишь.
Иначе он мёртв.
(Черкашин П.Р.)
---------------------------------------
еще разок, единым блоком:
схема SPL JPG
фьюз-биты
прошивки 6 шт.


1 комментарий: