Недавно я получил письмо с embedded.com о новом микроконтроллере MSPM0C1104. Судя по фотографии из презентации производителя, возможное применение — умные кольца. Конечно, это не главный компонент в таких гаджетах, но один из важных. При этом цена на LCSC всего 0.84 $ в розницу.

Умное кольцо
Умное кольцо

Краткие характеристики

  • Ядро CPU: Arm Cortex-M0+

  • Частота: 24 МГц

  • Флэш-память: 16 Кбайт

  • ОЗУ (RAM): 1 Кбайт

  • Тип АЦП: 12-разрядный SAR, 1.5 Msps

  • Количество каналов АЦП: 3

  • Количество линий GPIO: 6

  • UART: 1 интерфейс, поддержка LIN, irDA, DALI, Manchester, Smart Card

  • Количество I²C: 1 интерфейс, 1 Mbps

  • SPI: 1 интерфейс, 12 Mbps

  • Напряжение питания: 1.62...3.6 В

  • Диапазон рабочих температур: от −40 до +125 °C

Распиновка
Распиновка

Что ещё интересно: не требует внешнего кварца — есть два встроенных генератора на 24 МГц (–2%…+1,2%) и на 32 кГц. Есть и DMA, что для такого крошечного МК довольно необычно. На каждом выводе до шести альтернативных функций. Встроен температурный датчик и измеритель собственного напряжения питания. Отладка идёт через обычный двухпроводной интерфейс SWD. Реализован мощный механизм защиты от чтения содержимого Flash и RAM.

Корпус
Корпус

Потребление

  • RUN: 87 µA/MHz

  • STOP: 609 µA на 4 MHz, 311 µA на 32 kHz

  • STANDBY: 5 µA с сохранением SRAM

  • SHUTDOWN: 200 nA

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

Что на этом можно сделать

Блок-схема
Блок-схема

Дальнейший разбор буду вести с точки зрения DIY-разработчика, не пытаясь охватить все возможные варианты применения.

Конвертеры протоколов

Первое очевидное применение — конвертеры протоколов. Многие интересные датчики и периферийные устройства имеют специфичные интерфейсы: однопроводные протоколы (1-Wire, DHT), последовательные с нестандартными параметрами, или вовсе аналоговые сигналы со сложной логикой обработки. Такой компактный чип может выступать мостом-адаптером, гармонизируя все эти разнородные интерфейсы в единую шину I²C или SPI для главного контроллера системы.

Например, можно подключить несколько таких чипов к одной шине I²C и управлять через них длинными гирляндами адресных светодиодов WS2812 для создания недорогого RGB-дисплея. Главный контроллер при этом работает только с одной шиной, не заботясь о специфике протокола WS2812.

Умные органы управления

Отдельно интересно применение в умных органах управления — кнопках и ручных энкодерах с RGB-подсветкой и звуковой индикацией. Один такой чип может:

  • обрабатывать дребезг контактов и логику нажатий (короткое, длинное, двойное, вращение энкодера);

  • управлять анимированной RGB-подсветкой;

  • формировать звуковые сигналы на пьезоизлучателе;

  • обмениваться с главным контроллером по I²C или SPI как готовое «умное» устройство.

Умные кабели и разъёмы

Миниатюрные размеры (корпус 1.5×1.5 мм) позволяют встраивать микроконтроллер непосредственно в разъёмы кабелей, добавляя им дополнительные функции:

USB-кабели с измерителем мощности:

Чип размещается в корпусе разъёма USB-A или USB-C и подключается к линиям питания через токоизмерительный шунт. Для реализации достаточно 5 выводов чипа:

  • 2 вывода для измерения напряжения на VBUS и падения напряжения на шунте (каналы АЦП)

  • 2 вывода для UART (TX/RX) или I²C (SDA/SCL) для передачи данных

  • 1 вывод GPIO для управления индикаторным светодиодом

Встроенный АЦП измеряет напряжение и ток, чип вычисляет мощность и энергию, а встроенная Flash хранит статистику. Информация передаётся через UART на недорогой OLED-дисплей в корпусе разъёма или по I²C в головное устройство.

Кабели с диагностикой контактов:

Для диагностики используются 3-4 вывода:

  • 1-2 канала АЦП для измерения падения напряжения на контактах (контроль сопротивления)

  • 1 встроенный температурный датчик (без дополнительных выводов)

  • 1 вывод GPIO для светодиодной индикации состояния (зелёный — норма, красный — проблема)

Чип периодически измеряет сопротивление цепи, сравнивает с эталонным значением и детектирует деградацию контактов. При превышении порога сопротивления или температуры активируется предупреждение.

Остающиеся 2 свободных вывода могут использоваться для кнопки сброса статистики или дополнительного интерфейса.

Удалённые АЦП

