Мы, русские, не обманываем друг друга.

Прочитал новость, которую любой желающий может найти по запросу «Elbear ACE UNO”, https://www.ixbt.com/news/2024/04/22/sdelano-v-rossii-predstavlena-polnostju-otechestvennaja-plata-sovmestimaja-s-arduino.html, особенно порадовали абзацы (не удержусь от цитирования) про «полностью российская» и «продажи в ЮВА». Новость явно технологическая, относится к сфере IT, поэтому простительно желание поделится мыслями, данных сообщением навеянными.
Всем, кому интересно, является ли правдивой информация, изложенная в новости, могут нажать на кнопку ниже (для остальных спойлер — нет, не является).
И в чем нас пытаются обмануть?

Поскольку речь идет о вполне конкретной плате на основе вполне конкретного микроконтроллера (МК), будет логичным представить его технические характеристики в сравнении с некоторым условным «одноклассником». В качестве последнего я выбираю МК от фирмы WCH, конкретно серию CH32V003. Примечание на полях (пнп): я сознательно выбрал младшую модель семейства, поскольку уже следующее изделие китайского производителя (CH32X035) нет никакого смысла сравнивать с отечественным МК, проще сразу сказать, что по всем параметрам микросхема из КНР лучше.

Параметр

АМУР

CH32V003

Оценка*

Изготовитель

Микрон (РФ)

WCH (КНР)

+20

Ядро

RISC-V RVIMC (3)

RISC-V RVEC (?)

0

Технология

180нм

? (90нм - мне подсказали)

0

Частота(МГц)

30(32)

48

-1

Тактирование

32МГц, 32кГц, 1~32МГц, 32кГц

24МГц, 128 Кгц, 4-25МГц

0

Память программ (кБ)

8(8000)

16

-1 (+3)

Память данных (кБ)

16

2

+4

Таймеры

3*32,3*16, WDT

2*16, 2*WDT

+3

Интерфейсы/DMA

2SPI, 2USART, 2I2C, ADC:12b*1M*8 DAC:12b*1M*2 /1*4

SPI, I2C, UART
ADC: 10b*1.7M*(8+2)
/1*7 (Ring?)

+4

Опции

RTC, AES+, CRC

OPA

+2

Питание (В)

2.9~3.6

2.7~5.5

-2

Потребление (мА)

50, 2

8-0.4->0.01

-10

Корпус

LQFP48

SOIC8, SOIC16, SOIC20

-2

Температура

-40+85

-40+85

0

Программирование

MikronIDE

MounRiverStudio

?

Документация (стр.)

301

33+185

0 (-10 каждому)

Наличие ВП

нет

нет

0

Цена ($US)

30

0.6-0.1

-50

*Оценка дана с точки зрения отечественного МК.
Из таблицы видно, что по техническим параметрам МК действительно весьми близки, так что аналог выбран правильно. (вопросы означают отсутствие у автора достоверных данных). Теперь пройдемся по отдельным позициям подробнее.

Изготовитель (страна происхождения).
На самом деле для проектировщика устройства совершенно не значимый параметр, но есть нюансы … смотри раздел о стоимости и примечания к нему.

Ядро.
Пнп: честно говоря, не очень понимаю выбор именно RISC-V, на мой взгляд, оно ничем не лучше (но и не хуже), чем естественный конкурент (ARM). Соображения относительно стоимость лицензии не принимаются, насколько мне известно, Cortex-M0 также может применяться свободно, и, например, Миландр полностью самостоятельно его синтезировал по описанию (ну так они мне говорили и я склонен верить), так что задача вполне решаемая. Не исключаю версии, что V – это «стильно, модно, молодежно», но моим мнением при выборе архитектуры точно не интересовались.
Ядро практически одинаковое, в 2 нет блока умножения/деления, в 1 только базовая система команд, так что ничья.

