Альтернативы STM32F103CBT6: руководство по MCU с 128 KB флеш-памяти

STM32F103CBT6 Alternatives: 128 KB Flash MCU Guide

Альтернативы STM32F103CBT6: руководство по MCU с 128 KB флеш-памяти

Тот же кристалл, то же посадочное место на 48 выводов, вдвое больше флеш-памяти — и работа с прошивкой, о которой большинство забывает перед заменой.

Руководство по закупкам· MCU ·Каталог MCU / MPU / SoC · Сопоставительная таблица для 64 KB

TL;DR

  • STM32F103CBT6— это 128 KB «родственник» C8T6: тот же Cortex-M3, тот же 48-выводный LQFP, та же инструментальная цепочка.
  • Это наименее рискованный способ добавить запас — без изменения платы, без новых драйверов, только проверка карты памяти.
  • Работа заключается в скрипте компоновщика, таблице разделов OTA и таблице векторов — а не в периферии.
  • Вторые источники с 128 KB существуют, но у них те же оговорки «те же выводы, другой кремний», что и у семейства 64 KB.
  • Если прошивка всё ещё растёт, планируйте класс 256 KB, а не проходите квалификацию дважды.

1. Зачем существует CBT6

Семейство F103 было построено на одном кристалле, который можно было конфигурировать с различной плотностью flash-памяти. Именно поэтому C6T6, C8T6 и CBT6 имеют общий корпус, цоколёвку и набор периферии: различия заключаются в памяти, а не в архитектуре.

Для разработчика это подарок. Плата, квалифицированная для C8T6, принимает CBT6 без изменения компоновки, а прошивка компилируется без изменений драйверов. Единственный вопрос — сохраняется ли карта памяти.

Для закупщика это решение о цене и доступности: деталь на 128 KB стоит немного дороже, но устраняет риск повторной переработки подсистемы хранения позже.

2. Три варианта памяти

Компонент Флеш-память RAM В наличии
STM32F103C6T6 32 KB 10 KB Yes
STM32F103C8T6 64 KB 20 KB Yes
STM32F103CBT6 128 KB 20 KB Yes

Обратите внимание, что не меняется: RAM остаётся на уровне 20 KB как у C8T6, так и у CBT6. Удвоение flash-памяти не даёт приложению больше стека, кучи или буферов. Если ограничение — это RAM, решение — другое семейство, а не компонент с большей flash-памятью.

32 KB C6T6 — это противоположный компромисс: самый дешёвый, но пригоден только для небольшого фиксированного образа. Переход с 32 KB на 128 KB — это четырёхкратное увеличение, и обычно он окончательно снимает ограничение.

Что остаётся неизменным

Цоколёвка, корпус, набор периферийных модулей, дерево тактирования и отладочный интерфейс не изменяются у C6T6, C8T6 и CBT6. Одна и та же плата, один и тот же кварцевый резонатор, один и тот же разъём SWD и одна и та же схема USB работают со всеми тремя.

Именно поэтому обновление часто называют «бесплатным». Инженерные усилия реальны, но ограничены: обновить скрипт компоновщика, проверить таблицу разделов, повторно прогнать приёмочные тесты. Никаких изменений схемы, никакой переразводки, никаких новых драйверов.

Единственное различие в периферии, которое стоит проверить, — это геометрия страниц контроллера флеш-памяти, поскольку размер страницы определяет, как стирают эмулируемая EEPROM и загрузчик.

На практике C8T6 и CBT6 часто взаимозаменяемы на уровне дистрибьютора, и выбор сводится к тому, какой из них доступен на момент сборки. Эта гибкость сама по себе является аргументом в пользу проектирования таблицы разделов с расчётом на 128 KB, чтобы любой из компонентов можно было использовать без изменения прошивки.

3. Когда 64 KB становится недостаточно

Прошивка растёт предсказуемыми этапами. Проект, который комфортно укладывался в 40 KB, может перевалить за 64 KB, когда происходит одна из пяти вещей.

