Кризис… как много в этом слове.
Сейчас любой хобийщик, который любит возится с самосборной электроникой, сейчас столкнулись с недоступностью распространенных ранее чипов. Да-же сверхпопулярные платы «Blue pill» сейчас частенько идут с откровенным браком и перемаркировкой. Или в лучшем случаем с GD32F103.
И естественно возникло желание посмотреть что либо на замену. Ну и хочется что-то новенькое попробовать. И вот путем рандомного тыкания в али нашел чип, потенциально готового занять место в моих самоделках.
Знакомьтесь — чип Winner Micro W800х!
Коротко о самом чипе:
В семействе чипов 3 чипа:
W806 — базовый MCU без радио блока (корпус QFN56)
W801 — MCU c Wi-Fi и Bluetooth (корпус QFN56)
W800 — MCU c Wi-Fi и Bluetooth c урезанной периферией. (корпус QFN32)
Чип основан на не слишком распространенной архитектуре C-SKY.
Заявленные характеристики чипа:
— Максимальная тактовая частота CPU — 240 МГц, ее возможно снизить делителями до 2 МГц. По умолчанию процессор стартует на 80 МГц.
— 1/2 МБ флеш-памяти для программ ( 1М:806, 2М:801)
— 288 КБ SRAM
— встроенные средства шифрования RSA/AES/RC4/DES/3DES/RC4/SHA1/MD5/CRC8/CRC16/CRC32/TRNG
— 4 канала 16-бит сигма-дельта АЦП, с частотой семплирования 1 КГц, возможна работа в дифференциальном режиме.
максимальное входное напряжение АЦП — 2,4В, АЦП имеет встроенный опорный источник 2,5в, подключение внешнего не предусмотрено.
— высокоскоростной SPI до 50 МГц (только slave!)
— SPI master/slave до 20МГц
— QFLASH контроллер
— SDIO контроллер
— 5 UART (на самом деле 6, но UART0 используется для загрузки программ, и использование его в своих целях не рекомендуется)
— 6 32-битных таймеров. Все таймеры абсолютно одинаковы.
— по одному I2C и I2S интерфейсу.
— модуль часов реального времени (RTC) со встроенным источником тактирования 32 КГц. Отдельный домен питания от батарейки не предусмотрен.
— 5 каналов ШИМ с максимальной частотой 20 МГц, из них два канала могут работать на вход
— 8-канальный контроллер DMA, до 16 источников данных, возможность передачи память-память, память-периферия и периферия-память.
— 11 каналов емкостного touch-интерфейса.
— встроенный контроллер LCD, 4 COM * 32 SEG.
— watchdog
— интерфейс внешней памяти PSRAM, с возможностью конфигурирования работы как SPI/QSPI, с максимальной частотой SCK 80 МГц и макс. объёмом внешней памяти 64 МБ.
— Корпус QFN56, из-которых 42 вывода доступны как GPIO. Логически портов GPIO всего два — PORTA и PORTB. PORTA 16-битный, а PORTB — 32-битный.
— Питание 3,3В, встроенный LDO 1,08 В для питания ядра.
Два слова о поддержке USB — его нет. Прошивка в контроллер заливается по UART0 через USB-UART конвертер CH340, распаянный на плате. В описаниях выводов присутствует JTAG, но отладчик под эту архитектуру на Али стоит не гуманных денег.. Что ж, придется вспомнить, как отлаживаться по UART и по светодиодам.
Прежде всего нас наверно заинтересует быстродействие. Прогоним стандартный CoreMark и сравним по цифрам тут
www.eembc.org/coremark/scores.php с ближайшими аналогами.
STMicroelectronics STM32F446RE — 602
W801/W806 — 573
STMicroelectronics STM32F417IGt6 — 565
STM32wb55 — 216
ESP32-C3 — 388
ESP32 — 660 (dual core)
Espressif ESP8266 — 191
RP2040 — 236
Т.е. быстродействие на уровне F417/F427.
Первое, ч то нужно знать — официального SDK нет. Вернее есть, но это нужно однозначно выкинуть в мусор. А потому идем на githab.
Есть 2 адекватных, пригодных к работе SDK:
1)
github.com/ganhailin/wm_sdk_w801 Заточено под 801 чип, и несет на борту полный комплект модулей. Документация с описаниями функций и макросов есть есть, хотя и местами излишне лаконичная. Очень похожа на попытку сделать нормальный официальный SDK.
2)
github.com/IOsetting/wm-sdk-w806 Заточено под 806 чип, соответственно радиоблока и блютуза нет. Документации нет, но весь HAL написан в стиле STM32.
Что проверил и впечатления.
1) GPIO — все в норме ( что там может не работать?) 12mА на вывод, подтяжка в верх и низ. Максимальная частота вывода индивидуальна — смотреть в мануале ( 10-80 MHz)
2) Таймеры. 6 простеньких таймера. Считают только вверх до определенного значения и формируют прерывание. Соединения с GPIO и каскадирования нет. Прерывание одно на 6 таймеров.
3) ADC — работает нормальною На входе — PGA. Частота семплирования всего 1килогерц. Для опроса датчиков — самое то.
4) Тouch — уверенно распознает касания. Дребезга и фантомных срабатываний не заметил ( на столе, как поведет в реальных условиях — нужно смотреть)
5) ШИМ — работает без замечаний.
6) RTC — работает. Огорчает, что нет возможности отдельно запитать от часовой батарейки.
7) WiFi — просто работает. Выполняет сканирование сетей, регистрируется в сети. Поигрался с сокетами, HTPP/HTPPS, получил время по NTP. На первый взгляд все работает, глубоко не копал.
8) Блютуз — инициализировал модуль, поднял BL сервер. Сотовый плату видит, подключается через блютуз штатно. В консольке видны события блютуз модуля.
Плюсы:
1) Дешево.
2) Доступно.
3) Хорошая организация демонстрационных примеров.
4) Можно плату сделать «Ардуино-совместимой» (
github.com/nulllaborg/nulllab_w80x_arduino )
5) SDK под Линукс (
github.com/droppingy/W801_SDK-linux )
6) Запуск LuatOS на чипе:
we.easyelectronics.ru/part/luatos-i-opyty-nad-w806.html
Минусы:
1) Нет нормальной документации на английском/русском.
2) Нет нормальной отладки. ( Есть проект
github.com/henrycoding/cklink-lite )
3) Основное сообщество и разработчики — жители Китая.
4) Нет стабильного, поддерживаемого разработчиками единого SDK.
5) Не слишком эффективная архитектура ( при равной производительности чипы F417/F427 работают на 160-180 МГц, а W801 — 240 МГц)
Полезные ссылки:
cdk-windows-V2.12.1 можно скачать тут
occ.t-head.cn/community/download?id=575997419775328256&inviteUserId=3765369728093868032 (нужна регистрация, что хорошо можно регаться с использованием эл почты) или взять тут
www.mediafire.com/file/wc4brpwkouotw1k/cdk-windows-V2.8.7-20210507-1704.zip/file
Upgrade Tools можно скачать тут
www.isme.fun/?log=blog&id=34
SDK лучше взять тут. С документацией на API и примерами.
github.com/ganhailin/wm_sdk_w801
Примеры работы на уровне регистров можно посмотреть тут:
we.easyelectronics.ru/part/w806-gpio-i-taymery-chast-1.html и
we.easyelectronics.ru/part/w806-gpio-i-taymery-chast-2.html
Ну и резюме:
Чип очень интересный.
Прежде всего в плане цены (на момент описания обзора):
Макетка с чипом стоит 207 рубля.
Сами чипы: W801/W806 —
77 рубля. W801 —
92 рубля.
С учетом производительности на уровне F417/F427 — я не вижу других альтернатив.
В принципе данная плата может в перспективе стать «убийцей ардуино».
Много ног GPIO и богатая периферия. Наличие WiFi и Bluetooth.
В принципе в планах использовать «на пробу» в паре самоделок.
И надеюсь что чип получит популярность и производитель оперативно допилит SDK и документацию.
И да, а чем GD не угодил? Вроде как не подвальное производство и почти аналог STM
Неоднократно видел сообщения, что при попытке перенести проект с STM32F на GD32F вылазили косяки и странности. И если при наличии исходников в принципе можно софт исправить, но при наличии только файла прошивки перенос становится невозможным.
У меня один проект залился в GD нормально (и работает нормально), второй не работает, хотя и залился норм. И таких уже было пару штук. Специально переделывать проект под GD не стал.
Там в конце есть и ссылка на официальную доку на тему совместимости.
С другими чипами ситуация часто аналогична.
Так что ты конечно можешь купить пару STM32F401. Но вот что придет…
Но мой личный опыт брал недавно G031 по 100р у начинающего продавана, все нормально.
Зачем пугаете народ?
ЗЫ. брал пару десятков по 2-3 у разных продавцов.
недорого и функционально.
1) Продавец «Jumpwire Store» — лот снят с продажи. Чип вроде работает, но невозможно вывести DAC на внешнюю ногу. Сам не поверил. Проверил все очень тщательно. На G031 — все получается отлично, на присланном чипе — нет! Все биты в регистрах в ручную проверил. Плюс потом вылезли странности с прерываниями и чип я забросил.
2) Продавец «o-discovery Store». https://aliexpress.ru/item/item/1005001465029218.html Чип вообще не опознавался программатором. Выдавал неверный ChipID = 0x479 (правильный 0x468). При попытке что либо прошить валится в ошибку.
Хотя, там у вас 431 и blue-pill в новой редакции.
Тогда извиняюсь, я говорил про black pill 401/411.
Судя по зоопарку сдк, тут уже все не супер.
ESP32 уже взрослый контроллер с большой производительностью, и цена очень конкурентоспособная.
Winner Micro W806 — краткий обзор.
W806 — GPIO и таймеры. часть 1.
W806 — GPIO и таймеры. часть 2.
Winner Micro W806 — I2C.
Оценка, проверка работы, впечатления, рекомендации для читателей — личное.
Нет никакого смысла использовать [гм] *32F103*, не говоря уж о «subj»
IMHO, из положительного у GD только наличие нормальной поддержки в IDE типа ARM/Keil (что тоже не маловажно).
Это может означать только одно дно.
Так что вряд ли это подделка.
Есть конторка которая двенадцать лет
P.S.: мне кажется, что подделка чипа с работающим радиоблоком не реальна. Или по крайней мере очень хлопотно, геморно и дорого.
Просто плата с W801 есть в 2-х вариантах: V1.0 и V1.1
На версии V1.1 заложили возможность использовать 2 разных корпусов. Ибо кризис и ставят что найдут.
.
Ну и хотелось бы чтобы было нормальное окружение (SDK, ToolChain, библиотеки, примеры, даташиты и мануалы) и развитое сообщество
Без всего это задекларированная богатая периферия так и остается только задекларированной
В основном чипы на этой архитектуре встречаются на ТВ и спутниковых приставках. Ну или там, где нужно «дешево и сердито».