Как стать автором
Обновить

Комментарии 32

Спасибо, за статью. Думал я один не понимаю, какие действительно объемы sram и flash у этих чипов))

Возможно, что "медленный" флэш на самом деле медленный. Такое было распространено на заре 32-битный контроллеров (всякая экзотика от Infineon). Часть флэша подключена по 8-битной шине. Пользуйся сколько угодно, но скорость будет в 4 раза ниже.
Второй вариант, до сих пор очень распространённый в мире ARM, и на него намекает ваш даташит из старших контроллеров, это когда флэш (или его часть) подключен по SPI, а данные из него при старте копируются в ОЗУ, откуда дальше и исполняются. Причём у некоторых контроллеров есть возможность исполнения кода, оставшегося во флэше - копирование в ОЗУ происходит "на лету" по мере обращения специальным аппаратно-программным загрузчиком. Само собой, что обращение к такому флешу оказывается на порядок (и даже больше) медленнее обычного.

В целом похоже, что китайцы наконец дорвались до более-менее современных технологий и первым делом начали творить монстров с твёрдым намереньем лично собрать все возможные грабли разработки контроллеров за последние 30 лет. И естественно, что всё это без документации (на заре становления контроллеров, хоть было принято максимально исчерпывающую документацию давать, что заметно сокращало боль пользователей).

И естественно, что всё это без документации

Поэтому многочисленные STM32, которым WCH бесхитростно подражает названиями своих клонов моделей, похоже, вне опасности.

В целом похоже, что китайцы наконец дорвались до более-менее современных технологий и первым делом начали творить монстров с твёрдым намереньем лично собрать все возможные грабли разработки контроллеров за последние 30 лет.

Очень точно подмечено. Но если провести параллели с автопромом, то есть шанс что свои уроки они будут учить быстро. И возможно, в каких то секторах уйдут вперед. Так что я ставлю в среднесрочной перспективе на Китайцев и RISC-V, это будет их Byd и Zeekr в микроконтроллерах:)

И естественно, что всё это без документации 

Без англоязычной документации:) У меня впечатление, что мы недооцениваем объем локального Китайского рынка. Или переоцениваем свою значимость для Китайских брендов:)

У них есть та проблема, что они сильно увлечены копированием и переиспользованием уже скопированного, что тормозит разработку своего. В результате тянутся из поколения в поколение (да ещё и в разных архитектурах) тянутся эти кривые блоки периферии от копии STM32F1xx. Хотя логично было бы при разработке своей архитектуры хотя бы известные баги поправить, не говоря уже нормальной адаптации или развитии. И получается процессоры с частотой периферии 144Мгц, у которых всё остальное этой частоте не кратно и потому с максимальной производительностью работать не может. И так во всё. Даже если они разрабатывают что-то своё, то при минимальной успехе разработка останавливается, обвешивается уже имеющимся ужасом, продаётся за копейки, и из успешной разработки выжимаются все соки. Никакого серьёзного развития не происходит.
А в это время западные разработчики используют нормальные схемы развития продуктов и получают качественные улучшения и поступательное развитие.

Ну деньги то сами себя не заработают:) Совместимые корпуса, знакомая периферия, низкая цена - норм стратегия по выходу на рынок. Кому Китайцы глобально нафиг сдалиcь лет 5 назад, когда F103 был меньше бакса? А в пандемию, половина рынка услышала от STM - несите ваши деньги и поставим вас в очередь на производство через пару лет, а вторая увидела F103 по 15USD:) Инженерная школа опять же таки сама себя не создаст. Что бы делать прям свое, без оглядки на предыдущие наработки и старших товарищей, надо и рынок сбыта иметь как у STM и бюджеты разработки сопоставимые. Посмотрим на следующие генерации. А пока да, плачем и жуем кактус:)

Инженерная школа опять же таки сама себя не создаст.