Добавляется сетевой стек.Даже компактный стек TCP/IP с TLS потребляет десятки килобайт.

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

Добавляется OTA-стейджинг.Обновления с двумя банками требуют места для второго образа или как минимум для сжатого.

Логирование или хранение конфигурации перемещается во флеш-память.Эмулируемые страницы EEPROM уменьшают доступное пространство приложения.

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

Что на самом деле занимает дополнительные 64 KB

Полезно увидеть, куда уходит место, прежде чем принимать решение. Типичное подключённое приложение на MCU этого класса распределяется примерно так: загрузчик 16 KB, код приложения 30–50 KB, компактный стек TCP/IP 12–20 KB, TLS 15–25 KB, файловая система и конфигурация 4–8 KB, а также область промежуточного хранения OTA, равная размеру образа.

Сложите эти числа — и предел достигается быстро. Приложению размером 45 KB с TLS и двухбанковым промежуточным хранением требуется более 128 KB ещё до добавления каких-либо данных журналирования или шрифтов. Вот почему микроконтроллер с 64 KB кажется достаточным на стенде, а затем ресурс исчерпывается во время интеграции.

Та же арифметика объясняет, почему «просто включить TLS» — это решение о хранилище в не меньшей степени, чем о безопасности. Наборы шифров и хранилища сертификатов не бесплатны.

4. Работа по миграции

Пункт Что меняется
Linker script FLASH length from 64K to 128K
Partition table Application, staging and data sizes
Vector table offset Only if the bootloader or app base moves
OTA bank size A larger image needs a larger staging area
EEPROM emulation Page count changes if the layout moves
Production programming Image size and checksum

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

Ресурс и эмулируемая EEPROM

Flash — не EEPROM. Для flash F103 заявлено ограниченное число циклов стирания — обычно порядка десяти тысяч на страницу. Блок конфигурации, записываемый при каждом выключении питания, исчерпает страницу задолго до окончания срока службы изделия.

Эмулируемая EEPROM решает эту проблему двумя способами. Во-первых, она записывает в новое место вместо перезаписи, поэтому износ распределяется по странице или блоку. Во-вторых, она хранит небольшой индекс в RAM и перезаписывает индекс только при заполнении страницы.

Обе методики расходуют flash пропорционально числу переменных и глубине выравнивания износа. На компоненте с 64 КБ это может быть заметной долей бюджета; на CBT6 дополнительный объём позволяет применить более глубокую схему выравнивания износа.

Если изделие непрерывно ведёт журнал данных, рассмотрите внешнюю FRAM или небольшую SPI flash вместо износа внутренней flash микроконтроллера. Затраты невелики, а выигрыш в надёжности значителен.

Тактирование, состояния ожидания и воспринимаемая производительность

Больший объем flash не делает MCU быстрее, но может изменить число состояний ожидания flash, с которыми выполняется код. На частоте 72 MHz F103 требует состояний ожидания при обеих плотностях; разница проявляется, когда код размещается по разным адресам или когда буфер предвыборки ведет себя по-разному.

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

Если система работает ниже 48 MHz, состояния ожидания обычно равны нулю, и разница исчезает полностью. Это одна из причин, по которой многие промышленные изделия намеренно работают медленнее максимума.

5. Размер flash во время выполнения

F103 сообщает размер своей flash в регистре, который может прочитать прошивка. Это полезно для платформы, которая поставляется с компонентами на 64 KB или 128 KB, и это также ловушка: код, в котором жестко заданы количество страниц или адреса секторов, будет работать некорректно при другой плотности памяти.

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

Варианты реализации OTA

Распространены четыре схемы, и их расход флеш-памяти существенно различается.

Двухбанковая схема.Два полных слота для образов плюс загрузчик. Безопасно и просто, но требует вдвое большего размера образа. На 128 KB образ размером 40 KB с двухбанковым промежуточным размещением занимает 80 KB до данных.

