MS51FB9AE: чем прошить микроконтроллер Nuvoton

Микроконтроллер MS51FB9AE из семейства Nuvoton MS51 (1T-ядро 8051) прошивается через интерфейс ICP (In-Circuit Programming) по двухпроводной шине SWD — и без фирменного отладчика Nu-Link или совместимого клона записать в него прошивку не получится: обычные USB-UART или USBasp здесь не подходят. Если вы ищете, чем прошить этот чип, ответ начинается именно с выбора аппаратного программатора и фирменной утилиты Nuvoton.

В этой статье разберём, какие программаторы поддерживают MS51FB9AE, какое ПО потребуется, как правильно подключить выводы ICE_DAT/ICE_CLK и какие ошибки чаще всего мешают записать прошивку. Материал ориентирован на тех, кто работает с чипом впервые, а также на тех, у кого устройство на базе MS51 не определяется программатором.

Что представляет собой MS51FB9AE

MS51FB9AE — 8-битный микроконтроллер Nuvoton на ядре 8051 с 16 КБ Flash-памяти и встроенной SRAM. Чип выпускается в компактных корпусах и часто встречается в недорогих бытовых устройствах, блоках управления, датчиках и платах с AliExpress. Популярность он получил во многом благодаря низкой цене и совместимости с классической архитектурой 8051.

Для прошивки используется проприетарный механизм Nuvoton — ICP через SWD-интерфейс. Задействуются всего два сигнальных вывода: ICE_DAT (данные) и ICE_CLK (тактирование), плюс питание и земля. Это упрощает подключение, но жёстко привязывает разработчика к экосистеме Nuvoton.

⚠️ Внимание: MS51FB9AE нельзя прошить через UART-бутлоадер «из коробки» в общем случае — загрузчик должен быть предварительно записан в область LDROM. Для чистого чипа обязателен программатор с поддержкой ICP.

Аппаратные программаторы для MS51FB9AE

Основной и официально поддерживаемый инструмент — отладчик Nu-Link и его обновлённая версия Nu-Link2 (варианты Nu-Link2-Pro и Nu-Link2-Me). Nu-Link2-Me часто идёт в составе отладочных плат NuTiny и может быть отделён от платы для автономного использования. Все они работают с фирменным ПО Nuvoton без дополнительных драйверных «танцев».

Кроме оригинальных устройств, существуют варианты:

  • 🔌 Nu-Link (оригинал или клон) — базовый вариант, поддерживает ICP-запись и отладку в Keil/IAR;
  • 🔧 Nu-Link2 / Nu-Link2-Pro — более быстрые, с дополнительными функциями (например, изоляция и питание цели у Pro-версии);
  • 🧩 Nu-Link2-Me с отладочной платы — бюджетный способ получить рабочий программатор вместе с платой для экспериментов;
  • 🛠 Китайские клоны Nu-Link — работают с NuMicro ICP Programming Tool, но качество и стабильность зависят от конкретного экземпляра.

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

📊 Каким программатором вы прошиваете MS51FB9AE?
Оригинальный Nu-Link
Nu-Link2 / Nu-Link2-Pro
Клон Nu-Link с AliExpress
Только планирую покупку

Программное обеспечение

Для записи прошивки вам понадобится фирменная утилита NuMicro ICP Programming Tool — она распространяется бесплатно с сайта Nuvoton. Программа умеет читать, стирать, записывать Flash и области конфигурации (Config bits), а также работать с областями APROM, LDROM и SPROM.

Для разработки и отладки кода используются среды Keil µVision (с пакетом поддержки Nuvoton), IAR Embedded Workbench или бесплатная NuEclipse на базе Eclipse с GCC. Внутри этих IDE Nu-Link работает как отладчик: можно прошивать чип, ставить точки останова и смотреть регистры прямо на живом устройстве.

Подключение программатора к чипу

Подключение минималистичное: четыре-пять проводов. Вам нужно соединить выводы программатора с микроконтроллером согласно распиновке конкретного корпуса MS51FB9AE — распиновку берите из официального даташита Nuvoton, так как нумерация зависит от корпуса (TSSOP-20, QFN и т.д.).

СигналНазначениеПримечание
ICE_DATДанные SWDОбязательный сигнал ICP
ICE_CLKТактирование SWDОбязательный сигнал ICP
VCCПитание целиНоминал смотрите в даташите чипа
GNDОбщий проводОбязателен всегда
RESETСброс (опционально)У некоторых адаптеров не используется

Обратите внимание на питание: часть программаторов может питать целевую плату от себя, часть — требует внешнего питания устройства. Подача питания одновременно с двух сторон способна повредить и программатор, и плату. Логика подключения проста: либо цель питается от Nu-Link, либо от собственного источника, но не от обоих сразу.