Технология изготовления.
В общем то, также ненужный параметр, дан только с целью расширения кругозора, так что оценивать этот параметр глупо, ничья. Для 1 явно указан на сайте производителя, для 2 отсутствует (у меня вообще сложилось впечатление, что это fabless компания, но кто китайцев знает). Пнп: есть интересная новость, что МИЭТ и YADRO совместно разработали и изготовили на Микроне по тем же 180 нм «учебный» RISC-V микроконтроллер с совсем другими параметрами (80 МГц, 128 кБ оперативка), можем же, когда захотим.

Скорость работы.
Частота у 1 несколько ниже, скорее всего это связано с коротким конвейером в 3 стадии (обычно делают 5 стадий), хотя, может быть, и с технологическими ограничениями (я не настоящий сварщик в области технологий). В любом случае характеристики сопоставимы и реальное быстродействия будет зависеть не сколько от тактовой частоты, сколько от особенностей реализации МК (организации и количества шин, особенностей постоянной памяти и так далее), но все равно небольшой перевес у 2. Пнп: у современного разработчика фраза из технического описания 1 «высокая рабочая частота» ассоциируется с несколько иными цифрами, нежели 30 (или даже 32) МГц.

Память программ.
Оба конкурента не блистают в данном аспекте, 16 кБ памяти программ— это всего лишь четыре или максимум восемь тысяч команд (хотя, с другой стороны, это 100 экранов кода на ассемблере). Так что, для большинства приложений вполне достаточно, даже RTOS уместится. Но у 1 есть еще одна интересная фича — возможность напрямую исполнять код из внешней FLASH памяти (практически неограниченного размера), подключенной по интерфейсу QSPI через кэш на 256 слов. Понятно, что в таком режиме будут существенные лаги при смене страницы, но «маленькая рыбка лучше большого таракана», так что 1 побеждает с существенным отрывом. Пнп: что характерно, в описании 1 информация об этой фиче не представлена, ее нужно вычитывать из соответствующего раздела технического описания, в котором, что интересно, есть фраза «большой запас встроенной памяти» - или это о оперативке? Еще одна особенность 1 — память программ имеет схему коррекции по Хэмингу — не очень понятно, это плюс или минус и зачем мне вообще такая информация, но мне теперь придется жить дальше с этим знанием. Пнп: в ДВК такая организация оперативной памяти была необходимостью в силу низкой надежности микросхем памяти — при отключенной коррекции одиночная ошибка в НКУ имела место раз в 3-4 часа, при включенной двойная ошибка не наблюдалась в течении 3 суток в диапазоне температур.

Память данных.
У обоих конкурентов ее немного, но у 2 очень уж немного, если учесть разрядность данных, мы сможем разместить только 512 4х байтных слов. Так что 1 побеждает с уверенным преимуществом.

Память прочая.
Изделие 1 содержит 256 бит OTP памяти, оба изделия содержат 64 байта энергонезависимой памяти для хранения настроечной информации, оба имеют уникальный 64 битный уникальный код — паритет.

Интерфейсы.
Наблюдаем стандартный набор у обоих участников, у 1 номенклатура существенно шире, так что зафиксируем небольшое преимущество.
Интересная опция USART у 1 — возможность смены ножек Tx и Rx – пустячок, а приятно.

Дополнительные опции.
Часы реального времени и домен батарейного питания — неплохое преимущество 1, действительно удобная и полезная фича. Пнп: я бы предпочел подключать внешний кварц на 32.768 кГц, но на 32 кГц тоже купить можно. Пнп: но, уважаемые коллеги, BCD (так Вы ее назвали в документации) кодировка с переменным (4-3-2) числом бит в поле (!!!!) - Вы это серьезно, на мой взгляд решение из серии «Уши отрезал, сварил и съел, ты бы догадался?»
Встроенный блок шифрования в 1 - «ну пусть комары будут, раз французы без них не могут» - шифрование программным способом вполне реализуемо, (я совершенно не уверен, что этот способ настолько плох, как написано в документации на 1), но аппаратный блок тоже не помешает.
Операционный усилитель в 2 - тоже классная вещь для нормирования слабых сигналов, так что почти ничья, но у 1 позиция все же сильнее.