Сжатое промежуточное хранение.Загруженный образ хранится в сжатом виде и распаковывается на месте при загрузке. Экономит место, добавляет этап распаковки и сценарий отказа, если распаковщик прерывается.

Внешнее промежуточное хранение.Образ хранится во внешней SPI flash, а MCU копирует его во внутреннюю память. Добавляет компонент, но полностью снимает ограничение на внутреннее пространство.

Без промежуточного хранения.Устройство загружает и записывает напрямую, обычно с помощью загрузчика восстановления. Наименее затратно по flash-памяти, наиболее рискованно в эксплуатации.

Какую бы схему ни выбрали, таблица разделов должна быть зафиксирована до записи прошивки. Изменение её позже сделает недействительным каждое устройство в эксплуатации.

Проверки совместимости прошивки

Четыре проверки позволяют выявить большинство проблем миграции до выхода в эксплуатацию.

Идентификатор устройства.Код запуска прошивки может ветвиться по ID; явно добавьте новое значение.

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

Смещение таблицы векторов.Если загрузчик перемещает приложение, убедитесь, что смещение соответствует новой таблице разделов.

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

6. Вторые источники на 128 KB

Семейство Флеш-память Примечание
GD32F103CBT6 128 KB Pin compatible; different flash timing and higher clock capability

Действуют те же правила, что и в статье о 64 KB: совместимость выводов является механической, а прошивка должна быть проверена. При большем объёме flash появляется ещё один пункт — алгоритм программирования flash и гранулярность стирания могут различаться, что влияет как на время производства, так и на архитектуру OTA.

Также проверьте путь восстановления. Если загрузчик поддерживает DFU через USB или UART, протестируйте восстановление из повреждённого образа приложения на новой плотности памяти, поскольку дескриптор DFU часто кодирует максимальный размер образа.

Доступ для отладки не изменился, но option bytes стоит проверить: защита от считывания, поведение watchdog и конфигурация загрузочных выводов хранятся во flash и могут различаться по состоянию по умолчанию от партии к партии. Подтвердите их на тестовой оснастке, а не на лабораторном стенде.

Производственное программирование и прослеживаемость

Смена плотности памяти изменяет образ для программирования и зачастую тестовую оснастку. На производственной линии следует проверить три пункта.

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

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

Журналирование уникального ID.96-битный уникальный ID связывает устройство с производственной записью. Его журналирование делает возвраты из эксплуатации отслеживаемыми и помогает выявить дефектную партию.

7. План тестирования

Шаг Тест Критерии прохождения
1 Read flash size and device ID Matches the expected density
2 Program the full image Verifies with zero errors
3 Boot and run the acceptance test No timing regressions
4 OTA update with power cut Recovers via the bootloader
5 EEPROM emulation wear test No page exhaustion after 100k writes

Когда 128 KB всё ещё недостаточно

Если прогнозируемый размер образа превышает примерно 100 KB, следующий шаг — не ещё один вариант F103, а другое семейство. Ограничением раньше, чем flash-память, становится Cortex-M3 в F103 с частотой 72 MHz и 20 KB RAM.

Варианты включают класс 256 КБ в том же семействе, компонент Cortex-M4 с большим объемом RAM и блоком вычислений с плавающей запятой или внешнюю QSPI-флеш-память с поддержкой execute-in-place. Каждый из них — это решение для платформы с собственными затратами на сертификацию и прошивку.

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

Пятилетняя история продукта

Рассмотрим контроллер, разработанный в 2021 году с образом 40 КБ на C8T6. К 2023 году образ достиг 58 КБ после добавления веб-интерфейса. К 2024 году TLS вывел его за пределы 64 КБ, и команде пришлось сжимать шрифты, чтобы уложиться.

В 2025 году область подготовки OTA перестала помещаться. Решением на тот момент стала ревизия платы, новая разметка разделов и миграция в полевых условиях — всего этого можно было избежать, если бы проект изначально начинался на CBT6 за несколько центов больше.

