Александр Сыров, alexandr.syrov@eltech.spb.ru

32-х битные микроконтроллеры по цене 8-ми битных. Обзор семейств HK32F030M и HK32F0301M производства компании Hangshun

В связи с объективными трудностями доступности микроконтроллеров всемирно известных европейских, американских и японских производителей взор российских разработчиков и производителей обратился к производителям микроконтроллеров из Китая.

Благодаря большому объему инвестиций в китайскую полупроводниковую промышленность на сегодняшний день можно найти множество различных компаний, которые производят 32-х битные микроконтроллеры в основном на ядрах Cortex-M0, Cortex-M3 и Cortex-M4.

Одним из ведущих производителей такого рода продукции является компания Hangshun Chip Technology из Шеньженя[1]. Компания была основана в 2013 году и начала свою деятельность с производство микросхем EERPOM и NOR Flash памяти, чем и занимается до сих пор. В 2017 году они начали разработку 32-х битных микроконтроллеров и   выпустили на рынок совместимые по выводам и по софту семейства микроконтроллеров HK32F030/031/04A и HK32F103 на базе ядра Cortex-M0 и Cortex-M3. Как и множество полупроводниковых компаний в Китае, компания Hangshun является fabless компанией. Она разрабатывает и проектирует микросхемы EEPROM, NOR Flash памяти, микросхемы питания, микросхемы 32-х битных микроконтроллеров, производящиеся по топологической норме 130 и 40 нм.

Компания Hangshun сотрудничает с множеством различных клиентов из индустриальных и автомобильных отраслей в Китае. В 2021 году компания произвела более 200 млн микросхем и ее оборот превысил 74 миллиона долларов США.

На данный момент Hangshun производит множество различных 32-х битных микроконтроллеров. Это и базовые HK32F030/031/04A и HK32F103, малопотребляющие микроконтроллеры HK32L08x c током покоя 10нА, и супербюджетные HK32F030M и даже специальные автомобильные микроконтроллеры HK32ATUO39A, которые сертифицированы в соответствии требований AEC-Q100 и ISO26262. Компания также работает над новыми разработками, в числе которых микроконтроллеры на ядрах Cortex-M4, Cortex-M7, Cortex-M33 и RISC-V.

В данной статье хотелось бы подробнее остановиться на семействах супербюджетных микроконтроллеров HK32F030M и HK32F0301M на базе ядра Cortex-M0, которые вполне могут конкурировать с 8ми битными микроконтроллерами в ряде применений, а также могут рассматриваться как альтернатива микросхем от известных производителей: PIC, Attiny, Atmega, STM. На данный момент в этом семействе можно выделить 5 подсемейств, которые находятся в серийном производстве. Основные особенности данных подсемейств вы можете найти в таблице 1[2−5].

Таблица 1. Основные характеристики бюджетных семейств микроконтроллеров HK32F030M.
Итак, что мы имеем за цену 8ми битного микроконтроллера:
  • 32-х битный Cortex-M0 с частотой до 48МГц в 8−28 выводных корпуса;
  • До 32КБ FLASH и 4КБ RAM;
  • Наличие EEPROM почти во всех семействах;
  • Поддержка полноценного 12 битного 1MSPS АЦП с внутренней опорой;
  • Набор стандартных последовательных интерфейсов I2C/UART/SPI;
  • 4 таймера + AWU таймер для пробуждения в режиме STOP/STANDBY.

Одной из интересных особенностей, облегчающих жизнь разработчиков и производителей является также то, что микроконтроллеры данных семейств от компании Hangshun в 20 выводных TSOP корпусах совместимы по выводам с известным микроконтроллером STM8S003F3P6 (рис. 1).
Рис. 1. Расположение выводов у HK32F030MF4P6 и STM8S003F3P6
За цену 8-ми битного микроконтроллера очень даже впечатляющий набор характеристик. Хотелось бы, конечно, добавить аппаратный RTC, но для многих применений должно хватить и таймера AWU.

Система тактирования семейства микроконтроллеров HK32F030M подразумевает использование следующих источников тактирования в зависимости от семейства:
  • встроенный высокоскоростной генератор HSI c максимальной частотой до 32/48 МГц и точностью от -0,5% до +1,5 % на всем температурном диапазоне;
  • встроенный низкоскоростной генератор LSI c максимальной частотой до 114/128/60 КГц и точностью от -4 % до +4 % на всем температурном диапазоне;
  • внешний генератор с максимальной частотой до 32 МГ.

А что с потреблением этих семейств микроконтроллеров? В целом, в данных семействах микроконтроллеров довольно гибкая схема режимов потребления, что позволяет оптимизировать потребление различных устройств. Для разных семейств доступны различные режимы работы — активный (RUN), режим сна (SLEEP), режим глубокого сна (DEEP Sleep), режим STOP и Low-power STOP и самый малопотребляющий режим — STANDBY.

Типовое потребление в активном режиме составляет от 2,6 мА до 5,1 мА на максимальной частоте 32/48 МГц в зависимости от семейства [2−5]. И здесь мы видим явное преимущество по потреблению по сравнению с 8ми битными микроконтроллерами с учетом производительности ядра Cortex-M0 и работы периферии.