Питание.
Входной диапазон отличается не сильно, но все-таки отличается. Оба прибора можно запитать от батарейки, но 2 еще и от литий-ионного аккумулятора напрямую и от USB, так что счет в его пользу.

Потребление.
Здесь у 1 все откровенно плохо, такое ощущение, что на Микроне плохо представляют, что такое IoT. Потребление одной цифрой и какое потребление — 50 мА (!!!) - это провал. Причем указано наличие различных режимов энергосбережения, но смысл их использования (снижение потребление до приемлемых цифр) в документации совершенно не отражен. По тексту рассыпаны данные о потреблении отдельных узлов МК, но в целостную картину они не складываются. И как вишенка на торте — потребление часов реального времени в 2 mA (тешу себя надеждой, что это ошибка в документации), которое высушит CR2032 менее, чем за неделю. Пнп: как Микрону удалось добится такого показателя, ведь у Миландра потребление аналогичного блока составляет 5 мкА. Изделие 2 имеет потребление на порядок меньший, в КД явно указано изменение тока в режимах энергосбережения вплоть до 9 мкА в глубоком сне.

Программирование.
Пока воздержусь от оценок, с 2 я уже работал (хотя с другим МК), надо будет скачать 1 и внимательно посмотреть, хотя вроде обе сделаны на одной платформе.

Документация.
В 1 представлена техническим описанием, которое оставляет двойственное впечатление. С одной стороны, дано много интересных технических подробностей, которые, в общем то, не так уж и нужны пользователю, хотя и не помешают (например, описание TCB). Пнп: «Пользы, правда, с него было, как с козла молока, но вреда, однако, тоже никакого». С другой стороны, часть действительно нужной информации либо рассыпана по тексту (искусно спрятана), либо вообще отсутствует (смотри описание контроллера прерываний). Имеются ошибки, как синтаксические (тем более обидные, что они легко фиксятся чекером), так и фактические, но они почти всегда не критичны - «ну ты же понял, что я хотела сказать». Пнп: интересно, где можно ознакомиться со схемой «сигма-дельта АЦП на переключающихся конденсаторах».
Общий вывод — у обоих конкурентов документация не отвечает моим высоким требованиям, так что ничья. Пнп: Бог с ними, с китайцами, обращаюсь с Микрону, если кто-нить из руководства проектом читает данный опус, ну сколько можно, наймите специалистов для подготовки нормальной КД, можете даже ко мне обратится.

Приемка.
Вполне естественно, что производитель из КНР не думает о потребностях индустрии в РФ, которая должна изготавливать изделия в интересах МО РФ. Однако от отечественного производителя мы вправе были ожидать несколько иного подхода, но наши ожидание на оправдались. Вместе с тем, я понимаю резоны изготовителя 1 — наши военные с упорством, достойным лучшего применения, требуют герметичного корпуса (технология CotS прошла мимо них), что почти автоматом означает металло-керамику и соответствующее (кратное) увеличение стоимости.

Стоимость.
Представителя 2 можно приобрести в ЧиД за 58 рублей, а на Али за такую же сумму можно купить лот из 5 штук, что приводит к 10 центам за штуку. Конечно, это не 3 цента, как за Padauk, но все равно цена очень и очень достойная. Что же касается 1, то больше всего подходит фраза, приписываемая Озерову «Да, ничего не скажешь, а остальное Вы уже видели»: три тысячи рублей, и это в пластике. Пнп: мне в комментариях наверняка расскажут про эффект масштаба и про законы ценообразования. Я все понимаю, Тищенко Микрон, но 750 30 долларов за ЭТУ картину МК со столь скромными параметрами — я могу только удивиться оптимизму представителя Микрона, в интервью заявившему о выходе на рынки ЮВА. Лично у меня громадные сомнения в перспективам данного изделия на мировом рынке вообще, а по указанной цене в особенности.

Далее читателю предоставляется составить свою целевую функцию и провести стоимостно-функциональный анализ вариантов применения рассматриваемых конкурентов в реальных изделиях.