Интересно применение этих чипов как «удалённых» АЦП на гальванически изолированной стороне мощных преобразователей энергии. Высокая частота семплирования и привязка к внешнему триггеру делают их неплохим решением для синхр��нных измерений в системе с высокочастотным ШИМ. Дополнительно доступно аппаратное усреднение до 128 отсчётов, что разгружает главный контроллер от лишней обработки.

Даже без гальванической изоляции удалённые АЦП значительно упрощают топологию платы — аналоговую землю можно фрагментировать, размещая чип с АЦП непосредственно возле точки измерения. Цифровой интерфейс I²C или SPI гораздо менее критичен к помехам, чем аналоговые сигналы, что особенно важно в силовой электронике и многофазных счётчиках электроэнергии.

Теги идентификации

Дешевизна и малые размеры чипа делают его применение интересным в качестве «тегов» для различных компонентов в системе. Например, каждая плата, мотор или кнопка могут иметь такой чип с защищённым протоколом по I²C для идентификации, учёта ресурса использования и передачи сигналов перегрева или других событий.

Внутренняя Flash может работать как EEPROM для хранения конфигурационных данных и счётчиков. MSPM0 SDK включает готовые библиотеки эмуляции EEPROM двух типов: Type A для хранения больших блоков данных и Type B для работы с отдельными переменными. Это избавляет от необходимости использовать внешнюю EEPROM, экономя выводы и стоимость.

Средства разработки

Поддерживаемые компиляторы

MSPM0C1104 основан на ядре Arm Cortex-M0+, что обеспечивает широкую поддержку инструментов разработки. Поддержка компилятора означает наличие готового startup-файла (код инициализации после сброса) для конкретного микроконтроллера. В MSPM0 SDK присутствуют startup-файлы для всех следующих компиляторов:

Среды разработки (IDE)

  • Code Composer Studio (CCS) — бесплатная IDE от TI с полной поддержкой MSPM0, встроенным отладчиком и графическим конфигуратором SysConfig

  • IAR Embedded Workbench — коммерческая IDE с мощными инструментами анализа и отладки

  • Keil µVision — популярная среда для разработки на Arm

  • Visual Studio Code с расширениями для embedded-разработки

Инструменты конфигурации

SysConfig — графический инструмент от TI для настройки микроконтроллера:

  • Конфигурация тактирования

  • Настройка GPIO и периферии

  • Автоматическая генерация инициализационного кода

  • Проверка конфликтов ресурсов

  • Интеграция с CCS, IAR и командной строкой

SDK и библиотеки

MSPM0 SDK включает:

  • DriverLib — библиотека драйверов периферии

  • Примеры кода для всех модулей

  • CMSIS — стандартны�� интерфейс для Cortex-M

  • Документацию и руководства по применению

Отладка и программирование

Для программирования и отладки используется стандартный двухпроводной интерфейс SWD. Поддерживаемые отладчики:

  • XDS110 — встроенный отладчик на отладочных платах TI LaunchPad

  • J-Link от Segger

  • ST-Link (с ограничениями)

  • Любые CMSIS-DAP совместимые отладчики

Все инструменты и SDK доступны бесплатно на сайте Texas Instruments.

MSP Zero Code Studio

MSP Zero Code Studio
MSP Zero Code Studio

MSP Zero Code Studio — веб-интерфейс для визуального программирования микроконтроллеров MSPM0 без написания кода.

Основные возможности:

  • Создание приложений путём перетаскивания и соединения функциональных блоков на диаграмме

  • Готовые блоки для цифровых и аналоговых периферийных устройств, последовательных интерфейсов и обработки данных

  • Автоматическая генерация исходного кода и компиляция проекта

  • Загрузка прошивки в микроконтроллер или экспорт проекта для доработки в IDE

Доступен через браузер на платформе TI Developer Zone.

Как запрограммировать чип

Чип MSPM0C1104 программируется через штатный протокол и интерфейс SWD. Встроенного загрузчика (ROM bootloader) в этой модели нет, поэтому для первоначальной прошивки обязательно требуется SWD-программатор.

Если нужна возможность обновления прошивки непосредственно на плате без программатора, придётся самостоятельно реализовать загрузчик во Flash. Классический подход:

  • Загрузчик размещается в начале Flash и всегда активируется при запуске

  • Проверяет команду на обновление (по UART или I²C от главного контроллера)

  • При наличии команды принимает новую прошивку и записывает её в основную область Flash

  • После успешной записи передаёт управление основной программе специальной командой перехода

Это добавляет сложности в разработке, но позволяет обновлять прошивку под управлением главного микроконтроллера системы без внешнего программатора.