То, что вы видите в товарных изделиях, включая не только сабж и прочие подражания STM, но по сути вообще все - вот это и есть уже устоявшаяся инженерная школа. Забить на патенты где они есть, бездумно скопировать необязательно идеальное и беспроблемное решение, щедро отсыпать экономии на спичках и этим окончательно и бесповоротно все хорошее, взятое у объекта копирования, испортить, добавить в ненужных местах немного своей странной самодеятельности - зато дешево! Вот это она и есть, китайская инженерная школа. Сделать что-то между клоном и подражанием продукции STM или вообще чему угодно, например подражание автомобилям от мировых брендов (а чо™, колес столько же, руль тоже если не совсем круглый, то где-то похож), не такая уж и простая задача, порой несильно уж и проще, чем разработать вообще с нуля. То есть это не просто какие-то гипотетические инженеры имеются где-то как-то номинально - нет, существует целая индустрия, в которой они, инженеры часто весьма высокой квалификации, относительно эффективно задействованы. Но результат именно такой, какой есть - не потому ли, что именно такого результата и добиваются? Мы часто считаем этот результат почти, а временами и совсем провалом, но это наше мнение - китайская инженерная школа ориентируется на другие цели и использует другие практики их достижения, чем те, которые мы считаем желательными или правильными. Я вижу слабость китайского подхода в том, что лиши их объектов для копирования и/или рынков сбыта лицензионно спорной продукции, как их развитие, подпитываемое копированием внешних разработок, а не созданием своих, изрядно так затормозится. Зато сила их в том, что получается дешево. А что зачастую плохо - так зато дешево.

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

Вроде как (не уверен) у Fudan в целом все свое. Может еще кто есть, кто просто не распространён в РФ или не хочет приходить.

Например goodix, делают BLE, по ттх на уровне нордика и силабса.

Есть конкуренты ESP: beken, bouffalo lab. Но с РФ они не хотят работать, им иные рынки интереснее.

Так что китайцы на месте не стоят

Согласен полностью. А еще мы не знаем на чем сумрачный Китайский гений летает в космос и делает едрены бомбы:)

Вроде как (не уверен) у Fudan в целом все свое. Может еще кто есть, кто просто не распространён в РФ или не хочет приходить.

Думается в поставках сами производители не отказывают, но и двигать продукцию в РФ не рвутся (включая клонов STM). Вот только кто из российских дистрибов в одно лицо потянет раскрутить новый бренд, затаврить склад номенклатурой, плат отладочных притащить? C STM клонами по крайне мерее можно хоть как-то спрогнозировать спрос.

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

При старте контроллер еще до начала исполнения кода некоторое время (десятки миллисекунд) как раз занимается перекладыванием из FLASH в SRAM и жрет при этом как не в себя (по меркам батарейных устройств). И это увы никак не лечится (. Зато потом да, хоть до 200 МГц разгоняй.

Такое ощущение что все st клоны используют одно и то же ip ядро или что то подобное, незнаю как назвать. Видишь китайские чипы от разных производителей с частотой 144 мгц, то скорее всено у них внутри есть единый одинаковый орган и у него одни и те же проблемы. Это и artery, и wch, и nations, вполне возможно и geehy туда же

Ну или они так друг у друга копируют, как с китайскими авто младшего сегмента, все друг на друга похожи, 150 лс с турбиной и робот семиступка

Можно отключить копирование в SRAM User System Area. Тогда и размер SRAM будет больше и копировать не будет. Потом, если надо, можно руками скопировать или просто большой SRAM будет.

Флеш может быть вообще SPIйный, может быть отдельным кристаллом в корпусе лежать, но мапиться на реальное адресное пространство и может быть ну очень медленным.

Китайцы конечно максимально замели под шкаф тему теневого копированиния в ОЗУ, но общий размер флеша есть на первой странице:

  • Available with 480KB program memory CodeFlash (zero-wait application area + non-zero-wait data area)

Далее в сноске к таблице моделей:
Note: 1. Flash bytes represent zero-wait run area R0WAIT. For the V303/V305/V307 series, non-zero-wait area
is (480K-R0WAIT)
И ниже это косвенно указано в комменте ко времени выхода из Standby
LDO stabilization time + HSI RC clock wake up + code load time(2) (take 256K as example)

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

Техподдержка wch кстати никакого нормального объяснения устройства памяти не дает, мол читайте даташит

Я тут неделю назад через Google Translate зашел на Китайский суппорт WCH и открыл для себя какой-то нескончаемый океан информации. У меня последние время складывается следующие впечатление. Мы тут все гоним на кривожопых Китайцев, документов мол нет, на вопросы не отвечают. А на самом деле, Китайцы просто положили длиннющий желтый болт на англоязычный сектор сбыта ибо у внутренний рынок цветет и пахнет, и нафиг мы им ту не сдалась:)

По опыту с CH32F, если установить частоту шины 120 МГц запись во flash корректно работает не на каждом экземпляре МК. Т.е. 120 это прям предел, совсем без запаса.