⚠️ Внимание: выводы ICE_DAT/ICE_CLK у MS51 совмещены с обычными GPIO. Если в вашей схеме на этих пинах висят нагрузки (светодиоды, подтяжки, другие микросхемы), они могут мешать прошивке — в проблемных случаях линии придётся временно освободить.

Пошаговая прошивка через NuMicro ICP Tool

После подключения программатора и установки ПО порядок действий выглядит так. Запустите NuMicro ICP Programming Tool, выберите интерфейс подключения (Nu-Link) и целевой чип — в списке найдите MS51FB9AE. Затем нажмите кнопку подключения к цели: при успехе утилита покажет идентификатор чипа и состояние памяти.

Далее загрузите файл прошивки (формат .hex или .bin) в область APROM, при необходимости настройте конфигурационные биты (Config) — например, источник тактирования и защиту от чтения. После этого запустите программирование и дождитесь верификации. Если верификация прошла — прошивка записана корректно.

☑️ Проверка перед прошивкой MS51FB9AE

Выполнено: 0 / 5

Что делать, если чип не определяется? Проверьте в первую очередь физику: качество контактов, длину проводов (короче — лучше), отсутствие перепутанных линий DAT/CLK. Затем — питание целевой платы и корректность выбора модели в утилите. Только после этого стоит подозревать сам чип или программатор.

Типичные ошибки и их решения

Самая частая жалоба — утилита не видит чип и выдаёт ошибку подключения. Возможные причины: перепутаны ICE_DAT и ICE_CLK, отсутствует общий GND, целевая плата не запитана либо запитана от двух источников сразу. Реже встречается ситуация, когда прошивка в чипе настроила эти пины как GPIO сразу после старта — тогда помогает подключение с удержанием чипа в сбросе, если ваш программатор это поддерживает.

Вторая группа проблем — ошибки верификации после записи. Здесь проверяйте: соответствует ли hex-файл именно MS51FB9AE (прошивка от другой модели семейства может «залиться», но не заработать), корректно ли выставлены Config bits, не включена ли защита от чтения с предыдущей прошивки. Полное стирание чипа (опция массового erase в ICP Tool) перед записью новой прошивки решает заметную часть таких сбоев.

Про области памяти APROM, LDROM и SPROM

APROM — основная область для пользовательской прошивки. LDROM — отдельный небольшой раздел, куда обычно пишут бутлоадер (например, для последующего обновления по UART). SPROM — защищённая область с особыми правилами доступа. Для простой прошивки устройства достаточно записи в APROM с корректными Config bits.

Альтернатива: прошивка через UART-бутлоадер

Если в чип уже записан бутлоадер в область LDROM (например, на заводе или вами ранее), дальнейшие обновления прошивки возможны через обычный UART-адаптер без Nu-Link. Nuvoton предоставляет для этого отдельные утилиты ISP-загрузки. Однако есть нюанс: чистый чип с завода такого бутлоадера не содержит, поэтому первый раз записать его всё равно придётся через ICP-программатор.

Такой подход удобен для серийного обновления устройств в поле: один раз прошили бутлоадер — дальше прошиваете по последовательному порту. Но для разовой задачи «прошить MS51FB9AE» покупка или заимствование Nu-Link остаётся единственным надёжным путём.

FAQ: частые вопросы по прошивке MS51FB9AE

Можно ли прошить MS51FB9AE через Arduino или USBasp?

Нет. Чип программируется по проприетарному протоколу ICP через SWD-линии ICE_DAT/ICE_CLK, и стандартные программаторы AVR или самодельные адаптеры на Arduino этот протокол не поддерживают. Нужен Nu-Link или совместимый клон.

Где взять NuMicro ICP Programming Tool?

Утилита бесплатно распространяется на официальном сайте Nuvoton в разделе инструментов для микроконтроллеров. Вместе с ней устанавливаются драйверы Nu-Link, необходимые для работы программатора в Windows.

Программатор не видит чип — что проверить в первую очередь?

Проверьте четыре вещи: правильность подключения ICE_DAT/ICE_CLK (их часто путают местами), наличие общего GND, питание целевой платы и выбор именно модели MS51FB9AE в утилите. Также убедитесь, что на линиях SWD нет внешних нагрузок от схемы устройства.

Можно ли считать прошивку с MS51FB9AE?

Да, ICP Tool умеет читать Flash, если при предыдущей прошивке не была включена защита от чтения в конфигурационных битах. Если защита активна, содержимое считать не получится — доступно только полное стирание.

Чем отличается Nu-Link от Nu-Link2 для этой задачи?

Для простой прошивки MS51FB9AE оба подходят одинаково хорошо. Nu-Link2 быстрее и имеет расширенные функции (в зависимости от модификации — питание цели, изоляцию), что важнее для отладки и серийного производства, чем для разовой записи прошивки.