Комментарии (35)


  1. Luboff_sky
    26.11.2025 03:16

    Не, ну совсем неплохо.


  1. Arhammon
    26.11.2025 03:16

    с точки зрения DIY-разработчика

    С точки зрения большинства - DSBGA плохо сочетается с DIY, поскольку как минимум требует нормальную компрессорную воздушку...

    Пардон, оно в размере между 0402 и 0201 - это вообще нифига с DIY не сочетается ни при какой воздушке.


    1. Albert2009Zi
      26.11.2025 03:16

      Ладно воздушка. Для программирования и дебага нужна какая-то плата адаптер, т.е. придется сидеть разводить - заказывать - паять. В воздушку умеют многие, а в "альтиум - jlcpcb" уже поменьше...


      1. BigBeaver
        26.11.2025 03:16

        Зачем для swd плата адаптер? Любой J-link подойдет. А для jlcpcb есть EasyEDA. Она хоть и дурацкая, но десяток-то пинов сделать Альтиум точно не нужен.


        1. Albert2009Zi
          26.11.2025 03:16

          Альтиум я привел, как некий "CAD Editor в сферическом вакууме", EasyEDA или KiCad, да пожалуйста.

          Где я писал про способ программирования, причем тут J-Link? Вы к этой фитюле напрямую навесными проводами прямо к шарам цепляться собрались? Мда, тут без комментариев...


          1. BigBeaver
            26.11.2025 03:16

            В смысле? А если бы был другой корпус, то вы бы "напрямую навесными проводами" цеплялись? Потом же она в плату в любом случае ставится - оставляешь два пяточка и щупом программируешь, как и любой другой контроллер.


            1. Albert2009Zi
              26.11.2025 03:16

              Смотрите, я ответил на комментарий выше. Как я его понял: DIY для меня всегда сначала поиск, проба, т.е. я использую evaluation board от производителя или, если дорого, то делаю свою.

              А вы, как я понял, говорите уже о конечном проекте, т.е. все равно о готовой плате, которую вы сделаете, не важно в каком редакторе и также распаяете этот чип и подведете разъем или пятачки для программирования. Т.е. делаете тоже самое, о чем я говорил в своем первом комменте, к которому вы прицепились. В чем ваша критика тогда?


              1. BigBeaver
                26.11.2025 03:16

                А с этим почему надо подругому? Буржуи пишут, что за 6 баксов можно девборд купить.

                Моя критика в том, что если вы в принципе готовы это распаять, и вам есть, куда - проблем это прошить у вас не будет.


      1. 8street
        26.11.2025 03:16

        т.е. придется сидеть разводить - заказывать - паять

        Вот я уже лет 10 таким не занимался. Готовые платы с микроконтроллерами с Али по 200-500р перекрывают все DIY хотелки.


        1. Albert2009Zi
          26.11.2025 03:16

          Да, я только за. Вы абсолютно правы. На али не ходил. Но в пересчете на рубли, действительно эти платы стоят 600-700 руб на digikey и т.п. Надо было бы, тоже воспользовался бы готовой.


      1. Arhammon
        26.11.2025 03:16

        Как раз нормальную воздушку имеет, мне кажется, намного меньше количество людей, чем уверенных пользователей КАДов. Огромные вещи типа SO8 и воздушкой с вентилятором паяются, а мелочь - сорян, вентилятор мало дуть не может...


        1. Albert2009Zi
          26.11.2025 03:16

          ну это вам с ремонтниками надо спорить, у которых в сервисе вплоть до lykey 702 используются и при этом они и Aplle и весь остальной Samsung нормально ремонтировать умудряются, т.е. паяют ведь вплоть до 0201, маньяки :)

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


          1. Arhammon
            26.11.2025 03:16

            Кто сидят с 702 обычно всю компонентку носят на аутсорс, где есть и фен нормальный и термопро и умение их применять... просто элементарно прыгая между заменой, дисплеев, разъемов, батареек на 100500 видов аппаратов даже знаний толком не набрать...


    1. shlmzl
      26.11.2025 03:16

      С точки зрения большинства - DSBGA плохо сочетается с DIY

      Если DSBGA много рядов, то плохо сочетается с DIY, а если всего 2 ряда по 4 пина, то под микроскопом на эти пины с 0.3 мм шага наверное можно припаять провод 0.05 мм. Если проект изначально без печатной платы, то почему нет? К примеру адресный светоизлучающий элемент.


  1. BigBeaver
    26.11.2025 03:16

    Без 5V питания и толерантности портов почти все описанные примеры становятся нерелевантными. Посыл статьи не понятен, как и ЦА... вообще на нейронку похоже


  1. S-trace
    26.11.2025 03:16

    Чип размещается в корпусе разъёма USB-A или USB-C и подключается к линиям питания через токоизмерительный шунт.

    А без шунта никак?

    К примеру, почему нельзя линию CC на стороне заряжаемого устройства замкнуть на VCC (у них даже имена друг другу соответствуют!), а на стороне зарядки измерять напряжение между этими линиями (то есть, на шунте из самой жилы VCC)?

    Или даже лучше CC на GND замкнуть, чтобы не было большого напряжения и можно было низковольтными выводами измерять.

    Реально не понятно, зачем добавлять доп.сопротивление в кабель. По идее, это же можно реализовать на кабеле с двумя подобными чипами (один замыкает кратковременно CC на GND, второй измеряет)? Но наверное придётся в этот момент CC от разъёма отключать с обоих сторон. Или зарядка от такого сбросится?


    1. BigBeaver
      26.11.2025 03:16

      Это сработает только, если вы сами делаете подключаемое устройство. А в таком случае вообще не понятно, зачем вам измерительный шнур.

      А в реальности 90% китайских девайсов реализуют двупроводное подключение, вообще никак не задействуя ничего кроме линий питания, и СС просто в воздухе висит.


      1. S-trace
        26.11.2025 03:16

        в таком случае вообще не понятно, зачем вам измерительный шнур.

        Иногда было бы удобно иметь такой.

        Сейчас у меня есть Type-C тестер, но он добавляет два разъёма и свой шунт (что не добавляет стабильности). Это не очень удобно, зато даёт прекрасную возможность выломать разъём. Вот хороший мощный измерительный кабель с минимальным сопротивлением (и возможно с размыкателем линий данных) я бы взял.

        А про двухпроводное подключение - это да, боль. Его подключаешь, и ничего не происходит. И идёшь искать Type-A порт. Кнопочка включающая подтяжку CC (и тем самым запускающая зарядник Type-C PD на дефолтных 5 вольтах) тоже была бы приятным бонусом.


        1. BigBeaver
          26.11.2025 03:16

          Просто запаятьтуда кабель вместо штатного разъма.

          Ну а вообще, если в измерительный кабель добавить экран, то все плюсы обсуждаемого супер-нано-микроконроллера исчезают. Автор хоть и пишет про "Информация передаётся через UART на недорогой OLED-дисплей в корпусе разъёма" но че-то я таких не видел. Всё больше веет нейронкой.


          1. isden
            26.11.2025 03:16

            Вот типа таких?


            1. BigBeaver
              26.11.2025 03:16

              Ага. А теперь ссылку, где недорого купить такой дисплей для DIY применения. Слабо?


        1. Arhammon
          26.11.2025 03:16

          Боль - не только 2х проводное подключение, даже если китайцы СС разведут, с большой вероятностью захотят сэкономить 0,01 ценовый резистор и поставят только один и замкнут оба СС... с предсказуемым результатом...


    1. nixtonixto
      26.11.2025 03:16

      К примеру, почему нельзя линию CC на стороне заряжаемого устройства замкнуть на VCC (у них даже имена друг другу соответствуют!), а на стороне зарядки измерять напряжение между этими линиями (то есть, на шунте из самой жилы VCC)?

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


  1. Dima_Sharihin
    26.11.2025 03:16

    А что, TI снова официально продает продукцию в России?


    1. BigBeaver
      26.11.2025 03:16

      Официально или по факту?


      1. Dima_Sharihin
        26.11.2025 03:16

        Скажем хотя бы в том же режиме публичности (московский офис, официальные представители у клиентов), что был до февраля 2022 года

        Если надо покупать микрухи через три прослойки и везти контрабандой - ну такое, проще китайцев купить


        1. BigBeaver
          26.11.2025 03:16

          В чипидипе есть обсуждаемый камень, если меня не глючит. Это считается?


          1. LAutour
            26.11.2025 03:16

            Сроки доставки видели?


          1. arthuru1
            26.11.2025 03:16

            Они с диджика контрабандой скорее всего и возят, под заказ, через посредников


            1. BigBeaver
              26.11.2025 03:16

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


  1. HelloChris
    26.11.2025 03:16

    неплохой вариант для компактных устройств, cпасибо за разбор


  1. andi123
    26.11.2025 03:16

    Да, хорошая заявка на "умную пыль". Сразу хочется кластер в виде жилетки как у Вассермана, чтобы в каждой 5мм клетке был такой МК. И развлекаться распределением вычислений по карманам.

    В общем хочу транспьютерное полотно, чтобы можно было ножницами кроить.


  1. CrashLogger
    26.11.2025 03:16

    А как оно питается в умном кольце ? Для аккумулятора там места как будто нет. Интересно, можно ли сделать питание от термопары, работающей на разнице температур между внутренней и внешней повехностью кольца ?


    1. xSVPx
      26.11.2025 03:16

      Скорее всего нет, слишком маленькая разница. Пока вы эту температуру как-то в одну точку приведете она вся одинаковая будет уже.

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

      Яб скорее в часовой итп подзавод смотрел, руками всё-таки люди машут огого. Но прискорбно мало места, дешево не получится.