Winner Micro W806 - краткий обзор.

С недавних пор на одной интернет-барахолке начали появляться в продаже отладочные платы на микроконтролллере W806, от компании Winner Micro. В заголовке и описании товара иногда указано «W806 микроконтроллер 240 МГц 5-8Bit STM32 макетная плата CH340 IoT MCU чип CDK окружающая среда низкая мощность IOT». Но все мы знаем хитрых продавцов на Али — напишут что угодно, лишь бы продать. Вот и я заинтересовался этой платой, и как только она была доставлена, с головой окунулся в reference manual (RM) на этот продукт. Давайте же разбираться, что в этом чипе интересного, каким боком тут STM32, и станет ли он «убийцей blue pill» или же его судбьа — немногие любительские самоделки.

Чип основан на не слишком распространенной архитектуре C-SKY.
Заявленные характеристики чипа (переведено через гугл, поэтому замечания и дополнения приветствуются):
— Максимальная тактовая частота CPU — 240 МГц, ее возможно снизить делителями до 2 МГц. По умолчанию процессор стартует на 80 МГц.
— 1 МБ флеш-памяти для программ
— 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 и по светодиодам. Кстати, на плате их три, подключенных к пинам PORTB0-PORTB2. В следующей статье помигаем ними, а заодно подробнее рассмотрим порты GPIO и таймеры.
Внутренняя структура процессора показана на рисунке:
W806
Шина AHB-1 может работать на максимальной частоте 240 МГц, но ее частота может быть снижена путем изменения делителя тактирования. Максимальная частота работы шины AHB-2 — 40 МГц, она тоже может гибко настраиваться для снижения энергопотребления.
Чип имеет встроенную поддержку Wi-Fi и bluetooth, но так как на плате отсутствует физическая обвязка для работы этих интерфейсов, я их рассматривать не буду.

Документация на чип оставляет желать лучшего. Например, в RM таймеры указаны как TIMER1 — TIMER6, а вот в IDE — как TIM0 — TIM5. Да и вообще с именами регистров путаница — регистры, отвечающие за включение подтяжки пинов GPIO к питанию или к земле, даже в пределах RM имеют разные названия — GPIO_PULL_EN и GPIO_DN_ENA. Хотя в заголовочниках IDE они имеют вполне логически обоснованные имена PULLUP_EN и PULLDOWN_EN. И это я еще не копал в сторону DMA и модуля шифрования, подозреваю, что там тоже много подводных камней.
В плане энергосбережения доступны два режима — standby mode и sleep mode. В standby режиме вся цифровая часть чипа обестачивается, в рабочем состоянии остается только модуль Power Management Unit (PMU), который обеспечивает пробуждение из режимов сна. В этом режиме также теряется содержимое SRAM и регистров, а после пробуждения программа начинается выполняться с самого начала, что равносильно перезагрузке процессора. Потребление в этом режиме заявлено 15 мкА.
Второй режим сна — sleep mode — отключает только DPLL и подсистему тактирования, содержимое регистров и памяти остается прежним. В этом режиме чип будет потреблять около 1 мА, и после пробуждения программа продолжит работу с места остановки.
Разбудить процессор можно тремя способами — специальной ножкой WAKEUP, подтянув ее к высокому уровню, по Таймеру0, или по прерыванию от RTC. Состояние пина WAKEUP в рабочем режиме не влияет на работу процессора, этот пин опрашивается только в режиме энергосбережения и может быть подтянут к земле через 10K резистор или оставлен не подключенным.
Работа среды разработки CDK тоже требует привыкания. Привычная комбинация SHIFT-Стрелка вправо (влево), вместо перемещения по словам, переключает между окнами редактора. Я пока так и не разобрался, как создать новый проект под чип W806, поэтому просто распаковываю содержимое архива wm-sdk-w806-main в новую папку, и открываю проект оттуда (wm-sdk-w806-main\tools\W806\projects\SDK_Project\project\CDK_WS\CDK_WS.cdkws). В окне создания нового проекта просто нет шаблона для W806, а без выбора шаблона проект не создается.

