Умные часы своими руками за 1500 рублей. Часть 2 – плата и компоненты

    По многочисленным просьбам, выкладываю исходники схемы часов с описанием компонентов.


    Схема и плата делались в программе DipTrace.
    Когда я заказывал компоненты для часов, был немного другой набор, но из-за отсутствия тех моделей, которые я хотел, пришлось взять эти:

    Стабилизатор:

    • модель: ADP3338AKCZ-3.3-RL7;
    • корпус: SOT-223;
    • входное напряжение: 2,7V – 8V;
    • выходное напряжение 3,3V;
    • максимальная нагрузка: 1A (взял с запасом);
    • максимальное собственное потребление в режиме Regulation: 3mA при 100mA нагрузки, 0,19mA при 0,1mA нагрузки; в режиме Dropout:, 0,6mA при 0,1mA нагрузки;
    • схема подключения:



    Часы реального времени:

    • модель: DS1337U+;
    • корпус: 8 uSOP;
    • входное напряжение: 1.8V – 5.5V;
    • максимальное потребление: 0.15mA (если смотреть на график, при входном напряжении 3,3V, потребление ~40uA);
    • интерфейсный протокол: I2C;
    • схема подключения:



    Bluetooth:

    • модель: HC-06;
    • корпус: свой;
    • входное напряжение: 3,0V – 4.2V;
    • максимальное потребление до подключения: флуктуации в диапазоне 30-40 mA (~25mA), после подключения: 8mA;
    • схема подключения:



    Аккумулятор:

    • модель: LIR3048;
    • корпус: свой;
    • выходное «нормальное» напряжение: 3,6V;
    • «нормальная» емкость: 200mAh;
    • напряжение зарядки: 4,25V;
    • ток заряда: «нормально» 0,5C (100mA), макс. 1C (200mA);
    • максимальный ток разряда: 2C (400mA);


    Контроллер управления зарядкой аккумулятора:

    • модель: MCP73831T_2ACI_OT;
    • корпус: SOT-23-5;
    • входное напряжение: 3,75V – 6V;
    • потребление не интересует;
    • схема подключения:


    Ток зарядки регулируется резистором по формуле:

    Т.к. ток зарядки аккумулятора 100mA, то резистор на 10kOhm.

    USB — UART:

    • модель: CP2102-GMR;
    • корпус: MLP-28;
    • входное напряжение: 4V – 5.25V;
    • потребление не интересует;
    • схема подключения:



    Микроконтроллер:

    • модель: msp430g2553ipw28;
    • корпус: TSSOP28;
    • входное напряжение: 1.8V – 3.6V;
    • потребление: зависит от режима энергопотребления, включенных модулей, частоте процессора и т.д;
    • подключение выводов: Подтягивающий резистор 47kOhm и конденсатор 10nF на землю (не более 2.2nF при использовании SBW или JTAG интерфейса);


    Экран:

    • модель: nokia 1202;
    • корпус: свой;
    • входное напряжение: 3,3V;
    • схема подключения:


    Взято отсюда

    Остальное:

    Рычажок для управления часами был взят от старого коммуникатора. Он имеет 3 положения: вверх, центр, низ. Так же, на всякий случай, добавлена кнопка перезагрузки МК. Вибромотор от того же коммуникатора. Кварц для ЧРВ из комплекта Launchpad’а. Порт miniUSB взят от сломанного картридера. Светодиод для индикации состояния зарядки не помню откуда =)

    Схема


    Осталось соединить все блоки вместе и посмотреть что получится.
    Ага, между аккумулятором и землей получается 2 конденсатора на 1uF (стабилизатор) и 4,7uF (зарядка). Берем только больший на 4,7uF. Да, и между 5V от USB и землей опять 2 конденсатора на 1uF (USB-UART) и 4,7uF (зарядка). Опять берем только больший на 4,7uF.
    Схему в студию!

    Для экономии энергии, питание BT необходимо отключать, когда он не используется. Для этого заведем пин питания на ножку МК. Но! В таком состоянии BT не запускался. На сколько я помню, нагрузка на каждом пине ограничивается 40mA и видимо этого не достаточно, чтобы включить BT. Поэтому подключаем питание BT к двум пинам. (конечно можно было бы сделать ключ питания на транзисторах, но это лишнее место на плате для компонентов + усложнение цепи и т.д.).
    Так же хочется знать, когда BT подключен, а когда ждет подключения. Для этого заведем пин BT LED на ножку МК. При включенном состоянии без подключения на этом пине лог. последовательность 01010101… В подключенном состоянии на нем всегда лог. 1.
    Для измерения напряжения на аккумуляторе был подключен делитель напряжения на двух резисторах к входу АЦП. Номиналы резисторов выбирались так, что бы на входе АЦП при зарядке (максимальное напряжение 4,25V) было меньше 3,3V.
    Стабилизатор напряжения выводит 3,28 — 3,29 вольта при входном напряжении больше 3,4 и примерно на 0,1 — 0,2 вольта меньше чем входное, когда на входе от 2,7 до 3,3 вольта. А при входном меньше 2,7 отключается.

    Разводка платы


    Разводка платы производилась вручную. Изначально было всего несколько пинов у МК к которым необходимо было подключить внешние компоненты, а именно:
    • интерфейс I2C: пины P1.7 (SDA) и P1.6 (SCL);
    • USB – UART для перепрошивки: пины TEST, RST, P1.1(TX) и P1.5(RX);
    • делитель напряжения: любой вход АЦП(P1.x).

    Сначала размещались все компоненты на плате. Потом проводилась связь для перечисленных ранее пунктов. Затем разводка всех остальных компонентов.



    Правые нижние 5 пинов BT должны быть изолированы от платы. Кварц припаивается на подложку, соединенную с землей. Для удобности пайки, рядом с первыми пинами микросхем, поставлены точки.

    Исходники схемы и платы тут

    Вот вроде бы и все. Как всегда жду с нетерпением вопросов и комментариев.

    Часть 1 — Начало
    Share post

    Similar posts

    Comments 36

      +1
      А контроль разрядки аккумулятора?
        +1
        Через делитель напряжения.
        –1
        Попробуйте пульсометр запихнуть. Светодиод+Фотодиод. Включать только при необходимости — на пробежке например.
        И для простоты зарядки можно сделать док-станцию — просто на корпус вывести два контакта.
          +2
          Пульсометр, акселерометр — шагомер, цветной экран. Много чего можно добавить. А на счет док-станции — вариант, но опять же нужен корпус. (*задумался о покупке 3D принтера=)*)
            +1
            Смотря какой принтер. Для ежедневного использования предпочту более «традиционные» способы изготовления корпуса либо прибегну к услугам сервиса с ЧПУ станком или SLS принтером.
              0
              >задумался о покупке 3D принтера

              Зачем покупать? Можно заказать печать по интернетам, для одного раза-то.
                +3
                Если Вы готовы сделать трехмерку корпуса для Ваших часов, могу распечатать на принтере бесплатно. Напишите в личку.
                  +1
                  Вот уже второй добрый человек предлагает распечатать бесплатно. Написал.
                +4
                Светодиод+Фотодиод.

                И все? А чуваки из Mio и не знают, что все так просто и делают кучу электроники:
                image
                  0
                  И всё — электроника уже есть (смайл).
                  А вот вся эта электроника в Mio поставлена для того, чтобы измерять пульс непрерывно — во время движения.
                  На это пока замахиваться не будем (ну или вставим пульсометр в наушники, ещё один смайл).
                    +2
                    Если пульсометр не меряет пульс во время движения, он не особо полезен.
                      0
                      Но это не мешало производить и даже продавать такие пульсометры.
                +1
                Потребление МК — можно указать из даташита. Типовое — 250мкА (это при работе на 1MHz).
                В режиме спячки — 0.1..0.5мкА

                Забавно, я разводил так же «наколенке» плату для подачи звонков. С транзисторным ключом, реле и т.д.
                Всё получилось даже красиво. Спаял, протестировал — классно, реле щёлкает, всё работает. Настало время подключить звонок… После первого же срабатывания схемы под нагрузкой пришлось гуглить про правильную разводку, про «цифровую» и «аналоговую» землю, про разные, ранее казавшиеся совершенно излишними RC-цепочки подавления наводок и т.д. Те ещё грабли были!
                А ещё была схема питания — литиевый аккум + сеть. Разделённые диодами Шоттки, чтоб друг на друга не влиять, и при этом было как можно меньше лишних потерь. И схема определения заряда батареи — так же как у вас, резисторный делитель со средней точкой на АЦП МК, чтобы вовремя вывести на дисплей «батарея разряжена!». Резисторы взял 20М + 10М (исходя из того, что если МК в режиме спячки потребляет 0.5мкА, то пускать в схему измерения напряжения бОльший ток — уже расточительно). Казалось бы, что может быть проще? А вот, оказалось что обратного тока через диод вполне достаточно, чтобы «пробить» измерительную цепь и заставить МК поверить, что батарея заряжена. Про то, что напрямую на Шоттки гораздо меньше падение — все знают. А вот про то, что обратный ток у них намного больше — никто не говорит.

                А у вас как? Какие грабли были? (неужели всё «с первого раза» завелось и заработало?)
                  0
                  Были, конечно, но я старался их все пофикстить на уровне макета, что бы не перепаивать компоненты. Единственные грабли которые есть в этой плате, это то, что BT LED идет на ногу P3.3, а на порту P3 нет прерываний, приходится программно слушать состояние BT.
                  Программных косяков было больше.
                    0
                    Ну, вообще-то про обратный ток диода шоттки тоже все знают, кто не гнушается непосредственно произвести измерения и прочитать даташит.
                    Впрочем, это тоже возможный путь приобретения опыта.
                    Кстати, с измерительной частью можно было бы решить вопрос потребления путем отключения делителя когда измерение не происходит. А оно происходит скорей всего примерно 1 раз в секунду за сотню или и того меньше микросекунд. в десяток тысяч раз можно было бы уменьшить потребляемый ток измерительной цепью, за счет использования простого полевика в нижней части делителя(использовать выход контроллера не выйдет из-за наличия защитных диодов на входе).
                      0
                      Спасибо за совет, учту на будущее.
                        0
                        В смысле, использовать ещё один вывод для управления полевиком?
                        Причём, как я понимаю, полевик, управляемый напряжением ~1В — не самая распространённая разновидность.
                        Не, не пойдёт. Выводы ВСЕ задействованы; свободных просто нет!
                          0
                          Да вообще-то не самая-то и редкая… сейчас многие полевики LogicLevel открываются надежно при 1.25В. Даже ширпотреб вроде 2N7002 открывается уже при 3В, на 3.3В логике его достаточно будет чтобы надежно притянуть делитель к земле. Да, даташит говорит диапазон напряжения открытия — 0.8В-3.0В при токе в канале 1мА, при токе 250мкА — 1.0В-2.5В.

                          Если выводов нет, можно задействовать какие-то редко используемые, ну и что что делитель будет подключаться чаще чем нужно, всеравно какая-то экономия будет. Например, использовать шину данных какого-то редко опрашиваемого датчика. Когда нужно измерить напряжение дожидаемся конца опроса и дергаем линию — она на датчик влиять не будет, но позволит измерить напряжение. А то что датчик будет опрашиваться например каждую секунду короткими импульсами — это не беда, скорей всего это происходить будет не в спящем режиме и на лишнее потребление будет пофиг. На вывод подсветки завести к примеру… в спящем режиме включение подсветки раз в минуту на десяток микросекунд останется незамеченным, а ток через светодиод подсветки можно ликвидировать обычным НЧ-фильтром из RC-цепочки: на короткий импульс 10-20мкс она не пропустит, но даже ШИМ на 1-2кГц будет прекрасно проходить. А когда будет работать подсветка нам будет плевать на какой-то там измерительный делитель.
                            0
                            Зачем лишние рассуждения?
                            Возьмём элемент 2032. У него паспортная ёмкость около 200мАч.
                            Возьмём измерительный шунт-делитель 20М+10М.
                            Прикинем… На 200 лет (грубо) хватит!

                            Ура! Быстрая оценка сэкономила ногу МК а также время и деньги (за полевик).
                              +1
                              С таким делителем любая грязь на плате будет влиять на показания, конденсат, наводки… начнется влияние входного сопротивления аналогового входа… 100К уже начинают влиять внешние факторы.

                              Я уже делал как-то вольтметр на дискретных элементах, 1МОм резистор и показания вольтметра уже зависят от влажности воздуха… разница подвал-1й_этаж составляла 10%.
                                0
                                Всё зависит от условий.
                                Если делать какого-нибудь промышленного робота в суровых условиях — наверное, да.
                                А для герметичной коробочки, которая находится круглогодично в термостатированном помещении в одних и тех же условиях — уже без разницы.
                                К тому же батарея там исключительно как backup. Если вдруг выключат свет — МК вырубит всех потребителей и останется исключительно в режиме «тикают часы», от батареи. Никакой индикации, никаких реле (да и нет смысла щёлкать этим самым реле в отсутствии потребителя). Учитывая, что свет у нас обычно не отключают надолго, а он максимум «моргает» — в принципе, туда было бы достаточно вообще поставить ионистор, или даже не ставить ничего (понадеявшись на выходной конденсатор фильтра БП). Но так чуть-чуть спокойнее. Прошедший год работы показал полную работоспособность и стабильность схемы.
                                  +2
                                  Даже в пределах комнатных условий — уже суровые испытания для техники.
                                  Речь же шла о умных часах? которые всегда с собой и в тех еще условиях пот, влага…
                                  Тут ведь и коробочка не герметичная, и батарея используется как основная… Кстати, герметичная коробочка еще хуже — в ней постоянно будет образовываться конденсат(если не герметизировать коробочку в абсолютно сухой атмосфере или в атмосфере инертного газа), изменятся давление от температуры — условия далеки от идеальных.

                                  Я все платы критичные к работе покрываю лаком после сушки — дополнительная мера защиты от воздействия влаги на параметры схемы.
                                  Но на единственную меру защиты надеется не стоит, лак может покоробится со временем даст микротрещины и т.д.

                                  В конце концов, даже с нормальным делителем возьмешь такие часы на море, а там влага порой очень жестокая и ядрёная — подействует даже на низкоомный делитель.
                                    0
                                    Не, не совсем.
                                    Это топик про умные часы.
                                    А комментарий, на котором возникло обсуждение — про автомат подачи звонков.
                                    Там условия совсем иные.
                                      0
                                      Не так уж и отличаются условия. Я уже говорил что против высокоомных резисторов в измерительных цепях, ибо пользы от них если они при разряженной батарее будут говорить схеме что все нормально? Тогда уж, просушить плату и покрыть лаком, PLASTIC-70 например 2-3 слоя.
                      –2
                      А не могли-бы Вы перерисовать схему по-нормальному? А то глаза чуть не вытекли. Заранее спасибо.

                      Заинтересовал такой момент: какую роль выполняет стабилизатор (ADP3338AKCZ)? Стабилизирует напряжение с аккумулятора до 3.3 вольт? Зачем?
                        0
                        Идея в том, что LiPo батарейка просаживается до ~2.7V, чего мало для питания того же bluetooth или экранчика, но, зачекав даташит на представленный регулятор, кажется он реально бессмысленный, ибо не работает в режиме повышающего бустера, тобишь после ~3.5V питание будет просаживаться вместе с батарейкой.
                          +3
                          Автор, посмотрите на LTC3240-3.3 — может подойдет. Еще BT на ногах контроллера — как-то неочень, у него нет ни AT команды, ни пина для сна/выключения?
                            0
                            Хорошая штуковина, пригодится в дальнейшем, спасибо!

                            В datasheet'е написано что у него нет sleep mode. Возможно после его перепрошивки что-то и появится.
                              0
                              Вот это конвертер, очень здорово, спасибо!
                              Да еще и с такой нагрузочной способностью… Я когда-то смотрел в сторону конденсаторных конвертеров, но почитал пару даташитов, везде токи были очень маленькие, и забыл о них.
                                0
                                Эх, поглядел повнимательнее. Эффективность очень низкая, 64 процента при повышении, 87 при понижении.
                                Лучше стандартный бак-буст собрать, там повыше будет. А этот только для того чтобы высосать батарейку по-максимуму и не заморачиваться с компонентами.
                              +1
                              Исходники выложил, можете сами
                              перерисовать схему по-нормальному
                              если глаза режет.
                              Стабилизирует, с максимума в 4,25V, который может быть при зарядке аккума что бы не спалить МК и экран
                                +1
                                Да, пожалуй схема похожа не на схему а на практически готовый NET-list… крайний случай декомпозиции и абстракции…
                                0
                                Почему выбрали DS1337U+, а не DS3231?
                                Да, дороже, но зато точность хода (accuracy) у DS1337 +10ppm, а у DS3231 ±2ppm
                                  0
                                  Потому что DS1337 мне подходили по параметрам, да и всю линейку RTC не просматривал. Кроме RTC забот хватало.
                                  +2
                                  Вот нравится мне такой подход. Когда кроме видео рабочего устройства выкладывают схемы.
                                  ps: Ещё бы исходники прошивки на Гитхаб и было бы вообще прекрасно ))
                                    +1
                                    Будет, но не все сразу=)

                                  Only users with full accounts can post comments. Log in, please.