Ого, интересно. А в какой пишете, в кэшируемый или за его пределы? И каким методом, стандартным или быстрым?

Родоначальник этого направления - Gigadevice, внешний чип флеш-памяти позволил им выпускать контроллеры семейства F1 с объёмом до 3 МБ, чего не было у STM.

Но тут я решил поиграться в Ble 

что интересного можно почитать в их bt стэке?

1. Можно послушать лекции с жутким акцентом https://m.youtube.com/watch?v=6NE61BdSvqA На том же канале еще 3 части. Вот код к этим видосикам на оф. аккаунте WCH на Git. https://github.com/openwch/ch32_training_documentation/tree/main/04_remote_control_car

Это вообще единственное что официально есть про CH32V208:)

2 .Самое интересное что я накопал вот https://codeload.github.com/treideme/reaction-trainer/zip/refs/heads/master По проекту у чувака есть немного инфы на его стайте, искать надо, не помню уже. Найти можно. Там суть в чем, чувак запустил на CH32V208 RT-Thread, а в ее потоке запустили TMOS со стеком Ble.

это тоже интересно, но я в плане личного опыта: есть ли там какие то странности, необычности, принципиальные проблеммы

О, нет. Я просто посмотреть че вообще такое BLE запустил, так сказать для расширения кругозора:) Поскольку я других стеков ble не видел, мне сложно судить о корявости решения от wch. Если чисто о впечатлениях, они стек перетащили откуда-то сбоку. Он идет в составе операционки TMOS единой библиотекой на asm. В TMOS можно вкидывать callback на свои прикладные задачи. TMOS вытеснять задачи не умеет, так что не рассчитал время прикладного процесса, сломал стек:) Отсюда моя вторя ссылка на проект под RT-Thread. Как я нашел инфу на китайском сапорте, CH581 и прочие мелкие ядра, были экспериментом по закинуть к ble чутка периферии. А CH32V208 это эксперимент по накинуть на эксперимент с мелкими ядрами нормальную машину. И по моим ощущениям они сами не очень понимают что у них получилось:) Как итог, V208 сырой прям жесть. Весь SDK натянут с CH581 и прочих чахлых машинок, они мне не интересны, не смотрел туда. Но судя по китайском саппорту, у себя на родине они вполне популярный продукт.

вот вот вот я про это, спасибо

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

ESP32 пожалуй даже побольше огорожен, а вот в nordic хотя и фирменная либа с ble тоже засунута в hex, но доступен прямой доступ к радио и можно лепить свой стэк.

для wch в SDK есть примеры довольно сложных ble конфигураций, а так же аж 4 rtos включая RT-Thread но вот вот TMOS туда присунуть они не догадались, и судя по примерам это не всегда и нужно

Так вроде BT не то что бы опен-сурс, видимо дело в лицензировании, поэтому и закрыто все А вот почему не дают доступ к RF непонятно, но какая-то логика в этом определенно есть.

TMOS же менеджер стека, единое с ним целое. А вот на кой черт они 4 RTOS выложили без примеров интеграции с Ble...

я пожалуй больше про доступ к железу имел в виду. потому что с другой стороны "верхняя" часть bt стека у esp32 - более менее открыта, точнее есть два официальных открытых стека разных + свою верхушку можно прикрутить, а они тоже есть открытые.

для nordic вроде тоже есть открытый стэк но это я еще не докопался. у других производителей тоже наверное есть чего поглядеть

TMOS и в целом BLE стек у WCH это калька стека BLE от Texas Instruments. Ранних версий, еще до того, как TI перевели стек на TI RTOS.

Почему WCH не перевели стек на любую RTOS пока загадка. Но сколько я перетрогал китайских BLE, у многих BLE стеков нет RTOS, все крутится в main цикле. И всегда есть примеры RTOS без BLE отдельно. Может со временем разовьют, посмотрим.

А что вы хотите от доступа к RF? У WCH есть API, где можно напрямую передавать пакеты по каналам BLE. Смотрите примеры RF_PHY

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

Можно исправить текст?

В тексте и теге опечатка: архитектура же не "RISK-V", а "RISC-V".

П тексту нет единообразия: в одном месте " Кб", в другом "КБ", в третьем "кБ" и даже "кб", короче все варианты испробованы.

Спасибо за замечание. Поправил.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации