Обзор ЛанчПада MSP430 и тестовый проект

    Недавно, благодаря юзеру Dooez, я заказал себе на TI недорогой набор для поиграться холодными зимними вечерами.
    Буквально через несколько дней постучался ко мне «с толстой сумкой на ремне...» и замечательной коробочкой ФедЭкса курьер:

    Содержимое коробки меня тоже не разочаровало. Внутри была коробочка поменьше размером

    из которой последовательно были извлечены сама плата ЛанчПада:

    запаянные пакетики с еще одним процессором, коннекторами для платы и кварцем на 32кГц:

    коротенький шнурочек миниUSB

    и, как бонус, парочка наклеек


    Первым делом, конечно же, распаковываем плату и шнурочек и втыкаем в комп. Винда радостно предлагает поискать драйвера и, разумеется, ничего не находит. Не страшно. Качаем с торрентов пиратский IAR Embedded WorkBench (конечно, можно было бы взять триальную версию с сайта TI, но адепты церкви копиизма не ищут легких путей), и после установки в системе появляются программатор/отладчик и виртуальный COM-порт.
    Изначально в процессор прошита демо-программка, мигающая светодиодом в зависимости от температуры (да-да, проц при всей его простоте умеет мерить свою температуру), которую мы тут же затираем своей простенькой программкой «помигай светодиодом», эдакий «Hello, World!» для эмбеддеров.
    Особо хочется отметить возможность скачать с сайта TI архив с парой сотен крохотных (буквально по десятку строк) программ на Си и на Ассемблере, демонстрирующих особенности микропроцессора. Как только что-то не получалось — я просто загружал в процессор соответствующий пример, и в дебагере за несколько минут находил суть проблемы.
    Кстати, дебагер. Великолепная вещь! Брекпоинты можно ставить как на команду, так и на выполнение какого-либо условия, плюс возможность, остановив процессор, менять биты в служебных регистрах и тут же получать отклик в железе на плате. Или наоборот, смотреть прямо в регистрах процессора реакцию на подаваемое внешнее воздействие.
    Наигравшись вдоволь, возникла мысль слепить что-нибудь полезное. А на ловца, как известно, и зверь бежит.
    В старой дубовой китайской электроотвертке к этому времени как раз сдохли аккумы. А в загашнике валялись купленные по случаю новенькие железо-фосфатные аккумуляторы, до которых все руки не доходили:

    Главный плюс серии 430 (по словам TI) — в сверхнизком энергопотреблении. Процессор просто просится в какое-то устройство с автономным питанием. Вот и попробуем сделать контроллер отвертки вместо китайского барахла.
    Итак, раскурочиваем отвертку и безжалостно выкидываем ее унылое содержимое:

    и проверяем, что аккум отлично входит (если выломать пару перегородок) и еще остается место для небольшой платки контроллера:

    Прикидывается на коленке примерная схема внутренней электроники из тех деталек, что валяются по всяким коробочкам и пакетикам (кстати, потому критика подбора компонентов не принимается, паял из имеющегося в доме, не хотелось в мороз на радиобазар переться):

    Небольшое пояснение к схеме: для заряда используется USB порт. Он может выдавать 500мА при 5 вольтах, на аккумуляторе данного типа напряжение отсечки должно составлять 3.6 вольта (рабочее 3.3В), итого закладываемся на ток заряда 100мА при падении на ключе 1.4В, т.е. к сопротивлению ключа добавляем еще небольшой токоограничивающий резистор. Q2,Q3 нужны именно для отсечки, когда аккумулятор будет полностью заряжен. Плюс эта же отсечка срабатывает при перегреве.
    Q4 управляет мотором (переключение направления там сделано механически, поэтому мне не пришлось заморачиваться с full-bridge), он взят помощнее, т.к. мотор при старте берет до 3А от аккума.
    D1 уменьшает напряжение питания микропроцессора до допустимых величин.
    R14, R18 меряют напряжение на аккумуляторе, R16 и R19 меряют входное напряжение.
    S1 — большая кнопка на отвертке, включающая мотор. S2 и D2-D4 — крохотная платка (да, я не все китайское барахло выкинул) с кнопкой и тремя светодиодами, красным, желтым и зеленым, показывающими заряд аккума.

    Для начала подключаю к ногам ЛанчПада переменный резистор, изображающий аккумулятор, и плату с индикаторами. Мотор и ключ изображают светодиоды на плате:

    Добиваюсь на макете более-менее уверенной работы всех кусков программы и перехожу к сборке окончательной платы. Сначала проверяем геометрические размеры после установки ключей:

    Нормально, по размерам вписались, можно запаять запасной микропроцессор, навешивать на него необходимыке СМД-компоненты и делать все соединения с помощью тонкого МГТФ:

    (Да, на этой картинке уже собранная плата со всеми запаянными деталями. Провод в красной термоусадке — подключение программатора к процессору, потом будет убран)
    Теперь уже от моргания светодиодами переходим к кручению мотора. ЛанчПад легким движением руки превращается в программатор, а переменный резистор временно перекочевывает на готовую плату, дабы проверить критические пределы аккумулятора, не мучая сам аккумулятор:

    Попутно проверяем разные режимы сна для процессора. Даже при полностью включенном энергосбережении наш результат на полтора порядка выше заявленного в документации, что и неудивительно, учитывая резисторные делители для АЦП и схему управления Q2. Впрочем, 40 микроамперов вполне допустимый результат для нескольких ампер-часов аккумулятора. Десяток лет на одной зарядке процессор точно поработает, а там уже или шах сдохнет, или ишак:

    Ну все, светодиоды мигают как положено, напряжение меряется, перегрев (сымитированный феном) отключает нагрузку, зарядка при втыкании в USB включается — можно собирать.
    Аккуратно запихиваем начинку внутрь корпуса

    и скручиваем обе половинки

    теперь можно с чистой совестью залить свои исходники на общедоступный репозиторий, ведь главная заповедь поклонников копиизма «Информация должна быть свободной!». Кого заинтересовал проект — можно скачивать свежую версию исходников и альтиумовскую схему отсюда.
    Там, конечно, причесывать и причесывать — в софте до сих пор остались хвосты от первоначального варианта программы с FSM, в дальнейшем я от нее отказался в пользу sleep-modes, ну а на схеме нумерация элементов слегка странная после прогонов в симуляторе и стирания лишних частей.

    Как можно улучшить схему: ну как минимум вместо провода использовать миниUSB маму в корпусе отвертки, ибо болтающийся провод не по Фен-Шую.
    Еще вариант для эстетов: после Q2 ставится индуктивность и диод Шоттки по схеме импульсного step-down преобразователя, тогда микропроцессор с помощью ШИМ может заряжать аккум от любого входного напряжения.
    На микропроцессоре остался незадействованным последовательный порт — вполне можно (используя преобразователь типа СР2102 или FTDI) рассказывать компу статистику заряда-разряда аккумулятора.

    Сама конструкция будет потом положена в основу туристической аккумуляторной зарядки для мобилок/лампы для ночевок, умеющей заряжаться от Пелтье, солнечных батарей и динамомашинок. Но это уже тема для следующей статьи на хабр.

    PS: А вообще говоря, это просто разрыв мозга — что бы я подумал, если бы мне лет 20 назад сказали, что я буду сидеть за компом и программировать отвертку? Еще десяток лет, и научимся хакать зубочистки.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 31

      +1
      а чем LiFePO4 так хороши?
        +3
        Держат больше циклов заряд-разряд и отдают большие токи. Но емкость меньше унылых LiIon.
          0
          К низкой температуре, так-же плохо относятся как и LiIon?
            +1
            Да примерно то же, емкость падает (~половина на -40) но несколько легче отдает большие токи (в прочим, это справедливо для любой температуры).
            +1
            Думаю, самое главное — то, что заряжать их можно большими токами, а следовательно быстрее (4-5C).
            0
            Они не взрываются, в отличие от Литий-иона, хоть что ты с ними не делай, потому заряжать и разряжать их можно каким угодно током.
              0
              о, а вот это ценно. интересно попробовать их ко вспышке прикрутить…
                0
                Только надо помнить, что напрямую ими нельзя заменить ни литий-ионные (3.3в против 3.6), ни пару никуль-кадмиевых ( напряжение практически то же, но процесс заряда разный)
                  0
                  гм. ну дык при покупке батарей можно и зарядку под них взять. больше вопрос как адаптировать во вспышку. хотя есть идея, конечно — внешний батблок на 6хАА, как раз по вольтажу проходит.
                    0
                    Посмотрите у авиамоделистов, например, на hobbyking.com. Блок аккумуляторов и устройство зарядки/балансировки к нему. Вам нужно блок на 3 банки. На всяких радиоуправляемых вертолетах ставят маленькие и емкие аккумы.
                      0
                      да я знаю где смотреть. в тот блок надо 2p2s или 2s2p скорее пихать. хотя хороший вопрос, выдержит ли преобразователь в блоке такое… :)
            +1
            Осталось добавить регулировку частоты вращения двигателя при помощи ШИМ. Точней найти смысл в добавлении этого функционала.
              0
              Программно это сделать легко, но у меня мысль была не насчет ШИМа, а насчет Step-Up, слегка увеличить скорость и мощность мотора. Исходно мотор на 3.6 вольта расчитан (3 никелевых аккума), а я его кормлю 3.3 плюс падение на ключе. Соответственно у меня при работе отверткой стойкое ощущение, что она тормоз. Увы, повышатель такой мощности просто негде там внутрь всунуть, нужны немаленькие индуктивность и конденсатор.
              +2
              Просто замечательно! Прочитал с огромным удовольствием. Вы хорошо потрудились. Думал тоже заказать, но что-то не заказал. Начинаю жалеть.
                +1
                Ох уж этот ваш транслит, все же Лонч, а не Лаунч, мне кажется.
                  0
                  Согласен. Я сам сомневался, но я ленивый и мне облом лишний раз раскладку переключать. Поменял везде на Ланч — для косенсуса :)
                    +2
                    Есть устоявшиеся англицизмы. Вы же не будете говорить «инстОлляция» вместо «истАлляция», хотя первый вариант вернее с точки зрения первоисточника (install (ɪnˊstɔ:l))
                    0
                    Как достали коробки и пакетики в статьях. Трафик не жалко, но первую половину статьи они превращают в шлак.
                      –2
                      Да я и сам бы начал сразу с борды — но надо уважать традиции того места, где находишься.
                      Как в баайке про обезьян: «Потому что здесь так принято» :)
                        0
                        Не надо брать пример с обезьян. Тут хватает умных людей.
                      +1
                      проблема многих статей приходится все прочитать чтобы понять о каком девайсе идёт речь и цель проделаной работы
                        0
                        Название есть в заголовке. Или этого мало?
                        • UFO just landed and posted this here
                            +1
                            не сразу понятно что LaunchPad это среда разработки и прошивки, в теме на которую вы ссылаетесь в первой ссылке, рассказывается о готовой платформе, не о среде прошивки и разработки.
                            Вот потом сидишь и думаешь зачем роботизированую плату лепить в отвёртку.
                            Ну и наконец нигде в начале не описано что делает тестовый проект, какая его функциональность. Я, например, прочитал всю статью и понял что там прилепили контролёр, он по своему реализует логику, но как я не понял.
                              0
                              Я вообще сперва думал, что будут тестировать очередной бенто-бокс.
                            0
                            Вот ещё бы сам MSP430G можно было удобно купить в наших краях (Украина), цены бы ему не было. А так я случайно ножки сломал при попытке вытащить и теперь ХЗ где замену ему искать.
                              0
                              TI Store доставляет продукцию в Украину, к тому же бесплатно. Микросхемы там не закажешь, зато вот такие платы — пожалуйста.
                              +2
                              Я обычно в имраде покупаю — оплатил и через пару дней забрал. Конечно, наценка 300%, но зато привозят даже такие позиции, которые больше нигде не найти. Конкретно эта MSP430G2553 15 гривен. Но в TSSOP — надо уметь паяльник держать.
                              За те же деньги есть MSP430G2131 в DIP
                                +1
                                Вот это уже хорошо. С платой два МК это конечно здорово для поиграться, но первые же два устройства и что дальше делать? :) К тому же TSSOP — вообще здорово, его даже быстрее на плату ставить, чем сверлить 20 дырок.
                                0
                                Аккумуляторы хорошие, но не меньше ёмкость и Саморазряд при комнатной температуре: 5-10% в месяц.
                                У меня есть такая-же выкрутка, но у нее же кроме электроники есть мотор и редуктор которые тоже нужно менять. Вообще крутит медленно и слабо. Хотя для эксперемента наверное самое оно — не жалко.
                                  0
                                  > перегрев (сымитированный феном) отключает нагрузку

                                  Я бы перевернул плату контроллером к батарейке (и еще желательно чем-то улучшить тепловой контакт с батарейкой). А то так непонятно, температуру чего он меряет. Ну и на этапе зарядки тоже есть смысл контролировать температуру.

                                  > итого закладываемся на ток заряда 100мА при падении на ключе 1.4В, т.е. к сопротивлению ключа добавляем еще небольшой токоограничивающий резистор.

                                  А не маловат резистор? 1.4В/0.1А=14Ом, а у тебя на порядок меньше. Так что ток получается около 0.5-1А (зависит от ограничения USB-порта).
                                  Ну и вообще, насколько я знаю, эти батарейки, как и LiIon, заряжаются напряжением при ограниченном токе, а не током. Если уж ставить МК — можно было более соответствующий правильному алгоритм заряда сделать.

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