Обещаное пнп: что касается перспектив 1 на отечественном рынке, то в честной конкуренции у него нет ни единого шанса, но есть нюансы. Если Вы производите, к примеру, мониторы и применяете 2, то себестоимость составит, допустим, 58 тыс. рублей и продать Вы его сможете, предположим, за 69 тыс. рублей. Но, если Вы примените 1 и получите дополнительные баллы для включения в реестр МинПромТорга (МПТ), то Вы сможете участвовать в тендерах на закупки, получите преимущество в соответствии с действующим порядком проведения оных и продадите изделие себестоимостью в 58+3=61 тысячу уже за 120 тысяч — вполне себе коммерчески выгодное решение. И я нисколько не собираюсь осуждать предприятия, которые пойдут по такому пути, поскольку таковы правила игры в ГосЗакупки.
А вот что касается данных правил и создавших их чиновников, включая, но не ограничиваясь руководителем МПТ, то здесь можно было бы привести множество определений, включающих «непереводимую игру слов с использованием местных идиоматических выражений», но компактнее и четче, чем руководитель МИД РФ, не скажешь, так что присоединяюсь.

В заключение примечаний хотел бы высказаться по недавнему скандалу с мониторами и «ненужными» контроллерами Миландра в них.
С одной стороны, на спроектированных мною платах есть множество конденсаторов, половину из которых можно снять и даже не заменять их перемычками, причем, скорее всего, работа плат не нарушится. Дает ли такое наблюдение нам право реально не устанавливать фильтрующие конденсаторы — конечно же нет, это плата за неполноту наших знаний о свойствах микросхем, так что наезд на производителя мониторов от блогера мне сразу не очень понравился. Пнп: а вот в случае с пере-маркированными китайскими кремниевыми транзисторами, которые должны были создать российской компании имидж отечественного производителя арсенид галлия, я целиком и полностью на стороне блогера, раскрывшего откровенный обман.
Так что в резкой отповеди, прозвучавшей со стороны производителя упомянутых мониторов, есть свои резоны. Но, даже если МПТ захочет разобраться в данной ситуации (они заявили о таком намерении, но я не верю в его реализацию), я категорически не рекомендую обращаться ко мне за экспертной оценкой в силу следующего обстоятельства - мне это не интересно.
На самом деле это «драка трех нищих за 2 гроша». В мониторе есть два основных компонента, определяющих его параметры, стоимость и страну происхождения — это ЖК-панель и маппер/скаллер, все остальное может быть сделано где угодно и кем угодно. И никакие «свистелки и перделки» дополнительные функции, независимо от их бесполезности для потребителя, реализуемые на отечественных МК, не могут изменить такого положения вещей. Если МПТ не организовывает разработку и производство в РФ вышеупомянутых компонентов, то все игры с баллами за печатную плату, корпус и микроконтроллер лучше всего охарактеризовать термином «enjoy yourself” в худшем смысле этого слова

Общий вывод по МК.

Является ли МК АМУР отечественным изделием — несомненно, иначе трудно объяснить отсутствие в МК образца 2020+ года векторных прерываний. Пнп: в документации на 1 описание механизма прерываний отсутствует чуть менее, чем полностью, так что опираюсь на найденную в Интернете (не на сайте Микрона) программу обработки прерываний. Что характерно, с точки зрения программистов Микрона (я сделал такой вывод, посмотрев представленную ими набор функций для работы с прерываниями) работа с прерываниями заключается единственно в установке и сбросу битов разрешения конкретных прерываний.
Является ли 1 хорошим контроллером с точки зрения железа — ну скорее, неплохим, на уровне младшего ценового сегмента, на нем вполне можно делать несложные устройства, если захотите.
Могу ли я рекомендовать его к применению — нет, если не принимать во внимание привходящие обстоятельства, описанные в разделе о цене.