Минимальное потребление в режиме STANDBY для семейства HK32F0301M с работающим таймером AWU и схемой сброса от внутреннего низкочастотного генератора может достигать 5,89 мкА, а с полностью выключенной периферией — 20 нА [3].

На официальном сайте производителя имеется документация на все модели контроллеров на английском и китайских языках. Также можно найти DPAK библиотеки для сред разработки Keil и IAR. Для работы с данным микроконтроллером производитель также предоставляет библиотеки HAL и множество примеров кода по запросу[6].

Из аппаратных средств разработки компания Нangshun выпускает отладочную плату HK32F030M eval board (рис. 2), на которой по умолчанию стоит HK32F030MF4P6 в корпусе TSSOP20. На данной отладочной плате также имеется посадочное место для микроконтроллеров в корпусе SOP-8. На HK32F030M eval board реализованы минимально необходимые функциональные узлы для работы: кнопки, светодиоды, аналоговый вход c посадочным местом для потенциометра, внешняя EEPROM и NOR FLASH, сдвиговые регистры и посадочное место для 4-х семисегментных индикаторов, преобразователь USB-UART.
Рис. 2. Внешний вид отладочной платы HK32F030M eval board
Для работы с семейством HK32F030MxxxA/ HK32F0301MxxxA Нangshun выпускает отладочную плату HK32F030MG6P7A eval board (рис. 3), на которой по умолчанию стоит HK32F030MG6P7A в корпусе TSSOP28. На данной отладке реализованы следующие функциональные узлы: кнопки, светодиоды, аналоговый вход с потенциометром, внешняя EEPROM и NOR FLASH, преобразователь USB-UART.
Рис. 3. Внешний вид отладочной платы HK32F030MG6P7A eval board
Стоит отметить, что на данных платах не реализован встроенный программатор-отладчик, а выведен SWD интерфейс для подключения внешнего устройства (VCC, GND, SWDIO, SWCLK, NRST). Т.е. для работы с данным микроконтроллером нужно использовать внешний программатор-отладчик. Подойдет любое устройство, которое поддерживает SWD: J-Link, DAP-Link, U-Link и др.

Демонстрационные проекты (рис. 4) написаны с учетом схемы отладочной платы и могут быть использованы разработчиками в качестве отправной точки в написании кода для своих проектов.
Рис. 4. Демонстрационные проекты для микроконтроллера HK32F030Mxxx
В качестве тестового примера можем выбрать пример, в котором можно помигать светодиодом — HK32F030MF4P6_LED_Demo.
После установки DPAK в закладке Device появилась возможность выбрать MCU (рис. 5). В нашем случае выбираем HK32F030MF4P6.
Рис. 5. Выбор микроконтроллера HK32F030MF4P6
Затем собираем проект и приступаем к «прошивке» контроллера. На отладочной плате HK32F030M eval board отсутствует программатор, поэтому для заливки и отладки программы нужен внешнее устройство. В качестве внешнего программатора будем использовать WCH-Link, который представляет из себя DAP-Link и конвертер USB-UART. Данный программатор может программировать микроконтроллеры как на ядрах RISC-V, так и на ядрах ARM. После установки утилиты WCH-LinkUtility и выбора конфигурации ARM (рис. 6), можем прошивать микроконтроллер и заниматься отладкой программы из Keil.
Рис. 6. Конфигурация WCH-Link в режиме ARM
В закладке Debug выбираем CMSIS-DAP Debugger (рис. 7) и в настройках указываем определившийся адаптер (рис. 8).
Рис. 7. Выбор CMSIS-DAP Debugger
Рис. 8. Выбор подключенного адаптера
Жмем «OK», прошиваем контроллер, перезапускаем контроллер, наблюдаем мигающим светодиодом. В зависимости от используемого программатора-отладчика перед прошивкой программы нужно будет изменить данные настройки.

Заключение
Итак, мы имеем семейство довольно функциональных 32-х битных микроконтроллеров на ядре Cortex-M0 начального уровня со хорошим набором периферии, с существенно более низким потреблением в активном режиме по сравнению с аналогичными 8ми битными микроконтроллерами.

Благодаря широко известному ядру, использованию типовых инструментов разработчика, наличию документации, примеров кода, разработка устройства на микроконтроллерах семейств HK32F030M и HK32F0301M не займет много времени. Кроме того, в устройствах где уже используется STM8S003F3P6, совместимость по выводам позволит не тратить много времени на переразводку печатной платы.

Вкупе с привлекательной ценой семейства микроконтроллеров HK32F030M и HK32F0301M от компании Hangshun открывают перед разработчиками возможности расширить функционал уже существующих устройств и задуматься об увеличении производительности в новых разработках, а также снизить риски останова производства при недоступности микроконтроллеров всемирно известных европейских, американских и японских производителей.

Используемая литература и ссылки
1. https://www.hsxp-hk.com/
2. HK32F030MxxxxA_HK32F0301MxxxxA_Datasheet_Rev.1.4
3. HK32F0301M_Datasheet_Rev.1.1.1
4. HK32F030M_Datasheet_Rev.1.3.1
5. HK32F0301MxxxxC_Datasheet_Rev1.1
6. Материалы для работы с бюджетными микроконтроллерами HK32F030M.
"HK32F030Mxxx series development information".