Недавно я получил письмо с 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

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

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

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