С контроллером закончили, перейдем к «предметам народного творчества» - отладочной плате на его основе. Когда я увидел фразу о «полностью отечественном», то первая мысль была следующей: чисто теоретически это возможно, но стоить будет, как крыло от самолета. Поэтому, когда я увидел цену отладочной платы в 6000 (были варианты и в 9000) рублей, то сразу понял, что меня обманывают, и вопрос только, кто это делает? Сниму все подозрения с производителей платы (фирма Элрон)— у них на сайте https://elron.tech/russian-arduino-compatible-board/ честно написано «самая российская плата», а уже измышления на тему «полностью российской платы» оставим на совести «акул пера». Я понимаю, что второй вариант звучит намного привлекательней, особенно в свете импортозамещения, но врать-то зачем. Пнп: хотя рендер платы на сайте производителя с явно прописанной маркировкой «Амур МК» на контроллере и стыдливыми «SOP8” и «SOP18” на других компонентах платы несколько удивили, ожидалось честное «CH232” и так далее.

Давайте сами оценим возможность создания полностью российской отладочной платы на контроллере АМУР снизу вверх.

Собственно печатная плата — несложная, вполне делается на двух слоях, а уж на четырех вообще влет. Класс сложности 3-4, так что с производством в РФ проблем не будет - вполне возможно.

Рассыпуха — резисторы, конденсаторы, разъемы — в общем то, имеются и не уступают по техническим параметрам своим зарубежным аналогам. Есть значительные проблемы со сроками поставки и цена будет раз в 10 выше аналога, но это общая проблема любых отечественных комплектующих и далее я ее упоминать не буду - вполне возможно.

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

QSPI Flash память 8/16MB – вот отсюда подробнее, подобных отечественных изделий я не знаю, есть Миландровская память на 8 Мб, но у нее обычный (одно-проводной) SPI и параллельный интерфейс. Можно, конечно сделать преобразователь интерфейсов на Миландровской же CPLD, но нужного объема памяти все равно не достигнуть — так что российский компонент весьма маловероятен — нет возможности.

Интерфейс программирования — аналог FTDI либо CH (кстати, от той же фирмы WCH) – я совершенно точно не знаю отечественного аналога, но можно поставить сюда тот же самый (но другой) АМУР с соответствующей прошивкой и закрыть позицию. Пнп: выcший пилотаж — чтобы целевой МК сам реализовывал аппаратный и программный интерфейс с ПК, смотри UNO. Резюмирую — реализация на отечественных компонентах теоретически возможна, практически на данной плате не выполнена.

Общий вывод — представленная плата никак не является «полностью» российской, ее нельзя назвать даже «самой российской» в общем случае, поскольку сам Микрон на своем сайте представляет аналогичные отладочные платы, но они не в форм-факторе Ардуино, так что в сочетании с дальнейшими определениями изготовитель плат (Элрон), в общем то, более-менее честен.

А вот теперь посмотрим, что это замечание насчет "более-менее", то есть насколько честен.

Что такое быть Ардуино совместимым?

Нулевое требование. Железо - следует иметь аналогичный форм-фактор, расположение и распиновку разъемов подключения. С этим вопросом все хорошо — я даже проверять не буду, поскольку уважаю коллег из Новосибирска. Пнп: хотя я свомим глазами видел отечественную плату с отечественной SoC (фирмы Модуль) в формате Pi-Zero, у которой раскладка ножек на разъем MXM отличалась кардинально, у нас так бывает.

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

Второе требование софта - нужна поддержка средой программирования конкретного МК в виде конфигурационного файла, задающего требования к компилятору и линкеру — я этого файла (а еще лучше образа полностью настроенной среды) на сайте изготовителя платы не вижу — опять несовместимость.

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

Итого — совместимость с Ардуино только по одному пункту из четырех, так что итоговая формулировка должна звучать так «самая российская потенциально Arduino-совместимая плата на отечественном микроконтроллере MIK32 АМУР (Микрон)».