Поковырявшись в чипе пару дней, могу сказать, что от STM32 в нем чуть менее чем ничего. Некоторые значения нужно вписывать в виде 8-битных слов в два разных(!) 32-битных(!) регистра. Состояние регистров по умолчанию тоже не всегда соответствует описанному в RM. Вменяемой поддержки от производителя нет, если вы не китаец :), даже на англоязычных ресурсах пока очень мало информации по этому чипу. Корпус труднопаябельный в домашних условиях, хоть и по очень привлекательной цене, так что если и использовать в самоделках, то только в виде «ардуина на максималках».
Где же может пригодиться такая производительность и возможности:
— устройства с графическими экранами и сенсорными кнопками
— датчики и исполнительные устройства умного дома
— всякие развлекательные и носимые устройства. (хотя это под вопросом, инфу об энергопотреблении в разных режимах работы я так и не нашел)

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

Все вышесказанное является чистейшей воды ИМХОм, и подлежит обязательному обсуждению в комментариях.
RM еще в процессе перевода на англ. язык, по завершению приложу его к статье и выложу на форум.
  • +7
  • 22 января 2022, 13:41
  • finskiy
  • 1
Файлы в топике: W806_datasheet.zip

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

RSS свернуть / развернуть
RM еще в процессе перевода на англ. язык, по завершению приложу его к статье и выложу на форум
О, перевод RM — это полезно. А чем и как переводишь?
Корпус труднопаябельный в домашних условиях,
ИМХО, труднопаябельность QFN в домашних условиях преувеличена. Особенно если есть фен. Да и без фена такие вещи паяются в 4 касания жалом типа К. Но в принципе, его и модулем можно нормально запаять, как DIP-переросток.
Чип имеет встроенную поддержку Wi-Fi и bluetooth, но так как на плате отсутствует физическая обвязка для работы этих интерфейсов, я их рассматривать не буду.
Мне казалось на W806 их и нет, только в W801 (он тоже есть у китайцев и с ним есть платы с RF-обвязкой).
Работа среды разработки CDK тоже требует привыкания
А она нужна ли вообще, без отладчика-то? Можно привязать SDK и тулчейн к IDE по вкусу.
0
  • avatar
  • Vga
  • 22 января 2022, 13:57
Перевожу гуглотранслейтом, потом вычитываю, привожу в удобочитаемый вид.
Да, Wi-fi у W806 отсутсвует, но RM приведен на всю серию W800, да и при прошивке чипа он выдает в порт:
Sync success, W80X
BLE MAC: FFFFFFFFFFFF
WIFI MAC: FFFFFFFFFFFF

так что возможно, регистры и присутствуют.
Можно привязать SDK и тулчейн к IDE по вкусу.
Можно попробовать, я бы не отказался писать в VS Code.
Если есть соображения, как это можно сделать, поделитесь, пожалуйста.
0
Перевожу гуглотранслейтом, потом вычитываю, привожу в удобочитаемый вид.
Попробуй еще DeepL.
Если есть соображения, как это можно сделать, поделитесь, пожалуйста.
Вроде так же как с любым другим GCC-based тулчейном? Конкретно этим я не занимался да и VSCode не юзаю.
0
Впаять то может и не проблема при достаточном опыте. А про самодельные платы тут точно можно забыть, только у китайцев заказывать. Да, я знаю людей которые смогли бы изготовить, но это единицы.
0
А в чем проблема сделать плату под QFN с шагом 0.4-0.5? Проблема термопада тоже вполне решаема на коленке, например заклепками. Или большой дыркой для просовывания паяла. Или даже заклепкой на 2.5 квадрата.
0
Основная проблема — у этого чипа шаг выводов 0.35мм. Не то что бы это невозможно, но реально мало кто такое умеет.
0
Плотнее чем я думал, да, но 0.2/0.2 у меня ЛУТом получалось прям с первого раза. Думаю 0.2/0.15 на малом участке тоже получится.
0
Слышал, что можно в него LUA загнать. А вот как — не знаю…
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.