В последнее время компания пересматривает стратегию выбора материалов на следующий год, и руководство настаивает на том, чтобы, по возможности, использовать отечественные решения. Я проанализировал текущие проекты: в основном это мелкие партии (от нескольких сотен до тысяч штук), где требования к производительности невысокие (уровня Cortex-M0+/M4).
В настоящее время рассматриваются следующие варианты:
Серии STM32G0/G4: устоявшаяся экосистема, но цена на 30-50% выше, чем у отечественных аналогов. Сроки поставок улучшились, но остаётся опасение из-за геополитических рисков
Серии GD32F3/F4: совместимы pin-to-pin с STM32, но есть проблемы с совместимостью USB и CAN, некоторые регистры периферийных устройств отличаются
CH32V307 (QinHeng Microelectronics): архитектура RISC-V, цена привлекательная, но слабая экосистема — даже с отладчиком долго разбирался
APM32 (Geehy): говорят, что совместимость с STM32 хорошая, но мало знакомых, кто этим пользуется, поэтому неуверен
N32 (Nationalchip): главный козырь — безопасность и шифрование, но нам это не нужно, цена средняя
Хочу услышать ваш практический опыт:
Какие чипы вы выбираете сейчас для мелкосерийных проектов (если не учитывать минимальную стоимость при массовом производстве)?
Какие подводные камни возникают при замене на отечественные решения, о которых не пишут в документации?
Как вы убеждаете клиентов, которые хотят именно STM32, перейти на отечественные аналоги?
Сейчас я практически не использую ST, за исключением случаев, когда клиент настаивает. Серия GD32F470 используется уже больше года, производительность действительно неплохая, но есть несколько скрытых подводных камней:
Время ожидания Flash отличается от ST, при разгоне легко попадаете в HardFault, нужно вручную настраивать задержку Flash.
Заявленная частота выборки АЦП составляет 1MSPS, но реальное количество эффективных битов на 1-2 ниже, чем у ST. Это важно учитывать при высокоточной выборке.
Самое ужасное — у некоторых партий чипов есть ошибка в работе I2C, неправильная временная диаграмма сигнала ACK, из-за чего не удается взаимодействовать с некоторыми датчиками. Рекомендуется при небольших партиях начинать с GD32, но обязательно выделять достаточно времени на отладку.
Я играл с CH32V307, поделюсь реальным впечатлением:
Цена действительно низкая, несколько китайских юаней за производительность уровня M3
Но отладочная экосистема RISC-V вызывает проблемы, WCH-Link часто не подключается, поддержка OpenOCD также неидеальна
Стиль их библиотечных функций полностью отличается от HAL, высокая стоимость обучения
Плюсом является то, что внешние устройства USB выполнены хорошо, создание USB Device — одно удовольствие
Итог: подходит студентам или для потребительской электроники, где критично важна стоимость, но для промышленных продуктов лучше поискать другие решения — проблемы будут не на шутку.
С точки зрения FAE несколько слов. На самом деле основное различие между отечественными МК (микроконтроллерами) и конкурентами в настоящее время заключается в “скрытом качестве”: микросхемы ST, если вы разрабатываете их в соответствии с документацией, в 99% случаев не будут вызывать проблем; у отечественных аналогов, возможно, в 95% случаев всё будет нормально, но те самые 5% граничных ситуаций могут привести к бесконечным багам. Например, у RTC (Real-Time Clock) одного из отечественных брендов при низких температурах могут возникать сбои в работе часов; у PLL другого производителя при падении напряжения часто возникает потеря фазовой синхронизации. Эти проблемы не указаны в документации — они проявляются только при массовом использовании.
Рекомендуется для проектов небольшого объема выбирать отечественные МК, но обязательно:
Проводить полные тесты на экстремальные температуры, ЭМС и устойчивость к электростатическому разряду (ESD)
Установить прямой контакт с техническим представителем (FAE) производителя (добавить в WeChat), чтобы иметь возможность задавать вопросы напрямую
Сохранять конструкцию, совместимую с STM32 (например, предусматривать места под различные конденсаторы загрузки для кварцевых резонаторов)
Честно говоря, для небольших партий, таких как несколько сотен или тысяч плат, использование STM32 обычно является очевидным решением. Руководство всегда смотрит на экономию в 30% в стоимости материальной базы, но полностью игнорирует затраты на НИОКР (NRE, Неразовые инженерные расходы).
Отвечая на ваши вопросы:
Мои проверенные решения: по-прежнему STM32G0/G4. Если вы экономите $1 на чипе при объеме партии в 1000 штук, общая экономия составит $1000. Но если ваш программист потратит две недели, разбираясь с необычным багом в USB-прерывании на GD32, вы сразу потеряете деньги только на его зарплате.
Скрытые подводные камни: фраза “совместимая по выводам” — это biggest ложь в отрасли. Это редко означает “совместимую по прошивке”. В случае с отечественными чипами обычно нормально работают ядро и стандартные GPIO, но аналоговые периферийные устройства (например, уровень шумов АЦП) и сложные интерфейсы (CAN/USB) обязательно вас подведут. Также незначительно, но различаются конфигурации флеш-памяти с ожиданием и тактовые деревья.
Работа с клиентами: если клиент явно просит использовать ST, я не пытаюсь их переубедить. Я просто четко указываю цену и срок поставки чипа ST в коммерческом предложении. Если клиент готов платить премиум, пусть платит! Если же они жалуются на цену, тогда вы предлагаете отечественный аналог как более дешевый вариант. Пусть выбор остается за ними.
Это непростой выбор. На Западе мы раньше называли их «подделками», но сейчас такие компании, как GigaDevice и Geehy, являются серьезными конкурентами. Однако для небольшой партии нужно быть осторожным.
Мой выбор: Обычно я выбираю модель с двойным креплением. Я проектирую печатную плату так, чтобы она была совместима как с STM32, так и с китайским аналогом (например, GD32). Для первой небольшой партии я использую STM32, чтобы гарантировать, что прошивка будет полностью надежной. Как только проект начнет масштабироваться, мы переходим на китайский чип, чтобы сэкономить на стоимости.
Подводные камни:HAL/Библиотеки. Не стоит доверять «Стандартной периферийной библиотеке» китайских поставщиков, считая её полностью свободной от ошибок. Мы обнаружили несколько случаев, когда реализация I2C в китайских микросхемах имеет немного отличающееся поведение флагов, что может «зависнуть» ваш код, если вы просто скопируете и вставите код от ST.
Убеждение клиентов: Я показываю им сравнение сроков поставки. Если я могу показать клиенту, что срок поставки STM32 составляет «16 недель», а китайский аналог — «в наличии», они обычно сразу перестают обращать внимание на название бренда. Денежные потоки — это главное.