Подводя итоги всему сказанному, можно заявить, что мы имеем дело с классическим случаем «изнасилования ученым журналиста».
В тоже время я обозначил проблемы (и наметил пути их решения) при создании устройства, которое будет полностью соответствовать кликбейтному заголовку новости - дерзайте, мои молодые коллеги (ММК).

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


  1. mpa4b
    18.06.2024 11:17
    +2

    Ядро практически одинаковое

    Ну нифига ж себе "практически одинаковое"! Вы в курсе, что значит RV32E? Половины регистров нет, ABI идёт по известному месту, вещь в себе. Да и отсутствие умножений и делений это тоже вполне себе минус.

    Не пытаюсь выступать защитником Микрона, но всё же надо быть более дотошным, что ли. НИКАКИХ преимуществ у "CH" тут нет.


    1. GarryC Автор
      18.06.2024 11:17
      +2

      Хм, я не знал такой тонкости, мне казалось, что Е означает "расширенный" в противовес I, которая явно обозначена, как "базовый набор инструкций". Сходил на сайт RISCV, почитал, оказывается набор инструкций точно такой же, а регистров только 16 вместо 32, спасибо за поправку. Оценка по данной строке таблицы меняется на +2.

      Наверное, ABI не совсем идет по указанному адресу, а смещается ?


      1. mpa4b
        18.06.2024 11:17
        +1

        ABI не совсем идет по указанному адресу, а смещается ?

        Не знаю. Везде пишут про ABI на случай 32 регистров, на случай 16 я не видел (или пропустил)


        1. GarryC Автор
          18.06.2024 11:17

          Ну у gcc есть два флаг для E версии - march=rv32e и -мabi=rv32e.


  1. Gryphon88
    18.06.2024 11:17
    +2

    По поводу CHv003:

    документация у китайцев довольно своеобразная, но там и на v003, и на v203/303 она написана в духе "если чего непонятно, читай доки от аналога стм". Обычно принцип работает, раскладка регистров и битов примерно совпадает, часть имен тоже. Документацию на "Амур" не читал.

    у WCH патченный gcc и gdb. Патчи связаны с вендорной обработкой прелюдии для прерываний с атрибутом "WHC-interrupt-fast". Документировано это похабно, но статьи на хабре были. Что в "Микроне" накрутили - без понятия.


    1. GarryC Автор
      18.06.2024 11:17

      А что, вполне себе рабочий метод, то есть если периферия снята с STM8 в режиме "1 к 1"?


      1. Gryphon88
        18.06.2024 11:17

        С стм32. У gd32 сходный подход к документации, про Artery не скажу. Вообще похоже, что все китайцы так на документации экономят


        1. GarryC Автор
          18.06.2024 11:17

          Ну они вроде совместимость по корпусу и ножкам с STM8 декларировали.


    1. mpa4b
      18.06.2024 11:17
      +1

      Что в "Микроне" накрутили - без понятия.

      В этом и фишка RISC-V -- можно взять и накрутить, добавив например аппаратное сохранение регистров при входе в прерывание, а можно сделать по дефолту (по базовому мануалу), тогда конечно удобностей будет не очень, но жить всё ещё можно. А вот в каком-нибудь cortex-M3 без вариантов -- за вас прибили гвоздями контроллер прерываний и аппаратный пуш регистров и живите только с этим.


      1. Gryphon88
        18.06.2024 11:17

        зато какой геморрой получается с тулчейном. он как бы опенсорсный, но собрать его и подключить к неродной IDE становится приключением. Ну и у того же WCH версия ИДЕ по линукс заметно отстает от виндовой.


        1. mpa4b
          18.06.2024 11:17
          +1

          Да ладно, никакого геморроя с gcc и бинутилями нет. К обработчикам прерываний они никак не относятся. Конечно приятно, когда в cortex-m3 вместо пролога и эпилога единственного обработчика на асме (как для ARM7TDMI) можно писать хендлеры сразу на сях с сигнатурой void fname(void) и потом удобненько расставлять векторы в линкер-скрипте, но всё же тулчейн для этого менять не обязательно -- не он определяет, что именно и как вы компилируете в проект и какие у вас там обработчики.

          подключить к неродной IDE становится приключением

          Ну так любители свистопердящих IDE и должны страдать :)