Вот аргумент в пользу запаса: дело не в том, что дополнительная флеш-память будет использована сразу, а в том, что цена исчерпания запаса измеряется в повторных выпусках платы, а не в центах.

8. Стоимость и планирование

Разница в цене между C8T6 и CBT6 невелика. Решение принимается не по удельной стоимости; вопрос в том, устраняет ли дополнительный объём 64 KB необходимость будущей переработки.

За CBT6 говорят три признака: текущий образ превышает 45 KB, дорожная карта включает сетевой стек или дисплей, либо продукт имеет многолетний жизненный цикл. За то, чтобы остаться на 64 KB, говорят два признака: образ стабилен и мал, а объём достаточно высок, чтобы иметь значение центы.

Если образ уже близок к 100 KB, переходите сразу к классу 256 KB. Квалифицировать компонент на 128 KB, а через год снова переходить — самый дорогой путь.

Правило принятия решения для новых разработок

Перед выбором запишите три числа: текущий размер образа, ожидаемый размер через два года и требуется ли OTA. Если ответ по OTA — «да», добавьте размер образа ещё раз. Если прогнозируемый итог превышает 90 KB, начинайте с 128 KB или больше.

Для продукта с фиксированной функциональностью без сетевого подключения и без OTA 64 KB обычно вполне достаточно, и C8T6 остаётся более дешёвым выбором. Ошибка — предполагать, что продукт останется неизменным на протяжении пяти лет.

9. FAQ

Является ли CBT6 заменой для C8T6 без доработок?

Физически и функционально — да. Для прошивки необходимо обновить скрипт компоновщика и таблицу разделов с учётом большего объёма флеш-памяти.

Увеличивается ли объём RAM?

Нет. У обоих компонентов по 20 KB. Если ограничивающим фактором является RAM, компонент с большим объёмом флеш-памяти не поможет.

Можно ли позже вернуться к C8T6?

Только если образ помещается в 64 KB. Спланируйте таблицу разделов так, чтобы откат был возможен без изменения кода.

У вторых источников такой же регистр размера flash?

Обычно совместимый регистр существует, но значение и гранулярность могут отличаться. Читайте datasheet для конкретной микросхемы.

Какая наиболее распространённая ошибка при миграции?

Обновление linker script без обновления таблицы разделов OTA, что приводит к обновлениям, записывающим данные за пределами staging area.

Стоит ли заказывать CBT6 для новой разработки?

Если образ прошивки меньше 32 КБ и стабилен, C8T6 подойдёт. Если есть хоть какая-то вероятность роста — веб-интерфейс, TLS, логирование или OTA — начинайте со 128 КБ и избежите второго цикла проектирования.

Примечания по поставкам

Доступность при такой плотности выше, чем при 32 КБ, поскольку больше проектов её используют. Имейте один утверждённый второй источник и подтвердите, что его алгоритм программирования flash-памяти соответствует вашей производственной оснастке; образ один и тот же, но инструментарий может отличаться. Проверьте это перед размещением заказа.

10. Источники

  • Страница продукта ST STM32F103CB:st.com
  • Документация GigaDevice GD32F103:gigadevice.com

Об авторе— Опубликовано командой Chip-Seek Supply Chain Intelligence. Мы отслеживаем доступность компонентов, замены и риски квалификации для инженеров-аппаратчиков и закупочных команд. Читайте нашпроцесс обеспечения качества и прослеживаемости.

Нужен больший запас флеш-памяти?

Сообщите текущий артикул и размер образа. Мы предложим варианты на 64 KB и 128 KB со склада, чтобы вы могли сравнить их на одной плате.

Проверить наличие CBT6Запросить образцы

Check stock by part number

Turn this insight into a sourcing decision.

Need pricing or a drop-in alternative? Submit a BOM / RFQ or talk to our team.